; LLVM IR from mackorone/mms :: old/v2/src/sim/Param.ll (ZN3sim5ParamC2Ev)

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

%"class.std::map.7" = type { %"class.std::_Rb_tree.8" }
%"class.std::_Rb_tree.8" = type { %"struct.std::_Rb_tree<sim::Color, std::pair<const sim::Color, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::Color, std::__cxx11::basic_string<char>>>, std::less<sim::Color>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<sim::Color, std::pair<const sim::Color, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::Color, std::__cxx11::basic_string<char>>>, std::less<sim::Color>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map.120" = type { %"class.std::_Rb_tree.121" }
%"class.std::_Rb_tree.121" = type { %"struct.std::_Rb_tree<sim::LayoutType, std::pair<const sim::LayoutType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::LayoutType, std::__cxx11::basic_string<char>>>, std::less<sim::LayoutType>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<sim::LayoutType, std::pair<const sim::LayoutType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::LayoutType, std::__cxx11::basic_string<char>>>, std::less<sim::LayoutType>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.136" = type { %"class.std::_Rb_tree.137" }
%"class.std::_Rb_tree.137" = type { %"struct.std::_Rb_tree<sim::MazeFileType, std::pair<const sim::MazeFileType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::MazeFileType, std::__cxx11::basic_string<char>>>, std::less<sim::MazeFileType>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<sim::MazeFileType, std::pair<const sim::MazeFileType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::MazeFileType, std::__cxx11::basic_string<char>>>, std::less<sim::MazeFileType>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.155" = type { %"class.std::_Rb_tree.156" }
%"class.std::_Rb_tree.156" = type { %"struct.std::_Rb_tree<sim::TileTextAlignment, std::pair<const sim::TileTextAlignment, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::TileTextAlignment, std::__cxx11::basic_string<char>>>, std::less<sim::TileTextAlignment>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<sim::TileTextAlignment, std::pair<const sim::TileTextAlignment, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::TileTextAlignment, std::__cxx11::basic_string<char>>>, std::less<sim::TileTextAlignment>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.sim::ParamParser" = type { %"class.pugi::xml_document", %"class.pugi::xml_node", %"struct.pugi::xml_parse_result" }
%"class.pugi::xml_document" = type { %"class.pugi::xml_node", ptr, [192 x i8] }
%"class.pugi::xml_node" = type { ptr }
%"struct.pugi::xml_parse_result" = type <{ i32, [4 x i8], i64, i32, [4 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.15" = type { i8 }
%"class.std::random_device" = type { %union.anon.193 }
%union.anon.193 = type { %"class.std::mersenne_twister_engine" }
%"class.std::mersenne_twister_engine" = type { [624 x i64], i64 }
%"class.sim::Param" = type { i32, i32, %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", i32, i32, i32, double, double, double, i8, i32, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", double, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i8, i8, double, i8, %"class.std::__cxx11::basic_string", i32, double, i8, double, double, double, i8, %"class.std::__cxx11::basic_string", i8, double, i32, i8, i32, i8, i32, i32, i32, double, double, %"class.std::__cxx11::basic_string", i8, i32, i32, %"class.std::__cxx11::basic_string", i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i32, %"class.std::__cxx11::basic_string" }

@_ZN3simL15COLOR_TO_STRINGB5cxx11E = external hidden global %"class.std::map.7", align 8
@_ZN3simL21LAYOUT_TYPE_TO_STRINGB5cxx11E = external hidden global %"class.std::map.120", align 8
@_ZN3simL24MAZE_FILE_TYPE_TO_STRINGB5cxx11E = external hidden global %"class.std::map.136", align 8
@_ZN3simL29TILE_TEXT_ALIGNMENT_TO_STRINGB5cxx11E = external hidden global %"class.std::map.155", align 8
@.str.69 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [16 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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3sim5ParamC2Ev(ptr noundef nonnull align 8 dereferenceable(1056) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.sim::ParamParser", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.15", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.15", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.15", align 1
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.15", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.15", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.15", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.15", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.15", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.15", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.15", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.15", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.15", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.15", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.15", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.15", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator.15", align 1
  %44 = alloca i32, align 4
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator.15", align 1
  %48 = alloca i32, align 4
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator.15", align 1
  %52 = alloca i32, align 4
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::allocator.15", align 1
  %56 = alloca i32, align 4
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator.15", align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator.15", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator.15", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator.15", align 1
  %67 = alloca i32, align 4
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator.15", align 1
  %71 = alloca i32, align 4
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator.15", align 1
  %75 = alloca i32, align 4
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator.15", align 1
  %79 = alloca i32, align 4
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator.15", align 1
  %83 = alloca i32, align 4
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator.15", align 1
  %87 = alloca i32, align 4
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::allocator.15", align 1
  %91 = alloca i32, align 4
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator.15", align 1
  %95 = alloca i32, align 4
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator.15", align 1
  %99 = alloca i32, align 4
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::allocator.15", align 1
  %103 = alloca i32, align 4
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator.15", align 1
  %107 = alloca i32, align 4
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator.15", align 1
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator.15", align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator.15", align 1
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator.15", align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::allocator.15", align 1
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::allocator.15", align 1
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::allocator.15", align 1
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::allocator.15", align 1
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::allocator.15", align 1
  %127 = alloca i32, align 4
  %128 = alloca i8, align 1
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::allocator.15", align 1
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca i1, align 1
  %133 = alloca %"class.std::allocator.15", align 1
  %134 = alloca i1, align 1
  %135 = alloca i1, align 1
  %136 = alloca i1, align 1
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca i1, align 1
  %139 = alloca %"class.std::allocator.15", align 1
  %140 = alloca i1, align 1
  %141 = alloca i1, align 1
  %142 = alloca i1, align 1
  %143 = alloca %"class.std::random_device", align 8
  %144 = alloca i1, align 1
  %145 = alloca i1, align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::allocator.15", align 1
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::allocator.15", align 1
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::allocator.15", align 1
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::allocator.15", align 1
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::allocator.15", align 1
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::allocator.15", align 1
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.std::allocator.15", align 1
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::allocator.15", align 1
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::allocator.15", align 1
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::allocator.15", align 1
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::allocator.15", align 1
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.std::allocator.15", align 1
  %171 = alloca %"class.std::__cxx11::basic_string", align 8
  %172 = alloca %"class.std::allocator.15", align 1
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.std::allocator.15", align 1
  %175 = alloca %"class.std::__cxx11::basic_string", align 8
  %176 = alloca %"class.std::allocator.15", align 1
  %177 = alloca %"class.std::__cxx11::basic_string", align 8
  %178 = alloca %"class.std::allocator.15", align 1
  %179 = alloca %"class.std::__cxx11::basic_string", align 8
  %180 = alloca %"class.std::allocator.15", align 1
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::allocator.15", align 1
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::allocator.15", align 1
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::allocator.15", align 1
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::allocator.15", align 1
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::allocator.15", align 1
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::allocator.15", align 1
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::allocator.15", align 1
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::__cxx11::basic_string", align 8
  %198 = alloca %"class.std::allocator.15", align 1
  %199 = alloca %"class.std::__cxx11::basic_string", align 8
  %200 = alloca %"class.std::allocator.15", align 1
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::allocator.15", align 1
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::allocator.15", align 1
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::allocator.15", align 1
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::__cxx11::basic_string", align 8
  %210 = alloca %"class.std::allocator.15", align 1
  %211 = alloca i32, align 4
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.std::allocator.15", align 1
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca %"class.std::allocator.15", align 1
  %216 = alloca %"class.std::__cxx11::basic_string", align 8
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.std::allocator.15", align 1
  %219 = alloca %"class.std::__cxx11::basic_string", align 8
  %220 = alloca %"class.std::allocator.15", align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %221 = load ptr, ptr %2, align 8
  %222 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 2
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #6
  %223 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #6
  %224 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #6
  %225 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 15
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #6
  %226 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 16
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #6
  %227 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 17
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #6
  %228 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 18
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #6
  %229 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 20
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #6
  %230 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 21
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #6
  %231 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 22
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #6
  %232 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 23
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #6
  %233 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 24
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #6
  %234 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 25
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #6
  %235 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 26
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #6
  %236 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 27
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #6
  %237 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 28
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #6
  %238 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 29
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #6
  %239 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 30
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #6
  %240 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 39
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #6
  %241 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #6
  %242 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 59
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #6
  %243 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 63
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #6
  %244 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 65
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #6
  %245 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 66
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #6
  %246 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 69
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #6
  call void @llvm.lifetime.start.p0(i64 240, ptr %3) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %4) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #6
  invoke void @_ZN3sim9Directory15getResDirectoryB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %5)
          to label %247 unwind label %488

247:                                              ; preds = %1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef @.str.69)
          to label %248 unwind label %492

248:                                              ; preds = %247
  invoke void @_ZN3sim11ParamParserC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %249 unwind label %496

249:                                              ; preds = %248
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.70, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %250 unwind label %502

250:                                              ; preds = %249
  %251 = invoke noundef i32 @_ZN3sim11ParamParser28getIntIfHasIntAndNotLessThanERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef 990, i32 noundef 100)
          to label %252 unwind label %506

252:                                              ; preds = %250
  %253 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 0
  store i32 %251, ptr %253, align 8, !tbaa !9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.71, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %254 unwind label %511

254:                                              ; preds = %252
  %255 = invoke noundef i32 @_ZN3sim11ParamParser28getIntIfHasIntAndNotLessThanERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %10, i32 noundef 700, i32 noundef 100)
          to label %256 unwind label %515

256:                                              ; preds = %254
  %257 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 1
  store i32 %255, ptr %257, align 4, !tbaa !17
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %258 unwind label %520

258:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  store i32 2, ptr %15, align 4, !tbaa !18
  %259 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim10LayoutTypeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL21LAYOUT_TYPE_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %260 unwind label %524

260:                                              ; preds = %258
  invoke void @_ZN3sim11ParamParser35getStringIfHasStringAndIsLayoutTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %259)
          to label %261 unwind label %524

261:                                              ; preds = %260
  %262 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 2
  %263 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %262, ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %264 unwind label %529

264:                                              ; preds = %261
  %265 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %16, i32 noundef 10, i32 noundef 0, i32 noundef 30)
          to label %266 unwind label %533

266:                                              ; preds = %264
  %267 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 3
  store i32 %265, ptr %267, align 8, !tbaa !20
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %268 unwind label %538

268:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %269 unwind label %542

269:                                              ; preds = %268
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %270 unwind label %546

270:                                              ; preds = %269
  %271 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 4
  %272 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %273 unwind label %552

273:                                              ; preds = %270
  %274 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %23, i32 noundef 9, i32 noundef 0, i32 noundef 30)
          to label %275 unwind label %556

275:                                              ; preds = %273
  %276 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 5
  store i32 %274, ptr %276, align 8, !tbaa !21
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.77, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %277 unwind label %561

277:                                              ; preds = %275
  %278 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %25, i32 noundef 6, i32 noundef 0, i32 noundef 30)
          to label %279 unwind label %565

279:                                              ; preds = %277
  %280 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 6
  store i32 %278, ptr %280, align 4, !tbaa !22
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.78, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %281 unwind label %570

281:                                              ; preds = %279
  %282 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %27, i32 noundef 20, i32 noundef 0, i32 noundef 60)
          to label %283 unwind label %574

283:                                              ; preds = %281
  %284 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 7
  store i32 %282, ptr %284, align 8, !tbaa !23
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.79, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %285 unwind label %579

285:                                              ; preds = %283
  %286 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %29, double noundef 2.000000e-02, double noundef 1.000000e-02, double noundef 4.000000e-02)
          to label %287 unwind label %583

287:                                              ; preds = %285
  %288 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 8
  store double %286, ptr %288, align 8, !tbaa !24
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.80, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %289 unwind label %588

289:                                              ; preds = %287
  %290 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %31, double noundef 1.000000e+00, double noundef 5.000000e-01, double noundef 2.000000e+00)
          to label %291 unwind label %592

291:                                              ; preds = %289
  %292 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 9
  store double %290, ptr %292, align 8, !tbaa !25
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.81, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %293 unwind label %597

293:                                              ; preds = %291
  %294 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 8
  %295 = load double, ptr %294, align 8, !tbaa !24
  %296 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 9
  %297 = load double, ptr %296, align 8, !tbaa !25
  %298 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %33, double noundef 1.000000e-01, double noundef %295, double noundef %297)
          to label %299 unwind label %601

299:                                              ; preds = %293
  %300 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 10
  store double %298, ptr %300, align 8, !tbaa !26
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %301 unwind label %606

301:                                              ; preds = %299
  %302 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %35, i1 noundef zeroext false)
          to label %303 unwind label %610

303:                                              ; preds = %301
  %304 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 11
  %305 = zext i1 %302 to i8
  store i8 %305, ptr %304, align 8, !tbaa !27
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.83, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %306 unwind label %615

306:                                              ; preds = %303
  %307 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %37, i32 noundef 60, i32 noundef 1, i32 noundef 120)
          to label %308 unwind label %619

308:                                              ; preds = %306
  %309 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 12
  store i32 %307, ptr %309, align 4, !tbaa !28
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %310 unwind label %624

310:                                              ; preds = %308
  %311 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %39, i1 noundef zeroext false)
          to label %312 unwind label %628

312:                                              ; preds = %310
  %313 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 13
  %314 = zext i1 %311 to i8
  store i8 %314, ptr %313, align 8, !tbaa !29
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %315 unwind label %633

315:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #6
  store i32 0, ptr %44, align 4, !tbaa !30
  %316 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %44)
          to label %317 unwind label %637

317:                                              ; preds = %315
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %316)
          to label %318 unwind label %637

318:                                              ; preds = %317
  %319 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 14
  %320 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.86, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %321 unwind label %642

321:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  store i32 6, ptr %48, align 4, !tbaa !30
  %322 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %48)
          to label %323 unwind label %646

323:                                              ; preds = %321
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %322)
          to label %324 unwind label %646

324:                                              ; preds = %323
  %325 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 15
  %326 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.87, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %327 unwind label %651

327:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #6
  store i32 3, ptr %52, align 4, !tbaa !30
  %328 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %52)
          to label %329 unwind label %655

329:                                              ; preds = %327
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %328)
          to label %330 unwind label %655

330:                                              ; preds = %329
  %331 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 16
  %332 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %333 unwind label %660

333:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  store i32 3, ptr %56, align 4, !tbaa !30
  %334 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %56)
          to label %335 unwind label %664

335:                                              ; preds = %333
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %334)
          to label %336 unwind label %664

336:                                              ; preds = %335
  %337 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 17
  %338 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %337, ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.89, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %339 unwind label %669

339:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %340 unwind label %673

340:                                              ; preds = %339
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %341 unwind label %677

341:                                              ; preds = %340
  %342 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 18
  %343 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.91, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %344 unwind label %683

344:                                              ; preds = %341
  %345 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %62, double noundef 5.000000e-02, double noundef 0.000000e+00, double noundef 5.000000e-01)
          to label %346 unwind label %687

346:                                              ; preds = %344
  %347 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 19
  store double %345, ptr %347, align 8, !tbaa !32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %348 unwind label %692

348:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #6
  store i32 4, ptr %67, align 4, !tbaa !33
  %349 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim17TileTextAlignmentENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL29TILE_TEXT_ALIGNMENT_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %67)
          to label %350 unwind label %696

350:                                              ; preds = %348
  invoke void @_ZN3sim11ParamParser42getStringIfHasStringAndIsTileTextAlignmentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %349)
          to label %351 unwind label %696

351:                                              ; preds = %350
  %352 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 20
  %353 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.93, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %354 unwind label %701

354:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #6
  store i32 14, ptr %71, align 4, !tbaa !30
  %355 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %71)
          to label %356 unwind label %705

356:                                              ; preds = %354
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %355)
          to label %357 unwind label %705

357:                                              ; preds = %356
  %358 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 21
  %359 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %358, ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.94, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %360 unwind label %710

360:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #6
  store i32 11, ptr %75, align 4, !tbaa !30
  %361 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %362 unwind label %714

362:                                              ; preds = %360
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %361)
          to label %363 unwind label %714

363:                                              ; preds = %362
  %364 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 22
  %365 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %366 unwind label %719

366:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #6
  store i32 5, ptr %79, align 4, !tbaa !30
  %367 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %79)
          to label %368 unwind label %723

368:                                              ; preds = %366
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %367)
          to label %369 unwind label %723

369:                                              ; preds = %368
  %370 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 23
  %371 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %370, ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.96, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %372 unwind label %728

372:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #6
  store i32 10, ptr %83, align 4, !tbaa !30
  %373 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %83)
          to label %374 unwind label %732

374:                                              ; preds = %372
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %373)
          to label %375 unwind label %732

375:                                              ; preds = %374
  %376 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 24
  %377 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %376, ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef @.str.97, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %378 unwind label %737

378:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #6
  store i32 1, ptr %87, align 4, !tbaa !30
  %379 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %87)
          to label %380 unwind label %741

380:                                              ; preds = %378
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %379)
          to label %381 unwind label %741

381:                                              ; preds = %380
  %382 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 25
  %383 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %382, ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str.98, ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %384 unwind label %746

384:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #6
  store i32 5, ptr %91, align 4, !tbaa !30
  %385 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %91)
          to label %386 unwind label %750

386:                                              ; preds = %384
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %385)
          to label %387 unwind label %750

387:                                              ; preds = %386
  %388 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 26
  %389 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef nonnull align 8 dereferenceable(32) %88) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.99, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %390 unwind label %755

390:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #6
  store i32 4, ptr %95, align 4, !tbaa !30
  %391 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %95)
          to label %392 unwind label %759

392:                                              ; preds = %390
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(32) %391)
          to label %393 unwind label %759

393:                                              ; preds = %392
  %394 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 27
  %395 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %394, ptr noundef nonnull align 8 dereferenceable(32) %92) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.100, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %396 unwind label %764

396:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #6
  store i32 12, ptr %99, align 4, !tbaa !30
  %397 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %99)
          to label %398 unwind label %768

398:                                              ; preds = %396
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(32) %397)
          to label %399 unwind label %768

399:                                              ; preds = %398
  %400 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 28
  %401 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %400, ptr noundef nonnull align 8 dereferenceable(32) %96) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %102) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef @.str.101, ptr noundef nonnull align 1 dereferenceable(1) %102)
          to label %402 unwind label %773

402:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #6
  store i32 4, ptr %103, align 4, !tbaa !30
  %403 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %103)
          to label %404 unwind label %777

404:                                              ; preds = %402
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 8 dereferenceable(32) %403)
          to label %405 unwind label %777

405:                                              ; preds = %404
  %406 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 29
  %407 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %406, ptr noundef nonnull align 8 dereferenceable(32) %100) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %106) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %408 unwind label %782

408:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #6
  store i32 7, ptr %107, align 4, !tbaa !30
  %409 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %107)
          to label %410 unwind label %786

410:                                              ; preds = %408
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %409)
          to label %411 unwind label %786

411:                                              ; preds = %410
  %412 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 30
  %413 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef nonnull align 8 dereferenceable(32) %104) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %414 unwind label %791

414:                                              ; preds = %411
  %415 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %108, i1 noundef zeroext false)
          to label %416 unwind label %795

416:                                              ; preds = %414
  %417 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 31
  %418 = zext i1 %415 to i8
  store i8 %418, ptr %417, align 8, !tbaa !35
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %419 unwind label %800

419:                                              ; preds = %416
  %420 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %110, i1 noundef zeroext true)
          to label %421 unwind label %804

421:                                              ; preds = %419
  %422 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 32
  %423 = zext i1 %420 to i8
  store i8 %423, ptr %422, align 1, !tbaa !36
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.105, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %424 unwind label %809

424:                                              ; preds = %421
  %425 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %112, i1 noundef zeroext true)
          to label %426 unwind label %813

426:                                              ; preds = %424
  %427 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 33
  %428 = zext i1 %425 to i8
  store i8 %428, ptr %427, align 2, !tbaa !37
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str.106, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %429 unwind label %818

429:                                              ; preds = %426
  %430 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %114, i1 noundef zeroext true)
          to label %431 unwind label %822

431:                                              ; preds = %429
  %432 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 34
  %433 = zext i1 %430 to i8
  store i8 %433, ptr %432, align 1, !tbaa !38
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %117) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef @.str.107, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %434 unwind label %827

434:                                              ; preds = %431
  %435 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %116, i1 noundef zeroext true)
          to label %436 unwind label %831

436:                                              ; preds = %434
  %437 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 35
  %438 = zext i1 %435 to i8
  store i8 %438, ptr %437, align 4, !tbaa !39
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str.108, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %439 unwind label %836

439:                                              ; preds = %436
  %440 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %118, i1 noundef zeroext true)
          to label %441 unwind label %840

441:                                              ; preds = %439
  %442 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 36
  %443 = zext i1 %440 to i8
  store i8 %443, ptr %442, align 1, !tbaa !40
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef @.str.109, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %444 unwind label %845

444:                                              ; preds = %441
  %445 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %120, double noundef 1.500000e-01, double noundef 0.000000e+00, double noundef 1.000000e+00)
          to label %446 unwind label %849

446:                                              ; preds = %444
  %447 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 37
  store double %445, ptr %447, align 8, !tbaa !41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %123) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %448 unwind label %854

448:                                              ; preds = %446
  %449 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %122, i1 noundef zeroext false)
          to label %450 unwind label %858

450:                                              ; preds = %448
  %451 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 38
  %452 = zext i1 %449 to i8
  store i8 %452, ptr %451, align 8, !tbaa !42
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %126) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %126) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %126)
          to label %453 unwind label %863

453:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #6
  store i32 16, ptr %127, align 4, !tbaa !30
  %454 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %127)
          to label %455 unwind label %867

455:                                              ; preds = %453
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %124, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %454)
          to label %456 unwind label %867

456:                                              ; preds = %455
  %457 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 39
  %458 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %457, ptr noundef nonnull align 8 dereferenceable(32) %124) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %126) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %126) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %128) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %130) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef @.str.112, ptr noundef nonnull align 1 dereferenceable(1) %130)
          to label %459 unwind label %872

459:                                              ; preds = %456
  %460 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %129, i1 noundef zeroext false)
          to label %461 unwind label %876

461:                                              ; preds = %459
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #6
  %462 = zext i1 %460 to i8
  store i8 %462, ptr %128, align 1, !tbaa !43
  %463 = load i8, ptr %128, align 1, !tbaa !43, !range !44, !noundef !45
  %464 = trunc i8 %463 to i1
  store i1 false, ptr %132, align 1
  store i1 false, ptr %134, align 1
  store i1 false, ptr %135, align 1
  store i1 false, ptr %136, align 1
  br i1 %464, label %465, label %470

465:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #6
  store i1 true, ptr %132, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %133) #6
  store i1 true, ptr %134, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #6
  store i1 true, ptr %135, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef @.str.113, ptr noundef nonnull align 1 dereferenceable(1) %133)
          to label %466 unwind label %881

466:                                              ; preds = %465
  store i1 true, ptr %136, align 1
  %467 = invoke noundef zeroext i1 @_ZN3sim11ParamParser11hasIntValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %468 unwind label %885

468:                                              ; preds = %466
  %469 = xor i1 %467, true
  br label %470

470:                                              ; preds = %468, %461
  %471 = phi i1 [ false, %461 ], [ %469, %468 ]
  %472 = load i1, ptr %136, align 1
  br i1 %472, label %473, label %474

473:                                              ; preds = %470
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #6
  br label %474

474:                                              ; preds = %473, %470
  %475 = load i1, ptr %135, align 1
  br i1 %475, label %476, label %477

476:                                              ; preds = %474
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #6
  br label %477

477:                                              ; preds = %476, %474
  %478 = load i1, ptr %134, align 1
  br i1 %478, label %479, label %480

479:                                              ; preds = %477
  call void @llvm.lifetime.end.p0(i64 1, ptr %133) #6
  br label %480

480:                                              ; preds = %479, %477
  %481 = load i1, ptr %132, align 1
  br i1 %481, label %482, label %483

482:                                              ; preds = %480
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #6
  br label %483

483:                                              ; preds = %482, %480
  br i1 %471, label %484, label %906

484:                                              ; preds = %483
  %485 = invoke noundef ptr @_ZN3sim1LEv()
          to label %486 unwind label %902

486:                                              ; preds = %484
  invoke void @_ZN2el6Logger4warnIA118_cEEvRKT_(ptr noundef nonnull align 8 dereferenceable(728) %485, ptr noundef nonnull align 1 dereferenceable(118) @.str.114)
          to label %487 unwind label %902

487:                                              ; preds = %486
  store i8 0, ptr %128, align 1, !tbaa !43
  br label %906

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

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

496:                                              ; preds = %248
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %6, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %500

500:                                              ; preds = %496, %492
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %501

501:                                              ; preds = %500, %488
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %4) #6
  br label %1397

502:                                              ; preds = %249
  %503 = landingpad { ptr, i32 }
          cleanup
  %504 = extractvalue { ptr, i32 } %503, 0
  store ptr %504, ptr %6, align 8
  %505 = extractvalue { ptr, i32 } %503, 1
  store i32 %505, ptr %7, align 4
  br label %510

506:                                              ; preds = %250
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %6, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %510

510:                                              ; preds = %506, %502
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #6
  br label %1396

511:                                              ; preds = %252
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %6, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %7, align 4
  br label %519

515:                                              ; preds = %254
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %6, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %519

519:                                              ; preds = %515, %511
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  br label %1396

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

524:                                              ; preds = %260, %258
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %6, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %528

528:                                              ; preds = %524, %520
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  br label %1396

529:                                              ; preds = %261
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %6, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %7, align 4
  br label %537

533:                                              ; preds = %264
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %537

537:                                              ; preds = %533, %529
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %1396

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

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

546:                                              ; preds = %269
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %6, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %550

550:                                              ; preds = %546, %542
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %551

551:                                              ; preds = %550, %538
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  br label %1396

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

556:                                              ; preds = %273
  %557 = landingpad { ptr, i32 }
          cleanup
  %558 = extractvalue { ptr, i32 } %557, 0
  store ptr %558, ptr %6, align 8
  %559 = extractvalue { ptr, i32 } %557, 1
  store i32 %559, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %560

560:                                              ; preds = %556, %552
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #6
  br label %1396

561:                                              ; preds = %275
  %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 %569

565:                                              ; preds = %277
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %569

569:                                              ; preds = %565, %561
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  br label %1396

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

574:                                              ; preds = %281
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %6, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %578

578:                                              ; preds = %574, %570
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  br label %1396

579:                                              ; preds = %283
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %6, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %7, align 4
  br label %587

583:                                              ; preds = %285
  %584 = landingpad { ptr, i32 }
          cleanup
  %585 = extractvalue { ptr, i32 } %584, 0
  store ptr %585, ptr %6, align 8
  %586 = extractvalue { ptr, i32 } %584, 1
  store i32 %586, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %587

587:                                              ; preds = %583, %579
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  br label %1396

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

592:                                              ; preds = %289
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %6, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %596

596:                                              ; preds = %592, %588
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #6
  br label %1396

597:                                              ; preds = %291
  %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
  br label %605

601:                                              ; preds = %293
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %6, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %605

605:                                              ; preds = %601, %597
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #6
  br label %1396

606:                                              ; preds = %299
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %6, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %7, align 4
  br label %614

610:                                              ; preds = %301
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %6, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %614

614:                                              ; preds = %610, %606
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  br label %1396

615:                                              ; preds = %303
  %616 = landingpad { ptr, i32 }
          cleanup
  %617 = extractvalue { ptr, i32 } %616, 0
  store ptr %617, ptr %6, align 8
  %618 = extractvalue { ptr, i32 } %616, 1
  store i32 %618, ptr %7, align 4
  br label %623

619:                                              ; preds = %306
  %620 = landingpad { ptr, i32 }
          cleanup
  %621 = extractvalue { ptr, i32 } %620, 0
  store ptr %621, ptr %6, align 8
  %622 = extractvalue { ptr, i32 } %620, 1
  store i32 %622, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %623

623:                                              ; preds = %619, %615
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  br label %1396

624:                                              ; preds = %308
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %6, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %7, align 4
  br label %632

628:                                              ; preds = %310
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %6, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %632

632:                                              ; preds = %628, %624
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #6
  br label %1396

633:                                              ; preds = %312
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %6, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %7, align 4
  br label %641

637:                                              ; preds = %317, %315
  %638 = landingpad { ptr, i32 }
          cleanup
  %639 = extractvalue { ptr, i32 } %638, 0
  store ptr %639, ptr %6, align 8
  %640 = extractvalue { ptr, i32 } %638, 1
  store i32 %640, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %641

641:                                              ; preds = %637, %633
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  br label %1396

642:                                              ; preds = %318
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %6, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %7, align 4
  br label %650

646:                                              ; preds = %323, %321
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %6, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %650

650:                                              ; preds = %646, %642
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #6
  br label %1396

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

655:                                              ; preds = %329, %327
  %656 = landingpad { ptr, i32 }
          cleanup
  %657 = extractvalue { ptr, i32 } %656, 0
  store ptr %657, ptr %6, align 8
  %658 = extractvalue { ptr, i32 } %656, 1
  store i32 %658, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %659

659:                                              ; preds = %655, %651
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #6
  br label %1396

660:                                              ; preds = %330
  %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
  br label %668

664:                                              ; preds = %335, %333
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %6, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %668

668:                                              ; preds = %664, %660
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  br label %1396

669:                                              ; preds = %336
  %670 = landingpad { ptr, i32 }
          cleanup
  %671 = extractvalue { ptr, i32 } %670, 0
  store ptr %671, ptr %6, align 8
  %672 = extractvalue { ptr, i32 } %670, 1
  store i32 %672, ptr %7, align 4
  br label %682

673:                                              ; preds = %339
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %6, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %7, align 4
  br label %681

677:                                              ; preds = %340
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %6, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %681

681:                                              ; preds = %677, %673
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  br label %682

682:                                              ; preds = %681, %669
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  br label %1396

683:                                              ; preds = %341
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %6, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %7, align 4
  br label %691

687:                                              ; preds = %344
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %6, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %691

691:                                              ; preds = %687, %683
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  br label %1396

692:                                              ; preds = %346
  %693 = landingpad { ptr, i32 }
          cleanup
  %694 = extractvalue { ptr, i32 } %693, 0
  store ptr %694, ptr %6, align 8
  %695 = extractvalue { ptr, i32 } %693, 1
  store i32 %695, ptr %7, align 4
  br label %700

696:                                              ; preds = %350, %348
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %6, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %700

700:                                              ; preds = %696, %692
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #6
  br label %1396

701:                                              ; preds = %351
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %6, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %7, align 4
  br label %709

705:                                              ; preds = %356, %354
  %706 = landingpad { ptr, i32 }
          cleanup
  %707 = extractvalue { ptr, i32 } %706, 0
  store ptr %707, ptr %6, align 8
  %708 = extractvalue { ptr, i32 } %706, 1
  store i32 %708, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  br label %709

709:                                              ; preds = %705, %701
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #6
  br label %1396

710:                                              ; preds = %357
  %711 = landingpad { ptr, i32 }
          cleanup
  %712 = extractvalue { ptr, i32 } %711, 0
  store ptr %712, ptr %6, align 8
  %713 = extractvalue { ptr, i32 } %711, 1
  store i32 %713, ptr %7, align 4
  br label %718

714:                                              ; preds = %362, %360
  %715 = landingpad { ptr, i32 }
          cleanup
  %716 = extractvalue { ptr, i32 } %715, 0
  store ptr %716, ptr %6, align 8
  %717 = extractvalue { ptr, i32 } %715, 1
  store i32 %717, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %718

718:                                              ; preds = %714, %710
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #6
  br label %1396

719:                                              ; preds = %363
  %720 = landingpad { ptr, i32 }
          cleanup
  %721 = extractvalue { ptr, i32 } %720, 0
  store ptr %721, ptr %6, align 8
  %722 = extractvalue { ptr, i32 } %720, 1
  store i32 %722, ptr %7, align 4
  br label %727

723:                                              ; preds = %368, %366
  %724 = landingpad { ptr, i32 }
          cleanup
  %725 = extractvalue { ptr, i32 } %724, 0
  store ptr %725, ptr %6, align 8
  %726 = extractvalue { ptr, i32 } %724, 1
  store i32 %726, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %727

727:                                              ; preds = %723, %719
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  br label %1396

728:                                              ; preds = %369
  %729 = landingpad { ptr, i32 }
          cleanup
  %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
  br label %736

732:                                              ; preds = %374, %372
  %733 = landingpad { ptr, i32 }
          cleanup
  %734 = extractvalue { ptr, i32 } %733, 0
  store ptr %734, ptr %6, align 8
  %735 = extractvalue { ptr, i32 } %733, 1
  store i32 %735, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %736

736:                                              ; preds = %732, %728
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #6
  br label %1396

737:                                              ; preds = %375
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %6, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %7, align 4
  br label %745

741:                                              ; preds = %380, %378
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %6, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  br label %745

745:                                              ; preds = %741, %737
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #6
  br label %1396

746:                                              ; preds = %381
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %6, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %7, align 4
  br label %754

750:                                              ; preds = %386, %384
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %6, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  br label %754

754:                                              ; preds = %750, %746
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #6
  br label %1396

755:                                              ; preds = %387
  %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 %763

759:                                              ; preds = %392, %390
  %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 4, ptr %95) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %763

763:                                              ; preds = %759, %755
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #6
  br label %1396

764:                                              ; preds = %393
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %6, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %7, align 4
  br label %772

768:                                              ; preds = %398, %396
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %6, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  br label %772

772:                                              ; preds = %768, %764
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #6
  br label %1396

773:                                              ; preds = %399
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %6, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %7, align 4
  br label %781

777:                                              ; preds = %404, %402
  %778 = landingpad { ptr, i32 }
          cleanup
  %779 = extractvalue { ptr, i32 } %778, 0
  store ptr %779, ptr %6, align 8
  %780 = extractvalue { ptr, i32 } %778, 1
  store i32 %780, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  br label %781

781:                                              ; preds = %777, %773
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #6
  br label %1396

782:                                              ; preds = %405
  %783 = landingpad { ptr, i32 }
          cleanup
  %784 = extractvalue { ptr, i32 } %783, 0
  store ptr %784, ptr %6, align 8
  %785 = extractvalue { ptr, i32 } %783, 1
  store i32 %785, ptr %7, align 4
  br label %790

786:                                              ; preds = %410, %408
  %787 = landingpad { ptr, i32 }
          cleanup
  %788 = extractvalue { ptr, i32 } %787, 0
  store ptr %788, ptr %6, align 8
  %789 = extractvalue { ptr, i32 } %787, 1
  store i32 %789, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  br label %790

790:                                              ; preds = %786, %782
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #6
  br label %1396

791:                                              ; preds = %411
  %792 = landingpad { ptr, i32 }
          cleanup
  %793 = extractvalue { ptr, i32 } %792, 0
  store ptr %793, ptr %6, align 8
  %794 = extractvalue { ptr, i32 } %792, 1
  store i32 %794, ptr %7, align 4
  br label %799

795:                                              ; preds = %414
  %796 = landingpad { ptr, i32 }
          cleanup
  %797 = extractvalue { ptr, i32 } %796, 0
  store ptr %797, ptr %6, align 8
  %798 = extractvalue { ptr, i32 } %796, 1
  store i32 %798, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #6
  br label %799

799:                                              ; preds = %795, %791
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #6
  br label %1396

800:                                              ; preds = %416
  %801 = landingpad { ptr, i32 }
          cleanup
  %802 = extractvalue { ptr, i32 } %801, 0
  store ptr %802, ptr %6, align 8
  %803 = extractvalue { ptr, i32 } %801, 1
  store i32 %803, ptr %7, align 4
  br label %808

804:                                              ; preds = %419
  %805 = landingpad { ptr, i32 }
          cleanup
  %806 = extractvalue { ptr, i32 } %805, 0
  store ptr %806, ptr %6, align 8
  %807 = extractvalue { ptr, i32 } %805, 1
  store i32 %807, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #6
  br label %808

808:                                              ; preds = %804, %800
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #6
  br label %1396

809:                                              ; preds = %421
  %810 = landingpad { ptr, i32 }
          cleanup
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %6, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %7, align 4
  br label %817

813:                                              ; preds = %424
  %814 = landingpad { ptr, i32 }
          cleanup
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %6, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #6
  br label %817

817:                                              ; preds = %813, %809
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #6
  br label %1396

818:                                              ; preds = %426
  %819 = landingpad { ptr, i32 }
          cleanup
  %820 = extractvalue { ptr, i32 } %819, 0
  store ptr %820, ptr %6, align 8
  %821 = extractvalue { ptr, i32 } %819, 1
  store i32 %821, ptr %7, align 4
  br label %826

822:                                              ; preds = %429
  %823 = landingpad { ptr, i32 }
          cleanup
  %824 = extractvalue { ptr, i32 } %823, 0
  store ptr %824, ptr %6, align 8
  %825 = extractvalue { ptr, i32 } %823, 1
  store i32 %825, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #6
  br label %826

826:                                              ; preds = %822, %818
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #6
  br label %1396

827:                                              ; preds = %431
  %828 = landingpad { ptr, i32 }
          cleanup
  %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
  br label %835

831:                                              ; preds = %434
  %832 = landingpad { ptr, i32 }
          cleanup
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %6, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #6
  br label %835

835:                                              ; preds = %831, %827
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #6
  br label %1396

836:                                              ; preds = %436
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %6, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %7, align 4
  br label %844

840:                                              ; preds = %439
  %841 = landingpad { ptr, i32 }
          cleanup
  %842 = extractvalue { ptr, i32 } %841, 0
  store ptr %842, ptr %6, align 8
  %843 = extractvalue { ptr, i32 } %841, 1
  store i32 %843, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #6
  br label %844

844:                                              ; preds = %840, %836
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #6
  br label %1396

845:                                              ; preds = %441
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %6, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %7, align 4
  br label %853

849:                                              ; preds = %444
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %6, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #6
  br label %853

853:                                              ; preds = %849, %845
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #6
  br label %1396

854:                                              ; preds = %446
  %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 %862

858:                                              ; preds = %448
  %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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #6
  br label %862

862:                                              ; preds = %858, %854
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #6
  br label %1396

863:                                              ; preds = %450
  %864 = landingpad { ptr, i32 }
          cleanup
  %865 = extractvalue { ptr, i32 } %864, 0
  store ptr %865, ptr %6, align 8
  %866 = extractvalue { ptr, i32 } %864, 1
  store i32 %866, ptr %7, align 4
  br label %871

867:                                              ; preds = %455, %453
  %868 = landingpad { ptr, i32 }
          cleanup
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %6, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #6
  br label %871

871:                                              ; preds = %867, %863
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %126) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %126) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #6
  br label %1396

872:                                              ; preds = %456
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %6, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %7, align 4
  br label %880

876:                                              ; preds = %459
  %877 = landingpad { ptr, i32 }
          cleanup
  %878 = extractvalue { ptr, i32 } %877, 0
  store ptr %878, ptr %6, align 8
  %879 = extractvalue { ptr, i32 } %877, 1
  store i32 %879, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #6
  br label %880

880:                                              ; preds = %876, %872
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #6
  br label %1395

881:                                              ; preds = %465
  %882 = landingpad { ptr, i32 }
          cleanup
  %883 = extractvalue { ptr, i32 } %882, 0
  store ptr %883, ptr %6, align 8
  %884 = extractvalue { ptr, i32 } %882, 1
  store i32 %884, ptr %7, align 4
  br label %892

885:                                              ; preds = %466
  %886 = landingpad { ptr, i32 }
          cleanup
  %887 = extractvalue { ptr, i32 } %886, 0
  store ptr %887, ptr %6, align 8
  %888 = extractvalue { ptr, i32 } %886, 1
  store i32 %888, ptr %7, align 4
  %889 = load i1, ptr %136, align 1
  br i1 %889, label %890, label %891

890:                                              ; preds = %885
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #6
  br label %891

891:                                              ; preds = %890, %885
  br label %892

892:                                              ; preds = %891, %881
  %893 = load i1, ptr %135, align 1
  br i1 %893, label %894, label %895

894:                                              ; preds = %892
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #6
  br label %895

895:                                              ; preds = %894, %892
  %896 = load i1, ptr %134, align 1
  br i1 %896, label %897, label %898

897:                                              ; preds = %895
  call void @llvm.lifetime.end.p0(i64 1, ptr %133) #6
  br label %898

898:                                              ; preds = %897, %895
  %899 = load i1, ptr %132, align 1
  br i1 %899, label %900, label %901

900:                                              ; preds = %898
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #6
  br label %901

901:                                              ; preds = %900, %898
  br label %1395

902:                                              ; preds = %486, %484
  %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 %1395

906:                                              ; preds = %487, %483
  %907 = load i8, ptr %128, align 1, !tbaa !43, !range !44, !noundef !45
  %908 = trunc i8 %907 to i1
  store i1 false, ptr %138, align 1
  store i1 false, ptr %140, align 1
  store i1 false, ptr %141, align 1
  store i1 false, ptr %142, align 1
  store i1 false, ptr %144, align 1
  store i1 false, ptr %145, align 1
  br i1 %908, label %909, label %913

909:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #6
  store i1 true, ptr %138, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #6
  store i1 true, ptr %140, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #6
  store i1 true, ptr %141, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef @.str.113, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %910 unwind label %1072

910:                                              ; preds = %909
  store i1 true, ptr %142, align 1
  %911 = invoke noundef i32 @_ZN3sim11ParamParser11getIntValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %137)
          to label %912 unwind label %1076

912:                                              ; preds = %910
  br label %917

913:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 5000, ptr %143) #6
  store i1 true, ptr %144, align 1
  invoke void @_ZNSt13random_deviceC2Ev(ptr noundef nonnull align 8 dereferenceable(5000) %143)
          to label %914 unwind label %1080

914:                                              ; preds = %913
  store i1 true, ptr %145, align 1
  %915 = invoke noundef i32 @_ZNSt13random_deviceclEv(ptr noundef nonnull align 8 dereferenceable(5000) %143)
          to label %916 unwind label %1084

916:                                              ; preds = %914
  br label %917

917:                                              ; preds = %916, %912
  %918 = phi i32 [ %911, %912 ], [ %915, %916 ]
  %919 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 40
  store i32 %918, ptr %919, align 8, !tbaa !46
  %920 = load i1, ptr %145, align 1
  br i1 %920, label %921, label %922

921:                                              ; preds = %917
  call void @_ZNSt13random_deviceD2Ev(ptr noundef nonnull align 8 dereferenceable(5000) %143) #6
  br label %922

922:                                              ; preds = %921, %917
  %923 = load i1, ptr %144, align 1
  br i1 %923, label %924, label %925

924:                                              ; preds = %922
  call void @llvm.lifetime.end.p0(i64 5000, ptr %143) #6
  br label %925

925:                                              ; preds = %924, %922
  %926 = load i1, ptr %142, align 1
  br i1 %926, label %927, label %928

927:                                              ; preds = %925
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #6
  br label %928

928:                                              ; preds = %927, %925
  %929 = load i1, ptr %141, align 1
  br i1 %929, label %930, label %931

930:                                              ; preds = %928
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #6
  br label %931

931:                                              ; preds = %930, %928
  %932 = load i1, ptr %140, align 1
  br i1 %932, label %933, label %934

933:                                              ; preds = %931
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #6
  br label %934

934:                                              ; preds = %933, %931
  %935 = load i1, ptr %138, align 1
  br i1 %935, label %936, label %937

936:                                              ; preds = %934
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #6
  br label %937

937:                                              ; preds = %936, %934
  call void @llvm.lifetime.start.p0(i64 32, ptr %146) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef @.str.115, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %938 unwind label %1109

938:                                              ; preds = %937
  %939 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %146, double noundef 1.000000e-01, double noundef 0.000000e+00, double noundef 5.000000e+00)
          to label %940 unwind label %1113

940:                                              ; preds = %938
  %941 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 41
  store double %939, ptr %941, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %148) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %149) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef @.str.116, ptr noundef nonnull align 1 dereferenceable(1) %149)
          to label %942 unwind label %1118

942:                                              ; preds = %940
  %943 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %148, i1 noundef zeroext false)
          to label %944 unwind label %1122

944:                                              ; preds = %942
  %945 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 42
  %946 = zext i1 %943 to i8
  store i8 %946, ptr %945, align 8, !tbaa !48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %150) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %151) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef @.str.117, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %947 unwind label %1127

947:                                              ; preds = %944
  %948 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %150, double noundef 1.000000e-01, double noundef 1.000000e-02, double noundef 5.000000e-01)
          to label %949 unwind label %1131

949:                                              ; preds = %947
  %950 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 43
  store double %948, ptr %950, align 8, !tbaa !49
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %152) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %153) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef @.str.118, ptr noundef nonnull align 1 dereferenceable(1) %153)
          to label %951 unwind label %1136

951:                                              ; preds = %949
  %952 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %152, double noundef 1.000000e+01, double noundef 2.000000e+00, double noundef 1.000000e+02)
          to label %953 unwind label %1140

953:                                              ; preds = %951
  %954 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 44
  store double %952, ptr %954, align 8, !tbaa !50
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef @.str.119, ptr noundef nonnull align 1 dereferenceable(1) %155)
          to label %955 unwind label %1145

955:                                              ; preds = %953
  %956 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 43
  %957 = load double, ptr %956, align 8, !tbaa !49
  %958 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 44
  %959 = load double, ptr %958, align 8, !tbaa !50
  %960 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %154, double noundef 1.000000e+00, double noundef %957, double noundef %959)
          to label %961 unwind label %1149

961:                                              ; preds = %955
  %962 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 45
  store double %960, ptr %962, align 8, !tbaa !51
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %156) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %157) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %157)
          to label %963 unwind label %1154

963:                                              ; preds = %961
  %964 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %156, i1 noundef zeroext true)
          to label %965 unwind label %1158

965:                                              ; preds = %963
  %966 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 46
  %967 = zext i1 %964 to i8
  store i8 %967, ptr %966, align 8, !tbaa !52
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %157) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %158) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %159) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %160) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef @.str.121, ptr noundef nonnull align 1 dereferenceable(1) %160)
          to label %968 unwind label %1163

968:                                              ; preds = %965
  call void @llvm.lifetime.start.p0(i64 32, ptr %161) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %162) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef @.str.122, ptr noundef nonnull align 1 dereferenceable(1) %162)
          to label %969 unwind label %1167

969:                                              ; preds = %968
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %158, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull align 8 dereferenceable(32) %161)
          to label %970 unwind label %1171

970:                                              ; preds = %969
  %971 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 47
  %972 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %971, ptr noundef nonnull align 8 dereferenceable(32) %158) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %162) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %160) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %163) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %164) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef @.str.123, ptr noundef nonnull align 1 dereferenceable(1) %164)
          to label %973 unwind label %1177

973:                                              ; preds = %970
  %974 = invoke noundef signext i8 @_ZN3sim11ParamParser16getCharIfHasCharERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEc(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %163, i8 noundef signext 63)
          to label %975 unwind label %1181

975:                                              ; preds = %973
  %976 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 48
  store i8 %974, ptr %976, align 8, !tbaa !53
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %165) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %166) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef @.str.124, ptr noundef nonnull align 1 dereferenceable(1) %166)
          to label %977 unwind label %1186

977:                                              ; preds = %975
  %978 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %165, double noundef 5.000000e+00, double noundef 1.000000e+00, double noundef 2.500000e+01)
          to label %979 unwind label %1190

979:                                              ; preds = %977
  %980 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 49
  store double %978, ptr %980, align 8, !tbaa !54
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %166) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %167) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %168) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef @.str.125, ptr noundef nonnull align 1 dereferenceable(1) %168)
          to label %981 unwind label %1195

981:                                              ; preds = %979
  %982 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %167, i32 noundef 500, i32 noundef 1, i32 noundef 2000)
          to label %983 unwind label %1199

983:                                              ; preds = %981
  %984 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 50
  store i32 %982, ptr %984, align 8, !tbaa !55
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %168) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %169) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %170) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef @.str.126, ptr noundef nonnull align 1 dereferenceable(1) %170)
          to label %985 unwind label %1204

985:                                              ; preds = %983
  %986 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %169, i1 noundef zeroext false)
          to label %987 unwind label %1208

987:                                              ; preds = %985
  %988 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 51
  %989 = zext i1 %986 to i8
  store i8 %989, ptr %988, align 4, !tbaa !56
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %171) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %172) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %172)
          to label %990 unwind label %1213

990:                                              ; preds = %987
  %991 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %171, i32 noundef 40, i32 noundef 1, i32 noundef 100)
          to label %992 unwind label %1217

992:                                              ; preds = %990
  %993 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 52
  store i32 %991, ptr %993, align 8, !tbaa !57
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %173) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %174) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef @.str.128, ptr noundef nonnull align 1 dereferenceable(1) %174)
          to label %994 unwind label %1222

994:                                              ; preds = %992
  %995 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %173, i1 noundef zeroext false)
          to label %996 unwind label %1226

996:                                              ; preds = %994
  %997 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 53
  %998 = zext i1 %995 to i8
  store i8 %998, ptr %997, align 4, !tbaa !58
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %174) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %173) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %175) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %176) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %175, ptr noundef @.str.129, ptr noundef nonnull align 1 dereferenceable(1) %176)
          to label %999 unwind label %1231

999:                                              ; preds = %996
  %1000 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %175, i32 noundef 8, i32 noundef 3, i32 noundef 30)
          to label %1001 unwind label %1235

1001:                                             ; preds = %999
  %1002 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 54
  store i32 %1000, ptr %1002, align 8, !tbaa !59
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %176) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %177) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %178) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %178) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %177, ptr noundef @.str.130, ptr noundef nonnull align 1 dereferenceable(1) %178)
          to label %1003 unwind label %1240

1003:                                             ; preds = %1001
  %1004 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %177, i32 noundef 3, i32 noundef 2, i32 noundef 10)
          to label %1005 unwind label %1244

1005:                                             ; preds = %1003
  %1006 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 55
  store i32 %1004, ptr %1006, align 4, !tbaa !60
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %178) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %178) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %177) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %179) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %180) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef @.str.131, ptr noundef nonnull align 1 dereferenceable(1) %180)
          to label %1007 unwind label %1249

1007:                                             ; preds = %1005
  %1008 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %179, i32 noundef 20, i32 noundef 1, i32 noundef 1000)
          to label %1009 unwind label %1253

1009:                                             ; preds = %1007
  %1010 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 56
  store i32 %1008, ptr %1010, align 8, !tbaa !61
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %180) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %179) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %181) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %182) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef @.str.132, ptr noundef nonnull align 1 dereferenceable(1) %182)
          to label %1011 unwind label %1258

1011:                                             ; preds = %1009
  %1012 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %181, double noundef 1.200000e-02, double noundef 6.000000e-03, double noundef 2.400000e-02)
          to label %1013 unwind label %1262

1013:                                             ; preds = %1011
  %1014 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 57
  store double %1012, ptr %1014, align 8, !tbaa !62
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %182) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %181) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %183) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %184) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef @.str.133, ptr noundef nonnull align 1 dereferenceable(1) %184)
          to label %1015 unwind label %1267

1015:                                             ; preds = %1013
  %1016 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %183, double noundef 1.680000e-01, double noundef 8.400000e-02, double noundef 3.360000e-01)
          to label %1017 unwind label %1271

1017:                                             ; preds = %1015
  %1018 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 58
  store double %1016, ptr %1018, align 8, !tbaa !63
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %185) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %186) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef @.str.134, ptr noundef nonnull align 1 dereferenceable(1) %187)
          to label %1019 unwind label %1276

1019:                                             ; preds = %1017
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %189) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef @.str.135, ptr noundef nonnull align 1 dereferenceable(1) %189)
          to label %1020 unwind label %1280

1020:                                             ; preds = %1019
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %185, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull align 8 dereferenceable(32) %188)
          to label %1021 unwind label %1284

1021:                                             ; preds = %1020
  %1022 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 59
  %1023 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %1022, ptr noundef nonnull align 8 dereferenceable(32) %185) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %189) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %185) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %190) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %191) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef @.str.136, ptr noundef nonnull align 1 dereferenceable(1) %191)
          to label %1024 unwind label %1290

1024:                                             ; preds = %1021
  %1025 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %190, i1 noundef zeroext false)
          to label %1026 unwind label %1294

1026:                                             ; preds = %1024
  %1027 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 60
  %1028 = zext i1 %1025 to i8
  store i8 %1028, ptr %1027, align 8, !tbaa !64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %191) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %192) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %193) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str.137, ptr noundef nonnull align 1 dereferenceable(1) %193)
          to label %1029 unwind label %1299

1029:                                             ; preds = %1026
  %1030 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %192, i32 noundef 16, i32 noundef 1, i32 noundef 256)
          to label %1031 unwind label %1303

1031:                                             ; preds = %1029
  %1032 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 61
  store i32 %1030, ptr %1032, align 4, !tbaa !65
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %194) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %195) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef @.str.138, ptr noundef nonnull align 1 dereferenceable(1) %195)
          to label %1033 unwind label %1308

1033:                                             ; preds = %1031
  %1034 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %194, i32 noundef 16, i32 noundef 1, i32 noundef 256)
          to label %1035 unwind label %1312

1035:                                             ; preds = %1033
  %1036 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 62
  store i32 %1034, ptr %1036, align 8, !tbaa !66
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %194) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %196) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %197) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %198) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %198) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef @.str.139, ptr noundef nonnull align 1 dereferenceable(1) %198)
          to label %1037 unwind label %1317

1037:                                             ; preds = %1035
  call void @llvm.lifetime.start.p0(i64 32, ptr %199) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %200) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef @.str.140, ptr noundef nonnull align 1 dereferenceable(1) %200)
          to label %1038 unwind label %1321

1038:                                             ; preds = %1037
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %196, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %199)
          to label %1039 unwind label %1325

1039:                                             ; preds = %1038
  %1040 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 63
  %1041 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %1040, ptr noundef nonnull align 8 dereferenceable(32) %196) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %199) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %198) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %198) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %202) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef @.str.141, ptr noundef nonnull align 1 dereferenceable(1) %202)
          to label %1042 unwind label %1331

1042:                                             ; preds = %1039
  %1043 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %201, i1 noundef zeroext true)
          to label %1044 unwind label %1335

1044:                                             ; preds = %1042
  %1045 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 64
  %1046 = zext i1 %1043 to i8
  store i8 %1046, ptr %1045, align 8, !tbaa !67
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %202) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %203) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %204) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %205) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef @.str.142, ptr noundef nonnull align 1 dereferenceable(1) %205)
          to label %1047 unwind label %1340

1047:                                             ; preds = %1044
  call void @llvm.lifetime.start.p0(i64 32, ptr %206) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %207) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef @.str.143, ptr noundef nonnull align 1 dereferenceable(1) %207)
          to label %1048 unwind label %1344

1048:                                             ; preds = %1047
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %203, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 8 dereferenceable(32) %206)
          to label %1049 unwind label %1348

1049:                                             ; preds = %1048
  %1050 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 65
  %1051 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %1050, ptr noundef nonnull align 8 dereferenceable(32) %203) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %207) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %205) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %208) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %209) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %210) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %210) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef @.str.144, ptr noundef nonnull align 1 dereferenceable(1) %210)
          to label %1052 unwind label %1354

1052:                                             ; preds = %1049
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #6
  store i32 0, ptr %211, align 4, !tbaa !68
  %1053 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim12MazeFileTypeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL24MAZE_FILE_TYPE_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %211)
          to label %1054 unwind label %1358

1054:                                             ; preds = %1052
  invoke void @_ZN3sim11ParamParser37getStringIfHasStringAndIsMazeFileTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %208, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef nonnull align 8 dereferenceable(32) %1053)
          to label %1055 unwind label %1358

1055:                                             ; preds = %1054
  %1056 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 66
  %1057 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %1056, ptr noundef nonnull align 8 dereferenceable(32) %208) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %210) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %210) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %208) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %212) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %213) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %213)
          to label %1058 unwind label %1363

1058:                                             ; preds = %1055
  %1059 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %212, i1 noundef zeroext false)
          to label %1060 unwind label %1367

1060:                                             ; preds = %1058
  %1061 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 67
  %1062 = zext i1 %1059 to i8
  store i8 %1062, ptr %1061, align 8, !tbaa !70
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %213) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %214) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %215) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef @.str.146, ptr noundef nonnull align 1 dereferenceable(1) %215)
          to label %1063 unwind label %1372

1063:                                             ; preds = %1060
  %1064 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %214, i32 noundef 0, i32 noundef 0, i32 noundef 3)
          to label %1065 unwind label %1376

1065:                                             ; preds = %1063
  %1066 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 68
  store i32 %1064, ptr %1066, align 4, !tbaa !71
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %215) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %214) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %216) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %217) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %218) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef @.str.147, ptr noundef nonnull align 1 dereferenceable(1) %218)
          to label %1067 unwind label %1381

1067:                                             ; preds = %1065
  call void @llvm.lifetime.start.p0(i64 32, ptr %219) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %220) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef @.str.148, ptr noundef nonnull align 1 dereferenceable(1) %220)
          to label %1068 unwind label %1385

1068:                                             ; preds = %1067
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %216, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef nonnull align 8 dereferenceable(32) %219)
          to label %1069 unwind label %1389

1069:                                             ; preds = %1068
  %1070 = getelementptr inbounds %"class.sim::Param", ptr %221, i32 0, i32 69
  %1071 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %1070, ptr noundef nonnull align 8 dereferenceable(32) %216) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %220) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %219) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %218) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %216) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #6
  call void @_ZN3sim11ParamParserD2Ev(ptr noundef nonnull align 8 dereferenceable(240) %3) #6
  call void @llvm.lifetime.end.p0(i64 240, ptr %3) #6
  ret void

1072:                                             ; preds = %909
  %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 %1099

1076:                                             ; preds = %910
  %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 %1095

1080:                                             ; preds = %913
  %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
  br label %1091

1084:                                             ; preds = %914
  %1085 = landingpad { ptr, i32 }
          cleanup
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %6, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %7, align 4
  %1088 = load i1, ptr %145, align 1
  br i1 %1088, label %1089, label %1090

1089:                                             ; preds = %1084
  call void @_ZNSt13random_deviceD2Ev(ptr noundef nonnull align 8 dereferenceable(5000) %143) #6
  br label %1090

1090:                                             ; preds = %1089, %1084
  br label %1091

1091:                                             ; preds = %1090, %1080
  %1092 = load i1, ptr %144, align 1
  br i1 %1092, label %1093, label %1094

1093:                                             ; preds = %1091
  call void @llvm.lifetime.end.p0(i64 5000, ptr %143) #6
  br label %1094

1094:                                             ; preds = %1093, %1091
  br label %1095

1095:                                             ; preds = %1094, %1076
  %1096 = load i1, ptr %142, align 1
  br i1 %1096, label %1097, label %1098

1097:                                             ; preds = %1095
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #6
  br label %1098

1098:                                             ; preds = %1097, %1095
  br label %1099

1099:                                             ; preds = %1098, %1072
  %1100 = load i1, ptr %141, align 1
  br i1 %1100, label %1101, label %1102

1101:                                             ; preds = %1099
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #6
  br label %1102

1102:                                             ; preds = %1101, %1099
  %1103 = load i1, ptr %140, align 1
  br i1 %1103, label %1104, label %1105

1104:                                             ; preds = %1102
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #6
  br label %1105

1105:                                             ; preds = %1104, %1102
  %1106 = load i1, ptr %138, align 1
  br i1 %1106, label %1107, label %1108

1107:                                             ; preds = %1105
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #6
  br label %1108

1108:                                             ; preds = %1107, %1105
  br label %1395

1109:                                             ; preds = %937
  %1110 = landingpad { ptr, i32 }
          cleanup
  %1111 = extractvalue { ptr, i32 } %1110, 0
  store ptr %1111, ptr %6, align 8
  %1112 = extractvalue { ptr, i32 } %1110, 1
  store i32 %1112, ptr %7, align 4
  br label %1117

1113:                                             ; preds = %938
  %1114 = landingpad { ptr, i32 }
          cleanup
  %1115 = extractvalue { ptr, i32 } %1114, 0
  store ptr %1115, ptr %6, align 8
  %1116 = extractvalue { ptr, i32 } %1114, 1
  store i32 %1116, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #6
  br label %1117

1117:                                             ; preds = %1113, %1109
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #6
  br label %1395

1118:                                             ; preds = %940
  %1119 = landingpad { ptr, i32 }
          cleanup
  %1120 = extractvalue { ptr, i32 } %1119, 0
  store ptr %1120, ptr %6, align 8
  %1121 = extractvalue { ptr, i32 } %1119, 1
  store i32 %1121, ptr %7, align 4
  br label %1126

1122:                                             ; preds = %942
  %1123 = landingpad { ptr, i32 }
          cleanup
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %6, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #6
  br label %1126

1126:                                             ; preds = %1122, %1118
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #6
  br label %1395

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

1131:                                             ; preds = %947
  %1132 = landingpad { ptr, i32 }
          cleanup
  %1133 = extractvalue { ptr, i32 } %1132, 0
  store ptr %1133, ptr %6, align 8
  %1134 = extractvalue { ptr, i32 } %1132, 1
  store i32 %1134, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #6
  br label %1135

1135:                                             ; preds = %1131, %1127
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #6
  br label %1395

1136:                                             ; preds = %949
  %1137 = landingpad { ptr, i32 }
          cleanup
  %1138 = extractvalue { ptr, i32 } %1137, 0
  store ptr %1138, ptr %6, align 8
  %1139 = extractvalue { ptr, i32 } %1137, 1
  store i32 %1139, ptr %7, align 4
  br label %1144

1140:                                             ; preds = %951
  %1141 = landingpad { ptr, i32 }
          cleanup
  %1142 = extractvalue { ptr, i32 } %1141, 0
  store ptr %1142, ptr %6, align 8
  %1143 = extractvalue { ptr, i32 } %1141, 1
  store i32 %1143, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #6
  br label %1144

1144:                                             ; preds = %1140, %1136
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #6
  br label %1395

1145:                                             ; preds = %953
  %1146 = landingpad { ptr, i32 }
          cleanup
  %1147 = extractvalue { ptr, i32 } %1146, 0
  store ptr %1147, ptr %6, align 8
  %1148 = extractvalue { ptr, i32 } %1146, 1
  store i32 %1148, ptr %7, align 4
  br label %1153

1149:                                             ; preds = %955
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %6, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #6
  br label %1153

1153:                                             ; preds = %1149, %1145
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #6
  br label %1395

1154:                                             ; preds = %961
  %1155 = landingpad { ptr, i32 }
          cleanup
  %1156 = extractvalue { ptr, i32 } %1155, 0
  store ptr %1156, ptr %6, align 8
  %1157 = extractvalue { ptr, i32 } %1155, 1
  store i32 %1157, ptr %7, align 4
  br label %1162

1158:                                             ; preds = %963
  %1159 = landingpad { ptr, i32 }
          cleanup
  %1160 = extractvalue { ptr, i32 } %1159, 0
  store ptr %1160, ptr %6, align 8
  %1161 = extractvalue { ptr, i32 } %1159, 1
  store i32 %1161, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #6
  br label %1162

1162:                                             ; preds = %1158, %1154
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %157) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #6
  br label %1395

1163:                                             ; preds = %965
  %1164 = landingpad { ptr, i32 }
          cleanup
  %1165 = extractvalue { ptr, i32 } %1164, 0
  store ptr %1165, ptr %6, align 8
  %1166 = extractvalue { ptr, i32 } %1164, 1
  store i32 %1166, ptr %7, align 4
  br label %1176

1167:                                             ; preds = %968
  %1168 = landingpad { ptr, i32 }
          cleanup
  %1169 = extractvalue { ptr, i32 } %1168, 0
  store ptr %1169, ptr %6, align 8
  %1170 = extractvalue { ptr, i32 } %1168, 1
  store i32 %1170, ptr %7, align 4
  br label %1175

1171:                                             ; preds = %969
  %1172 = landingpad { ptr, i32 }
          cleanup
  %1173 = extractvalue { ptr, i32 } %1172, 0
  store ptr %1173, ptr %6, align 8
  %1174 = extractvalue { ptr, i32 } %1172, 1
  store i32 %1174, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #6
  br label %1175

1175:                                             ; preds = %1171, %1167
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %162) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #6
  br label %1176

1176:                                             ; preds = %1175, %1163
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %160) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #6
  br label %1395

1177:                                             ; preds = %970
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %6, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %7, align 4
  br label %1185

1181:                                             ; preds = %973
  %1182 = landingpad { ptr, i32 }
          cleanup
  %1183 = extractvalue { ptr, i32 } %1182, 0
  store ptr %1183, ptr %6, align 8
  %1184 = extractvalue { ptr, i32 } %1182, 1
  store i32 %1184, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #6
  br label %1185

1185:                                             ; preds = %1181, %1177
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #6
  br label %1395

1186:                                             ; preds = %975
  %1187 = landingpad { ptr, i32 }
          cleanup
  %1188 = extractvalue { ptr, i32 } %1187, 0
  store ptr %1188, ptr %6, align 8
  %1189 = extractvalue { ptr, i32 } %1187, 1
  store i32 %1189, ptr %7, align 4
  br label %1194

1190:                                             ; preds = %977
  %1191 = landingpad { ptr, i32 }
          cleanup
  %1192 = extractvalue { ptr, i32 } %1191, 0
  store ptr %1192, ptr %6, align 8
  %1193 = extractvalue { ptr, i32 } %1191, 1
  store i32 %1193, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #6
  br label %1194

1194:                                             ; preds = %1190, %1186
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %166) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #6
  br label %1395

1195:                                             ; preds = %979
  %1196 = landingpad { ptr, i32 }
          cleanup
  %1197 = extractvalue { ptr, i32 } %1196, 0
  store ptr %1197, ptr %6, align 8
  %1198 = extractvalue { ptr, i32 } %1196, 1
  store i32 %1198, ptr %7, align 4
  br label %1203

1199:                                             ; preds = %981
  %1200 = landingpad { ptr, i32 }
          cleanup
  %1201 = extractvalue { ptr, i32 } %1200, 0
  store ptr %1201, ptr %6, align 8
  %1202 = extractvalue { ptr, i32 } %1200, 1
  store i32 %1202, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  br label %1203

1203:                                             ; preds = %1199, %1195
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %168) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #6
  br label %1395

1204:                                             ; preds = %983
  %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 %1212

1208:                                             ; preds = %985
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #6
  br label %1212

1212:                                             ; preds = %1208, %1204
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %169) #6
  br label %1395

1213:                                             ; preds = %987
  %1214 = landingpad { ptr, i32 }
          cleanup
  %1215 = extractvalue { ptr, i32 } %1214, 0
  store ptr %1215, ptr %6, align 8
  %1216 = extractvalue { ptr, i32 } %1214, 1
  store i32 %1216, ptr %7, align 4
  br label %1221

1217:                                             ; preds = %990
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %6, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #6
  br label %1221

1221:                                             ; preds = %1217, %1213
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #6
  br label %1395

1222:                                             ; preds = %992
  %1223 = landingpad { ptr, i32 }
          cleanup
  %1224 = extractvalue { ptr, i32 } %1223, 0
  store ptr %1224, ptr %6, align 8
  %1225 = extractvalue { ptr, i32 } %1223, 1
  store i32 %1225, ptr %7, align 4
  br label %1230

1226:                                             ; preds = %994
  %1227 = landingpad { ptr, i32 }
          cleanup
  %1228 = extractvalue { ptr, i32 } %1227, 0
  store ptr %1228, ptr %6, align 8
  %1229 = extractvalue { ptr, i32 } %1227, 1
  store i32 %1229, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #6
  br label %1230

1230:                                             ; preds = %1226, %1222
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %174) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %173) #6
  br label %1395

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

1235:                                             ; preds = %999
  %1236 = landingpad { ptr, i32 }
          cleanup
  %1237 = extractvalue { ptr, i32 } %1236, 0
  store ptr %1237, ptr %6, align 8
  %1238 = extractvalue { ptr, i32 } %1236, 1
  store i32 %1238, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #6
  br label %1239

1239:                                             ; preds = %1235, %1231
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %176) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #6
  br label %1395

1240:                                             ; preds = %1001
  %1241 = landingpad { ptr, i32 }
          cleanup
  %1242 = extractvalue { ptr, i32 } %1241, 0
  store ptr %1242, ptr %6, align 8
  %1243 = extractvalue { ptr, i32 } %1241, 1
  store i32 %1243, ptr %7, align 4
  br label %1248

1244:                                             ; preds = %1003
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #6
  br label %1248

1248:                                             ; preds = %1244, %1240
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %178) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %178) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %177) #6
  br label %1395

1249:                                             ; preds = %1005
  %1250 = landingpad { ptr, i32 }
          cleanup
  %1251 = extractvalue { ptr, i32 } %1250, 0
  store ptr %1251, ptr %6, align 8
  %1252 = extractvalue { ptr, i32 } %1250, 1
  store i32 %1252, ptr %7, align 4
  br label %1257

1253:                                             ; preds = %1007
  %1254 = landingpad { ptr, i32 }
          cleanup
  %1255 = extractvalue { ptr, i32 } %1254, 0
  store ptr %1255, ptr %6, align 8
  %1256 = extractvalue { ptr, i32 } %1254, 1
  store i32 %1256, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #6
  br label %1257

1257:                                             ; preds = %1253, %1249
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %180) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %179) #6
  br label %1395

1258:                                             ; preds = %1009
  %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 %1266

1262:                                             ; preds = %1011
  %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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #6
  br label %1266

1266:                                             ; preds = %1262, %1258
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %182) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %181) #6
  br label %1395

1267:                                             ; preds = %1013
  %1268 = landingpad { ptr, i32 }
          cleanup
  %1269 = extractvalue { ptr, i32 } %1268, 0
  store ptr %1269, ptr %6, align 8
  %1270 = extractvalue { ptr, i32 } %1268, 1
  store i32 %1270, ptr %7, align 4
  br label %1275

1271:                                             ; preds = %1015
  %1272 = landingpad { ptr, i32 }
          cleanup
  %1273 = extractvalue { ptr, i32 } %1272, 0
  store ptr %1273, ptr %6, align 8
  %1274 = extractvalue { ptr, i32 } %1272, 1
  store i32 %1274, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #6
  br label %1275

1275:                                             ; preds = %1271, %1267
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #6
  br label %1395

1276:                                             ; preds = %1017
  %1277 = landingpad { ptr, i32 }
          cleanup
  %1278 = extractvalue { ptr, i32 } %1277, 0
  store ptr %1278, ptr %6, align 8
  %1279 = extractvalue { ptr, i32 } %1277, 1
  store i32 %1279, ptr %7, align 4
  br label %1289

1280:                                             ; preds = %1019
  %1281 = landingpad { ptr, i32 }
          cleanup
  %1282 = extractvalue { ptr, i32 } %1281, 0
  store ptr %1282, ptr %6, align 8
  %1283 = extractvalue { ptr, i32 } %1281, 1
  store i32 %1283, ptr %7, align 4
  br label %1288

1284:                                             ; preds = %1020
  %1285 = landingpad { ptr, i32 }
          cleanup
  %1286 = extractvalue { ptr, i32 } %1285, 0
  store ptr %1286, ptr %6, align 8
  %1287 = extractvalue { ptr, i32 } %1285, 1
  store i32 %1287, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #6
  br label %1288

1288:                                             ; preds = %1284, %1280
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %189) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #6
  br label %1289

1289:                                             ; preds = %1288, %1276
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %185) #6
  br label %1395

1290:                                             ; preds = %1021
  %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 = %1024
  %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) %190) #6
  br label %1298

1298:                                             ; preds = %1294, %1290
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %191) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #6
  br label %1395

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

1303:                                             ; preds = %1029
  %1304 = landingpad { ptr, i32 }
          cleanup
  %1305 = extractvalue { ptr, i32 } %1304, 0
  store ptr %1305, ptr %6, align 8
  %1306 = extractvalue { ptr, i32 } %1304, 1
  store i32 %1306, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #6
  br label %1307

1307:                                             ; preds = %1303, %1299
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #6
  br label %1395

1308:                                             ; preds = %1031
  %1309 = landingpad { ptr, i32 }
          cleanup
  %1310 = extractvalue { ptr, i32 } %1309, 0
  store ptr %1310, ptr %6, align 8
  %1311 = extractvalue { ptr, i32 } %1309, 1
  store i32 %1311, ptr %7, align 4
  br label %1316

1312:                                             ; preds = %1033
  %1313 = landingpad { ptr, i32 }
          cleanup
  %1314 = extractvalue { ptr, i32 } %1313, 0
  store ptr %1314, ptr %6, align 8
  %1315 = extractvalue { ptr, i32 } %1313, 1
  store i32 %1315, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #6
  br label %1316

1316:                                             ; preds = %1312, %1308
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %195) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %194) #6
  br label %1395

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

1321:                                             ; preds = %1037
  %1322 = landingpad { ptr, i32 }
          cleanup
  %1323 = extractvalue { ptr, i32 } %1322, 0
  store ptr %1323, ptr %6, align 8
  %1324 = extractvalue { ptr, i32 } %1322, 1
  store i32 %1324, ptr %7, align 4
  br label %1329

1325:                                             ; preds = %1038
  %1326 = landingpad { ptr, i32 }
          cleanup
  %1327 = extractvalue { ptr, i32 } %1326, 0
  store ptr %1327, ptr %6, align 8
  %1328 = extractvalue { ptr, i32 } %1326, 1
  store i32 %1328, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #6
  br label %1329

1329:                                             ; preds = %1325, %1321
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %199) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #6
  br label %1330

1330:                                             ; preds = %1329, %1317
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %198) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %198) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #6
  br label %1395

1331:                                             ; preds = %1039
  %1332 = landingpad { ptr, i32 }
          cleanup
  %1333 = extractvalue { ptr, i32 } %1332, 0
  store ptr %1333, ptr %6, align 8
  %1334 = extractvalue { ptr, i32 } %1332, 1
  store i32 %1334, ptr %7, align 4
  br label %1339

1335:                                             ; preds = %1042
  %1336 = landingpad { ptr, i32 }
          cleanup
  %1337 = extractvalue { ptr, i32 } %1336, 0
  store ptr %1337, ptr %6, align 8
  %1338 = extractvalue { ptr, i32 } %1336, 1
  store i32 %1338, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #6
  br label %1339

1339:                                             ; preds = %1335, %1331
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %202) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #6
  br label %1395

1340:                                             ; preds = %1044
  %1341 = landingpad { ptr, i32 }
          cleanup
  %1342 = extractvalue { ptr, i32 } %1341, 0
  store ptr %1342, ptr %6, align 8
  %1343 = extractvalue { ptr, i32 } %1341, 1
  store i32 %1343, ptr %7, align 4
  br label %1353

1344:                                             ; preds = %1047
  %1345 = landingpad { ptr, i32 }
          cleanup
  %1346 = extractvalue { ptr, i32 } %1345, 0
  store ptr %1346, ptr %6, align 8
  %1347 = extractvalue { ptr, i32 } %1345, 1
  store i32 %1347, ptr %7, align 4
  br label %1352

1348:                                             ; preds = %1048
  %1349 = landingpad { ptr, i32 }
          cleanup
  %1350 = extractvalue { ptr, i32 } %1349, 0
  store ptr %1350, ptr %6, align 8
  %1351 = extractvalue { ptr, i32 } %1349, 1
  store i32 %1351, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #6
  br label %1352

1352:                                             ; preds = %1348, %1344
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %207) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #6
  br label %1353

1353:                                             ; preds = %1352, %1340
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %205) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #6
  br label %1395

1354:                                             ; preds = %1049
  %1355 = landingpad { ptr, i32 }
          cleanup
  %1356 = extractvalue { ptr, i32 } %1355, 0
  store ptr %1356, ptr %6, align 8
  %1357 = extractvalue { ptr, i32 } %1355, 1
  store i32 %1357, ptr %7, align 4
  br label %1362

1358:                                             ; preds = %1054, %1052
  %1359 = landingpad { ptr, i32 }
          cleanup
  %1360 = extractvalue { ptr, i32 } %1359, 0
  store ptr %1360, ptr %6, align 8
  %1361 = extractvalue { ptr, i32 } %1359, 1
  store i32 %1361, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #6
  br label %1362

1362:                                             ; preds = %1358, %1354
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %210) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %210) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %209) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %208) #6
  br label %1395

1363:                                             ; preds = %1055
  %1364 = landingpad { ptr, i32 }
          cleanup
  %1365 = extractvalue { ptr, i32 } %1364, 0
  store ptr %1365, ptr %6, align 8
  %1366 = extractvalue { ptr, i32 } %1364, 1
  store i32 %1366, ptr %7, align 4
  br label %1371

1367:                                             ; preds = %1058
  %1368 = landingpad { ptr, i32 }
          cleanup
  %1369 = extractvalue { ptr, i32 } %1368, 0
  store ptr %1369, ptr %6, align 8
  %1370 = extractvalue { ptr, i32 } %1368, 1
  store i32 %1370, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #6
  br label %1371

1371:                                             ; preds = %1367, %1363
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %213) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #6
  br label %1395

1372:                                             ; preds = %1060
  %1373 = landingpad { ptr, i32 }
          cleanup
  %1374 = extractvalue { ptr, i32 } %1373, 0
  store ptr %1374, ptr %6, align 8
  %1375 = extractvalue { ptr, i32 } %1373, 1
  store i32 %1375, ptr %7, align 4
  br label %1380

1376:                                             ; preds = %1063
  %1377 = landingpad { ptr, i32 }
          cleanup
  %1378 = extractvalue { ptr, i32 } %1377, 0
  store ptr %1378, ptr %6, align 8
  %1379 = extractvalue { ptr, i32 } %1377, 1
  store i32 %1379, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #6
  br label %1380

1380:                                             ; preds = %1376, %1372
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %215) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %214) #6
  br label %1395

1381:                                             ; preds = %1065
  %1382 = landingpad { ptr, i32 }
          cleanup
  %1383 = extractvalue { ptr, i32 } %1382, 0
  store ptr %1383, ptr %6, align 8
  %1384 = extractvalue { ptr, i32 } %1382, 1
  store i32 %1384, ptr %7, align 4
  br label %1394

1385:                                             ; preds = %1067
  %1386 = landingpad { ptr, i32 }
          cleanup
  %1387 = extractvalue { ptr, i32 } %1386, 0
  store ptr %1387, ptr %6, align 8
  %1388 = extractvalue { ptr, i32 } %1386, 1
  store i32 %1388, ptr %7, align 4
  br label %1393

1389:                                             ; preds = %1068
  %1390 = landingpad { ptr, i32 }
          cleanup
  %1391 = extractvalue { ptr, i32 } %1390, 0
  store ptr %1391, ptr %6, align 8
  %1392 = extractvalue { ptr, i32 } %1390, 1
  store i32 %1392, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #6
  br label %1393

1393:                                             ; preds = %1389, %1385
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %220) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %219) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #6
  br label %1394

1394:                                             ; preds = %1393, %1381
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %218) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %216) #6
  br label %1395

1395:                                             ; preds = %1394, %1380, %1371, %1362, %1353, %1339, %1330, %1316, %1307, %1298, %1289, %1275, %1266, %1257, %1248, %1239, %1230, %1221, %1212, %1203, %1194, %1185, %1176, %1162, %1153, %1144, %1135, %1126, %1117, %1108, %902, %901, %880
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #6
  br label %1396

1396:                                             ; preds = %1395, %871, %862, %853, %844, %835, %826, %817, %808, %799, %790, %781, %772, %763, %754, %745, %736, %727, %718, %709, %700, %691, %682, %668, %659, %650, %641, %632, %623, %614, %605, %596, %587, %578, %569, %560, %551, %537, %528, %519, %510
  call void @_ZN3sim11ParamParserD2Ev(ptr noundef nonnull align 8 dereferenceable(240) %3) #6
  br label %1397

1397:                                             ; preds = %1396, %501
  call void @llvm.lifetime.end.p0(i64 240, ptr %3) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #6
  br label %1398

1398:                                             ; preds = %1397
  %1399 = load ptr, ptr %6, align 8
  %1400 = load i32, ptr %7, align 4
  %1401 = insertvalue { ptr, i32 } poison, ptr %1399, 0
  %1402 = insertvalue { ptr, i32 } %1401, i32 %1400, 1
  resume { ptr, i32 } %1402
}

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

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

declare void @_ZN3sim9Directory15getResDirectoryB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8) #4

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

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

declare noundef i32 @_ZN3sim11ParamParser28getIntIfHasIntAndNotLessThanERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) #4

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

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

declare void @_ZN3sim11ParamParser35getStringIfHasStringAndIsLayoutTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim10LayoutTypeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

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

declare noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i32 noundef) #4

declare void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4

declare noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), double noundef, double noundef, double noundef) #4

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

declare void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

declare void @_ZN3sim11ParamParser42getStringIfHasStringAndIsTileTextAlignmentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim17TileTextAlignmentENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

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

declare noundef ptr @_ZN3sim1LEv() #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2el6Logger4warnIA118_cEEvRKT_(ptr noundef nonnull align 8 dereferenceable(728), ptr noundef nonnull align 1 dereferenceable(118)) #3 align 2

declare noundef i32 @_ZN3sim11ParamParser11getIntValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNSt13random_deviceclEv(ptr noundef nonnull align 8 dereferenceable(5000)) #1 align 2

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

declare noundef signext i8 @_ZN3sim11ParamParser16getCharIfHasCharERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEc(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) #4

declare void @_ZN3sim11ParamParser37getStringIfHasStringAndIsMazeFileTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim12MazeFileTypeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) #1 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSN3sim5ParamE", !11, i64 0, !11, i64 4, !12, i64 8, !11, i64 40, !12, i64 48, !11, i64 80, !11, i64 84, !11, i64 88, !15, i64 96, !15, i64 104, !15, i64 112, !16, i64 120, !11, i64 124, !16, i64 128, !12, i64 136, !12, i64 168, !12, i64 200, !12, i64 232, !12, i64 264, !15, i64 296, !12, i64 304, !12, i64 336, !12, i64 368, !12, i64 400, !12, i64 432, !12, i64 464, !12, i64 496, !12, i64 528, !12, i64 560, !12, i64 592, !12, i64 624, !16, i64 656, !16, i64 657, !16, i64 658, !16, i64 659, !16, i64 660, !16, i64 661, !15, i64 664, !16, i64 672, !12, i64 680, !11, i64 712, !15, i64 720, !16, i64 728, !15, i64 736, !15, i64 744, !15, i64 752, !16, i64 760, !12, i64 768, !7, i64 800, !15, i64 808, !11, i64 816, !16, i64 820, !11, i64 824, !16, i64 828, !11, i64 832, !11, i64 836, !11, i64 840, !15, i64 848, !15, i64 856, !12, i64 864, !16, i64 896, !11, i64 900, !11, i64 904, !12, i64 912, !16, i64 944, !12, i64 952, !12, i64 984, !16, i64 1016, !11, i64 1020, !12, i64 1024}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !13, i64 0, !14, i64 8, !7, i64 16}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!"double", !7, i64 0}
!16 = !{!"bool", !7, i64 0}
!17 = !{!10, !11, i64 4}
!18 = !{!19, !19, i64 0}
!19 = !{!"_ZTSN3sim10LayoutTypeE", !7, i64 0}
!20 = !{!10, !11, i64 40}
!21 = !{!10, !11, i64 80}
!22 = !{!10, !11, i64 84}
!23 = !{!10, !11, i64 88}
!24 = !{!10, !15, i64 96}
!25 = !{!10, !15, i64 104}
!26 = !{!10, !15, i64 112}
!27 = !{!10, !16, i64 120}
!28 = !{!10, !11, i64 124}
!29 = !{!10, !16, i64 128}
!30 = !{!31, !31, i64 0}
!31 = !{!"_ZTSN3sim5ColorE", !7, i64 0}
!32 = !{!10, !15, i64 296}
!33 = !{!34, !34, i64 0}
!34 = !{!"_ZTSN3sim17TileTextAlignmentE", !7, i64 0}
!35 = !{!10, !16, i64 656}
!36 = !{!10, !16, i64 657}
!37 = !{!10, !16, i64 658}
!38 = !{!10, !16, i64 659}
!39 = !{!10, !16, i64 660}
!40 = !{!10, !16, i64 661}
!41 = !{!10, !15, i64 664}
!42 = !{!10, !16, i64 672}
!43 = !{!16, !16, i64 0}
!44 = !{i8 0, i8 2}
!45 = !{}
!46 = !{!10, !11, i64 712}
!47 = !{!10, !15, i64 720}
!48 = !{!10, !16, i64 728}
!49 = !{!10, !15, i64 736}
!50 = !{!10, !15, i64 744}
!51 = !{!10, !15, i64 752}
!52 = !{!10, !16, i64 760}
!53 = !{!10, !7, i64 800}
!54 = !{!10, !15, i64 808}
!55 = !{!10, !11, i64 816}
!56 = !{!10, !16, i64 820}
!57 = !{!10, !11, i64 824}
!58 = !{!10, !16, i64 828}
!59 = !{!10, !11, i64 832}
!60 = !{!10, !11, i64 836}
!61 = !{!10, !11, i64 840}
!62 = !{!10, !15, i64 848}
!63 = !{!10, !15, i64 856}
!64 = !{!10, !16, i64 896}
!65 = !{!10, !11, i64 900}
!66 = !{!10, !11, i64 904}
!67 = !{!10, !16, i64 944}
!68 = !{!69, !69, i64 0}
!69 = !{!"_ZTSN3sim12MazeFileTypeE", !7, i64 0}
!70 = !{!10, !16, i64 1016}
!71 = !{!10, !11, i64 1020}


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

%"class.std::map.7" = type { %"class.std::_Rb_tree.8" }
%"class.std::_Rb_tree.8" = type { %"struct.std::_Rb_tree<sim::Color, std::pair<const sim::Color, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::Color, std::__cxx11::basic_string<char>>>, std::less<sim::Color>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<sim::Color, std::pair<const sim::Color, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::Color, std::__cxx11::basic_string<char>>>, std::less<sim::Color>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map.120" = type { %"class.std::_Rb_tree.121" }
%"class.std::_Rb_tree.121" = type { %"struct.std::_Rb_tree<sim::LayoutType, std::pair<const sim::LayoutType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::LayoutType, std::__cxx11::basic_string<char>>>, std::less<sim::LayoutType>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<sim::LayoutType, std::pair<const sim::LayoutType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::LayoutType, std::__cxx11::basic_string<char>>>, std::less<sim::LayoutType>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.136" = type { %"class.std::_Rb_tree.137" }
%"class.std::_Rb_tree.137" = type { %"struct.std::_Rb_tree<sim::MazeFileType, std::pair<const sim::MazeFileType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::MazeFileType, std::__cxx11::basic_string<char>>>, std::less<sim::MazeFileType>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<sim::MazeFileType, std::pair<const sim::MazeFileType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::MazeFileType, std::__cxx11::basic_string<char>>>, std::less<sim::MazeFileType>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.155" = type { %"class.std::_Rb_tree.156" }
%"class.std::_Rb_tree.156" = type { %"struct.std::_Rb_tree<sim::TileTextAlignment, std::pair<const sim::TileTextAlignment, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::TileTextAlignment, std::__cxx11::basic_string<char>>>, std::less<sim::TileTextAlignment>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<sim::TileTextAlignment, std::pair<const sim::TileTextAlignment, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const sim::TileTextAlignment, std::__cxx11::basic_string<char>>>, std::less<sim::TileTextAlignment>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.sim::ParamParser" = type { %"class.pugi::xml_document", %"class.pugi::xml_node", %"struct.pugi::xml_parse_result" }
%"class.pugi::xml_document" = type { %"class.pugi::xml_node", ptr, [192 x i8] }
%"class.pugi::xml_node" = type { ptr }
%"struct.pugi::xml_parse_result" = type <{ i32, [4 x i8], i64, i32, [4 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.15" = type { i8 }
%"class.std::random_device" = type { %union.anon.193 }
%union.anon.193 = type { %"class.std::mersenne_twister_engine" }
%"class.std::mersenne_twister_engine" = type { [624 x i64], i64 }

@_ZN3simL15COLOR_TO_STRINGB5cxx11E = external hidden global %"class.std::map.7", align 8
@_ZN3simL21LAYOUT_TYPE_TO_STRINGB5cxx11E = external hidden global %"class.std::map.120", align 8
@_ZN3simL24MAZE_FILE_TYPE_TO_STRINGB5cxx11E = external hidden global %"class.std::map.136", align 8
@_ZN3simL29TILE_TEXT_ALIGNMENT_TO_STRINGB5cxx11E = external hidden global %"class.std::map.155", align 8
@.str.69 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [16 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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3sim5ParamC2Ev(ptr noundef nonnull align 8 dereferenceable(1056) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.sim::ParamParser", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator.15", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator.15", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.15", align 1
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.15", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.15", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.15", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.15", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.15", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator.15", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator.15", align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator.15", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.15", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator.15", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator.15", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator.15", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.15", align 1
  %41 = alloca i32, align 4
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.15", align 1
  %45 = alloca i32, align 4
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.15", align 1
  %49 = alloca i32, align 4
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.15", align 1
  %53 = alloca i32, align 4
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator.15", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator.15", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator.15", align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator.15", align 1
  %64 = alloca i32, align 4
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator.15", align 1
  %68 = alloca i32, align 4
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator.15", align 1
  %72 = alloca i32, align 4
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator.15", align 1
  %76 = alloca i32, align 4
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator.15", align 1
  %80 = alloca i32, align 4
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::allocator.15", align 1
  %84 = alloca i32, align 4
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator.15", align 1
  %88 = alloca i32, align 4
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator.15", align 1
  %92 = alloca i32, align 4
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator.15", align 1
  %96 = alloca i32, align 4
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::allocator.15", align 1
  %100 = alloca i32, align 4
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::allocator.15", align 1
  %104 = alloca i32, align 4
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator.15", align 1
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::allocator.15", align 1
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::allocator.15", align 1
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::allocator.15", align 1
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::allocator.15", align 1
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::allocator.15", align 1
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::allocator.15", align 1
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::allocator.15", align 1
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::allocator.15", align 1
  %124 = alloca i32, align 4
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::allocator.15", align 1
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::allocator.15", align 1
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::allocator.15", align 1
  %131 = alloca %"class.std::random_device", align 8
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::allocator.15", align 1
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::allocator.15", align 1
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::allocator.15", align 1
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::allocator.15", align 1
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.std::allocator.15", align 1
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::allocator.15", align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::__cxx11::basic_string", align 8
  %146 = alloca %"class.std::allocator.15", align 1
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca %"class.std::allocator.15", align 1
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::allocator.15", align 1
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::allocator.15", align 1
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::allocator.15", align 1
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::allocator.15", align 1
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca %"class.std::allocator.15", align 1
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.std::allocator.15", align 1
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::allocator.15", align 1
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::allocator.15", align 1
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::allocator.15", align 1
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::allocator.15", align 1
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.std::allocator.15", align 1
  %171 = alloca %"class.std::__cxx11::basic_string", align 8
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::allocator.15", align 1
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::allocator.15", align 1
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::allocator.15", align 1
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::allocator.15", align 1
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::allocator.15", align 1
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::allocator.15", align 1
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::allocator.15", align 1
  %187 = alloca %"class.std::__cxx11::basic_string", align 8
  %188 = alloca %"class.std::allocator.15", align 1
  %189 = alloca %"class.std::__cxx11::basic_string", align 8
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca %"class.std::allocator.15", align 1
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::allocator.15", align 1
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::__cxx11::basic_string", align 8
  %196 = alloca %"class.std::allocator.15", align 1
  %197 = alloca i32, align 4
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator.15", align 1
  %200 = alloca %"class.std::__cxx11::basic_string", align 8
  %201 = alloca %"class.std::allocator.15", align 1
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::allocator.15", align 1
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::allocator.15", align 1
  %207 = getelementptr inbounds i8, ptr %0, i64 8
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #6
  %208 = getelementptr inbounds i8, ptr %0, i64 48
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #6
  %209 = getelementptr inbounds i8, ptr %0, i64 136
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #6
  %210 = getelementptr inbounds i8, ptr %0, i64 168
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #6
  %211 = getelementptr inbounds i8, ptr %0, i64 200
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #6
  %212 = getelementptr inbounds i8, ptr %0, i64 232
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #6
  %213 = getelementptr inbounds i8, ptr %0, i64 264
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #6
  %214 = getelementptr inbounds i8, ptr %0, i64 304
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #6
  %215 = getelementptr inbounds i8, ptr %0, i64 336
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #6
  %216 = getelementptr inbounds i8, ptr %0, i64 368
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #6
  %217 = getelementptr inbounds i8, ptr %0, i64 400
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #6
  %218 = getelementptr inbounds i8, ptr %0, i64 432
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #6
  %219 = getelementptr inbounds i8, ptr %0, i64 464
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #6
  %220 = getelementptr inbounds i8, ptr %0, i64 496
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #6
  %221 = getelementptr inbounds i8, ptr %0, i64 528
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #6
  %222 = getelementptr inbounds i8, ptr %0, i64 560
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #6
  %223 = getelementptr inbounds i8, ptr %0, i64 592
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #6
  %224 = getelementptr inbounds i8, ptr %0, i64 624
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #6
  %225 = getelementptr inbounds i8, ptr %0, i64 680
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #6
  %226 = getelementptr inbounds i8, ptr %0, i64 768
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #6
  %227 = getelementptr inbounds i8, ptr %0, i64 864
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #6
  %228 = getelementptr inbounds i8, ptr %0, i64 912
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #6
  %229 = getelementptr inbounds i8, ptr %0, i64 952
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #6
  %230 = getelementptr inbounds i8, ptr %0, i64 984
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #6
  %231 = getelementptr inbounds i8, ptr %0, i64 1024
  tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #6
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %2) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  invoke void @_ZN3sim9Directory15getResDirectoryB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4)
          to label %232 unwind label %431

232:                                              ; preds = %1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.69)
          to label %233 unwind label %433

233:                                              ; preds = %232
  invoke void @_ZN3sim11ParamParserC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %234 unwind label %435

234:                                              ; preds = %233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.70, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %235 unwind label %439

235:                                              ; preds = %234
  %236 = invoke noundef i32 @_ZN3sim11ParamParser28getIntIfHasIntAndNotLessThanERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 990, i32 noundef 100)
          to label %237 unwind label %441

237:                                              ; preds = %235
  store i32 %236, ptr %0, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.71, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %238 unwind label %444

238:                                              ; preds = %237
  %239 = invoke noundef i32 @_ZN3sim11ParamParser28getIntIfHasIntAndNotLessThanERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %7, i32 noundef 700, i32 noundef 100)
          to label %240 unwind label %446

240:                                              ; preds = %238
  %241 = getelementptr inbounds i8, ptr %0, i64 4
  store i32 %239, ptr %241, align 4, !tbaa !16
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %242 unwind label %449

242:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  store i32 2, ptr %12, align 4, !tbaa !17
  %243 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim10LayoutTypeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL21LAYOUT_TYPE_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %244 unwind label %451

244:                                              ; preds = %242
  invoke void @_ZN3sim11ParamParser35getStringIfHasStringAndIsLayoutTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %243)
          to label %245 unwind label %451

245:                                              ; preds = %244
  %246 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %207, ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %247 unwind label %454

247:                                              ; preds = %245
  %248 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %13, i32 noundef 10, i32 noundef 0, i32 noundef 30)
          to label %249 unwind label %456

249:                                              ; preds = %247
  %250 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %248, ptr %250, align 8, !tbaa !19
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %251 unwind label %459

251:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %252 unwind label %461

252:                                              ; preds = %251
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %253 unwind label %463

253:                                              ; preds = %252
  %254 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %255 unwind label %467

255:                                              ; preds = %253
  %256 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %20, i32 noundef 9, i32 noundef 0, i32 noundef 30)
          to label %257 unwind label %469

257:                                              ; preds = %255
  %258 = getelementptr inbounds i8, ptr %0, i64 80
  store i32 %256, ptr %258, align 8, !tbaa !20
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.77, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %259 unwind label %472

259:                                              ; preds = %257
  %260 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %22, i32 noundef 6, i32 noundef 0, i32 noundef 30)
          to label %261 unwind label %474

261:                                              ; preds = %259
  %262 = getelementptr inbounds i8, ptr %0, i64 84
  store i32 %260, ptr %262, align 4, !tbaa !21
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.78, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %263 unwind label %477

263:                                              ; preds = %261
  %264 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %24, i32 noundef 20, i32 noundef 0, i32 noundef 60)
          to label %265 unwind label %479

265:                                              ; preds = %263
  %266 = getelementptr inbounds i8, ptr %0, i64 88
  store i32 %264, ptr %266, align 8, !tbaa !22
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.79, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %267 unwind label %482

267:                                              ; preds = %265
  %268 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %26, double noundef 2.000000e-02, double noundef 1.000000e-02, double noundef 4.000000e-02)
          to label %269 unwind label %484

269:                                              ; preds = %267
  %270 = getelementptr inbounds i8, ptr %0, i64 96
  store double %268, ptr %270, align 8, !tbaa !23
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.80, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %271 unwind label %487

271:                                              ; preds = %269
  %272 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %28, double noundef 1.000000e+00, double noundef 5.000000e-01, double noundef 2.000000e+00)
          to label %273 unwind label %489

273:                                              ; preds = %271
  %274 = getelementptr inbounds i8, ptr %0, i64 104
  store double %272, ptr %274, align 8, !tbaa !24
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.81, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %275 unwind label %492

275:                                              ; preds = %273
  %276 = load double, ptr %270, align 8, !tbaa !23
  %277 = load double, ptr %274, align 8, !tbaa !24
  %278 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %30, double noundef 1.000000e-01, double noundef %276, double noundef %277)
          to label %279 unwind label %494

279:                                              ; preds = %275
  %280 = getelementptr inbounds i8, ptr %0, i64 112
  store double %278, ptr %280, align 8, !tbaa !25
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.82, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %281 unwind label %497

281:                                              ; preds = %279
  %282 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %32, i1 noundef zeroext false)
          to label %283 unwind label %499

283:                                              ; preds = %281
  %284 = getelementptr inbounds i8, ptr %0, i64 120
  %285 = zext i1 %282 to i8
  store i8 %285, ptr %284, align 8, !tbaa !26
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.83, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %286 unwind label %502

286:                                              ; preds = %283
  %287 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 60, i32 noundef 1, i32 noundef 120)
          to label %288 unwind label %504

288:                                              ; preds = %286
  %289 = getelementptr inbounds i8, ptr %0, i64 124
  store i32 %287, ptr %289, align 4, !tbaa !27
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.84, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %290 unwind label %507

290:                                              ; preds = %288
  %291 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %36, i1 noundef zeroext false)
          to label %292 unwind label %509

292:                                              ; preds = %290
  %293 = getelementptr inbounds i8, ptr %0, i64 128
  %294 = zext i1 %291 to i8
  store i8 %294, ptr %293, align 8, !tbaa !28
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %295 unwind label %512

295:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #6
  store i32 0, ptr %41, align 4, !tbaa !29
  %296 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %297 unwind label %514

297:                                              ; preds = %295
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %296)
          to label %298 unwind label %514

298:                                              ; preds = %297
  %299 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.86, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %300 unwind label %517

300:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  store i32 6, ptr %45, align 4, !tbaa !29
  %301 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %302 unwind label %519

302:                                              ; preds = %300
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %301)
          to label %303 unwind label %519

303:                                              ; preds = %302
  %304 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.87, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %305 unwind label %522

305:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #6
  store i32 3, ptr %49, align 4, !tbaa !29
  %306 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %307 unwind label %524

307:                                              ; preds = %305
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %306)
          to label %308 unwind label %524

308:                                              ; preds = %307
  %309 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %310 unwind label %527

310:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #6
  store i32 3, ptr %53, align 4, !tbaa !29
  %311 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %312 unwind label %529

312:                                              ; preds = %310
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %311)
          to label %313 unwind label %529

313:                                              ; preds = %312
  %314 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.89, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %315 unwind label %532

315:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %316 unwind label %534

316:                                              ; preds = %315
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %317 unwind label %536

317:                                              ; preds = %316
  %318 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.91, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %319 unwind label %540

319:                                              ; preds = %317
  %320 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %59, double noundef 5.000000e-02, double noundef 0.000000e+00, double noundef 5.000000e-01)
          to label %321 unwind label %542

321:                                              ; preds = %319
  %322 = getelementptr inbounds i8, ptr %0, i64 296
  store double %320, ptr %322, align 8, !tbaa !31
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.92, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %323 unwind label %545

323:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %64) #6
  store i32 4, ptr %64, align 4, !tbaa !32
  %324 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim17TileTextAlignmentENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL29TILE_TEXT_ALIGNMENT_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %64)
          to label %325 unwind label %547

325:                                              ; preds = %323
  invoke void @_ZN3sim11ParamParser42getStringIfHasStringAndIsTileTextAlignmentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %324)
          to label %326 unwind label %547

326:                                              ; preds = %325
  %327 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %67) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.93, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %328 unwind label %550

328:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %68) #6
  store i32 14, ptr %68, align 4, !tbaa !29
  %329 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %330 unwind label %552

330:                                              ; preds = %328
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %329)
          to label %331 unwind label %552

331:                                              ; preds = %330
  %332 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %215, ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.94, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %333 unwind label %555

333:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %72) #6
  store i32 11, ptr %72, align 4, !tbaa !29
  %334 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %72)
          to label %335 unwind label %557

335:                                              ; preds = %333
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %334)
          to label %336 unwind label %557

336:                                              ; preds = %335
  %337 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %216, ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %72) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %75) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.95, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %338 unwind label %560

338:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %76) #6
  store i32 5, ptr %76, align 4, !tbaa !29
  %339 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %76)
          to label %340 unwind label %562

340:                                              ; preds = %338
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %339)
          to label %341 unwind label %562

341:                                              ; preds = %340
  %342 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %79) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull @.str.96, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %343 unwind label %565

343:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %80) #6
  store i32 10, ptr %80, align 4, !tbaa !29
  %344 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %345 unwind label %567

345:                                              ; preds = %343
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %344)
          to label %346 unwind label %567

346:                                              ; preds = %345
  %347 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %83) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @.str.97, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %348 unwind label %570

348:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %84) #6
  store i32 1, ptr %84, align 4, !tbaa !29
  %349 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %84)
          to label %350 unwind label %572

350:                                              ; preds = %348
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %349)
          to label %351 unwind label %572

351:                                              ; preds = %350
  %352 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %84) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %83) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %87) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull @.str.98, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %353 unwind label %575

353:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %88) #6
  store i32 5, ptr %88, align 4, !tbaa !29
  %354 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %88)
          to label %355 unwind label %577

355:                                              ; preds = %353
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %354)
          to label %356 unwind label %577

356:                                              ; preds = %355
  %357 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %87) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %91) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull @.str.99, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %358 unwind label %580

358:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %92) #6
  store i32 4, ptr %92, align 4, !tbaa !29
  %359 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %92)
          to label %360 unwind label %582

360:                                              ; preds = %358
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(32) %359)
          to label %361 unwind label %582

361:                                              ; preds = %360
  %362 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %95) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull @.str.100, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %363 unwind label %585

363:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %96) #6
  store i32 12, ptr %96, align 4, !tbaa !29
  %364 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %96)
          to label %365 unwind label %587

365:                                              ; preds = %363
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %364)
          to label %366 unwind label %587

366:                                              ; preds = %365
  %367 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %96) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %95) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %99) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull @.str.101, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %368 unwind label %590

368:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %100) #6
  store i32 4, ptr %100, align 4, !tbaa !29
  %369 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %100)
          to label %370 unwind label %592

370:                                              ; preds = %368
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %369)
          to label %371 unwind label %592

371:                                              ; preds = %370
  %372 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %223, ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %100) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %101) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %103) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull @.str.102, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %373 unwind label %595

373:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %104) #6
  store i32 7, ptr %104, align 4, !tbaa !29
  %374 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %104)
          to label %375 unwind label %597

375:                                              ; preds = %373
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %374)
          to label %376 unwind label %597

376:                                              ; preds = %375
  %377 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %104) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %103) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %106) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull @.str.103, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %378 unwind label %600

378:                                              ; preds = %376
  %379 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %105, i1 noundef zeroext false)
          to label %380 unwind label %602

380:                                              ; preds = %378
  %381 = getelementptr inbounds i8, ptr %0, i64 656
  %382 = zext i1 %379 to i8
  store i8 %382, ptr %381, align 8, !tbaa !34
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %108) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull @.str.104, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %383 unwind label %605

383:                                              ; preds = %380
  %384 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %107, i1 noundef zeroext true)
          to label %385 unwind label %607

385:                                              ; preds = %383
  %386 = getelementptr inbounds i8, ptr %0, i64 657
  %387 = zext i1 %384 to i8
  store i8 %387, ptr %386, align 1, !tbaa !35
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %110) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.105, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %388 unwind label %610

388:                                              ; preds = %385
  %389 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %109, i1 noundef zeroext true)
          to label %390 unwind label %612

390:                                              ; preds = %388
  %391 = getelementptr inbounds i8, ptr %0, i64 658
  %392 = zext i1 %389 to i8
  store i8 %392, ptr %391, align 2, !tbaa !36
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %111) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %112) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull @.str.106, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %393 unwind label %615

393:                                              ; preds = %390
  %394 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %111, i1 noundef zeroext true)
          to label %395 unwind label %617

395:                                              ; preds = %393
  %396 = getelementptr inbounds i8, ptr %0, i64 659
  %397 = zext i1 %394 to i8
  store i8 %397, ptr %396, align 1, !tbaa !37
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %113) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %114) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull @.str.107, ptr noundef nonnull align 1 dereferenceable(1) %114)
          to label %398 unwind label %620

398:                                              ; preds = %395
  %399 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %113, i1 noundef zeroext true)
          to label %400 unwind label %622

400:                                              ; preds = %398
  %401 = getelementptr inbounds i8, ptr %0, i64 660
  %402 = zext i1 %399 to i8
  store i8 %402, ptr %401, align 4, !tbaa !38
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %114) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %116) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull @.str.108, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %403 unwind label %625

403:                                              ; preds = %400
  %404 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %115, i1 noundef zeroext true)
          to label %405 unwind label %627

405:                                              ; preds = %403
  %406 = getelementptr inbounds i8, ptr %0, i64 661
  %407 = zext i1 %404 to i8
  store i8 %407, ptr %406, align 1, !tbaa !39
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %116) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %118) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull @.str.109, ptr noundef nonnull align 1 dereferenceable(1) %118)
          to label %408 unwind label %630

408:                                              ; preds = %405
  %409 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %117, double noundef 1.500000e-01, double noundef 0.000000e+00, double noundef 1.000000e+00)
          to label %410 unwind label %632

410:                                              ; preds = %408
  %411 = getelementptr inbounds i8, ptr %0, i64 664
  store double %409, ptr %411, align 8, !tbaa !40
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.110, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %412 unwind label %635

412:                                              ; preds = %410
  %413 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %119, i1 noundef zeroext false)
          to label %414 unwind label %637

414:                                              ; preds = %412
  %415 = getelementptr inbounds i8, ptr %0, i64 672
  %416 = zext i1 %413 to i8
  store i8 %416, ptr %415, align 8, !tbaa !41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %121) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %122) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %123) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull @.str.111, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %417 unwind label %640

417:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %124) #6
  store i32 16, ptr %124, align 4, !tbaa !29
  %418 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL15COLOR_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %124)
          to label %419 unwind label %642

419:                                              ; preds = %417
  invoke void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %121, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %418)
          to label %420 unwind label %642

420:                                              ; preds = %419
  %421 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef nonnull align 8 dereferenceable(32) %121) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %124) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %125) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %126) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %126) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull @.str.112, ptr noundef nonnull align 1 dereferenceable(1) %126)
          to label %422 unwind label %645

422:                                              ; preds = %420
  %423 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %125, i1 noundef zeroext false)
          to label %424 unwind label %647

424:                                              ; preds = %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %126) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %126) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #6
  br i1 %423, label %425, label %.critedge288.thread

425:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %128) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull @.str.113, ptr noundef nonnull align 1 dereferenceable(1) %128)
          to label %426 unwind label %650

426:                                              ; preds = %425
  %427 = invoke noundef zeroext i1 @_ZN3sim11ParamParser11hasIntValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %127)
          to label %.critedge288 unwind label %652

.critedge288:                                     ; preds = %426
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %128) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #6
  br i1 %427, label %657, label %428

428:                                              ; preds = %.critedge288
  %429 = invoke noundef ptr @_ZN3sim1LEv()
          to label %430 unwind label %655

430:                                              ; preds = %428
  invoke void @_ZN2el6Logger4warnIA118_cEEvRKT_(ptr noundef nonnull align 8 dereferenceable(728) %429, ptr noundef nonnull align 1 dereferenceable(118) @.str.114)
          to label %.critedge288.thread unwind label %655

431:                                              ; preds = %1
  %432 = landingpad { ptr, i32 }
          cleanup
  br label %438

433:                                              ; preds = %232
  %434 = landingpad { ptr, i32 }
          cleanup
  br label %437

435:                                              ; preds = %233
  %436 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %437

437:                                              ; preds = %435, %433
  %.pn = phi { ptr, i32 } [ %436, %435 ], [ %434, %433 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %438

438:                                              ; preds = %437, %431
  %.pn.pn = phi { ptr, i32 } [ %.pn, %437 ], [ %432, %431 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br label %959

439:                                              ; preds = %234
  %440 = landingpad { ptr, i32 }
          cleanup
  br label %443

441:                                              ; preds = %235
  %442 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %443

443:                                              ; preds = %441, %439
  %.pn130 = phi { ptr, i32 } [ %442, %441 ], [ %440, %439 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  br label %.critedge298

444:                                              ; preds = %237
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %448

446:                                              ; preds = %238
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %448

448:                                              ; preds = %446, %444
  %.pn132 = phi { ptr, i32 } [ %447, %446 ], [ %445, %444 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  br label %.critedge298

449:                                              ; preds = %240
  %450 = landingpad { ptr, i32 }
          cleanup
  br label %453

451:                                              ; preds = %244, %242
  %452 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %453

453:                                              ; preds = %451, %449
  %.pn134 = phi { ptr, i32 } [ %452, %451 ], [ %450, %449 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br label %.critedge298

454:                                              ; preds = %245
  %455 = landingpad { ptr, i32 }
          cleanup
  br label %458

456:                                              ; preds = %247
  %457 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %458

458:                                              ; preds = %456, %454
  %.pn136 = phi { ptr, i32 } [ %457, %456 ], [ %455, %454 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  br label %.critedge298

459:                                              ; preds = %249
  %460 = landingpad { ptr, i32 }
          cleanup
  br label %466

461:                                              ; preds = %251
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %465

463:                                              ; preds = %252
  %464 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %465

465:                                              ; preds = %463, %461
  %.pn138 = phi { ptr, i32 } [ %464, %463 ], [ %462, %461 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %466

466:                                              ; preds = %465, %459
  %.pn138.pn = phi { ptr, i32 } [ %.pn138, %465 ], [ %460, %459 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  br label %.critedge298

467:                                              ; preds = %253
  %468 = landingpad { ptr, i32 }
          cleanup
  br label %471

469:                                              ; preds = %255
  %470 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %471

471:                                              ; preds = %469, %467
  %.pn141 = phi { ptr, i32 } [ %470, %469 ], [ %468, %467 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  br label %.critedge298

472:                                              ; preds = %257
  %473 = landingpad { ptr, i32 }
          cleanup
  br label %476

474:                                              ; preds = %259
  %475 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %476

476:                                              ; preds = %474, %472
  %.pn143 = phi { ptr, i32 } [ %475, %474 ], [ %473, %472 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  br label %.critedge298

477:                                              ; preds = %261
  %478 = landingpad { ptr, i32 }
          cleanup
  br label %481

479:                                              ; preds = %263
  %480 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %481

481:                                              ; preds = %479, %477
  %.pn145 = phi { ptr, i32 } [ %480, %479 ], [ %478, %477 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #6
  br label %.critedge298

482:                                              ; preds = %265
  %483 = landingpad { ptr, i32 }
          cleanup
  br label %486

484:                                              ; preds = %267
  %485 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %486

486:                                              ; preds = %484, %482
  %.pn147 = phi { ptr, i32 } [ %485, %484 ], [ %483, %482 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  br label %.critedge298

487:                                              ; preds = %269
  %488 = landingpad { ptr, i32 }
          cleanup
  br label %491

489:                                              ; preds = %271
  %490 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %491

491:                                              ; preds = %489, %487
  %.pn149 = phi { ptr, i32 } [ %490, %489 ], [ %488, %487 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #6
  br label %.critedge298

492:                                              ; preds = %273
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %496

494:                                              ; preds = %275
  %495 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %496

496:                                              ; preds = %494, %492
  %.pn151 = phi { ptr, i32 } [ %495, %494 ], [ %493, %492 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  br label %.critedge298

497:                                              ; preds = %279
  %498 = landingpad { ptr, i32 }
          cleanup
  br label %501

499:                                              ; preds = %281
  %500 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %501

501:                                              ; preds = %499, %497
  %.pn153 = phi { ptr, i32 } [ %500, %499 ], [ %498, %497 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  br label %.critedge298

502:                                              ; preds = %283
  %503 = landingpad { ptr, i32 }
          cleanup
  br label %506

504:                                              ; preds = %286
  %505 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %506

506:                                              ; preds = %504, %502
  %.pn155 = phi { ptr, i32 } [ %505, %504 ], [ %503, %502 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  br label %.critedge298

507:                                              ; preds = %288
  %508 = landingpad { ptr, i32 }
          cleanup
  br label %511

509:                                              ; preds = %290
  %510 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %511

511:                                              ; preds = %509, %507
  %.pn157 = phi { ptr, i32 } [ %510, %509 ], [ %508, %507 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  br label %.critedge298

512:                                              ; preds = %292
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %516

514:                                              ; preds = %297, %295
  %515 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %516

516:                                              ; preds = %514, %512
  %.pn159 = phi { ptr, i32 } [ %515, %514 ], [ %513, %512 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  br label %.critedge298

517:                                              ; preds = %298
  %518 = landingpad { ptr, i32 }
          cleanup
  br label %521

519:                                              ; preds = %302, %300
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %521

521:                                              ; preds = %519, %517
  %.pn161 = phi { ptr, i32 } [ %520, %519 ], [ %518, %517 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #6
  br label %.critedge298

522:                                              ; preds = %303
  %523 = landingpad { ptr, i32 }
          cleanup
  br label %526

524:                                              ; preds = %307, %305
  %525 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %526

526:                                              ; preds = %524, %522
  %.pn163 = phi { ptr, i32 } [ %525, %524 ], [ %523, %522 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  br label %.critedge298

527:                                              ; preds = %308
  %528 = landingpad { ptr, i32 }
          cleanup
  br label %531

529:                                              ; preds = %312, %310
  %530 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %531

531:                                              ; preds = %529, %527
  %.pn165 = phi { ptr, i32 } [ %530, %529 ], [ %528, %527 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #6
  br label %.critedge298

532:                                              ; preds = %313
  %533 = landingpad { ptr, i32 }
          cleanup
  br label %539

534:                                              ; preds = %315
  %535 = landingpad { ptr, i32 }
          cleanup
  br label %538

536:                                              ; preds = %316
  %537 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %538

538:                                              ; preds = %536, %534
  %.pn167 = phi { ptr, i32 } [ %537, %536 ], [ %535, %534 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %539

539:                                              ; preds = %538, %532
  %.pn167.pn = phi { ptr, i32 } [ %.pn167, %538 ], [ %533, %532 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  br label %.critedge298

540:                                              ; preds = %317
  %541 = landingpad { ptr, i32 }
          cleanup
  br label %544

542:                                              ; preds = %319
  %543 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %544

544:                                              ; preds = %542, %540
  %.pn170 = phi { ptr, i32 } [ %543, %542 ], [ %541, %540 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  br label %.critedge298

545:                                              ; preds = %321
  %546 = landingpad { ptr, i32 }
          cleanup
  br label %549

547:                                              ; preds = %325, %323
  %548 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %549

549:                                              ; preds = %547, %545
  %.pn172 = phi { ptr, i32 } [ %548, %547 ], [ %546, %545 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #6
  br label %.critedge298

550:                                              ; preds = %326
  %551 = landingpad { ptr, i32 }
          cleanup
  br label %554

552:                                              ; preds = %330, %328
  %553 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %554

554:                                              ; preds = %552, %550
  %.pn174 = phi { ptr, i32 } [ %553, %552 ], [ %551, %550 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #6
  br label %.critedge298

555:                                              ; preds = %331
  %556 = landingpad { ptr, i32 }
          cleanup
  br label %559

557:                                              ; preds = %335, %333
  %558 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %72) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %559

559:                                              ; preds = %557, %555
  %.pn176 = phi { ptr, i32 } [ %558, %557 ], [ %556, %555 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #6
  br label %.critedge298

560:                                              ; preds = %336
  %561 = landingpad { ptr, i32 }
          cleanup
  br label %564

562:                                              ; preds = %340, %338
  %563 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %564

564:                                              ; preds = %562, %560
  %.pn178 = phi { ptr, i32 } [ %563, %562 ], [ %561, %560 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #6
  br label %.critedge298

565:                                              ; preds = %341
  %566 = landingpad { ptr, i32 }
          cleanup
  br label %569

567:                                              ; preds = %345, %343
  %568 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %569

569:                                              ; preds = %567, %565
  %.pn180 = phi { ptr, i32 } [ %568, %567 ], [ %566, %565 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #6
  br label %.critedge298

570:                                              ; preds = %346
  %571 = landingpad { ptr, i32 }
          cleanup
  br label %574

572:                                              ; preds = %350, %348
  %573 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %84) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %574

574:                                              ; preds = %572, %570
  %.pn182 = phi { ptr, i32 } [ %573, %572 ], [ %571, %570 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %83) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #6
  br label %.critedge298

575:                                              ; preds = %351
  %576 = landingpad { ptr, i32 }
          cleanup
  br label %579

577:                                              ; preds = %355, %353
  %578 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %88) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  br label %579

579:                                              ; preds = %577, %575
  %.pn184 = phi { ptr, i32 } [ %578, %577 ], [ %576, %575 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %87) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #6
  br label %.critedge298

580:                                              ; preds = %356
  %581 = landingpad { ptr, i32 }
          cleanup
  br label %584

582:                                              ; preds = %360, %358
  %583 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  br label %584

584:                                              ; preds = %582, %580
  %.pn186 = phi { ptr, i32 } [ %583, %582 ], [ %581, %580 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #6
  br label %.critedge298

585:                                              ; preds = %361
  %586 = landingpad { ptr, i32 }
          cleanup
  br label %589

587:                                              ; preds = %365, %363
  %588 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %96) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #6
  br label %589

589:                                              ; preds = %587, %585
  %.pn188 = phi { ptr, i32 } [ %588, %587 ], [ %586, %585 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %95) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #6
  br label %.critedge298

590:                                              ; preds = %366
  %591 = landingpad { ptr, i32 }
          cleanup
  br label %594

592:                                              ; preds = %370, %368
  %593 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %100) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  br label %594

594:                                              ; preds = %592, %590
  %.pn190 = phi { ptr, i32 } [ %593, %592 ], [ %591, %590 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #6
  br label %.critedge298

595:                                              ; preds = %371
  %596 = landingpad { ptr, i32 }
          cleanup
  br label %599

597:                                              ; preds = %375, %373
  %598 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %104) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #6
  br label %599

599:                                              ; preds = %597, %595
  %.pn192 = phi { ptr, i32 } [ %598, %597 ], [ %596, %595 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %103) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #6
  br label %.critedge298

600:                                              ; preds = %376
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %604

602:                                              ; preds = %378
  %603 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  br label %604

604:                                              ; preds = %602, %600
  %.pn194 = phi { ptr, i32 } [ %603, %602 ], [ %601, %600 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #6
  br label %.critedge298

605:                                              ; preds = %380
  %606 = landingpad { ptr, i32 }
          cleanup
  br label %609

607:                                              ; preds = %383
  %608 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  br label %609

609:                                              ; preds = %607, %605
  %.pn196 = phi { ptr, i32 } [ %608, %607 ], [ %606, %605 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #6
  br label %.critedge298

610:                                              ; preds = %385
  %611 = landingpad { ptr, i32 }
          cleanup
  br label %614

612:                                              ; preds = %388
  %613 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  br label %614

614:                                              ; preds = %612, %610
  %.pn198 = phi { ptr, i32 } [ %613, %612 ], [ %611, %610 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #6
  br label %.critedge298

615:                                              ; preds = %390
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %619

617:                                              ; preds = %393
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #6
  br label %619

619:                                              ; preds = %617, %615
  %.pn200 = phi { ptr, i32 } [ %618, %617 ], [ %616, %615 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #6
  br label %.critedge298

620:                                              ; preds = %395
  %621 = landingpad { ptr, i32 }
          cleanup
  br label %624

622:                                              ; preds = %398
  %623 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #6
  br label %624

624:                                              ; preds = %622, %620
  %.pn202 = phi { ptr, i32 } [ %623, %622 ], [ %621, %620 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %114) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #6
  br label %.critedge298

625:                                              ; preds = %400
  %626 = landingpad { ptr, i32 }
          cleanup
  br label %629

627:                                              ; preds = %403
  %628 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #6
  br label %629

629:                                              ; preds = %627, %625
  %.pn204 = phi { ptr, i32 } [ %628, %627 ], [ %626, %625 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %116) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #6
  br label %.critedge298

630:                                              ; preds = %405
  %631 = landingpad { ptr, i32 }
          cleanup
  br label %634

632:                                              ; preds = %408
  %633 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #6
  br label %634

634:                                              ; preds = %632, %630
  %.pn206 = phi { ptr, i32 } [ %633, %632 ], [ %631, %630 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %118) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #6
  br label %.critedge298

635:                                              ; preds = %410
  %636 = landingpad { ptr, i32 }
          cleanup
  br label %639

637:                                              ; preds = %412
  %638 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #6
  br label %639

639:                                              ; preds = %637, %635
  %.pn208 = phi { ptr, i32 } [ %638, %637 ], [ %636, %635 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #6
  br label %.critedge298

640:                                              ; preds = %414
  %641 = landingpad { ptr, i32 }
          cleanup
  br label %644

642:                                              ; preds = %419, %417
  %643 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %124) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #6
  br label %644

644:                                              ; preds = %642, %640
  %.pn210 = phi { ptr, i32 } [ %643, %642 ], [ %641, %640 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #6
  br label %.critedge298

645:                                              ; preds = %420
  %646 = landingpad { ptr, i32 }
          cleanup
  br label %649

647:                                              ; preds = %422
  %648 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #6
  br label %649

649:                                              ; preds = %647, %645
  %.pn212 = phi { ptr, i32 } [ %648, %647 ], [ %646, %645 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %126) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %126) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #6
  br label %.critedge298

650:                                              ; preds = %425
  %651 = landingpad { ptr, i32 }
          cleanup
  br label %654

652:                                              ; preds = %426
  %653 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #6
  br label %654

654:                                              ; preds = %650, %652
  %.pn214 = phi { ptr, i32 } [ %653, %652 ], [ %651, %650 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %128) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #6
  br label %.critedge298

655:                                              ; preds = %430, %428
  %656 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge298

657:                                              ; preds = %.critedge288
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %129) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %130) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull @.str.113, ptr noundef nonnull align 1 dereferenceable(1) %130)
          to label %658 unwind label %790

658:                                              ; preds = %657
  %659 = invoke noundef i32 @_ZN3sim11ParamParser11getIntValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %129)
          to label %.critedge293.critedge unwind label %796

.critedge288.thread:                              ; preds = %424, %430
  call void @llvm.lifetime.start.p0(i64 5000, ptr nonnull %131) #6
  invoke void @_ZNSt13random_deviceC2Ev(ptr noundef nonnull align 8 dereferenceable(5000) %131)
          to label %660 unwind label %792

660:                                              ; preds = %.critedge288.thread
  %661 = invoke noundef i32 @_ZNSt13random_deviceclEv(ptr noundef nonnull align 8 dereferenceable(5000) %131)
          to label %.critedge290 unwind label %794

.critedge290:                                     ; preds = %660
  %662 = getelementptr inbounds i8, ptr %0, i64 712
  store i32 %661, ptr %662, align 8, !tbaa !42
  call void @_ZNSt13random_deviceD2Ev(ptr noundef nonnull align 8 dereferenceable(5000) %131) #6
  call void @llvm.lifetime.end.p0(i64 5000, ptr nonnull %131) #6
  br label %.critedge295

.critedge293.critedge:                            ; preds = %658
  %663 = getelementptr inbounds i8, ptr %0, i64 712
  store i32 %659, ptr %663, align 8, !tbaa !42
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %130) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #6
  br label %.critedge295

.critedge295:                                     ; preds = %.critedge290, %.critedge293.critedge
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %132) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %133) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull @.str.115, ptr noundef nonnull align 1 dereferenceable(1) %133)
          to label %664 unwind label %799

664:                                              ; preds = %.critedge295
  %665 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %132, double noundef 1.000000e-01, double noundef 0.000000e+00, double noundef 5.000000e+00)
          to label %666 unwind label %801

666:                                              ; preds = %664
  %667 = getelementptr inbounds i8, ptr %0, i64 720
  store double %665, ptr %667, align 8, !tbaa !43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %133) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %134) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %135) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull @.str.116, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %668 unwind label %804

668:                                              ; preds = %666
  %669 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %134, i1 noundef zeroext false)
          to label %670 unwind label %806

670:                                              ; preds = %668
  %671 = getelementptr inbounds i8, ptr %0, i64 728
  %672 = zext i1 %669 to i8
  store i8 %672, ptr %671, align 8, !tbaa !44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %136) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %137) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull @.str.117, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %673 unwind label %809

673:                                              ; preds = %670
  %674 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %136, double noundef 1.000000e-01, double noundef 1.000000e-02, double noundef 5.000000e-01)
          to label %675 unwind label %811

675:                                              ; preds = %673
  %676 = getelementptr inbounds i8, ptr %0, i64 736
  store double %674, ptr %676, align 8, !tbaa !45
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %137) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %138) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %139) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull @.str.118, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %677 unwind label %814

677:                                              ; preds = %675
  %678 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %138, double noundef 1.000000e+01, double noundef 2.000000e+00, double noundef 1.000000e+02)
          to label %679 unwind label %816

679:                                              ; preds = %677
  %680 = getelementptr inbounds i8, ptr %0, i64 744
  store double %678, ptr %680, align 8, !tbaa !46
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %139) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %140) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %141) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull @.str.119, ptr noundef nonnull align 1 dereferenceable(1) %141)
          to label %681 unwind label %819

681:                                              ; preds = %679
  %682 = load double, ptr %676, align 8, !tbaa !45
  %683 = load double, ptr %680, align 8, !tbaa !46
  %684 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %140, double noundef 1.000000e+00, double noundef %682, double noundef %683)
          to label %685 unwind label %821

685:                                              ; preds = %681
  %686 = getelementptr inbounds i8, ptr %0, i64 752
  store double %684, ptr %686, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %142) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %143) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull @.str.120, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %687 unwind label %824

687:                                              ; preds = %685
  %688 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %142, i1 noundef zeroext true)
          to label %689 unwind label %826

689:                                              ; preds = %687
  %690 = getelementptr inbounds i8, ptr %0, i64 760
  %691 = zext i1 %688 to i8
  store i8 %691, ptr %690, align 8, !tbaa !48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %144) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %145) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %146) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %146) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull @.str.121, ptr noundef nonnull align 1 dereferenceable(1) %146)
          to label %692 unwind label %829

692:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %147) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %148) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef nonnull @.str.122, ptr noundef nonnull align 1 dereferenceable(1) %148)
          to label %693 unwind label %831

693:                                              ; preds = %692
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %144, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 8 dereferenceable(32) %147)
          to label %694 unwind label %833

694:                                              ; preds = %693
  %695 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull align 8 dereferenceable(32) %144) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %148) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %146) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %146) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %145) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %149) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %150) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull @.str.123, ptr noundef nonnull align 1 dereferenceable(1) %150)
          to label %696 unwind label %837

696:                                              ; preds = %694
  %697 = invoke noundef signext i8 @_ZN3sim11ParamParser16getCharIfHasCharERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEc(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %149, i8 noundef signext 63)
          to label %698 unwind label %839

698:                                              ; preds = %696
  %699 = getelementptr inbounds i8, ptr %0, i64 800
  store i8 %697, ptr %699, align 8, !tbaa !49
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %150) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %151) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %152) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull @.str.124, ptr noundef nonnull align 1 dereferenceable(1) %152)
          to label %700 unwind label %842

700:                                              ; preds = %698
  %701 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %151, double noundef 5.000000e+00, double noundef 1.000000e+00, double noundef 2.500000e+01)
          to label %702 unwind label %844

702:                                              ; preds = %700
  %703 = getelementptr inbounds i8, ptr %0, i64 808
  store double %701, ptr %703, align 8, !tbaa !50
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %152) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %153) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %154) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef nonnull @.str.125, ptr noundef nonnull align 1 dereferenceable(1) %154)
          to label %704 unwind label %847

704:                                              ; preds = %702
  %705 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %153, i32 noundef 500, i32 noundef 1, i32 noundef 2000)
          to label %706 unwind label %849

706:                                              ; preds = %704
  %707 = getelementptr inbounds i8, ptr %0, i64 816
  store i32 %705, ptr %707, align 8, !tbaa !51
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %154) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %155) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %156) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull @.str.126, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %708 unwind label %852

708:                                              ; preds = %706
  %709 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %155, i1 noundef zeroext false)
          to label %710 unwind label %854

710:                                              ; preds = %708
  %711 = getelementptr inbounds i8, ptr %0, i64 820
  %712 = zext i1 %709 to i8
  store i8 %712, ptr %711, align 4, !tbaa !52
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %156) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %157) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %158) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %158) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef nonnull @.str.127, ptr noundef nonnull align 1 dereferenceable(1) %158)
          to label %713 unwind label %857

713:                                              ; preds = %710
  %714 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %157, i32 noundef 40, i32 noundef 1, i32 noundef 100)
          to label %715 unwind label %859

715:                                              ; preds = %713
  %716 = getelementptr inbounds i8, ptr %0, i64 824
  store i32 %714, ptr %716, align 8, !tbaa !53
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %158) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %158) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %159) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %160) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull @.str.128, ptr noundef nonnull align 1 dereferenceable(1) %160)
          to label %717 unwind label %862

717:                                              ; preds = %715
  %718 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %159, i1 noundef zeroext false)
          to label %719 unwind label %864

719:                                              ; preds = %717
  %720 = getelementptr inbounds i8, ptr %0, i64 828
  %721 = zext i1 %718 to i8
  store i8 %721, ptr %720, align 4, !tbaa !54
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %160) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %159) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %162) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull @.str.129, ptr noundef nonnull align 1 dereferenceable(1) %162)
          to label %722 unwind label %867

722:                                              ; preds = %719
  %723 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %161, i32 noundef 8, i32 noundef 3, i32 noundef 30)
          to label %724 unwind label %869

724:                                              ; preds = %722
  %725 = getelementptr inbounds i8, ptr %0, i64 832
  store i32 %723, ptr %725, align 8, !tbaa !55
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %163) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %164) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull @.str.130, ptr noundef nonnull align 1 dereferenceable(1) %164)
          to label %726 unwind label %872

726:                                              ; preds = %724
  %727 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %163, i32 noundef 3, i32 noundef 2, i32 noundef 10)
          to label %728 unwind label %874

728:                                              ; preds = %726
  %729 = getelementptr inbounds i8, ptr %0, i64 836
  store i32 %727, ptr %729, align 4, !tbaa !56
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %164) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %165) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %166) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull @.str.131, ptr noundef nonnull align 1 dereferenceable(1) %166)
          to label %730 unwind label %877

730:                                              ; preds = %728
  %731 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %165, i32 noundef 20, i32 noundef 1, i32 noundef 1000)
          to label %732 unwind label %879

732:                                              ; preds = %730
  %733 = getelementptr inbounds i8, ptr %0, i64 840
  store i32 %731, ptr %733, align 8, !tbaa !57
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %166) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %167) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %168) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef nonnull @.str.132, ptr noundef nonnull align 1 dereferenceable(1) %168)
          to label %734 unwind label %882

734:                                              ; preds = %732
  %735 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %167, double noundef 1.200000e-02, double noundef 6.000000e-03, double noundef 2.400000e-02)
          to label %736 unwind label %884

736:                                              ; preds = %734
  %737 = getelementptr inbounds i8, ptr %0, i64 848
  store double %735, ptr %737, align 8, !tbaa !58
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %168) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %169) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %170) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef nonnull @.str.133, ptr noundef nonnull align 1 dereferenceable(1) %170)
          to label %738 unwind label %887

738:                                              ; preds = %736
  %739 = invoke noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %169, double noundef 1.680000e-01, double noundef 8.400000e-02, double noundef 3.360000e-01)
          to label %740 unwind label %889

740:                                              ; preds = %738
  %741 = getelementptr inbounds i8, ptr %0, i64 856
  store double %739, ptr %741, align 8, !tbaa !59
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %170) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %171) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %172) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %173) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull @.str.134, ptr noundef nonnull align 1 dereferenceable(1) %173)
          to label %742 unwind label %892

742:                                              ; preds = %740
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %174) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %175) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef nonnull @.str.135, ptr noundef nonnull align 1 dereferenceable(1) %175)
          to label %743 unwind label %894

743:                                              ; preds = %742
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %171, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %744 unwind label %896

744:                                              ; preds = %743
  %745 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef nonnull align 8 dereferenceable(32) %171) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %175) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %173) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %176) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %177) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull @.str.136, ptr noundef nonnull align 1 dereferenceable(1) %177)
          to label %746 unwind label %900

746:                                              ; preds = %744
  %747 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %176, i1 noundef zeroext false)
          to label %748 unwind label %902

748:                                              ; preds = %746
  %749 = getelementptr inbounds i8, ptr %0, i64 896
  %750 = zext i1 %747 to i8
  store i8 %750, ptr %749, align 8, !tbaa !60
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %177) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %178) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %179) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull @.str.137, ptr noundef nonnull align 1 dereferenceable(1) %179)
          to label %751 unwind label %905

751:                                              ; preds = %748
  %752 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %178, i32 noundef 16, i32 noundef 1, i32 noundef 256)
          to label %753 unwind label %907

753:                                              ; preds = %751
  %754 = getelementptr inbounds i8, ptr %0, i64 900
  store i32 %752, ptr %754, align 4, !tbaa !61
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %179) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %180) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %181) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull @.str.138, ptr noundef nonnull align 1 dereferenceable(1) %181)
          to label %755 unwind label %910

755:                                              ; preds = %753
  %756 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %180, i32 noundef 16, i32 noundef 1, i32 noundef 256)
          to label %757 unwind label %912

757:                                              ; preds = %755
  %758 = getelementptr inbounds i8, ptr %0, i64 904
  store i32 %756, ptr %758, align 8, !tbaa !62
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %181) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %182) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %183) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %184) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull @.str.139, ptr noundef nonnull align 1 dereferenceable(1) %184)
          to label %759 unwind label %915

759:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %185) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %186) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %185, ptr noundef nonnull @.str.140, ptr noundef nonnull align 1 dereferenceable(1) %186)
          to label %760 unwind label %917

760:                                              ; preds = %759
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %182, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef nonnull align 8 dereferenceable(32) %185)
          to label %761 unwind label %919

761:                                              ; preds = %760
  %762 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull align 8 dereferenceable(32) %182) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %186) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %184) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %182) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %187) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %188) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull @.str.141, ptr noundef nonnull align 1 dereferenceable(1) %188)
          to label %763 unwind label %923

763:                                              ; preds = %761
  %764 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %187, i1 noundef zeroext true)
          to label %765 unwind label %925

765:                                              ; preds = %763
  %766 = getelementptr inbounds i8, ptr %0, i64 944
  %767 = zext i1 %764 to i8
  store i8 %767, ptr %766, align 8, !tbaa !63
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %188) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %187) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %189) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %190) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %191) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull @.str.142, ptr noundef nonnull align 1 dereferenceable(1) %191)
          to label %768 unwind label %928

768:                                              ; preds = %765
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %192) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %193) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull @.str.143, ptr noundef nonnull align 1 dereferenceable(1) %193)
          to label %769 unwind label %930

769:                                              ; preds = %768
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %189, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(32) %192)
          to label %770 unwind label %932

770:                                              ; preds = %769
  %771 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef nonnull align 8 dereferenceable(32) %189) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %193) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %191) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %189) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %194) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %195) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %196) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef nonnull @.str.144, ptr noundef nonnull align 1 dereferenceable(1) %196)
          to label %772 unwind label %936

772:                                              ; preds = %770
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %197) #6
  store i32 0, ptr %197, align 4, !tbaa !64
  %773 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim12MazeFileTypeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3simL24MAZE_FILE_TYPE_TO_STRINGB5cxx11E, ptr noundef nonnull align 4 dereferenceable(4) %197)
          to label %774 unwind label %938

774:                                              ; preds = %772
  invoke void @_ZN3sim11ParamParser37getStringIfHasStringAndIsMazeFileTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %194, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef nonnull align 8 dereferenceable(32) %773)
          to label %775 unwind label %938

775:                                              ; preds = %774
  %776 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef nonnull align 8 dereferenceable(32) %194) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %197) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %196) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %198) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %199) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull @.str.145, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %777 unwind label %941

777:                                              ; preds = %775
  %778 = invoke noundef zeroext i1 @_ZN3sim11ParamParser16getBoolIfHasBoolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %198, i1 noundef zeroext false)
          to label %779 unwind label %943

779:                                              ; preds = %777
  %780 = getelementptr inbounds i8, ptr %0, i64 1016
  %781 = zext i1 %778 to i8
  store i8 %781, ptr %780, align 8, !tbaa !66
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %200) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %201) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull @.str.146, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %782 unwind label %946

782:                                              ; preds = %779
  %783 = invoke noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %200, i32 noundef 0, i32 noundef 0, i32 noundef 3)
          to label %784 unwind label %948

784:                                              ; preds = %782
  %785 = getelementptr inbounds i8, ptr %0, i64 1020
  store i32 %783, ptr %785, align 4, !tbaa !67
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %202) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %203) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %204) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull @.str.147, ptr noundef nonnull align 1 dereferenceable(1) %204)
          to label %786 unwind label %951

786:                                              ; preds = %784
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %205) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %206) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull @.str.148, ptr noundef nonnull align 1 dereferenceable(1) %206)
          to label %787 unwind label %953

787:                                              ; preds = %786
  invoke void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %202, ptr noundef nonnull align 8 dereferenceable(240) %2, ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull align 8 dereferenceable(32) %205)
          to label %788 unwind label %955

788:                                              ; preds = %787
  %789 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef nonnull align 8 dereferenceable(32) %202) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %206) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #6
  call void @_ZN3sim11ParamParserD2Ev(ptr noundef nonnull align 8 dereferenceable(240) %2) #6
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %2) #6
  ret void

790:                                              ; preds = %657
  %791 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge297

792:                                              ; preds = %.critedge288.thread
  %793 = landingpad { ptr, i32 }
          cleanup
  br label %798

794:                                              ; preds = %660
  %795 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt13random_deviceD2Ev(ptr noundef nonnull align 8 dereferenceable(5000) %131) #6
  br label %798

796:                                              ; preds = %658
  %797 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #6
  br label %.critedge297

798:                                              ; preds = %792, %794
  %.pn216 = phi { ptr, i32 } [ %795, %794 ], [ %793, %792 ]
  call void @llvm.lifetime.end.p0(i64 5000, ptr nonnull %131) #6
  br label %.critedge298

.critedge297:                                     ; preds = %796, %790
  %.pn218.pn.ph = phi { ptr, i32 } [ %791, %790 ], [ %797, %796 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %130) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #6
  br label %.critedge298

799:                                              ; preds = %.critedge295
  %800 = landingpad { ptr, i32 }
          cleanup
  br label %803

801:                                              ; preds = %664
  %802 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #6
  br label %803

803:                                              ; preds = %801, %799
  %.pn221 = phi { ptr, i32 } [ %802, %801 ], [ %800, %799 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %133) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #6
  br label %.critedge298

804:                                              ; preds = %666
  %805 = landingpad { ptr, i32 }
          cleanup
  br label %808

806:                                              ; preds = %668
  %807 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #6
  br label %808

808:                                              ; preds = %806, %804
  %.pn223 = phi { ptr, i32 } [ %807, %806 ], [ %805, %804 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #6
  br label %.critedge298

809:                                              ; preds = %670
  %810 = landingpad { ptr, i32 }
          cleanup
  br label %813

811:                                              ; preds = %673
  %812 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #6
  br label %813

813:                                              ; preds = %811, %809
  %.pn225 = phi { ptr, i32 } [ %812, %811 ], [ %810, %809 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %137) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #6
  br label %.critedge298

814:                                              ; preds = %675
  %815 = landingpad { ptr, i32 }
          cleanup
  br label %818

816:                                              ; preds = %677
  %817 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #6
  br label %818

818:                                              ; preds = %816, %814
  %.pn227 = phi { ptr, i32 } [ %817, %816 ], [ %815, %814 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %139) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #6
  br label %.critedge298

819:                                              ; preds = %679
  %820 = landingpad { ptr, i32 }
          cleanup
  br label %823

821:                                              ; preds = %681
  %822 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #6
  br label %823

823:                                              ; preds = %821, %819
  %.pn229 = phi { ptr, i32 } [ %822, %821 ], [ %820, %819 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #6
  br label %.critedge298

824:                                              ; preds = %685
  %825 = landingpad { ptr, i32 }
          cleanup
  br label %828

826:                                              ; preds = %687
  %827 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #6
  br label %828

828:                                              ; preds = %826, %824
  %.pn231 = phi { ptr, i32 } [ %827, %826 ], [ %825, %824 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #6
  br label %.critedge298

829:                                              ; preds = %689
  %830 = landingpad { ptr, i32 }
          cleanup
  br label %836

831:                                              ; preds = %692
  %832 = landingpad { ptr, i32 }
          cleanup
  br label %835

833:                                              ; preds = %693
  %834 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #6
  br label %835

835:                                              ; preds = %833, %831
  %.pn233 = phi { ptr, i32 } [ %834, %833 ], [ %832, %831 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %148) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #6
  br label %836

836:                                              ; preds = %835, %829
  %.pn233.pn = phi { ptr, i32 } [ %.pn233, %835 ], [ %830, %829 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %146) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %146) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %145) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #6
  br label %.critedge298

837:                                              ; preds = %694
  %838 = landingpad { ptr, i32 }
          cleanup
  br label %841

839:                                              ; preds = %696
  %840 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #6
  br label %841

841:                                              ; preds = %839, %837
  %.pn236 = phi { ptr, i32 } [ %840, %839 ], [ %838, %837 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %150) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #6
  br label %.critedge298

842:                                              ; preds = %698
  %843 = landingpad { ptr, i32 }
          cleanup
  br label %846

844:                                              ; preds = %700
  %845 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #6
  br label %846

846:                                              ; preds = %844, %842
  %.pn238 = phi { ptr, i32 } [ %845, %844 ], [ %843, %842 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %152) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #6
  br label %.critedge298

847:                                              ; preds = %702
  %848 = landingpad { ptr, i32 }
          cleanup
  br label %851

849:                                              ; preds = %704
  %850 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #6
  br label %851

851:                                              ; preds = %849, %847
  %.pn240 = phi { ptr, i32 } [ %850, %849 ], [ %848, %847 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %154) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #6
  br label %.critedge298

852:                                              ; preds = %706
  %853 = landingpad { ptr, i32 }
          cleanup
  br label %856

854:                                              ; preds = %708
  %855 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #6
  br label %856

856:                                              ; preds = %854, %852
  %.pn242 = phi { ptr, i32 } [ %855, %854 ], [ %853, %852 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %156) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #6
  br label %.critedge298

857:                                              ; preds = %710
  %858 = landingpad { ptr, i32 }
          cleanup
  br label %861

859:                                              ; preds = %713
  %860 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #6
  br label %861

861:                                              ; preds = %859, %857
  %.pn244 = phi { ptr, i32 } [ %860, %859 ], [ %858, %857 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %158) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %158) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #6
  br label %.critedge298

862:                                              ; preds = %715
  %863 = landingpad { ptr, i32 }
          cleanup
  br label %866

864:                                              ; preds = %717
  %865 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #6
  br label %866

866:                                              ; preds = %864, %862
  %.pn246 = phi { ptr, i32 } [ %865, %864 ], [ %863, %862 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %160) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %159) #6
  br label %.critedge298

867:                                              ; preds = %719
  %868 = landingpad { ptr, i32 }
          cleanup
  br label %871

869:                                              ; preds = %722
  %870 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #6
  br label %871

871:                                              ; preds = %869, %867
  %.pn248 = phi { ptr, i32 } [ %870, %869 ], [ %868, %867 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #6
  br label %.critedge298

872:                                              ; preds = %724
  %873 = landingpad { ptr, i32 }
          cleanup
  br label %876

874:                                              ; preds = %726
  %875 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #6
  br label %876

876:                                              ; preds = %874, %872
  %.pn250 = phi { ptr, i32 } [ %875, %874 ], [ %873, %872 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %164) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #6
  br label %.critedge298

877:                                              ; preds = %728
  %878 = landingpad { ptr, i32 }
          cleanup
  br label %881

879:                                              ; preds = %730
  %880 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #6
  br label %881

881:                                              ; preds = %879, %877
  %.pn252 = phi { ptr, i32 } [ %880, %879 ], [ %878, %877 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %166) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #6
  br label %.critedge298

882:                                              ; preds = %732
  %883 = landingpad { ptr, i32 }
          cleanup
  br label %886

884:                                              ; preds = %734
  %885 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  br label %886

886:                                              ; preds = %884, %882
  %.pn254 = phi { ptr, i32 } [ %885, %884 ], [ %883, %882 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %168) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #6
  br label %.critedge298

887:                                              ; preds = %736
  %888 = landingpad { ptr, i32 }
          cleanup
  br label %891

889:                                              ; preds = %738
  %890 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #6
  br label %891

891:                                              ; preds = %889, %887
  %.pn256 = phi { ptr, i32 } [ %890, %889 ], [ %888, %887 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %170) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #6
  br label %.critedge298

892:                                              ; preds = %740
  %893 = landingpad { ptr, i32 }
          cleanup
  br label %899

894:                                              ; preds = %742
  %895 = landingpad { ptr, i32 }
          cleanup
  br label %898

896:                                              ; preds = %743
  %897 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #6
  br label %898

898:                                              ; preds = %896, %894
  %.pn258 = phi { ptr, i32 } [ %897, %896 ], [ %895, %894 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %175) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %175) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %174) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #6
  br label %899

899:                                              ; preds = %898, %892
  %.pn258.pn = phi { ptr, i32 } [ %.pn258, %898 ], [ %893, %892 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %173) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %172) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #6
  br label %.critedge298

900:                                              ; preds = %744
  %901 = landingpad { ptr, i32 }
          cleanup
  br label %904

902:                                              ; preds = %746
  %903 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #6
  br label %904

904:                                              ; preds = %902, %900
  %.pn261 = phi { ptr, i32 } [ %903, %902 ], [ %901, %900 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %177) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #6
  br label %.critedge298

905:                                              ; preds = %748
  %906 = landingpad { ptr, i32 }
          cleanup
  br label %909

907:                                              ; preds = %751
  %908 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #6
  br label %909

909:                                              ; preds = %907, %905
  %.pn263 = phi { ptr, i32 } [ %908, %907 ], [ %906, %905 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %179) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #6
  br label %.critedge298

910:                                              ; preds = %753
  %911 = landingpad { ptr, i32 }
          cleanup
  br label %914

912:                                              ; preds = %755
  %913 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #6
  br label %914

914:                                              ; preds = %912, %910
  %.pn265 = phi { ptr, i32 } [ %913, %912 ], [ %911, %910 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %181) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #6
  br label %.critedge298

915:                                              ; preds = %757
  %916 = landingpad { ptr, i32 }
          cleanup
  br label %922

917:                                              ; preds = %759
  %918 = landingpad { ptr, i32 }
          cleanup
  br label %921

919:                                              ; preds = %760
  %920 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #6
  br label %921

921:                                              ; preds = %919, %917
  %.pn267 = phi { ptr, i32 } [ %920, %919 ], [ %918, %917 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %186) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #6
  br label %922

922:                                              ; preds = %921, %915
  %.pn267.pn = phi { ptr, i32 } [ %.pn267, %921 ], [ %916, %915 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %184) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %183) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %182) #6
  br label %.critedge298

923:                                              ; preds = %761
  %924 = landingpad { ptr, i32 }
          cleanup
  br label %927

925:                                              ; preds = %763
  %926 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #6
  br label %927

927:                                              ; preds = %925, %923
  %.pn270 = phi { ptr, i32 } [ %926, %925 ], [ %924, %923 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %188) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %187) #6
  br label %.critedge298

928:                                              ; preds = %765
  %929 = landingpad { ptr, i32 }
          cleanup
  br label %935

930:                                              ; preds = %768
  %931 = landingpad { ptr, i32 }
          cleanup
  br label %934

932:                                              ; preds = %769
  %933 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #6
  br label %934

934:                                              ; preds = %932, %930
  %.pn272 = phi { ptr, i32 } [ %933, %932 ], [ %931, %930 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %193) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #6
  br label %935

935:                                              ; preds = %934, %928
  %.pn272.pn = phi { ptr, i32 } [ %.pn272, %934 ], [ %929, %928 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %191) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %191) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %189) #6
  br label %.critedge298

936:                                              ; preds = %770
  %937 = landingpad { ptr, i32 }
          cleanup
  br label %940

938:                                              ; preds = %774, %772
  %939 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %197) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #6
  br label %940

940:                                              ; preds = %938, %936
  %.pn275 = phi { ptr, i32 } [ %939, %938 ], [ %937, %936 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %196) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #6
  br label %.critedge298

941:                                              ; preds = %775
  %942 = landingpad { ptr, i32 }
          cleanup
  br label %945

943:                                              ; preds = %777
  %944 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #6
  br label %945

945:                                              ; preds = %943, %941
  %.pn277 = phi { ptr, i32 } [ %944, %943 ], [ %942, %941 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #6
  br label %.critedge298

946:                                              ; preds = %779
  %947 = landingpad { ptr, i32 }
          cleanup
  br label %950

948:                                              ; preds = %782
  %949 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #6
  br label %950

950:                                              ; preds = %948, %946
  %.pn279 = phi { ptr, i32 } [ %949, %948 ], [ %947, %946 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #6
  br label %.critedge298

951:                                              ; preds = %784
  %952 = landingpad { ptr, i32 }
          cleanup
  br label %958

953:                                              ; preds = %786
  %954 = landingpad { ptr, i32 }
          cleanup
  br label %957

955:                                              ; preds = %787
  %956 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #6
  br label %957

957:                                              ; preds = %955, %953
  %.pn281 = phi { ptr, i32 } [ %956, %955 ], [ %954, %953 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %206) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #6
  br label %958

958:                                              ; preds = %957, %951
  %.pn281.pn = phi { ptr, i32 } [ %.pn281, %957 ], [ %952, %951 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #6
  br label %.critedge298

.critedge298:                                     ; preds = %798, %649, %655, %803, %808, %813, %818, %823, %828, %836, %841, %846, %851, %856, %861, %866, %871, %876, %881, %886, %891, %899, %904, %909, %914, %922, %927, %935, %940, %945, %950, %958, %654, %.critedge297, %644, %639, %634, %629, %624, %619, %614, %609, %604, %599, %594, %589, %584, %579, %574, %569, %564, %559, %554, %549, %544, %539, %531, %526, %521, %516, %511, %506, %501, %496, %491, %486, %481, %476, %471, %466, %458, %453, %448, %443
  %.pn281.pn.pn.pn = phi { ptr, i32 } [ %.pn210, %644 ], [ %.pn208, %639 ], [ %.pn206, %634 ], [ %.pn204, %629 ], [ %.pn202, %624 ], [ %.pn200, %619 ], [ %.pn198, %614 ], [ %.pn196, %609 ], [ %.pn194, %604 ], [ %.pn192, %599 ], [ %.pn190, %594 ], [ %.pn188, %589 ], [ %.pn186, %584 ], [ %.pn184, %579 ], [ %.pn182, %574 ], [ %.pn180, %569 ], [ %.pn178, %564 ], [ %.pn176, %559 ], [ %.pn174, %554 ], [ %.pn172, %549 ], [ %.pn170, %544 ], [ %.pn167.pn, %539 ], [ %.pn165, %531 ], [ %.pn163, %526 ], [ %.pn161, %521 ], [ %.pn159, %516 ], [ %.pn157, %511 ], [ %.pn155, %506 ], [ %.pn153, %501 ], [ %.pn151, %496 ], [ %.pn149, %491 ], [ %.pn147, %486 ], [ %.pn145, %481 ], [ %.pn143, %476 ], [ %.pn141, %471 ], [ %.pn138.pn, %466 ], [ %.pn136, %458 ], [ %.pn134, %453 ], [ %.pn132, %448 ], [ %.pn130, %443 ], [ %.pn281.pn, %958 ], [ %.pn279, %950 ], [ %.pn277, %945 ], [ %.pn275, %940 ], [ %.pn272.pn, %935 ], [ %.pn270, %927 ], [ %.pn267.pn, %922 ], [ %.pn265, %914 ], [ %.pn263, %909 ], [ %.pn261, %904 ], [ %.pn258.pn, %899 ], [ %.pn256, %891 ], [ %.pn254, %886 ], [ %.pn252, %881 ], [ %.pn250, %876 ], [ %.pn248, %871 ], [ %.pn246, %866 ], [ %.pn244, %861 ], [ %.pn242, %856 ], [ %.pn240, %851 ], [ %.pn238, %846 ], [ %.pn236, %841 ], [ %.pn233.pn, %836 ], [ %.pn231, %828 ], [ %.pn229, %823 ], [ %.pn227, %818 ], [ %.pn225, %813 ], [ %.pn223, %808 ], [ %.pn221, %803 ], [ %.pn218.pn.ph, %.critedge297 ], [ %656, %655 ], [ %.pn214, %654 ], [ %.pn212, %649 ], [ %.pn216, %798 ]
  call void @_ZN3sim11ParamParserD2Ev(ptr noundef nonnull align 8 dereferenceable(240) %2) #6
  br label %959

959:                                              ; preds = %.critedge298, %438
  %.pn281.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn281.pn.pn.pn, %.critedge298 ], [ %.pn.pn, %438 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %2) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #6
  resume { ptr, i32 } %.pn281.pn.pn.pn.pn
}

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

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

declare void @_ZN3sim9Directory15getResDirectoryB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8) local_unnamed_addr #4

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

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

declare noundef i32 @_ZN3sim11ParamParser28getIntIfHasIntAndNotLessThanERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) local_unnamed_addr #4

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

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

declare void @_ZN3sim11ParamParser35getStringIfHasStringAndIsLayoutTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim10LayoutTypeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

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

declare noundef i32 @_ZN3sim11ParamParser24getIntIfHasIntAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiii(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN3sim11ParamParser20getStringIfHasStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

declare noundef double @_ZN3sim11ParamParser30getDoubleIfHasDoubleAndInRangeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), double noundef, double noundef, double noundef) local_unnamed_addr #4

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

declare void @_ZN3sim11ParamParser30getStringIfHasStringAndIsColorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim5ColorENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

declare void @_ZN3sim11ParamParser42getStringIfHasStringAndIsTileTextAlignmentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim17TileTextAlignmentENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

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

declare noundef ptr @_ZN3sim1LEv() local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2el6Logger4warnIA118_cEEvRKT_(ptr noundef nonnull align 8 dereferenceable(728), ptr noundef nonnull align 1 dereferenceable(118)) local_unnamed_addr #3 align 2

declare noundef i32 @_ZN3sim11ParamParser11getIntValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNSt13random_deviceclEv(ptr noundef nonnull align 8 dereferenceable(5000)) local_unnamed_addr #1 align 2

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

declare noundef signext i8 @_ZN3sim11ParamParser16getCharIfHasCharERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEc(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) local_unnamed_addr #4

declare void @_ZN3sim11ParamParser37getStringIfHasStringAndIsMazeFileTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt3mapIN3sim12MazeFileTypeENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE2atERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN3sim5ParamE", !7, i64 0, !7, i64 4, !10, i64 8, !7, i64 40, !10, i64 48, !7, i64 80, !7, i64 84, !7, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !15, i64 120, !7, i64 124, !15, i64 128, !10, i64 136, !10, i64 168, !10, i64 200, !10, i64 232, !10, i64 264, !14, i64 296, !10, i64 304, !10, i64 336, !10, i64 368, !10, i64 400, !10, i64 432, !10, i64 464, !10, i64 496, !10, i64 528, !10, i64 560, !10, i64 592, !10, i64 624, !15, i64 656, !15, i64 657, !15, i64 658, !15, i64 659, !15, i64 660, !15, i64 661, !14, i64 664, !15, i64 672, !10, i64 680, !7, i64 712, !14, i64 720, !15, i64 728, !14, i64 736, !14, i64 744, !14, i64 752, !15, i64 760, !10, i64 768, !8, i64 800, !14, i64 808, !7, i64 816, !15, i64 820, !7, i64 824, !15, i64 828, !7, i64 832, !7, i64 836, !7, i64 840, !14, i64 848, !14, i64 856, !10, i64 864, !15, i64 896, !7, i64 900, !7, i64 904, !10, i64 912, !15, i64 944, !10, i64 952, !10, i64 984, !15, i64 1016, !7, i64 1020, !10, i64 1024}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !11, i64 0, !13, i64 8, !8, i64 16}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!12 = !{!"any pointer", !8, i64 0}
!13 = !{!"long", !8, i64 0}
!14 = !{!"double", !8, i64 0}
!15 = !{!"bool", !8, i64 0}
!16 = !{!6, !7, i64 4}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTSN3sim10LayoutTypeE", !8, i64 0}
!19 = !{!6, !7, i64 40}
!20 = !{!6, !7, i64 80}
!21 = !{!6, !7, i64 84}
!22 = !{!6, !7, i64 88}
!23 = !{!6, !14, i64 96}
!24 = !{!6, !14, i64 104}
!25 = !{!6, !14, i64 112}
!26 = !{!6, !15, i64 120}
!27 = !{!6, !7, i64 124}
!28 = !{!6, !15, i64 128}
!29 = !{!30, !30, i64 0}
!30 = !{!"_ZTSN3sim5ColorE", !8, i64 0}
!31 = !{!6, !14, i64 296}
!32 = !{!33, !33, i64 0}
!33 = !{!"_ZTSN3sim17TileTextAlignmentE", !8, i64 0}
!34 = !{!6, !15, i64 656}
!35 = !{!6, !15, i64 657}
!36 = !{!6, !15, i64 658}
!37 = !{!6, !15, i64 659}
!38 = !{!6, !15, i64 660}
!39 = !{!6, !15, i64 661}
!40 = !{!6, !14, i64 664}
!41 = !{!6, !15, i64 672}
!42 = !{!6, !7, i64 712}
!43 = !{!6, !14, i64 720}
!44 = !{!6, !15, i64 728}
!45 = !{!6, !14, i64 736}
!46 = !{!6, !14, i64 744}
!47 = !{!6, !14, i64 752}
!48 = !{!6, !15, i64 760}
!49 = !{!6, !8, i64 800}
!50 = !{!6, !14, i64 808}
!51 = !{!6, !7, i64 816}
!52 = !{!6, !15, i64 820}
!53 = !{!6, !7, i64 824}
!54 = !{!6, !15, i64 828}
!55 = !{!6, !7, i64 832}
!56 = !{!6, !7, i64 836}
!57 = !{!6, !7, i64 840}
!58 = !{!6, !14, i64 848}
!59 = !{!6, !14, i64 856}
!60 = !{!6, !15, i64 896}
!61 = !{!6, !7, i64 900}
!62 = !{!6, !7, i64 904}
!63 = !{!6, !15, i64 944}
!64 = !{!65, !65, i64 0}
!65 = !{!"_ZTSN3sim12MazeFileTypeE", !8, i64 0}
!66 = !{!6, !15, i64 1016}
!67 = !{!6, !7, i64 1020}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,SROAPass,SimplifyCFGPass,TailCallElimPass