; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow/polygon/polygon_calcR.ll (ZN7Polygon24calcR_waterWithOilLayersEd)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__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.5" = type { i8 }
%class.ElemModel = type { ptr, double, double, ptr, ptr, double, ptr, i8, i8, i8, i8, i32, double, double, double, double, double, double, double, %"struct.std::pair", %"struct.std::pair" }
%"struct.std::pair" = type { double, double }
%class.VoidElem = type { %class.ElemModel, double, double, double, double }
%class.Polygon = type { %class.VoidElem, i32, %"class.std::vector", ptr, ptr, i16, i8, double }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.LayerApex = type { %class.Apex, i32, ptr, double, ptr, double }
%class.Apex = type { ptr, i8, double, double, ptr, i32, double, double, double, double, i8, i8, i8, i8, %"struct.std::pair.24" }
%"struct.std::pair.24" = type { i32, double }
%class.CornerApex = type { %class.Apex, ptr, double, double, double, ptr }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZN9ElemModel2PIE = external constant double, align 8
@__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd = external hidden unnamed_addr constant [25 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [19 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984)) #1 align 2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7Polygon24calcR_waterWithOilLayersEd(ptr noundef nonnull align 8 dereferenceable(248) %0, double noundef %1) #1 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca double, align 8
  %5 = alloca double, align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca double, align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca i32, align 4
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca i1, align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca i1, align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca i1, align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca i1, align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca i1, align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca i1, align 1
  %31 = alloca %"class.std::allocator.5", align 1
  %32 = alloca i1, align 1
  %33 = alloca i1, align 1
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca i1, align 1
  %40 = alloca %"class.std::allocator.5", align 1
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca i1, align 1
  %44 = alloca i1, align 1
  %45 = alloca i1, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca i1, align 1
  %48 = alloca %"class.std::allocator.5", align 1
  %49 = alloca i1, align 1
  %50 = alloca i1, align 1
  %51 = alloca i1, align 1
  %52 = alloca i1, align 1
  %53 = alloca i1, align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca i1, align 1
  %56 = alloca i32, align 4
  %57 = alloca i1, align 1
  %58 = alloca i1, align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca i1, align 1
  %62 = alloca %"class.std::allocator.5", align 1
  %63 = alloca i1, align 1
  %64 = alloca i1, align 1
  %65 = alloca i1, align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca i1, align 1
  %68 = alloca %"class.std::allocator.5", align 1
  %69 = alloca i1, align 1
  %70 = alloca i1, align 1
  %71 = alloca i1, align 1
  %72 = alloca i1, align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca i1, align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca i1, align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca i1, align 1
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca i1, align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca i1, align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca i1, align 1
  %86 = alloca %"class.std::allocator.5", align 1
  %87 = alloca i1, align 1
  %88 = alloca i1, align 1
  %89 = alloca i1, align 1
  %90 = alloca i1, align 1
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca i1, align 1
  %93 = alloca %"class.std::allocator.5", align 1
  %94 = alloca i1, align 1
  %95 = alloca i1, align 1
  %96 = alloca i1, align 1
  %97 = alloca i1, align 1
  %98 = alloca i1, align 1
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca i1, align 1
  %101 = alloca %"class.std::allocator.5", align 1
  %102 = alloca i1, align 1
  %103 = alloca i1, align 1
  %104 = alloca i1, align 1
  %105 = alloca i1, align 1
  %106 = alloca i1, align 1
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca i1, align 1
  %109 = alloca i32, align 4
  %110 = alloca i1, align 1
  %111 = alloca i1, align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca i1, align 1
  %115 = alloca %"class.std::allocator.5", align 1
  %116 = alloca i1, align 1
  %117 = alloca i1, align 1
  %118 = alloca i1, align 1
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca i1, align 1
  %121 = alloca %"class.std::allocator.5", align 1
  %122 = alloca i1, align 1
  %123 = alloca i1, align 1
  %124 = alloca i1, align 1
  %125 = alloca i1, align 1
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca i1, align 1
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca i1, align 1
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca i1, align 1
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca i1, align 1
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca i1, align 1
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca i1, align 1
  %139 = alloca %"class.std::allocator.5", align 1
  %140 = alloca i1, align 1
  %141 = alloca i1, align 1
  %142 = alloca i1, align 1
  %143 = alloca i1, align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca i1, align 1
  %146 = alloca %"class.std::allocator.5", align 1
  %147 = alloca i1, align 1
  %148 = alloca i1, align 1
  %149 = alloca i1, align 1
  %150 = alloca i1, align 1
  %151 = alloca i1, align 1
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca i1, align 1
  %154 = alloca %"class.std::allocator.5", align 1
  %155 = alloca i1, align 1
  %156 = alloca i1, align 1
  %157 = alloca i1, align 1
  %158 = alloca i1, align 1
  %159 = alloca i1, align 1
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca i1, align 1
  %162 = alloca i32, align 4
  %163 = alloca i1, align 1
  %164 = alloca i1, align 1
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca i1, align 1
  %168 = alloca %"class.std::allocator.5", align 1
  %169 = alloca i1, align 1
  %170 = alloca i1, align 1
  %171 = alloca i1, align 1
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca i1, align 1
  %174 = alloca %"class.std::allocator.5", align 1
  %175 = alloca i1, align 1
  %176 = alloca i1, align 1
  %177 = alloca i1, align 1
  %178 = alloca i1, align 1
  %179 = alloca double, align 8
  %180 = alloca double, align 8
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca i1, align 1
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca i1, align 1
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca i1, align 1
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca i1, align 1
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca i1, align 1
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca i1, align 1
  %194 = alloca %"class.std::allocator.5", align 1
  %195 = alloca i1, align 1
  %196 = alloca i1, align 1
  %197 = alloca i1, align 1
  %198 = alloca i1, align 1
  %199 = alloca %"class.std::__cxx11::basic_string", align 8
  %200 = alloca i1, align 1
  %201 = alloca %"class.std::allocator.5", align 1
  %202 = alloca i1, align 1
  %203 = alloca i1, align 1
  %204 = alloca i1, align 1
  %205 = alloca i1, align 1
  %206 = alloca i1, align 1
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca i1, align 1
  %209 = alloca %"class.std::allocator.5", align 1
  %210 = alloca i1, align 1
  %211 = alloca i1, align 1
  %212 = alloca i1, align 1
  %213 = alloca i1, align 1
  %214 = alloca i1, align 1
  %215 = alloca %"class.std::__cxx11::basic_string", align 8
  %216 = alloca i1, align 1
  %217 = alloca i32, align 4
  %218 = alloca i1, align 1
  %219 = alloca i1, align 1
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca i1, align 1
  %223 = alloca %"class.std::allocator.5", align 1
  %224 = alloca i1, align 1
  %225 = alloca i1, align 1
  %226 = alloca i1, align 1
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca i1, align 1
  %229 = alloca %"class.std::allocator.5", align 1
  %230 = alloca i1, align 1
  %231 = alloca i1, align 1
  %232 = alloca i1, align 1
  %233 = alloca i1, align 1
  %234 = alloca double, align 8
  %235 = alloca double, align 8
  %236 = alloca double, align 8
  %237 = alloca double, align 8
  %238 = alloca %"class.std::__cxx11::basic_string", align 8
  %239 = alloca %"class.std::__cxx11::basic_string", align 8
  %240 = alloca i1, align 1
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca i1, align 1
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca i1, align 1
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca i1, align 1
  %247 = alloca %"class.std::__cxx11::basic_string", align 8
  %248 = alloca i1, align 1
  %249 = alloca %"class.std::__cxx11::basic_string", align 8
  %250 = alloca i1, align 1
  %251 = alloca %"class.std::allocator.5", align 1
  %252 = alloca i1, align 1
  %253 = alloca i1, align 1
  %254 = alloca i1, align 1
  %255 = alloca i1, align 1
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca i1, align 1
  %258 = alloca %"class.std::allocator.5", align 1
  %259 = alloca i1, align 1
  %260 = alloca i1, align 1
  %261 = alloca i1, align 1
  %262 = alloca i1, align 1
  %263 = alloca i1, align 1
  %264 = alloca %"class.std::__cxx11::basic_string", align 8
  %265 = alloca i1, align 1
  %266 = alloca %"class.std::allocator.5", align 1
  %267 = alloca i1, align 1
  %268 = alloca i1, align 1
  %269 = alloca i1, align 1
  %270 = alloca i1, align 1
  %271 = alloca i1, align 1
  %272 = alloca %"class.std::__cxx11::basic_string", align 8
  %273 = alloca i1, align 1
  %274 = alloca i32, align 4
  %275 = alloca i1, align 1
  %276 = alloca i1, align 1
  %277 = alloca %"class.std::__cxx11::basic_string", align 8
  %278 = alloca %"class.std::__cxx11::basic_string", align 8
  %279 = alloca i1, align 1
  %280 = alloca %"class.std::allocator.5", align 1
  %281 = alloca i1, align 1
  %282 = alloca i1, align 1
  %283 = alloca i1, align 1
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca i1, align 1
  %286 = alloca %"class.std::allocator.5", align 1
  %287 = alloca i1, align 1
  %288 = alloca i1, align 1
  %289 = alloca i1, align 1
  %290 = alloca i1, align 1
  %291 = alloca double, align 8
  %292 = alloca double, align 8
  %293 = alloca double, align 8
  %294 = alloca double, align 8
  %295 = alloca double, align 8
  %296 = alloca %"class.std::__cxx11::basic_string", align 8
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca i1, align 1
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca i1, align 1
  %301 = alloca %"class.std::__cxx11::basic_string", align 8
  %302 = alloca i1, align 1
  %303 = alloca %"class.std::__cxx11::basic_string", align 8
  %304 = alloca i1, align 1
  %305 = alloca %"class.std::__cxx11::basic_string", align 8
  %306 = alloca i1, align 1
  %307 = alloca %"class.std::__cxx11::basic_string", align 8
  %308 = alloca i1, align 1
  %309 = alloca %"class.std::allocator.5", align 1
  %310 = alloca i1, align 1
  %311 = alloca i1, align 1
  %312 = alloca i1, align 1
  %313 = alloca i1, align 1
  %314 = alloca %"class.std::__cxx11::basic_string", align 8
  %315 = alloca i1, align 1
  %316 = alloca %"class.std::allocator.5", align 1
  %317 = alloca i1, align 1
  %318 = alloca i1, align 1
  %319 = alloca i1, align 1
  %320 = alloca i1, align 1
  %321 = alloca i1, align 1
  %322 = alloca %"class.std::__cxx11::basic_string", align 8
  %323 = alloca i1, align 1
  %324 = alloca %"class.std::allocator.5", align 1
  %325 = alloca i1, align 1
  %326 = alloca i1, align 1
  %327 = alloca i1, align 1
  %328 = alloca i1, align 1
  %329 = alloca i1, align 1
  %330 = alloca %"class.std::__cxx11::basic_string", align 8
  %331 = alloca i1, align 1
  %332 = alloca i32, align 4
  %333 = alloca i1, align 1
  %334 = alloca i1, align 1
  %335 = alloca %"class.std::__cxx11::basic_string", align 8
  %336 = alloca %"class.std::__cxx11::basic_string", align 8
  %337 = alloca i1, align 1
  %338 = alloca %"class.std::allocator.5", align 1
  %339 = alloca i1, align 1
  %340 = alloca i1, align 1
  %341 = alloca i1, align 1
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca i1, align 1
  %344 = alloca %"class.std::allocator.5", align 1
  %345 = alloca i1, align 1
  %346 = alloca i1, align 1
  %347 = alloca i1, align 1
  %348 = alloca i1, align 1
  %349 = alloca double, align 8
  %350 = alloca double, align 8
  %351 = alloca %"class.std::__cxx11::basic_string", align 8
  %352 = alloca %"class.std::__cxx11::basic_string", align 8
  %353 = alloca i1, align 1
  %354 = alloca %"class.std::__cxx11::basic_string", align 8
  %355 = alloca i1, align 1
  %356 = alloca %"class.std::__cxx11::basic_string", align 8
  %357 = alloca i1, align 1
  %358 = alloca %"class.std::__cxx11::basic_string", align 8
  %359 = alloca i1, align 1
  %360 = alloca %"class.std::__cxx11::basic_string", align 8
  %361 = alloca i1, align 1
  %362 = alloca %"class.std::__cxx11::basic_string", align 8
  %363 = alloca i1, align 1
  %364 = alloca %"class.std::allocator.5", align 1
  %365 = alloca i1, align 1
  %366 = alloca i1, align 1
  %367 = alloca i1, align 1
  %368 = alloca i1, align 1
  %369 = alloca %"class.std::__cxx11::basic_string", align 8
  %370 = alloca i1, align 1
  %371 = alloca %"class.std::allocator.5", align 1
  %372 = alloca i1, align 1
  %373 = alloca i1, align 1
  %374 = alloca i1, align 1
  %375 = alloca i1, align 1
  %376 = alloca i1, align 1
  %377 = alloca %"class.std::__cxx11::basic_string", align 8
  %378 = alloca i1, align 1
  %379 = alloca %"class.std::allocator.5", align 1
  %380 = alloca i1, align 1
  %381 = alloca i1, align 1
  %382 = alloca i1, align 1
  %383 = alloca i1, align 1
  %384 = alloca i1, align 1
  %385 = alloca %"class.std::__cxx11::basic_string", align 8
  %386 = alloca i1, align 1
  %387 = alloca i32, align 4
  %388 = alloca i1, align 1
  %389 = alloca i1, align 1
  %390 = alloca %"class.std::__cxx11::basic_string", align 8
  %391 = alloca %"class.std::__cxx11::basic_string", align 8
  %392 = alloca i1, align 1
  %393 = alloca %"class.std::allocator.5", align 1
  %394 = alloca i1, align 1
  %395 = alloca i1, align 1
  %396 = alloca i1, align 1
  %397 = alloca %"class.std::__cxx11::basic_string", align 8
  %398 = alloca i1, align 1
  %399 = alloca %"class.std::allocator.5", align 1
  %400 = alloca i1, align 1
  %401 = alloca i1, align 1
  %402 = alloca i1, align 1
  %403 = alloca i1, align 1
  %404 = alloca double, align 8
  %405 = alloca double, align 8
  %406 = alloca %"class.std::__cxx11::basic_string", align 8
  %407 = alloca %"class.std::__cxx11::basic_string", align 8
  %408 = alloca i1, align 1
  %409 = alloca %"class.std::__cxx11::basic_string", align 8
  %410 = alloca i1, align 1
  %411 = alloca %"class.std::__cxx11::basic_string", align 8
  %412 = alloca i1, align 1
  %413 = alloca %"class.std::__cxx11::basic_string", align 8
  %414 = alloca i1, align 1
  %415 = alloca %"class.std::__cxx11::basic_string", align 8
  %416 = alloca i1, align 1
  %417 = alloca %"class.std::__cxx11::basic_string", align 8
  %418 = alloca i1, align 1
  %419 = alloca %"class.std::allocator.5", align 1
  %420 = alloca i1, align 1
  %421 = alloca i1, align 1
  %422 = alloca i1, align 1
  %423 = alloca i1, align 1
  %424 = alloca %"class.std::__cxx11::basic_string", align 8
  %425 = alloca i1, align 1
  %426 = alloca %"class.std::allocator.5", align 1
  %427 = alloca i1, align 1
  %428 = alloca i1, align 1
  %429 = alloca i1, align 1
  %430 = alloca i1, align 1
  %431 = alloca i1, align 1
  %432 = alloca %"class.std::__cxx11::basic_string", align 8
  %433 = alloca i1, align 1
  %434 = alloca %"class.std::allocator.5", align 1
  %435 = alloca i1, align 1
  %436 = alloca i1, align 1
  %437 = alloca i1, align 1
  %438 = alloca i1, align 1
  %439 = alloca i1, align 1
  %440 = alloca %"class.std::__cxx11::basic_string", align 8
  %441 = alloca i1, align 1
  %442 = alloca i32, align 4
  %443 = alloca i1, align 1
  %444 = alloca i1, align 1
  %445 = alloca %"class.std::__cxx11::basic_string", align 8
  %446 = alloca %"class.std::__cxx11::basic_string", align 8
  %447 = alloca i1, align 1
  %448 = alloca %"class.std::allocator.5", align 1
  %449 = alloca i1, align 1
  %450 = alloca i1, align 1
  %451 = alloca i1, align 1
  %452 = alloca %"class.std::__cxx11::basic_string", align 8
  %453 = alloca i1, align 1
  %454 = alloca %"class.std::allocator.5", align 1
  %455 = alloca i1, align 1
  %456 = alloca i1, align 1
  %457 = alloca i1, align 1
  %458 = alloca i1, align 1
  %459 = alloca double, align 8
  %460 = alloca double, align 8
  %461 = alloca %"class.std::__cxx11::basic_string", align 8
  %462 = alloca %"class.std::__cxx11::basic_string", align 8
  %463 = alloca i1, align 1
  %464 = alloca %"class.std::__cxx11::basic_string", align 8
  %465 = alloca i1, align 1
  %466 = alloca %"class.std::__cxx11::basic_string", align 8
  %467 = alloca i1, align 1
  %468 = alloca %"class.std::__cxx11::basic_string", align 8
  %469 = alloca i1, align 1
  %470 = alloca %"class.std::__cxx11::basic_string", align 8
  %471 = alloca i1, align 1
  %472 = alloca %"class.std::__cxx11::basic_string", align 8
  %473 = alloca i1, align 1
  %474 = alloca %"class.std::allocator.5", align 1
  %475 = alloca i1, align 1
  %476 = alloca i1, align 1
  %477 = alloca i1, align 1
  %478 = alloca i1, align 1
  %479 = alloca %"class.std::__cxx11::basic_string", align 8
  %480 = alloca i1, align 1
  %481 = alloca %"class.std::allocator.5", align 1
  %482 = alloca i1, align 1
  %483 = alloca i1, align 1
  %484 = alloca i1, align 1
  %485 = alloca i1, align 1
  %486 = alloca i1, align 1
  %487 = alloca %"class.std::__cxx11::basic_string", align 8
  %488 = alloca i1, align 1
  %489 = alloca %"class.std::allocator.5", align 1
  %490 = alloca i1, align 1
  %491 = alloca i1, align 1
  %492 = alloca i1, align 1
  %493 = alloca i1, align 1
  %494 = alloca i1, align 1
  %495 = alloca %"class.std::__cxx11::basic_string", align 8
  %496 = alloca i1, align 1
  %497 = alloca i32, align 4
  %498 = alloca i1, align 1
  %499 = alloca i1, align 1
  %500 = alloca %"class.std::__cxx11::basic_string", align 8
  %501 = alloca %"class.std::__cxx11::basic_string", align 8
  %502 = alloca i1, align 1
  %503 = alloca %"class.std::allocator.5", align 1
  %504 = alloca i1, align 1
  %505 = alloca i1, align 1
  %506 = alloca i1, align 1
  %507 = alloca %"class.std::__cxx11::basic_string", align 8
  %508 = alloca i1, align 1
  %509 = alloca %"class.std::allocator.5", align 1
  %510 = alloca i1, align 1
  %511 = alloca i1, align 1
  %512 = alloca i1, align 1
  %513 = alloca i1, align 1
  store ptr %0, ptr %3, align 8, !tbaa !5
  store double %1, ptr %4, align 8, !tbaa !9
  %514 = load ptr, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  store double 0.000000e+00, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  store double 0.000000e+00, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  store double 0.000000e+00, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  store double 0.000000e+00, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  store double 0.000000e+00, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  store double 0.000000e+00, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  store double 0.000000e+00, ptr %11, align 8, !tbaa !9
  %515 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 4
  %516 = load ptr, ptr %515, align 8, !tbaa !11
  %517 = call noundef ptr @_ZNK10CommonData9injectantEv(ptr noundef nonnull align 8 dereferenceable(1972) %516)
  %518 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 4
  %519 = load ptr, ptr %518, align 8, !tbaa !11
  %520 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %519)
  %521 = icmp eq ptr %517, %520
  br i1 %521, label %522, label %525

522:                                              ; preds = %2
  %523 = getelementptr inbounds %class.VoidElem, ptr %514, i32 0, i32 3
  %524 = load double, ptr %523, align 8, !tbaa !16
  store double %524, ptr %5, align 8, !tbaa !9
  br label %528

525:                                              ; preds = %2
  %526 = getelementptr inbounds %class.VoidElem, ptr %514, i32 0, i32 4
  %527 = load double, ptr %526, align 8, !tbaa !18
  store double %527, ptr %5, align 8, !tbaa !9
  br label %528

528:                                              ; preds = %525, %522
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  %529 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 5
  %530 = load double, ptr %529, align 8, !tbaa !19
  %531 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %532 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %531, i64 noundef 0) #8
  %533 = load double, ptr %532, align 8, !tbaa !9
  %534 = call double @tan(double noundef %533) #8
  %535 = fdiv double 1.000000e+00, %534
  %536 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %537 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %536, i64 noundef 1) #8
  %538 = load double, ptr %537, align 8, !tbaa !9
  %539 = call double @tan(double noundef %538) #8
  %540 = fdiv double 1.000000e+00, %539
  %541 = fadd double %535, %540
  %542 = fmul double %530, %541
  store double %542, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  store double 0.000000e+00, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  store double 0.000000e+00, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  store i32 0, ptr %15, align 4, !tbaa !20
  br label %543

543:                                              ; preds = %2836, %528
  %544 = load i32, ptr %15, align 4, !tbaa !20
  %545 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 1
  %546 = load i32, ptr %545, align 8, !tbaa !21
  %547 = icmp slt i32 %544, %546
  br i1 %547, label %549, label %548

548:                                              ; preds = %543
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %2840

549:                                              ; preds = %543
  %550 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 4
  %551 = load ptr, ptr %550, align 8, !tbaa !28
  %552 = load i32, ptr %15, align 4, !tbaa !20
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds %class.LayerApex, ptr %551, i64 %553
  %555 = call noundef zeroext i1 @_ZNK4Apex6existsEv(ptr noundef nonnull align 8 dereferenceable(104) %554)
  br i1 %555, label %556, label %2834

556:                                              ; preds = %549
  %557 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 3
  %558 = load ptr, ptr %557, align 8, !tbaa !29
  %559 = load i32, ptr %15, align 4, !tbaa !20
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds %class.CornerApex, ptr %558, i64 %560
  %562 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %561)
  br i1 %562, label %563, label %2491

563:                                              ; preds = %556
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %564 = load double, ptr %5, align 8, !tbaa !9
  store double %564, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %565 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 4
  %566 = load ptr, ptr %565, align 8, !tbaa !28
  %567 = load i32, ptr %15, align 4, !tbaa !20
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds %class.LayerApex, ptr %566, i64 %568
  %570 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %571 = load i32, ptr %15, align 4, !tbaa !20
  %572 = sext i32 %571 to i64
  %573 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %570, i64 noundef %572) #8
  %574 = load double, ptr %4, align 8, !tbaa !9
  %575 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 4
  %576 = load ptr, ptr %575, align 8, !tbaa !11
  %577 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %576)
  call void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144) %569, ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %573, double noundef %574, double noundef %577, i1 noundef zeroext false)
  %578 = load double, ptr %17, align 8, !tbaa !9
  %579 = fcmp ogt double %578, 0.000000e+00
  store i1 false, ptr %20, align 1
  store i1 false, ptr %22, align 1
  store i1 false, ptr %24, align 1
  store i1 false, ptr %26, align 1
  store i1 false, ptr %28, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %33, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %43, align 1
  store i1 false, ptr %44, align 1
  store i1 false, ptr %45, align 1
  store i1 false, ptr %47, align 1
  store i1 false, ptr %49, align 1
  store i1 false, ptr %50, align 1
  store i1 false, ptr %51, align 1
  store i1 false, ptr %52, align 1
  store i1 false, ptr %53, align 1
  store i1 false, ptr %55, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  store i1 false, ptr %57, align 1
  store i1 false, ptr %58, align 1
  store i1 false, ptr %61, align 1
  store i1 false, ptr %63, align 1
  store i1 false, ptr %64, align 1
  store i1 false, ptr %65, align 1
  store i1 false, ptr %67, align 1
  store i1 false, ptr %69, align 1
  store i1 false, ptr %70, align 1
  store i1 false, ptr %71, align 1
  store i1 false, ptr %72, align 1
  br i1 %579, label %596, label %580

580:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  store i1 true, ptr %20, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #8
  store i1 true, ptr %22, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  store i1 true, ptr %26, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #8
  store i1 true, ptr %28, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #8
  store i1 true, ptr %30, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #8
  store i1 true, ptr %32, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  store i1 true, ptr %33, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %581 unwind label %1125

581:                                              ; preds = %580
  store i1 true, ptr %36, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.1)
          to label %582 unwind label %1129

582:                                              ; preds = %581
  store i1 true, ptr %37, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #8
  store i1 true, ptr %39, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #8
  store i1 true, ptr %41, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  store i1 true, ptr %42, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %583 unwind label %1133

583:                                              ; preds = %582
  store i1 true, ptr %43, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %584 unwind label %1137

584:                                              ; preds = %583
  store i1 true, ptr %44, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.2)
          to label %585 unwind label %1141

585:                                              ; preds = %584
  store i1 true, ptr %45, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #8
  store i1 true, ptr %47, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #8
  store i1 true, ptr %49, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  store i1 true, ptr %50, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %586 unwind label %1145

586:                                              ; preds = %585
  store i1 true, ptr %51, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %587 unwind label %1149

587:                                              ; preds = %586
  store i1 true, ptr %52, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.4)
          to label %588 unwind label %1153

588:                                              ; preds = %587
  store i1 true, ptr %53, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #8
  store i1 true, ptr %55, align 1
  store i32 310, ptr %56, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 4 dereferenceable(4) %56)
          to label %589 unwind label %1157

589:                                              ; preds = %588
  store i1 true, ptr %57, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %590 unwind label %1161

590:                                              ; preds = %589
  store i1 true, ptr %58, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #8
  store i1 true, ptr %61, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #8
  store i1 true, ptr %63, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  store i1 true, ptr %64, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %591 unwind label %1165

591:                                              ; preds = %590
  store i1 true, ptr %65, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #8
  store i1 true, ptr %67, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #8
  store i1 true, ptr %69, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  store i1 true, ptr %70, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %592 unwind label %1169

592:                                              ; preds = %591
  store i1 true, ptr %71, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %593 unwind label %1173

593:                                              ; preds = %592
  store i1 true, ptr %72, align 1
  %594 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %18, ptr noundef %59, i32 noundef 0)
          to label %595 unwind label %1177

595:                                              ; preds = %593
  br label %596

596:                                              ; preds = %595, %563
  %597 = phi i1 [ true, %563 ], [ %594, %595 ]
  %598 = xor i1 %597, true
  %599 = load i1, ptr %72, align 1
  br i1 %599, label %600, label %601

600:                                              ; preds = %596
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %601

601:                                              ; preds = %600, %596
  %602 = load i1, ptr %71, align 1
  br i1 %602, label %603, label %604

603:                                              ; preds = %601
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %604

604:                                              ; preds = %603, %601
  %605 = load i1, ptr %70, align 1
  br i1 %605, label %606, label %607

606:                                              ; preds = %604
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  br label %607

607:                                              ; preds = %606, %604
  %608 = load i1, ptr %69, align 1
  br i1 %608, label %609, label %610

609:                                              ; preds = %607
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #8
  br label %610

610:                                              ; preds = %609, %607
  %611 = load i1, ptr %67, align 1
  br i1 %611, label %612, label %613

612:                                              ; preds = %610
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  br label %613

613:                                              ; preds = %612, %610
  %614 = load i1, ptr %65, align 1
  br i1 %614, label %615, label %616

615:                                              ; preds = %613
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %616

616:                                              ; preds = %615, %613
  %617 = load i1, ptr %64, align 1
  br i1 %617, label %618, label %619

618:                                              ; preds = %616
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  br label %619

619:                                              ; preds = %618, %616
  %620 = load i1, ptr %63, align 1
  br i1 %620, label %621, label %622

621:                                              ; preds = %619
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  br label %622

622:                                              ; preds = %621, %619
  %623 = load i1, ptr %61, align 1
  br i1 %623, label %624, label %625

624:                                              ; preds = %622
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  br label %625

625:                                              ; preds = %624, %622
  %626 = load i1, ptr %58, align 1
  br i1 %626, label %627, label %628

627:                                              ; preds = %625
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %628

628:                                              ; preds = %627, %625
  %629 = load i1, ptr %57, align 1
  br i1 %629, label %630, label %631

630:                                              ; preds = %628
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %631

631:                                              ; preds = %630, %628
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  %632 = load i1, ptr %55, align 1
  br i1 %632, label %633, label %634

633:                                              ; preds = %631
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  br label %634

634:                                              ; preds = %633, %631
  %635 = load i1, ptr %53, align 1
  br i1 %635, label %636, label %637

636:                                              ; preds = %634
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %637

637:                                              ; preds = %636, %634
  %638 = load i1, ptr %52, align 1
  br i1 %638, label %639, label %640

639:                                              ; preds = %637
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %640

640:                                              ; preds = %639, %637
  %641 = load i1, ptr %51, align 1
  br i1 %641, label %642, label %643

642:                                              ; preds = %640
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %643

643:                                              ; preds = %642, %640
  %644 = load i1, ptr %50, align 1
  br i1 %644, label %645, label %646

645:                                              ; preds = %643
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  br label %646

646:                                              ; preds = %645, %643
  %647 = load i1, ptr %49, align 1
  br i1 %647, label %648, label %649

648:                                              ; preds = %646
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #8
  br label %649

649:                                              ; preds = %648, %646
  %650 = load i1, ptr %47, align 1
  br i1 %650, label %651, label %652

651:                                              ; preds = %649
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  br label %652

652:                                              ; preds = %651, %649
  %653 = load i1, ptr %45, align 1
  br i1 %653, label %654, label %655

654:                                              ; preds = %652
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %655

655:                                              ; preds = %654, %652
  %656 = load i1, ptr %44, align 1
  br i1 %656, label %657, label %658

657:                                              ; preds = %655
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %658

658:                                              ; preds = %657, %655
  %659 = load i1, ptr %43, align 1
  br i1 %659, label %660, label %661

660:                                              ; preds = %658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %661

661:                                              ; preds = %660, %658
  %662 = load i1, ptr %42, align 1
  br i1 %662, label %663, label %664

663:                                              ; preds = %661
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  br label %664

664:                                              ; preds = %663, %661
  %665 = load i1, ptr %41, align 1
  br i1 %665, label %666, label %667

666:                                              ; preds = %664
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  br label %667

667:                                              ; preds = %666, %664
  %668 = load i1, ptr %39, align 1
  br i1 %668, label %669, label %670

669:                                              ; preds = %667
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %670

670:                                              ; preds = %669, %667
  %671 = load i1, ptr %37, align 1
  br i1 %671, label %672, label %673

672:                                              ; preds = %670
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %673

673:                                              ; preds = %672, %670
  %674 = load i1, ptr %36, align 1
  br i1 %674, label %675, label %676

675:                                              ; preds = %673
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %676

676:                                              ; preds = %675, %673
  %677 = load i1, ptr %33, align 1
  br i1 %677, label %678, label %679

678:                                              ; preds = %676
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  br label %679

679:                                              ; preds = %678, %676
  %680 = load i1, ptr %32, align 1
  br i1 %680, label %681, label %682

681:                                              ; preds = %679
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  br label %682

682:                                              ; preds = %681, %679
  %683 = load i1, ptr %30, align 1
  br i1 %683, label %684, label %685

684:                                              ; preds = %682
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  br label %685

685:                                              ; preds = %684, %682
  %686 = load i1, ptr %28, align 1
  br i1 %686, label %687, label %688

687:                                              ; preds = %685
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  br label %688

688:                                              ; preds = %687, %685
  %689 = load i1, ptr %26, align 1
  br i1 %689, label %690, label %691

690:                                              ; preds = %688
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %691

691:                                              ; preds = %690, %688
  %692 = load i1, ptr %24, align 1
  br i1 %692, label %693, label %694

693:                                              ; preds = %691
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %694

694:                                              ; preds = %693, %691
  %695 = load i1, ptr %22, align 1
  br i1 %695, label %696, label %697

696:                                              ; preds = %694
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  br label %697

697:                                              ; preds = %696, %694
  %698 = load i1, ptr %20, align 1
  br i1 %698, label %699, label %700

699:                                              ; preds = %697
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br label %700

700:                                              ; preds = %699, %697
  %701 = load double, ptr %17, align 8, !tbaa !9
  %702 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 5
  %703 = load double, ptr %702, align 8, !tbaa !19
  %704 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %705 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %704, i64 noundef 0) #8
  %706 = load double, ptr %705, align 8, !tbaa !9
  %707 = call double @tan(double noundef %706) #8
  %708 = fdiv double 1.000000e+00, %707
  %709 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %710 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %709, i64 noundef 1) #8
  %711 = load double, ptr %710, align 8, !tbaa !9
  %712 = call double @tan(double noundef %711) #8
  %713 = fdiv double 1.000000e+00, %712
  %714 = fadd double %708, %713
  %715 = fmul double %703, %714
  %716 = fcmp olt double %701, %715
  store i1 false, ptr %75, align 1
  store i1 false, ptr %77, align 1
  store i1 false, ptr %79, align 1
  store i1 false, ptr %81, align 1
  store i1 false, ptr %83, align 1
  store i1 false, ptr %85, align 1
  store i1 false, ptr %87, align 1
  store i1 false, ptr %88, align 1
  store i1 false, ptr %89, align 1
  store i1 false, ptr %90, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %94, align 1
  store i1 false, ptr %95, align 1
  store i1 false, ptr %96, align 1
  store i1 false, ptr %97, align 1
  store i1 false, ptr %98, align 1
  store i1 false, ptr %100, align 1
  store i1 false, ptr %102, align 1
  store i1 false, ptr %103, align 1
  store i1 false, ptr %104, align 1
  store i1 false, ptr %105, align 1
  store i1 false, ptr %106, align 1
  store i1 false, ptr %108, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #8
  store i1 false, ptr %110, align 1
  store i1 false, ptr %111, align 1
  store i1 false, ptr %114, align 1
  store i1 false, ptr %116, align 1
  store i1 false, ptr %117, align 1
  store i1 false, ptr %118, align 1
  store i1 false, ptr %120, align 1
  store i1 false, ptr %122, align 1
  store i1 false, ptr %123, align 1
  store i1 false, ptr %124, align 1
  store i1 false, ptr %125, align 1
  br i1 %716, label %733, label %717

717:                                              ; preds = %700
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #8
  store i1 true, ptr %75, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #8
  store i1 true, ptr %77, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #8
  store i1 true, ptr %79, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #8
  store i1 true, ptr %81, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #8
  store i1 true, ptr %83, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #8
  store i1 true, ptr %85, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #8
  store i1 true, ptr %87, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #8
  store i1 true, ptr %88, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %718 unwind label %1296

718:                                              ; preds = %717
  store i1 true, ptr %89, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.1)
          to label %719 unwind label %1300

719:                                              ; preds = %718
  store i1 true, ptr %90, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #8
  store i1 true, ptr %92, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #8
  store i1 true, ptr %94, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #8
  store i1 true, ptr %95, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %720 unwind label %1304

720:                                              ; preds = %719
  store i1 true, ptr %96, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %721 unwind label %1308

721:                                              ; preds = %720
  store i1 true, ptr %97, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str.2)
          to label %722 unwind label %1312

722:                                              ; preds = %721
  store i1 true, ptr %98, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #8
  store i1 true, ptr %100, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #8
  store i1 true, ptr %102, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  store i1 true, ptr %103, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %723 unwind label %1316

723:                                              ; preds = %722
  store i1 true, ptr %104, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %724 unwind label %1320

724:                                              ; preds = %723
  store i1 true, ptr %105, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.4)
          to label %725 unwind label %1324

725:                                              ; preds = %724
  store i1 true, ptr %106, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #8
  store i1 true, ptr %108, align 1
  store i32 312, ptr %109, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 4 dereferenceable(4) %109)
          to label %726 unwind label %1328

726:                                              ; preds = %725
  store i1 true, ptr %110, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %727 unwind label %1332

727:                                              ; preds = %726
  store i1 true, ptr %111, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #8
  store i1 true, ptr %114, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #8
  store i1 true, ptr %116, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #8
  store i1 true, ptr %117, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %728 unwind label %1336

728:                                              ; preds = %727
  store i1 true, ptr %118, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #8
  store i1 true, ptr %120, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #8
  store i1 true, ptr %122, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #8
  store i1 true, ptr %123, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %729 unwind label %1340

729:                                              ; preds = %728
  store i1 true, ptr %124, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) %119)
          to label %730 unwind label %1344

730:                                              ; preds = %729
  store i1 true, ptr %125, align 1
  %731 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %73, ptr noundef %112, i32 noundef 0)
          to label %732 unwind label %1348

732:                                              ; preds = %730
  br label %733

733:                                              ; preds = %732, %700
  %734 = phi i1 [ true, %700 ], [ %731, %732 ]
  %735 = xor i1 %734, true
  %736 = load i1, ptr %125, align 1
  br i1 %736, label %737, label %738

737:                                              ; preds = %733
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %738

738:                                              ; preds = %737, %733
  %739 = load i1, ptr %124, align 1
  br i1 %739, label %740, label %741

740:                                              ; preds = %738
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  br label %741

741:                                              ; preds = %740, %738
  %742 = load i1, ptr %123, align 1
  br i1 %742, label %743, label %744

743:                                              ; preds = %741
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #8
  br label %744

744:                                              ; preds = %743, %741
  %745 = load i1, ptr %122, align 1
  br i1 %745, label %746, label %747

746:                                              ; preds = %744
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #8
  br label %747

747:                                              ; preds = %746, %744
  %748 = load i1, ptr %120, align 1
  br i1 %748, label %749, label %750

749:                                              ; preds = %747
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #8
  br label %750

750:                                              ; preds = %749, %747
  %751 = load i1, ptr %118, align 1
  br i1 %751, label %752, label %753

752:                                              ; preds = %750
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  br label %753

753:                                              ; preds = %752, %750
  %754 = load i1, ptr %117, align 1
  br i1 %754, label %755, label %756

755:                                              ; preds = %753
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #8
  br label %756

756:                                              ; preds = %755, %753
  %757 = load i1, ptr %116, align 1
  br i1 %757, label %758, label %759

758:                                              ; preds = %756
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #8
  br label %759

759:                                              ; preds = %758, %756
  %760 = load i1, ptr %114, align 1
  br i1 %760, label %761, label %762

761:                                              ; preds = %759
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #8
  br label %762

762:                                              ; preds = %761, %759
  %763 = load i1, ptr %111, align 1
  br i1 %763, label %764, label %765

764:                                              ; preds = %762
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %765

765:                                              ; preds = %764, %762
  %766 = load i1, ptr %110, align 1
  br i1 %766, label %767, label %768

767:                                              ; preds = %765
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  br label %768

768:                                              ; preds = %767, %765
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  %769 = load i1, ptr %108, align 1
  br i1 %769, label %770, label %771

770:                                              ; preds = %768
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #8
  br label %771

771:                                              ; preds = %770, %768
  %772 = load i1, ptr %106, align 1
  br i1 %772, label %773, label %774

773:                                              ; preds = %771
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %774

774:                                              ; preds = %773, %771
  %775 = load i1, ptr %105, align 1
  br i1 %775, label %776, label %777

776:                                              ; preds = %774
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %777

777:                                              ; preds = %776, %774
  %778 = load i1, ptr %104, align 1
  br i1 %778, label %779, label %780

779:                                              ; preds = %777
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  br label %780

780:                                              ; preds = %779, %777
  %781 = load i1, ptr %103, align 1
  br i1 %781, label %782, label %783

782:                                              ; preds = %780
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  br label %783

783:                                              ; preds = %782, %780
  %784 = load i1, ptr %102, align 1
  br i1 %784, label %785, label %786

785:                                              ; preds = %783
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #8
  br label %786

786:                                              ; preds = %785, %783
  %787 = load i1, ptr %100, align 1
  br i1 %787, label %788, label %789

788:                                              ; preds = %786
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #8
  br label %789

789:                                              ; preds = %788, %786
  %790 = load i1, ptr %98, align 1
  br i1 %790, label %791, label %792

791:                                              ; preds = %789
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %792

792:                                              ; preds = %791, %789
  %793 = load i1, ptr %97, align 1
  br i1 %793, label %794, label %795

794:                                              ; preds = %792
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  br label %795

795:                                              ; preds = %794, %792
  %796 = load i1, ptr %96, align 1
  br i1 %796, label %797, label %798

797:                                              ; preds = %795
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  br label %798

798:                                              ; preds = %797, %795
  %799 = load i1, ptr %95, align 1
  br i1 %799, label %800, label %801

800:                                              ; preds = %798
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #8
  br label %801

801:                                              ; preds = %800, %798
  %802 = load i1, ptr %94, align 1
  br i1 %802, label %803, label %804

803:                                              ; preds = %801
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #8
  br label %804

804:                                              ; preds = %803, %801
  %805 = load i1, ptr %92, align 1
  br i1 %805, label %806, label %807

806:                                              ; preds = %804
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #8
  br label %807

807:                                              ; preds = %806, %804
  %808 = load i1, ptr %90, align 1
  br i1 %808, label %809, label %810

809:                                              ; preds = %807
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  br label %810

810:                                              ; preds = %809, %807
  %811 = load i1, ptr %89, align 1
  br i1 %811, label %812, label %813

812:                                              ; preds = %810
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %813

813:                                              ; preds = %812, %810
  %814 = load i1, ptr %88, align 1
  br i1 %814, label %815, label %816

815:                                              ; preds = %813
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #8
  br label %816

816:                                              ; preds = %815, %813
  %817 = load i1, ptr %87, align 1
  br i1 %817, label %818, label %819

818:                                              ; preds = %816
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #8
  br label %819

819:                                              ; preds = %818, %816
  %820 = load i1, ptr %85, align 1
  br i1 %820, label %821, label %822

821:                                              ; preds = %819
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #8
  br label %822

822:                                              ; preds = %821, %819
  %823 = load i1, ptr %83, align 1
  br i1 %823, label %824, label %825

824:                                              ; preds = %822
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #8
  br label %825

825:                                              ; preds = %824, %822
  %826 = load i1, ptr %81, align 1
  br i1 %826, label %827, label %828

827:                                              ; preds = %825
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  br label %828

828:                                              ; preds = %827, %825
  %829 = load i1, ptr %79, align 1
  br i1 %829, label %830, label %831

830:                                              ; preds = %828
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  br label %831

831:                                              ; preds = %830, %828
  %832 = load i1, ptr %77, align 1
  br i1 %832, label %833, label %834

833:                                              ; preds = %831
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  br label %834

834:                                              ; preds = %833, %831
  %835 = load i1, ptr %75, align 1
  br i1 %835, label %836, label %837

836:                                              ; preds = %834
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  br label %837

837:                                              ; preds = %836, %834
  %838 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 4
  %839 = load ptr, ptr %838, align 8, !tbaa !28
  %840 = load i32, ptr %15, align 4, !tbaa !20
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds %class.LayerApex, ptr %839, i64 %841
  %843 = call noundef double @_ZNK9LayerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %842)
  %844 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 5
  %845 = load double, ptr %844, align 8, !tbaa !19
  %846 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %847 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %846, i64 noundef 0) #8
  %848 = load double, ptr %847, align 8, !tbaa !9
  %849 = call double @tan(double noundef %848) #8
  %850 = fdiv double 1.000000e+00, %849
  %851 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %852 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %851, i64 noundef 1) #8
  %853 = load double, ptr %852, align 8, !tbaa !9
  %854 = call double @tan(double noundef %853) #8
  %855 = fdiv double 1.000000e+00, %854
  %856 = fadd double %850, %855
  %857 = fmul double %845, %856
  %858 = fcmp olt double %843, %857
  store i1 false, ptr %128, align 1
  store i1 false, ptr %130, align 1
  store i1 false, ptr %132, align 1
  store i1 false, ptr %134, align 1
  store i1 false, ptr %136, align 1
  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 %143, align 1
  store i1 false, ptr %145, align 1
  store i1 false, ptr %147, align 1
  store i1 false, ptr %148, align 1
  store i1 false, ptr %149, align 1
  store i1 false, ptr %150, align 1
  store i1 false, ptr %151, align 1
  store i1 false, ptr %153, align 1
  store i1 false, ptr %155, align 1
  store i1 false, ptr %156, align 1
  store i1 false, ptr %157, align 1
  store i1 false, ptr %158, align 1
  store i1 false, ptr %159, align 1
  store i1 false, ptr %161, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #8
  store i1 false, ptr %163, align 1
  store i1 false, ptr %164, align 1
  store i1 false, ptr %167, align 1
  store i1 false, ptr %169, align 1
  store i1 false, ptr %170, align 1
  store i1 false, ptr %171, align 1
  store i1 false, ptr %173, align 1
  store i1 false, ptr %175, align 1
  store i1 false, ptr %176, align 1
  store i1 false, ptr %177, align 1
  store i1 false, ptr %178, align 1
  br i1 %858, label %875, label %859

859:                                              ; preds = %837
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #8
  store i1 true, ptr %128, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #8
  store i1 true, ptr %130, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #8
  store i1 true, ptr %132, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #8
  store i1 true, ptr %134, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #8
  store i1 true, ptr %136, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #8
  store i1 true, ptr %138, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #8
  store i1 true, ptr %140, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #8
  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, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %860 unwind label %1467

860:                                              ; preds = %859
  store i1 true, ptr %142, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %135, ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef @.str.1)
          to label %861 unwind label %1471

861:                                              ; preds = %860
  store i1 true, ptr %143, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %144) #8
  store i1 true, ptr %145, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %146) #8
  store i1 true, ptr %147, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %146) #8
  store i1 true, ptr %148, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %146)
          to label %862 unwind label %1475

862:                                              ; preds = %861
  store i1 true, ptr %149, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %133, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull align 8 dereferenceable(32) %144)
          to label %863 unwind label %1479

863:                                              ; preds = %862
  store i1 true, ptr %150, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %131, ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.2)
          to label %864 unwind label %1483

864:                                              ; preds = %863
  store i1 true, ptr %151, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %152) #8
  store i1 true, ptr %153, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %154) #8
  store i1 true, ptr %155, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #8
  store i1 true, ptr %156, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %154)
          to label %865 unwind label %1487

865:                                              ; preds = %864
  store i1 true, ptr %157, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull align 8 dereferenceable(32) %152)
          to label %866 unwind label %1491

866:                                              ; preds = %865
  store i1 true, ptr %158, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef @.str.4)
          to label %867 unwind label %1495

867:                                              ; preds = %866
  store i1 true, ptr %159, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %160) #8
  store i1 true, ptr %161, align 1
  store i32 313, ptr %162, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %160, ptr noundef nonnull align 4 dereferenceable(4) %162)
          to label %868 unwind label %1499

868:                                              ; preds = %867
  store i1 true, ptr %163, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(32) %160)
          to label %869 unwind label %1503

869:                                              ; preds = %868
  store i1 true, ptr %164, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %166) #8
  store i1 true, ptr %167, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %168) #8
  store i1 true, ptr %169, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #8
  store i1 true, ptr %170, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %168)
          to label %870 unwind label %1507

870:                                              ; preds = %869
  store i1 true, ptr %171, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %172) #8
  store i1 true, ptr %173, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %174) #8
  store i1 true, ptr %175, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #8
  store i1 true, ptr %176, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %174)
          to label %871 unwind label %1511

871:                                              ; preds = %870
  store i1 true, ptr %177, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %165, ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 8 dereferenceable(32) %172)
          to label %872 unwind label %1515

872:                                              ; preds = %871
  store i1 true, ptr %178, align 1
  %873 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %126, ptr noundef %165, i32 noundef 0)
          to label %874 unwind label %1519

874:                                              ; preds = %872
  br label %875

875:                                              ; preds = %874, %837
  %876 = phi i1 [ true, %837 ], [ %873, %874 ]
  %877 = xor i1 %876, true
  %878 = load i1, ptr %178, align 1
  br i1 %878, label %879, label %880

879:                                              ; preds = %875
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  br label %880

880:                                              ; preds = %879, %875
  %881 = load i1, ptr %177, align 1
  br i1 %881, label %882, label %883

882:                                              ; preds = %880
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #8
  br label %883

883:                                              ; preds = %882, %880
  %884 = load i1, ptr %176, align 1
  br i1 %884, label %885, label %886

885:                                              ; preds = %883
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #8
  br label %886

886:                                              ; preds = %885, %883
  %887 = load i1, ptr %175, align 1
  br i1 %887, label %888, label %889

888:                                              ; preds = %886
  call void @llvm.lifetime.end.p0(i64 1, ptr %174) #8
  br label %889

889:                                              ; preds = %888, %886
  %890 = load i1, ptr %173, align 1
  br i1 %890, label %891, label %892

891:                                              ; preds = %889
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #8
  br label %892

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

894:                                              ; preds = %892
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #8
  br label %895

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

897:                                              ; preds = %895
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #8
  br label %898

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

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

901:                                              ; preds = %900, %898
  %902 = load i1, ptr %167, align 1
  br i1 %902, label %903, label %904

903:                                              ; preds = %901
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #8
  br label %904

904:                                              ; preds = %903, %901
  %905 = load i1, ptr %164, align 1
  br i1 %905, label %906, label %907

906:                                              ; preds = %904
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  br label %907

907:                                              ; preds = %906, %904
  %908 = load i1, ptr %163, align 1
  br i1 %908, label %909, label %910

909:                                              ; preds = %907
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #8
  br label %910

910:                                              ; preds = %909, %907
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #8
  %911 = load i1, ptr %161, align 1
  br i1 %911, label %912, label %913

912:                                              ; preds = %910
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #8
  br label %913

913:                                              ; preds = %912, %910
  %914 = load i1, ptr %159, align 1
  br i1 %914, label %915, label %916

915:                                              ; preds = %913
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  br label %916

916:                                              ; preds = %915, %913
  %917 = load i1, ptr %158, align 1
  br i1 %917, label %918, label %919

918:                                              ; preds = %916
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #8
  br label %919

919:                                              ; preds = %918, %916
  %920 = load i1, ptr %157, align 1
  br i1 %920, label %921, label %922

921:                                              ; preds = %919
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #8
  br label %922

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

924:                                              ; preds = %922
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #8
  br label %925

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

927:                                              ; preds = %925
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #8
  br label %928

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

930:                                              ; preds = %928
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #8
  br label %931

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

933:                                              ; preds = %931
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #8
  br label %934

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

936:                                              ; preds = %934
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  br label %937

937:                                              ; preds = %936, %934
  %938 = load i1, ptr %149, align 1
  br i1 %938, label %939, label %940

939:                                              ; preds = %937
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  br label %940

940:                                              ; preds = %939, %937
  %941 = load i1, ptr %148, align 1
  br i1 %941, label %942, label %943

942:                                              ; preds = %940
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %146) #8
  br label %943

943:                                              ; preds = %942, %940
  %944 = load i1, ptr %147, align 1
  br i1 %944, label %945, label %946

945:                                              ; preds = %943
  call void @llvm.lifetime.end.p0(i64 1, ptr %146) #8
  br label %946

946:                                              ; preds = %945, %943
  %947 = load i1, ptr %145, align 1
  br i1 %947, label %948, label %949

948:                                              ; preds = %946
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #8
  br label %949

949:                                              ; preds = %948, %946
  %950 = load i1, ptr %143, align 1
  br i1 %950, label %951, label %952

951:                                              ; preds = %949
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  br label %952

952:                                              ; preds = %951, %949
  %953 = load i1, ptr %142, align 1
  br i1 %953, label %954, label %955

954:                                              ; preds = %952
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %955

955:                                              ; preds = %954, %952
  %956 = load i1, ptr %141, align 1
  br i1 %956, label %957, label %958

957:                                              ; preds = %955
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #8
  br label %958

958:                                              ; preds = %957, %955
  %959 = load i1, ptr %140, align 1
  br i1 %959, label %960, label %961

960:                                              ; preds = %958
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #8
  br label %961

961:                                              ; preds = %960, %958
  %962 = load i1, ptr %138, align 1
  br i1 %962, label %963, label %964

963:                                              ; preds = %961
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #8
  br label %964

964:                                              ; preds = %963, %961
  %965 = load i1, ptr %136, align 1
  br i1 %965, label %966, label %967

966:                                              ; preds = %964
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #8
  br label %967

967:                                              ; preds = %966, %964
  %968 = load i1, ptr %134, align 1
  br i1 %968, label %969, label %970

969:                                              ; preds = %967
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #8
  br label %970

970:                                              ; preds = %969, %967
  %971 = load i1, ptr %132, align 1
  br i1 %971, label %972, label %973

972:                                              ; preds = %970
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #8
  br label %973

973:                                              ; preds = %972, %970
  %974 = load i1, ptr %130, align 1
  br i1 %974, label %975, label %976

975:                                              ; preds = %973
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #8
  br label %976

976:                                              ; preds = %975, %973
  %977 = load i1, ptr %128, align 1
  br i1 %977, label %978, label %979

978:                                              ; preds = %976
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #8
  br label %979

979:                                              ; preds = %978, %976
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #8
  %980 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %981 = load i32, ptr %15, align 4, !tbaa !20
  %982 = sext i32 %981 to i64
  %983 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %980, i64 noundef %982) #8
  %984 = load double, ptr %983, align 8, !tbaa !9
  %985 = load double, ptr @_ZN9ElemModel2PIE, align 8, !tbaa !9
  %986 = load double, ptr %16, align 8, !tbaa !9
  %987 = fsub double %985, %986
  %988 = call noundef double @_Z17dimLessCornerAreadd(double noundef %984, double noundef %987)
  store double %988, ptr %179, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #8
  %989 = load double, ptr %17, align 8, !tbaa !9
  %990 = load double, ptr %17, align 8, !tbaa !9
  %991 = fmul double %989, %990
  %992 = load double, ptr %179, align 8, !tbaa !9
  %993 = fmul double %991, %992
  store double %993, ptr %180, align 8, !tbaa !9
  %994 = load double, ptr %17, align 8, !tbaa !9
  %995 = load double, ptr %13, align 8, !tbaa !9
  %996 = fadd double %995, %994
  store double %996, ptr %13, align 8, !tbaa !9
  %997 = load i32, ptr %15, align 4, !tbaa !20
  %998 = icmp slt i32 %997, 2
  br i1 %998, label %999, label %1809

999:                                              ; preds = %979
  %1000 = load double, ptr %13, align 8, !tbaa !9
  %1001 = load double, ptr %12, align 8, !tbaa !9
  %1002 = fmul double %1001, 1.010000e+00
  %1003 = fcmp ole double %1000, %1002
  store i1 false, ptr %183, align 1
  store i1 false, ptr %185, align 1
  store i1 false, ptr %187, align 1
  store i1 false, ptr %189, align 1
  store i1 false, ptr %191, align 1
  store i1 false, ptr %193, align 1
  store i1 false, ptr %195, align 1
  store i1 false, ptr %196, align 1
  store i1 false, ptr %197, align 1
  store i1 false, ptr %198, align 1
  store i1 false, ptr %200, align 1
  store i1 false, ptr %202, align 1
  store i1 false, ptr %203, align 1
  store i1 false, ptr %204, align 1
  store i1 false, ptr %205, align 1
  store i1 false, ptr %206, align 1
  store i1 false, ptr %208, align 1
  store i1 false, ptr %210, align 1
  store i1 false, ptr %211, align 1
  store i1 false, ptr %212, align 1
  store i1 false, ptr %213, align 1
  store i1 false, ptr %214, align 1
  store i1 false, ptr %216, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #8
  store i1 false, ptr %218, align 1
  store i1 false, ptr %219, align 1
  store i1 false, ptr %222, align 1
  store i1 false, ptr %224, align 1
  store i1 false, ptr %225, align 1
  store i1 false, ptr %226, align 1
  store i1 false, ptr %228, align 1
  store i1 false, ptr %230, align 1
  store i1 false, ptr %231, align 1
  store i1 false, ptr %232, align 1
  store i1 false, ptr %233, align 1
  br i1 %1003, label %1020, label %1004

1004:                                             ; preds = %999
  call void @llvm.lifetime.start.p0(i64 32, ptr %182) #8
  store i1 true, ptr %183, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %184) #8
  store i1 true, ptr %185, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %186) #8
  store i1 true, ptr %187, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #8
  store i1 true, ptr %189, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %190) #8
  store i1 true, ptr %191, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %192) #8
  store i1 true, ptr %193, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %194) #8
  store i1 true, ptr %195, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #8
  store i1 true, ptr %196, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %194)
          to label %1005 unwind label %1638

1005:                                             ; preds = %1004
  store i1 true, ptr %197, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %190, ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str.1)
          to label %1006 unwind label %1642

1006:                                             ; preds = %1005
  store i1 true, ptr %198, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %199) #8
  store i1 true, ptr %200, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %201) #8
  store i1 true, ptr %202, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #8
  store i1 true, ptr %203, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %1007 unwind label %1646

1007:                                             ; preds = %1006
  store i1 true, ptr %204, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %188, ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(32) %199)
          to label %1008 unwind label %1650

1008:                                             ; preds = %1007
  store i1 true, ptr %205, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %186, ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef @.str.2)
          to label %1009 unwind label %1654

1009:                                             ; preds = %1008
  store i1 true, ptr %206, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %207) #8
  store i1 true, ptr %208, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %209) #8
  store i1 true, ptr %210, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #8
  store i1 true, ptr %211, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %207, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %209)
          to label %1010 unwind label %1658

1010:                                             ; preds = %1009
  store i1 true, ptr %212, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %184, ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull align 8 dereferenceable(32) %207)
          to label %1011 unwind label %1662

1011:                                             ; preds = %1010
  store i1 true, ptr %213, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %182, ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef @.str.4)
          to label %1012 unwind label %1666

1012:                                             ; preds = %1011
  store i1 true, ptr %214, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %215) #8
  store i1 true, ptr %216, align 1
  store i32 322, ptr %217, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %215, ptr noundef nonnull align 4 dereferenceable(4) %217)
          to label %1013 unwind label %1670

1013:                                             ; preds = %1012
  store i1 true, ptr %218, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %181, ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull align 8 dereferenceable(32) %215)
          to label %1014 unwind label %1674

1014:                                             ; preds = %1013
  store i1 true, ptr %219, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %221) #8
  store i1 true, ptr %222, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %223) #8
  store i1 true, ptr %224, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #8
  store i1 true, ptr %225, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %223)
          to label %1015 unwind label %1678

1015:                                             ; preds = %1014
  store i1 true, ptr %226, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %227) #8
  store i1 true, ptr %228, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %229) #8
  store i1 true, ptr %230, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #8
  store i1 true, ptr %231, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %229)
          to label %1016 unwind label %1682

1016:                                             ; preds = %1015
  store i1 true, ptr %232, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %220, ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(32) %227)
          to label %1017 unwind label %1686

1017:                                             ; preds = %1016
  store i1 true, ptr %233, align 1
  %1018 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %181, ptr noundef %220, i32 noundef 0)
          to label %1019 unwind label %1690

1019:                                             ; preds = %1017
  br label %1020

1020:                                             ; preds = %1019, %999
  %1021 = phi i1 [ true, %999 ], [ %1018, %1019 ]
  %1022 = xor i1 %1021, true
  %1023 = load i1, ptr %233, align 1
  br i1 %1023, label %1024, label %1025

1024:                                             ; preds = %1020
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #8
  br label %1025

1025:                                             ; preds = %1024, %1020
  %1026 = load i1, ptr %232, align 1
  br i1 %1026, label %1027, label %1028

1027:                                             ; preds = %1025
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #8
  br label %1028

1028:                                             ; preds = %1027, %1025
  %1029 = load i1, ptr %231, align 1
  br i1 %1029, label %1030, label %1031

1030:                                             ; preds = %1028
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #8
  br label %1031

1031:                                             ; preds = %1030, %1028
  %1032 = load i1, ptr %230, align 1
  br i1 %1032, label %1033, label %1034

1033:                                             ; preds = %1031
  call void @llvm.lifetime.end.p0(i64 1, ptr %229) #8
  br label %1034

1034:                                             ; preds = %1033, %1031
  %1035 = load i1, ptr %228, align 1
  br i1 %1035, label %1036, label %1037

1036:                                             ; preds = %1034
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #8
  br label %1037

1037:                                             ; preds = %1036, %1034
  %1038 = load i1, ptr %226, align 1
  br i1 %1038, label %1039, label %1040

1039:                                             ; preds = %1037
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #8
  br label %1040

1040:                                             ; preds = %1039, %1037
  %1041 = load i1, ptr %225, align 1
  br i1 %1041, label %1042, label %1043

1042:                                             ; preds = %1040
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #8
  br label %1043

1043:                                             ; preds = %1042, %1040
  %1044 = load i1, ptr %224, align 1
  br i1 %1044, label %1045, label %1046

1045:                                             ; preds = %1043
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #8
  br label %1046

1046:                                             ; preds = %1045, %1043
  %1047 = load i1, ptr %222, align 1
  br i1 %1047, label %1048, label %1049

1048:                                             ; preds = %1046
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #8
  br label %1049

1049:                                             ; preds = %1048, %1046
  %1050 = load i1, ptr %219, align 1
  br i1 %1050, label %1051, label %1052

1051:                                             ; preds = %1049
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  br label %1052

1052:                                             ; preds = %1051, %1049
  %1053 = load i1, ptr %218, align 1
  br i1 %1053, label %1054, label %1055

1054:                                             ; preds = %1052
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #8
  br label %1055

1055:                                             ; preds = %1054, %1052
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #8
  %1056 = load i1, ptr %216, align 1
  br i1 %1056, label %1057, label %1058

1057:                                             ; preds = %1055
  call void @llvm.lifetime.end.p0(i64 32, ptr %215) #8
  br label %1058

1058:                                             ; preds = %1057, %1055
  %1059 = load i1, ptr %214, align 1
  br i1 %1059, label %1060, label %1061

1060:                                             ; preds = %1058
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  br label %1061

1061:                                             ; preds = %1060, %1058
  %1062 = load i1, ptr %213, align 1
  br i1 %1062, label %1063, label %1064

1063:                                             ; preds = %1061
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #8
  br label %1064

1064:                                             ; preds = %1063, %1061
  %1065 = load i1, ptr %212, align 1
  br i1 %1065, label %1066, label %1067

1066:                                             ; preds = %1064
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #8
  br label %1067

1067:                                             ; preds = %1066, %1064
  %1068 = load i1, ptr %211, align 1
  br i1 %1068, label %1069, label %1070

1069:                                             ; preds = %1067
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #8
  br label %1070

1070:                                             ; preds = %1069, %1067
  %1071 = load i1, ptr %210, align 1
  br i1 %1071, label %1072, label %1073

1072:                                             ; preds = %1070
  call void @llvm.lifetime.end.p0(i64 1, ptr %209) #8
  br label %1073

1073:                                             ; preds = %1072, %1070
  %1074 = load i1, ptr %208, align 1
  br i1 %1074, label %1075, label %1076

1075:                                             ; preds = %1073
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #8
  br label %1076

1076:                                             ; preds = %1075, %1073
  %1077 = load i1, ptr %206, align 1
  br i1 %1077, label %1078, label %1079

1078:                                             ; preds = %1076
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #8
  br label %1079

1079:                                             ; preds = %1078, %1076
  %1080 = load i1, ptr %205, align 1
  br i1 %1080, label %1081, label %1082

1081:                                             ; preds = %1079
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #8
  br label %1082

1082:                                             ; preds = %1081, %1079
  %1083 = load i1, ptr %204, align 1
  br i1 %1083, label %1084, label %1085

1084:                                             ; preds = %1082
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #8
  br label %1085

1085:                                             ; preds = %1084, %1082
  %1086 = load i1, ptr %203, align 1
  br i1 %1086, label %1087, label %1088

1087:                                             ; preds = %1085
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #8
  br label %1088

1088:                                             ; preds = %1087, %1085
  %1089 = load i1, ptr %202, align 1
  br i1 %1089, label %1090, label %1091

1090:                                             ; preds = %1088
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #8
  br label %1091

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

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

1094:                                             ; preds = %1093, %1091
  %1095 = load i1, ptr %198, align 1
  br i1 %1095, label %1096, label %1097

1096:                                             ; preds = %1094
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #8
  br label %1097

1097:                                             ; preds = %1096, %1094
  %1098 = load i1, ptr %197, align 1
  br i1 %1098, label %1099, label %1100

1099:                                             ; preds = %1097
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #8
  br label %1100

1100:                                             ; preds = %1099, %1097
  %1101 = load i1, ptr %196, align 1
  br i1 %1101, label %1102, label %1103

1102:                                             ; preds = %1100
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #8
  br label %1103

1103:                                             ; preds = %1102, %1100
  %1104 = load i1, ptr %195, align 1
  br i1 %1104, label %1105, label %1106

1105:                                             ; preds = %1103
  call void @llvm.lifetime.end.p0(i64 1, ptr %194) #8
  br label %1106

1106:                                             ; preds = %1105, %1103
  %1107 = load i1, ptr %193, align 1
  br i1 %1107, label %1108, label %1109

1108:                                             ; preds = %1106
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #8
  br label %1109

1109:                                             ; preds = %1108, %1106
  %1110 = load i1, ptr %191, align 1
  br i1 %1110, label %1111, label %1112

1111:                                             ; preds = %1109
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #8
  br label %1112

1112:                                             ; preds = %1111, %1109
  %1113 = load i1, ptr %189, align 1
  br i1 %1113, label %1114, label %1115

1114:                                             ; preds = %1112
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #8
  br label %1115

1115:                                             ; preds = %1114, %1112
  %1116 = load i1, ptr %187, align 1
  br i1 %1116, label %1117, label %1118

1117:                                             ; preds = %1115
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #8
  br label %1118

1118:                                             ; preds = %1117, %1115
  %1119 = load i1, ptr %185, align 1
  br i1 %1119, label %1120, label %1121

1120:                                             ; preds = %1118
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #8
  br label %1121

1121:                                             ; preds = %1120, %1118
  %1122 = load i1, ptr %183, align 1
  br i1 %1122, label %1123, label %1124

1123:                                             ; preds = %1121
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #8
  br label %1124

1124:                                             ; preds = %1123, %1121
  br label %1809

1125:                                             ; preds = %580
  %1126 = landingpad { ptr, i32 }
          cleanup
  %1127 = extractvalue { ptr, i32 } %1126, 0
  store ptr %1127, ptr %34, align 8
  %1128 = extractvalue { ptr, i32 } %1126, 1
  store i32 %1128, ptr %35, align 4
  br label %1271

1129:                                             ; preds = %581
  %1130 = landingpad { ptr, i32 }
          cleanup
  %1131 = extractvalue { ptr, i32 } %1130, 0
  store ptr %1131, ptr %34, align 8
  %1132 = extractvalue { ptr, i32 } %1130, 1
  store i32 %1132, ptr %35, align 4
  br label %1267

1133:                                             ; preds = %582
  %1134 = landingpad { ptr, i32 }
          cleanup
  %1135 = extractvalue { ptr, i32 } %1134, 0
  store ptr %1135, ptr %34, align 8
  %1136 = extractvalue { ptr, i32 } %1134, 1
  store i32 %1136, ptr %35, align 4
  br label %1254

1137:                                             ; preds = %583
  %1138 = landingpad { ptr, i32 }
          cleanup
  %1139 = extractvalue { ptr, i32 } %1138, 0
  store ptr %1139, ptr %34, align 8
  %1140 = extractvalue { ptr, i32 } %1138, 1
  store i32 %1140, ptr %35, align 4
  br label %1250

1141:                                             ; preds = %584
  %1142 = landingpad { ptr, i32 }
          cleanup
  %1143 = extractvalue { ptr, i32 } %1142, 0
  store ptr %1143, ptr %34, align 8
  %1144 = extractvalue { ptr, i32 } %1142, 1
  store i32 %1144, ptr %35, align 4
  br label %1246

1145:                                             ; preds = %585
  %1146 = landingpad { ptr, i32 }
          cleanup
  %1147 = extractvalue { ptr, i32 } %1146, 0
  store ptr %1147, ptr %34, align 8
  %1148 = extractvalue { ptr, i32 } %1146, 1
  store i32 %1148, ptr %35, align 4
  br label %1233

1149:                                             ; preds = %586
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %34, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %35, align 4
  br label %1229

1153:                                             ; preds = %587
  %1154 = landingpad { ptr, i32 }
          cleanup
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %34, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %35, align 4
  br label %1225

1157:                                             ; preds = %588
  %1158 = landingpad { ptr, i32 }
          cleanup
  %1159 = extractvalue { ptr, i32 } %1158, 0
  store ptr %1159, ptr %34, align 8
  %1160 = extractvalue { ptr, i32 } %1158, 1
  store i32 %1160, ptr %35, align 4
  br label %1218

1161:                                             ; preds = %589
  %1162 = landingpad { ptr, i32 }
          cleanup
  %1163 = extractvalue { ptr, i32 } %1162, 0
  store ptr %1163, ptr %34, align 8
  %1164 = extractvalue { ptr, i32 } %1162, 1
  store i32 %1164, ptr %35, align 4
  br label %1214

1165:                                             ; preds = %590
  %1166 = landingpad { ptr, i32 }
          cleanup
  %1167 = extractvalue { ptr, i32 } %1166, 0
  store ptr %1167, ptr %34, align 8
  %1168 = extractvalue { ptr, i32 } %1166, 1
  store i32 %1168, ptr %35, align 4
  br label %1201

1169:                                             ; preds = %591
  %1170 = landingpad { ptr, i32 }
          cleanup
  %1171 = extractvalue { ptr, i32 } %1170, 0
  store ptr %1171, ptr %34, align 8
  %1172 = extractvalue { ptr, i32 } %1170, 1
  store i32 %1172, ptr %35, align 4
  br label %1188

1173:                                             ; preds = %592
  %1174 = landingpad { ptr, i32 }
          cleanup
  %1175 = extractvalue { ptr, i32 } %1174, 0
  store ptr %1175, ptr %34, align 8
  %1176 = extractvalue { ptr, i32 } %1174, 1
  store i32 %1176, ptr %35, align 4
  br label %1184

1177:                                             ; preds = %593
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %34, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %35, align 4
  %1181 = load i1, ptr %72, align 1
  br i1 %1181, label %1182, label %1183

1182:                                             ; preds = %1177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %1183

1183:                                             ; preds = %1182, %1177
  br label %1184

1184:                                             ; preds = %1183, %1173
  %1185 = load i1, ptr %71, align 1
  br i1 %1185, label %1186, label %1187

1186:                                             ; preds = %1184
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %1187

1187:                                             ; preds = %1186, %1184
  br label %1188

1188:                                             ; preds = %1187, %1169
  %1189 = load i1, ptr %70, align 1
  br i1 %1189, label %1190, label %1191

1190:                                             ; preds = %1188
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  br label %1191

1191:                                             ; preds = %1190, %1188
  %1192 = load i1, ptr %69, align 1
  br i1 %1192, label %1193, label %1194

1193:                                             ; preds = %1191
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #8
  br label %1194

1194:                                             ; preds = %1193, %1191
  %1195 = load i1, ptr %67, align 1
  br i1 %1195, label %1196, label %1197

1196:                                             ; preds = %1194
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  br label %1197

1197:                                             ; preds = %1196, %1194
  %1198 = load i1, ptr %65, align 1
  br i1 %1198, label %1199, label %1200

1199:                                             ; preds = %1197
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %1200

1200:                                             ; preds = %1199, %1197
  br label %1201

1201:                                             ; preds = %1200, %1165
  %1202 = load i1, ptr %64, align 1
  br i1 %1202, label %1203, label %1204

1203:                                             ; preds = %1201
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  br label %1204

1204:                                             ; preds = %1203, %1201
  %1205 = load i1, ptr %63, align 1
  br i1 %1205, label %1206, label %1207

1206:                                             ; preds = %1204
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  br label %1207

1207:                                             ; preds = %1206, %1204
  %1208 = load i1, ptr %61, align 1
  br i1 %1208, label %1209, label %1210

1209:                                             ; preds = %1207
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  br label %1210

1210:                                             ; preds = %1209, %1207
  %1211 = load i1, ptr %58, align 1
  br i1 %1211, label %1212, label %1213

1212:                                             ; preds = %1210
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %1213

1213:                                             ; preds = %1212, %1210
  br label %1214

1214:                                             ; preds = %1213, %1161
  %1215 = load i1, ptr %57, align 1
  br i1 %1215, label %1216, label %1217

1216:                                             ; preds = %1214
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %1217

1217:                                             ; preds = %1216, %1214
  br label %1218

1218:                                             ; preds = %1217, %1157
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  %1219 = load i1, ptr %55, align 1
  br i1 %1219, label %1220, label %1221

1220:                                             ; preds = %1218
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  br label %1221

1221:                                             ; preds = %1220, %1218
  %1222 = load i1, ptr %53, align 1
  br i1 %1222, label %1223, label %1224

1223:                                             ; preds = %1221
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %1224

1224:                                             ; preds = %1223, %1221
  br label %1225

1225:                                             ; preds = %1224, %1153
  %1226 = load i1, ptr %52, align 1
  br i1 %1226, label %1227, label %1228

1227:                                             ; preds = %1225
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %1228

1228:                                             ; preds = %1227, %1225
  br label %1229

1229:                                             ; preds = %1228, %1149
  %1230 = load i1, ptr %51, align 1
  br i1 %1230, label %1231, label %1232

1231:                                             ; preds = %1229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %1232

1232:                                             ; preds = %1231, %1229
  br label %1233

1233:                                             ; preds = %1232, %1145
  %1234 = load i1, ptr %50, align 1
  br i1 %1234, label %1235, label %1236

1235:                                             ; preds = %1233
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  br label %1236

1236:                                             ; preds = %1235, %1233
  %1237 = load i1, ptr %49, align 1
  br i1 %1237, label %1238, label %1239

1238:                                             ; preds = %1236
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #8
  br label %1239

1239:                                             ; preds = %1238, %1236
  %1240 = load i1, ptr %47, align 1
  br i1 %1240, label %1241, label %1242

1241:                                             ; preds = %1239
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  br label %1242

1242:                                             ; preds = %1241, %1239
  %1243 = load i1, ptr %45, align 1
  br i1 %1243, label %1244, label %1245

1244:                                             ; preds = %1242
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %1245

1245:                                             ; preds = %1244, %1242
  br label %1246

1246:                                             ; preds = %1245, %1141
  %1247 = load i1, ptr %44, align 1
  br i1 %1247, label %1248, label %1249

1248:                                             ; preds = %1246
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %1249

1249:                                             ; preds = %1248, %1246
  br label %1250

1250:                                             ; preds = %1249, %1137
  %1251 = load i1, ptr %43, align 1
  br i1 %1251, label %1252, label %1253

1252:                                             ; preds = %1250
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %1253

1253:                                             ; preds = %1252, %1250
  br label %1254

1254:                                             ; preds = %1253, %1133
  %1255 = load i1, ptr %42, align 1
  br i1 %1255, label %1256, label %1257

1256:                                             ; preds = %1254
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  br label %1257

1257:                                             ; preds = %1256, %1254
  %1258 = load i1, ptr %41, align 1
  br i1 %1258, label %1259, label %1260

1259:                                             ; preds = %1257
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  br label %1260

1260:                                             ; preds = %1259, %1257
  %1261 = load i1, ptr %39, align 1
  br i1 %1261, label %1262, label %1263

1262:                                             ; preds = %1260
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %1263

1263:                                             ; preds = %1262, %1260
  %1264 = load i1, ptr %37, align 1
  br i1 %1264, label %1265, label %1266

1265:                                             ; preds = %1263
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %1266

1266:                                             ; preds = %1265, %1263
  br label %1267

1267:                                             ; preds = %1266, %1129
  %1268 = load i1, ptr %36, align 1
  br i1 %1268, label %1269, label %1270

1269:                                             ; preds = %1267
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %1270

1270:                                             ; preds = %1269, %1267
  br label %1271

1271:                                             ; preds = %1270, %1125
  %1272 = load i1, ptr %33, align 1
  br i1 %1272, label %1273, label %1274

1273:                                             ; preds = %1271
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  br label %1274

1274:                                             ; preds = %1273, %1271
  %1275 = load i1, ptr %32, align 1
  br i1 %1275, label %1276, label %1277

1276:                                             ; preds = %1274
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  br label %1277

1277:                                             ; preds = %1276, %1274
  %1278 = load i1, ptr %30, align 1
  br i1 %1278, label %1279, label %1280

1279:                                             ; preds = %1277
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #8
  br label %1280

1280:                                             ; preds = %1279, %1277
  %1281 = load i1, ptr %28, align 1
  br i1 %1281, label %1282, label %1283

1282:                                             ; preds = %1280
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  br label %1283

1283:                                             ; preds = %1282, %1280
  %1284 = load i1, ptr %26, align 1
  br i1 %1284, label %1285, label %1286

1285:                                             ; preds = %1283
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %1286

1286:                                             ; preds = %1285, %1283
  %1287 = load i1, ptr %24, align 1
  br i1 %1287, label %1288, label %1289

1288:                                             ; preds = %1286
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %1289

1289:                                             ; preds = %1288, %1286
  %1290 = load i1, ptr %22, align 1
  br i1 %1290, label %1291, label %1292

1291:                                             ; preds = %1289
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  br label %1292

1292:                                             ; preds = %1291, %1289
  %1293 = load i1, ptr %20, align 1
  br i1 %1293, label %1294, label %1295

1294:                                             ; preds = %1292
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br label %1295

1295:                                             ; preds = %1294, %1292
  br label %2490

1296:                                             ; preds = %717
  %1297 = landingpad { ptr, i32 }
          cleanup
  %1298 = extractvalue { ptr, i32 } %1297, 0
  store ptr %1298, ptr %34, align 8
  %1299 = extractvalue { ptr, i32 } %1297, 1
  store i32 %1299, ptr %35, align 4
  br label %1442

1300:                                             ; preds = %718
  %1301 = landingpad { ptr, i32 }
          cleanup
  %1302 = extractvalue { ptr, i32 } %1301, 0
  store ptr %1302, ptr %34, align 8
  %1303 = extractvalue { ptr, i32 } %1301, 1
  store i32 %1303, ptr %35, align 4
  br label %1438

1304:                                             ; preds = %719
  %1305 = landingpad { ptr, i32 }
          cleanup
  %1306 = extractvalue { ptr, i32 } %1305, 0
  store ptr %1306, ptr %34, align 8
  %1307 = extractvalue { ptr, i32 } %1305, 1
  store i32 %1307, ptr %35, align 4
  br label %1425

1308:                                             ; preds = %720
  %1309 = landingpad { ptr, i32 }
          cleanup
  %1310 = extractvalue { ptr, i32 } %1309, 0
  store ptr %1310, ptr %34, align 8
  %1311 = extractvalue { ptr, i32 } %1309, 1
  store i32 %1311, ptr %35, align 4
  br label %1421

1312:                                             ; preds = %721
  %1313 = landingpad { ptr, i32 }
          cleanup
  %1314 = extractvalue { ptr, i32 } %1313, 0
  store ptr %1314, ptr %34, align 8
  %1315 = extractvalue { ptr, i32 } %1313, 1
  store i32 %1315, ptr %35, align 4
  br label %1417

1316:                                             ; preds = %722
  %1317 = landingpad { ptr, i32 }
          cleanup
  %1318 = extractvalue { ptr, i32 } %1317, 0
  store ptr %1318, ptr %34, align 8
  %1319 = extractvalue { ptr, i32 } %1317, 1
  store i32 %1319, ptr %35, align 4
  br label %1404

1320:                                             ; preds = %723
  %1321 = landingpad { ptr, i32 }
          cleanup
  %1322 = extractvalue { ptr, i32 } %1321, 0
  store ptr %1322, ptr %34, align 8
  %1323 = extractvalue { ptr, i32 } %1321, 1
  store i32 %1323, ptr %35, align 4
  br label %1400

1324:                                             ; preds = %724
  %1325 = landingpad { ptr, i32 }
          cleanup
  %1326 = extractvalue { ptr, i32 } %1325, 0
  store ptr %1326, ptr %34, align 8
  %1327 = extractvalue { ptr, i32 } %1325, 1
  store i32 %1327, ptr %35, align 4
  br label %1396

1328:                                             ; preds = %725
  %1329 = landingpad { ptr, i32 }
          cleanup
  %1330 = extractvalue { ptr, i32 } %1329, 0
  store ptr %1330, ptr %34, align 8
  %1331 = extractvalue { ptr, i32 } %1329, 1
  store i32 %1331, ptr %35, align 4
  br label %1389

1332:                                             ; preds = %726
  %1333 = landingpad { ptr, i32 }
          cleanup
  %1334 = extractvalue { ptr, i32 } %1333, 0
  store ptr %1334, ptr %34, align 8
  %1335 = extractvalue { ptr, i32 } %1333, 1
  store i32 %1335, ptr %35, align 4
  br label %1385

1336:                                             ; preds = %727
  %1337 = landingpad { ptr, i32 }
          cleanup
  %1338 = extractvalue { ptr, i32 } %1337, 0
  store ptr %1338, ptr %34, align 8
  %1339 = extractvalue { ptr, i32 } %1337, 1
  store i32 %1339, ptr %35, align 4
  br label %1372

1340:                                             ; preds = %728
  %1341 = landingpad { ptr, i32 }
          cleanup
  %1342 = extractvalue { ptr, i32 } %1341, 0
  store ptr %1342, ptr %34, align 8
  %1343 = extractvalue { ptr, i32 } %1341, 1
  store i32 %1343, ptr %35, align 4
  br label %1359

1344:                                             ; preds = %729
  %1345 = landingpad { ptr, i32 }
          cleanup
  %1346 = extractvalue { ptr, i32 } %1345, 0
  store ptr %1346, ptr %34, align 8
  %1347 = extractvalue { ptr, i32 } %1345, 1
  store i32 %1347, ptr %35, align 4
  br label %1355

1348:                                             ; preds = %730
  %1349 = landingpad { ptr, i32 }
          cleanup
  %1350 = extractvalue { ptr, i32 } %1349, 0
  store ptr %1350, ptr %34, align 8
  %1351 = extractvalue { ptr, i32 } %1349, 1
  store i32 %1351, ptr %35, align 4
  %1352 = load i1, ptr %125, align 1
  br i1 %1352, label %1353, label %1354

1353:                                             ; preds = %1348
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %1354

1354:                                             ; preds = %1353, %1348
  br label %1355

1355:                                             ; preds = %1354, %1344
  %1356 = load i1, ptr %124, align 1
  br i1 %1356, label %1357, label %1358

1357:                                             ; preds = %1355
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  br label %1358

1358:                                             ; preds = %1357, %1355
  br label %1359

1359:                                             ; preds = %1358, %1340
  %1360 = load i1, ptr %123, align 1
  br i1 %1360, label %1361, label %1362

1361:                                             ; preds = %1359
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #8
  br label %1362

1362:                                             ; preds = %1361, %1359
  %1363 = load i1, ptr %122, align 1
  br i1 %1363, label %1364, label %1365

1364:                                             ; preds = %1362
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #8
  br label %1365

1365:                                             ; preds = %1364, %1362
  %1366 = load i1, ptr %120, align 1
  br i1 %1366, label %1367, label %1368

1367:                                             ; preds = %1365
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #8
  br label %1368

1368:                                             ; preds = %1367, %1365
  %1369 = load i1, ptr %118, align 1
  br i1 %1369, label %1370, label %1371

1370:                                             ; preds = %1368
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #8
  br label %1371

1371:                                             ; preds = %1370, %1368
  br label %1372

1372:                                             ; preds = %1371, %1336
  %1373 = load i1, ptr %117, align 1
  br i1 %1373, label %1374, label %1375

1374:                                             ; preds = %1372
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #8
  br label %1375

1375:                                             ; preds = %1374, %1372
  %1376 = load i1, ptr %116, align 1
  br i1 %1376, label %1377, label %1378

1377:                                             ; preds = %1375
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #8
  br label %1378

1378:                                             ; preds = %1377, %1375
  %1379 = load i1, ptr %114, align 1
  br i1 %1379, label %1380, label %1381

1380:                                             ; preds = %1378
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #8
  br label %1381

1381:                                             ; preds = %1380, %1378
  %1382 = load i1, ptr %111, align 1
  br i1 %1382, label %1383, label %1384

1383:                                             ; preds = %1381
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %1384

1384:                                             ; preds = %1383, %1381
  br label %1385

1385:                                             ; preds = %1384, %1332
  %1386 = load i1, ptr %110, align 1
  br i1 %1386, label %1387, label %1388

1387:                                             ; preds = %1385
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  br label %1388

1388:                                             ; preds = %1387, %1385
  br label %1389

1389:                                             ; preds = %1388, %1328
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  %1390 = load i1, ptr %108, align 1
  br i1 %1390, label %1391, label %1392

1391:                                             ; preds = %1389
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #8
  br label %1392

1392:                                             ; preds = %1391, %1389
  %1393 = load i1, ptr %106, align 1
  br i1 %1393, label %1394, label %1395

1394:                                             ; preds = %1392
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %1395

1395:                                             ; preds = %1394, %1392
  br label %1396

1396:                                             ; preds = %1395, %1324
  %1397 = load i1, ptr %105, align 1
  br i1 %1397, label %1398, label %1399

1398:                                             ; preds = %1396
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %1399

1399:                                             ; preds = %1398, %1396
  br label %1400

1400:                                             ; preds = %1399, %1320
  %1401 = load i1, ptr %104, align 1
  br i1 %1401, label %1402, label %1403

1402:                                             ; preds = %1400
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #8
  br label %1403

1403:                                             ; preds = %1402, %1400
  br label %1404

1404:                                             ; preds = %1403, %1316
  %1405 = load i1, ptr %103, align 1
  br i1 %1405, label %1406, label %1407

1406:                                             ; preds = %1404
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  br label %1407

1407:                                             ; preds = %1406, %1404
  %1408 = load i1, ptr %102, align 1
  br i1 %1408, label %1409, label %1410

1409:                                             ; preds = %1407
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #8
  br label %1410

1410:                                             ; preds = %1409, %1407
  %1411 = load i1, ptr %100, align 1
  br i1 %1411, label %1412, label %1413

1412:                                             ; preds = %1410
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #8
  br label %1413

1413:                                             ; preds = %1412, %1410
  %1414 = load i1, ptr %98, align 1
  br i1 %1414, label %1415, label %1416

1415:                                             ; preds = %1413
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %1416

1416:                                             ; preds = %1415, %1413
  br label %1417

1417:                                             ; preds = %1416, %1312
  %1418 = load i1, ptr %97, align 1
  br i1 %1418, label %1419, label %1420

1419:                                             ; preds = %1417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  br label %1420

1420:                                             ; preds = %1419, %1417
  br label %1421

1421:                                             ; preds = %1420, %1308
  %1422 = load i1, ptr %96, align 1
  br i1 %1422, label %1423, label %1424

1423:                                             ; preds = %1421
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  br label %1424

1424:                                             ; preds = %1423, %1421
  br label %1425

1425:                                             ; preds = %1424, %1304
  %1426 = load i1, ptr %95, align 1
  br i1 %1426, label %1427, label %1428

1427:                                             ; preds = %1425
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #8
  br label %1428

1428:                                             ; preds = %1427, %1425
  %1429 = load i1, ptr %94, align 1
  br i1 %1429, label %1430, label %1431

1430:                                             ; preds = %1428
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #8
  br label %1431

1431:                                             ; preds = %1430, %1428
  %1432 = load i1, ptr %92, align 1
  br i1 %1432, label %1433, label %1434

1433:                                             ; preds = %1431
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #8
  br label %1434

1434:                                             ; preds = %1433, %1431
  %1435 = load i1, ptr %90, align 1
  br i1 %1435, label %1436, label %1437

1436:                                             ; preds = %1434
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  br label %1437

1437:                                             ; preds = %1436, %1434
  br label %1438

1438:                                             ; preds = %1437, %1300
  %1439 = load i1, ptr %89, align 1
  br i1 %1439, label %1440, label %1441

1440:                                             ; preds = %1438
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %1441

1441:                                             ; preds = %1440, %1438
  br label %1442

1442:                                             ; preds = %1441, %1296
  %1443 = load i1, ptr %88, align 1
  br i1 %1443, label %1444, label %1445

1444:                                             ; preds = %1442
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #8
  br label %1445

1445:                                             ; preds = %1444, %1442
  %1446 = load i1, ptr %87, align 1
  br i1 %1446, label %1447, label %1448

1447:                                             ; preds = %1445
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #8
  br label %1448

1448:                                             ; preds = %1447, %1445
  %1449 = load i1, ptr %85, align 1
  br i1 %1449, label %1450, label %1451

1450:                                             ; preds = %1448
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #8
  br label %1451

1451:                                             ; preds = %1450, %1448
  %1452 = load i1, ptr %83, align 1
  br i1 %1452, label %1453, label %1454

1453:                                             ; preds = %1451
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #8
  br label %1454

1454:                                             ; preds = %1453, %1451
  %1455 = load i1, ptr %81, align 1
  br i1 %1455, label %1456, label %1457

1456:                                             ; preds = %1454
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  br label %1457

1457:                                             ; preds = %1456, %1454
  %1458 = load i1, ptr %79, align 1
  br i1 %1458, label %1459, label %1460

1459:                                             ; preds = %1457
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  br label %1460

1460:                                             ; preds = %1459, %1457
  %1461 = load i1, ptr %77, align 1
  br i1 %1461, label %1462, label %1463

1462:                                             ; preds = %1460
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  br label %1463

1463:                                             ; preds = %1462, %1460
  %1464 = load i1, ptr %75, align 1
  br i1 %1464, label %1465, label %1466

1465:                                             ; preds = %1463
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  br label %1466

1466:                                             ; preds = %1465, %1463
  br label %2490

1467:                                             ; preds = %859
  %1468 = landingpad { ptr, i32 }
          cleanup
  %1469 = extractvalue { ptr, i32 } %1468, 0
  store ptr %1469, ptr %34, align 8
  %1470 = extractvalue { ptr, i32 } %1468, 1
  store i32 %1470, ptr %35, align 4
  br label %1613

1471:                                             ; preds = %860
  %1472 = landingpad { ptr, i32 }
          cleanup
  %1473 = extractvalue { ptr, i32 } %1472, 0
  store ptr %1473, ptr %34, align 8
  %1474 = extractvalue { ptr, i32 } %1472, 1
  store i32 %1474, ptr %35, align 4
  br label %1609

1475:                                             ; preds = %861
  %1476 = landingpad { ptr, i32 }
          cleanup
  %1477 = extractvalue { ptr, i32 } %1476, 0
  store ptr %1477, ptr %34, align 8
  %1478 = extractvalue { ptr, i32 } %1476, 1
  store i32 %1478, ptr %35, align 4
  br label %1596

1479:                                             ; preds = %862
  %1480 = landingpad { ptr, i32 }
          cleanup
  %1481 = extractvalue { ptr, i32 } %1480, 0
  store ptr %1481, ptr %34, align 8
  %1482 = extractvalue { ptr, i32 } %1480, 1
  store i32 %1482, ptr %35, align 4
  br label %1592

1483:                                             ; preds = %863
  %1484 = landingpad { ptr, i32 }
          cleanup
  %1485 = extractvalue { ptr, i32 } %1484, 0
  store ptr %1485, ptr %34, align 8
  %1486 = extractvalue { ptr, i32 } %1484, 1
  store i32 %1486, ptr %35, align 4
  br label %1588

1487:                                             ; preds = %864
  %1488 = landingpad { ptr, i32 }
          cleanup
  %1489 = extractvalue { ptr, i32 } %1488, 0
  store ptr %1489, ptr %34, align 8
  %1490 = extractvalue { ptr, i32 } %1488, 1
  store i32 %1490, ptr %35, align 4
  br label %1575

1491:                                             ; preds = %865
  %1492 = landingpad { ptr, i32 }
          cleanup
  %1493 = extractvalue { ptr, i32 } %1492, 0
  store ptr %1493, ptr %34, align 8
  %1494 = extractvalue { ptr, i32 } %1492, 1
  store i32 %1494, ptr %35, align 4
  br label %1571

1495:                                             ; preds = %866
  %1496 = landingpad { ptr, i32 }
          cleanup
  %1497 = extractvalue { ptr, i32 } %1496, 0
  store ptr %1497, ptr %34, align 8
  %1498 = extractvalue { ptr, i32 } %1496, 1
  store i32 %1498, ptr %35, align 4
  br label %1567

1499:                                             ; preds = %867
  %1500 = landingpad { ptr, i32 }
          cleanup
  %1501 = extractvalue { ptr, i32 } %1500, 0
  store ptr %1501, ptr %34, align 8
  %1502 = extractvalue { ptr, i32 } %1500, 1
  store i32 %1502, ptr %35, align 4
  br label %1560

1503:                                             ; preds = %868
  %1504 = landingpad { ptr, i32 }
          cleanup
  %1505 = extractvalue { ptr, i32 } %1504, 0
  store ptr %1505, ptr %34, align 8
  %1506 = extractvalue { ptr, i32 } %1504, 1
  store i32 %1506, ptr %35, align 4
  br label %1556

1507:                                             ; preds = %869
  %1508 = landingpad { ptr, i32 }
          cleanup
  %1509 = extractvalue { ptr, i32 } %1508, 0
  store ptr %1509, ptr %34, align 8
  %1510 = extractvalue { ptr, i32 } %1508, 1
  store i32 %1510, ptr %35, align 4
  br label %1543

1511:                                             ; preds = %870
  %1512 = landingpad { ptr, i32 }
          cleanup
  %1513 = extractvalue { ptr, i32 } %1512, 0
  store ptr %1513, ptr %34, align 8
  %1514 = extractvalue { ptr, i32 } %1512, 1
  store i32 %1514, ptr %35, align 4
  br label %1530

1515:                                             ; preds = %871
  %1516 = landingpad { ptr, i32 }
          cleanup
  %1517 = extractvalue { ptr, i32 } %1516, 0
  store ptr %1517, ptr %34, align 8
  %1518 = extractvalue { ptr, i32 } %1516, 1
  store i32 %1518, ptr %35, align 4
  br label %1526

1519:                                             ; preds = %872
  %1520 = landingpad { ptr, i32 }
          cleanup
  %1521 = extractvalue { ptr, i32 } %1520, 0
  store ptr %1521, ptr %34, align 8
  %1522 = extractvalue { ptr, i32 } %1520, 1
  store i32 %1522, ptr %35, align 4
  %1523 = load i1, ptr %178, align 1
  br i1 %1523, label %1524, label %1525

1524:                                             ; preds = %1519
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  br label %1525

1525:                                             ; preds = %1524, %1519
  br label %1526

1526:                                             ; preds = %1525, %1515
  %1527 = load i1, ptr %177, align 1
  br i1 %1527, label %1528, label %1529

1528:                                             ; preds = %1526
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #8
  br label %1529

1529:                                             ; preds = %1528, %1526
  br label %1530

1530:                                             ; preds = %1529, %1511
  %1531 = load i1, ptr %176, align 1
  br i1 %1531, label %1532, label %1533

1532:                                             ; preds = %1530
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #8
  br label %1533

1533:                                             ; preds = %1532, %1530
  %1534 = load i1, ptr %175, align 1
  br i1 %1534, label %1535, label %1536

1535:                                             ; preds = %1533
  call void @llvm.lifetime.end.p0(i64 1, ptr %174) #8
  br label %1536

1536:                                             ; preds = %1535, %1533
  %1537 = load i1, ptr %173, align 1
  br i1 %1537, label %1538, label %1539

1538:                                             ; preds = %1536
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #8
  br label %1539

1539:                                             ; preds = %1538, %1536
  %1540 = load i1, ptr %171, align 1
  br i1 %1540, label %1541, label %1542

1541:                                             ; preds = %1539
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #8
  br label %1542

1542:                                             ; preds = %1541, %1539
  br label %1543

1543:                                             ; preds = %1542, %1507
  %1544 = load i1, ptr %170, align 1
  br i1 %1544, label %1545, label %1546

1545:                                             ; preds = %1543
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #8
  br label %1546

1546:                                             ; preds = %1545, %1543
  %1547 = load i1, ptr %169, align 1
  br i1 %1547, label %1548, label %1549

1548:                                             ; preds = %1546
  call void @llvm.lifetime.end.p0(i64 1, ptr %168) #8
  br label %1549

1549:                                             ; preds = %1548, %1546
  %1550 = load i1, ptr %167, align 1
  br i1 %1550, label %1551, label %1552

1551:                                             ; preds = %1549
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #8
  br label %1552

1552:                                             ; preds = %1551, %1549
  %1553 = load i1, ptr %164, align 1
  br i1 %1553, label %1554, label %1555

1554:                                             ; preds = %1552
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  br label %1555

1555:                                             ; preds = %1554, %1552
  br label %1556

1556:                                             ; preds = %1555, %1503
  %1557 = load i1, ptr %163, align 1
  br i1 %1557, label %1558, label %1559

1558:                                             ; preds = %1556
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #8
  br label %1559

1559:                                             ; preds = %1558, %1556
  br label %1560

1560:                                             ; preds = %1559, %1499
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #8
  %1561 = load i1, ptr %161, align 1
  br i1 %1561, label %1562, label %1563

1562:                                             ; preds = %1560
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #8
  br label %1563

1563:                                             ; preds = %1562, %1560
  %1564 = load i1, ptr %159, align 1
  br i1 %1564, label %1565, label %1566

1565:                                             ; preds = %1563
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  br label %1566

1566:                                             ; preds = %1565, %1563
  br label %1567

1567:                                             ; preds = %1566, %1495
  %1568 = load i1, ptr %158, align 1
  br i1 %1568, label %1569, label %1570

1569:                                             ; preds = %1567
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #8
  br label %1570

1570:                                             ; preds = %1569, %1567
  br label %1571

1571:                                             ; preds = %1570, %1491
  %1572 = load i1, ptr %157, align 1
  br i1 %1572, label %1573, label %1574

1573:                                             ; preds = %1571
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #8
  br label %1574

1574:                                             ; preds = %1573, %1571
  br label %1575

1575:                                             ; preds = %1574, %1487
  %1576 = load i1, ptr %156, align 1
  br i1 %1576, label %1577, label %1578

1577:                                             ; preds = %1575
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #8
  br label %1578

1578:                                             ; preds = %1577, %1575
  %1579 = load i1, ptr %155, align 1
  br i1 %1579, label %1580, label %1581

1580:                                             ; preds = %1578
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #8
  br label %1581

1581:                                             ; preds = %1580, %1578
  %1582 = load i1, ptr %153, align 1
  br i1 %1582, label %1583, label %1584

1583:                                             ; preds = %1581
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #8
  br label %1584

1584:                                             ; preds = %1583, %1581
  %1585 = load i1, ptr %151, align 1
  br i1 %1585, label %1586, label %1587

1586:                                             ; preds = %1584
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #8
  br label %1587

1587:                                             ; preds = %1586, %1584
  br label %1588

1588:                                             ; preds = %1587, %1483
  %1589 = load i1, ptr %150, align 1
  br i1 %1589, label %1590, label %1591

1590:                                             ; preds = %1588
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  br label %1591

1591:                                             ; preds = %1590, %1588
  br label %1592

1592:                                             ; preds = %1591, %1479
  %1593 = load i1, ptr %149, align 1
  br i1 %1593, label %1594, label %1595

1594:                                             ; preds = %1592
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  br label %1595

1595:                                             ; preds = %1594, %1592
  br label %1596

1596:                                             ; preds = %1595, %1475
  %1597 = load i1, ptr %148, align 1
  br i1 %1597, label %1598, label %1599

1598:                                             ; preds = %1596
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %146) #8
  br label %1599

1599:                                             ; preds = %1598, %1596
  %1600 = load i1, ptr %147, align 1
  br i1 %1600, label %1601, label %1602

1601:                                             ; preds = %1599
  call void @llvm.lifetime.end.p0(i64 1, ptr %146) #8
  br label %1602

1602:                                             ; preds = %1601, %1599
  %1603 = load i1, ptr %145, align 1
  br i1 %1603, label %1604, label %1605

1604:                                             ; preds = %1602
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #8
  br label %1605

1605:                                             ; preds = %1604, %1602
  %1606 = load i1, ptr %143, align 1
  br i1 %1606, label %1607, label %1608

1607:                                             ; preds = %1605
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  br label %1608

1608:                                             ; preds = %1607, %1605
  br label %1609

1609:                                             ; preds = %1608, %1471
  %1610 = load i1, ptr %142, align 1
  br i1 %1610, label %1611, label %1612

1611:                                             ; preds = %1609
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %1612

1612:                                             ; preds = %1611, %1609
  br label %1613

1613:                                             ; preds = %1612, %1467
  %1614 = load i1, ptr %141, align 1
  br i1 %1614, label %1615, label %1616

1615:                                             ; preds = %1613
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #8
  br label %1616

1616:                                             ; preds = %1615, %1613
  %1617 = load i1, ptr %140, align 1
  br i1 %1617, label %1618, label %1619

1618:                                             ; preds = %1616
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #8
  br label %1619

1619:                                             ; preds = %1618, %1616
  %1620 = load i1, ptr %138, align 1
  br i1 %1620, label %1621, label %1622

1621:                                             ; preds = %1619
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #8
  br label %1622

1622:                                             ; preds = %1621, %1619
  %1623 = load i1, ptr %136, align 1
  br i1 %1623, label %1624, label %1625

1624:                                             ; preds = %1622
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #8
  br label %1625

1625:                                             ; preds = %1624, %1622
  %1626 = load i1, ptr %134, align 1
  br i1 %1626, label %1627, label %1628

1627:                                             ; preds = %1625
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #8
  br label %1628

1628:                                             ; preds = %1627, %1625
  %1629 = load i1, ptr %132, align 1
  br i1 %1629, label %1630, label %1631

1630:                                             ; preds = %1628
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #8
  br label %1631

1631:                                             ; preds = %1630, %1628
  %1632 = load i1, ptr %130, align 1
  br i1 %1632, label %1633, label %1634

1633:                                             ; preds = %1631
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #8
  br label %1634

1634:                                             ; preds = %1633, %1631
  %1635 = load i1, ptr %128, align 1
  br i1 %1635, label %1636, label %1637

1636:                                             ; preds = %1634
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #8
  br label %1637

1637:                                             ; preds = %1636, %1634
  br label %2490

1638:                                             ; preds = %1004
  %1639 = landingpad { ptr, i32 }
          cleanup
  %1640 = extractvalue { ptr, i32 } %1639, 0
  store ptr %1640, ptr %34, align 8
  %1641 = extractvalue { ptr, i32 } %1639, 1
  store i32 %1641, ptr %35, align 4
  br label %1784

1642:                                             ; preds = %1005
  %1643 = landingpad { ptr, i32 }
          cleanup
  %1644 = extractvalue { ptr, i32 } %1643, 0
  store ptr %1644, ptr %34, align 8
  %1645 = extractvalue { ptr, i32 } %1643, 1
  store i32 %1645, ptr %35, align 4
  br label %1780

1646:                                             ; preds = %1006
  %1647 = landingpad { ptr, i32 }
          cleanup
  %1648 = extractvalue { ptr, i32 } %1647, 0
  store ptr %1648, ptr %34, align 8
  %1649 = extractvalue { ptr, i32 } %1647, 1
  store i32 %1649, ptr %35, align 4
  br label %1767

1650:                                             ; preds = %1007
  %1651 = landingpad { ptr, i32 }
          cleanup
  %1652 = extractvalue { ptr, i32 } %1651, 0
  store ptr %1652, ptr %34, align 8
  %1653 = extractvalue { ptr, i32 } %1651, 1
  store i32 %1653, ptr %35, align 4
  br label %1763

1654:                                             ; preds = %1008
  %1655 = landingpad { ptr, i32 }
          cleanup
  %1656 = extractvalue { ptr, i32 } %1655, 0
  store ptr %1656, ptr %34, align 8
  %1657 = extractvalue { ptr, i32 } %1655, 1
  store i32 %1657, ptr %35, align 4
  br label %1759

1658:                                             ; preds = %1009
  %1659 = landingpad { ptr, i32 }
          cleanup
  %1660 = extractvalue { ptr, i32 } %1659, 0
  store ptr %1660, ptr %34, align 8
  %1661 = extractvalue { ptr, i32 } %1659, 1
  store i32 %1661, ptr %35, align 4
  br label %1746

1662:                                             ; preds = %1010
  %1663 = landingpad { ptr, i32 }
          cleanup
  %1664 = extractvalue { ptr, i32 } %1663, 0
  store ptr %1664, ptr %34, align 8
  %1665 = extractvalue { ptr, i32 } %1663, 1
  store i32 %1665, ptr %35, align 4
  br label %1742

1666:                                             ; preds = %1011
  %1667 = landingpad { ptr, i32 }
          cleanup
  %1668 = extractvalue { ptr, i32 } %1667, 0
  store ptr %1668, ptr %34, align 8
  %1669 = extractvalue { ptr, i32 } %1667, 1
  store i32 %1669, ptr %35, align 4
  br label %1738

1670:                                             ; preds = %1012
  %1671 = landingpad { ptr, i32 }
          cleanup
  %1672 = extractvalue { ptr, i32 } %1671, 0
  store ptr %1672, ptr %34, align 8
  %1673 = extractvalue { ptr, i32 } %1671, 1
  store i32 %1673, ptr %35, align 4
  br label %1731

1674:                                             ; preds = %1013
  %1675 = landingpad { ptr, i32 }
          cleanup
  %1676 = extractvalue { ptr, i32 } %1675, 0
  store ptr %1676, ptr %34, align 8
  %1677 = extractvalue { ptr, i32 } %1675, 1
  store i32 %1677, ptr %35, align 4
  br label %1727

1678:                                             ; preds = %1014
  %1679 = landingpad { ptr, i32 }
          cleanup
  %1680 = extractvalue { ptr, i32 } %1679, 0
  store ptr %1680, ptr %34, align 8
  %1681 = extractvalue { ptr, i32 } %1679, 1
  store i32 %1681, ptr %35, align 4
  br label %1714

1682:                                             ; preds = %1015
  %1683 = landingpad { ptr, i32 }
          cleanup
  %1684 = extractvalue { ptr, i32 } %1683, 0
  store ptr %1684, ptr %34, align 8
  %1685 = extractvalue { ptr, i32 } %1683, 1
  store i32 %1685, ptr %35, align 4
  br label %1701

1686:                                             ; preds = %1016
  %1687 = landingpad { ptr, i32 }
          cleanup
  %1688 = extractvalue { ptr, i32 } %1687, 0
  store ptr %1688, ptr %34, align 8
  %1689 = extractvalue { ptr, i32 } %1687, 1
  store i32 %1689, ptr %35, align 4
  br label %1697

1690:                                             ; preds = %1017
  %1691 = landingpad { ptr, i32 }
          cleanup
  %1692 = extractvalue { ptr, i32 } %1691, 0
  store ptr %1692, ptr %34, align 8
  %1693 = extractvalue { ptr, i32 } %1691, 1
  store i32 %1693, ptr %35, align 4
  %1694 = load i1, ptr %233, align 1
  br i1 %1694, label %1695, label %1696

1695:                                             ; preds = %1690
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #8
  br label %1696

1696:                                             ; preds = %1695, %1690
  br label %1697

1697:                                             ; preds = %1696, %1686
  %1698 = load i1, ptr %232, align 1
  br i1 %1698, label %1699, label %1700

1699:                                             ; preds = %1697
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #8
  br label %1700

1700:                                             ; preds = %1699, %1697
  br label %1701

1701:                                             ; preds = %1700, %1682
  %1702 = load i1, ptr %231, align 1
  br i1 %1702, label %1703, label %1704

1703:                                             ; preds = %1701
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #8
  br label %1704

1704:                                             ; preds = %1703, %1701
  %1705 = load i1, ptr %230, align 1
  br i1 %1705, label %1706, label %1707

1706:                                             ; preds = %1704
  call void @llvm.lifetime.end.p0(i64 1, ptr %229) #8
  br label %1707

1707:                                             ; preds = %1706, %1704
  %1708 = load i1, ptr %228, align 1
  br i1 %1708, label %1709, label %1710

1709:                                             ; preds = %1707
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #8
  br label %1710

1710:                                             ; preds = %1709, %1707
  %1711 = load i1, ptr %226, align 1
  br i1 %1711, label %1712, label %1713

1712:                                             ; preds = %1710
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #8
  br label %1713

1713:                                             ; preds = %1712, %1710
  br label %1714

1714:                                             ; preds = %1713, %1678
  %1715 = load i1, ptr %225, align 1
  br i1 %1715, label %1716, label %1717

1716:                                             ; preds = %1714
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #8
  br label %1717

1717:                                             ; preds = %1716, %1714
  %1718 = load i1, ptr %224, align 1
  br i1 %1718, label %1719, label %1720

1719:                                             ; preds = %1717
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #8
  br label %1720

1720:                                             ; preds = %1719, %1717
  %1721 = load i1, ptr %222, align 1
  br i1 %1721, label %1722, label %1723

1722:                                             ; preds = %1720
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #8
  br label %1723

1723:                                             ; preds = %1722, %1720
  %1724 = load i1, ptr %219, align 1
  br i1 %1724, label %1725, label %1726

1725:                                             ; preds = %1723
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #8
  br label %1726

1726:                                             ; preds = %1725, %1723
  br label %1727

1727:                                             ; preds = %1726, %1674
  %1728 = load i1, ptr %218, align 1
  br i1 %1728, label %1729, label %1730

1729:                                             ; preds = %1727
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #8
  br label %1730

1730:                                             ; preds = %1729, %1727
  br label %1731

1731:                                             ; preds = %1730, %1670
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #8
  %1732 = load i1, ptr %216, align 1
  br i1 %1732, label %1733, label %1734

1733:                                             ; preds = %1731
  call void @llvm.lifetime.end.p0(i64 32, ptr %215) #8
  br label %1734

1734:                                             ; preds = %1733, %1731
  %1735 = load i1, ptr %214, align 1
  br i1 %1735, label %1736, label %1737

1736:                                             ; preds = %1734
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #8
  br label %1737

1737:                                             ; preds = %1736, %1734
  br label %1738

1738:                                             ; preds = %1737, %1666
  %1739 = load i1, ptr %213, align 1
  br i1 %1739, label %1740, label %1741

1740:                                             ; preds = %1738
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #8
  br label %1741

1741:                                             ; preds = %1740, %1738
  br label %1742

1742:                                             ; preds = %1741, %1662
  %1743 = load i1, ptr %212, align 1
  br i1 %1743, label %1744, label %1745

1744:                                             ; preds = %1742
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #8
  br label %1745

1745:                                             ; preds = %1744, %1742
  br label %1746

1746:                                             ; preds = %1745, %1658
  %1747 = load i1, ptr %211, align 1
  br i1 %1747, label %1748, label %1749

1748:                                             ; preds = %1746
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #8
  br label %1749

1749:                                             ; preds = %1748, %1746
  %1750 = load i1, ptr %210, align 1
  br i1 %1750, label %1751, label %1752

1751:                                             ; preds = %1749
  call void @llvm.lifetime.end.p0(i64 1, ptr %209) #8
  br label %1752

1752:                                             ; preds = %1751, %1749
  %1753 = load i1, ptr %208, align 1
  br i1 %1753, label %1754, label %1755

1754:                                             ; preds = %1752
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #8
  br label %1755

1755:                                             ; preds = %1754, %1752
  %1756 = load i1, ptr %206, align 1
  br i1 %1756, label %1757, label %1758

1757:                                             ; preds = %1755
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #8
  br label %1758

1758:                                             ; preds = %1757, %1755
  br label %1759

1759:                                             ; preds = %1758, %1654
  %1760 = load i1, ptr %205, align 1
  br i1 %1760, label %1761, label %1762

1761:                                             ; preds = %1759
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #8
  br label %1762

1762:                                             ; preds = %1761, %1759
  br label %1763

1763:                                             ; preds = %1762, %1650
  %1764 = load i1, ptr %204, align 1
  br i1 %1764, label %1765, label %1766

1765:                                             ; preds = %1763
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #8
  br label %1766

1766:                                             ; preds = %1765, %1763
  br label %1767

1767:                                             ; preds = %1766, %1646
  %1768 = load i1, ptr %203, align 1
  br i1 %1768, label %1769, label %1770

1769:                                             ; preds = %1767
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #8
  br label %1770

1770:                                             ; preds = %1769, %1767
  %1771 = load i1, ptr %202, align 1
  br i1 %1771, label %1772, label %1773

1772:                                             ; preds = %1770
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #8
  br label %1773

1773:                                             ; preds = %1772, %1770
  %1774 = load i1, ptr %200, align 1
  br i1 %1774, label %1775, label %1776

1775:                                             ; preds = %1773
  call void @llvm.lifetime.end.p0(i64 32, ptr %199) #8
  br label %1776

1776:                                             ; preds = %1775, %1773
  %1777 = load i1, ptr %198, align 1
  br i1 %1777, label %1778, label %1779

1778:                                             ; preds = %1776
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #8
  br label %1779

1779:                                             ; preds = %1778, %1776
  br label %1780

1780:                                             ; preds = %1779, %1642
  %1781 = load i1, ptr %197, align 1
  br i1 %1781, label %1782, label %1783

1782:                                             ; preds = %1780
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #8
  br label %1783

1783:                                             ; preds = %1782, %1780
  br label %1784

1784:                                             ; preds = %1783, %1638
  %1785 = load i1, ptr %196, align 1
  br i1 %1785, label %1786, label %1787

1786:                                             ; preds = %1784
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #8
  br label %1787

1787:                                             ; preds = %1786, %1784
  %1788 = load i1, ptr %195, align 1
  br i1 %1788, label %1789, label %1790

1789:                                             ; preds = %1787
  call void @llvm.lifetime.end.p0(i64 1, ptr %194) #8
  br label %1790

1790:                                             ; preds = %1789, %1787
  %1791 = load i1, ptr %193, align 1
  br i1 %1791, label %1792, label %1793

1792:                                             ; preds = %1790
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #8
  br label %1793

1793:                                             ; preds = %1792, %1790
  %1794 = load i1, ptr %191, align 1
  br i1 %1794, label %1795, label %1796

1795:                                             ; preds = %1793
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #8
  br label %1796

1796:                                             ; preds = %1795, %1793
  %1797 = load i1, ptr %189, align 1
  br i1 %1797, label %1798, label %1799

1798:                                             ; preds = %1796
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #8
  br label %1799

1799:                                             ; preds = %1798, %1796
  %1800 = load i1, ptr %187, align 1
  br i1 %1800, label %1801, label %1802

1801:                                             ; preds = %1799
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #8
  br label %1802

1802:                                             ; preds = %1801, %1799
  %1803 = load i1, ptr %185, align 1
  br i1 %1803, label %1804, label %1805

1804:                                             ; preds = %1802
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #8
  br label %1805

1805:                                             ; preds = %1804, %1802
  %1806 = load i1, ptr %183, align 1
  br i1 %1806, label %1807, label %1808

1807:                                             ; preds = %1805
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #8
  br label %1808

1808:                                             ; preds = %1807, %1805
  br label %2489

1809:                                             ; preds = %1124, %979
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #8
  %1810 = load double, ptr %5, align 8, !tbaa !9
  store double %1810, ptr %235, align 8, !tbaa !9
  %1811 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 3
  %1812 = load ptr, ptr %1811, align 8, !tbaa !29
  %1813 = load i32, ptr %15, align 4, !tbaa !20
  %1814 = sext i32 %1813 to i64
  %1815 = getelementptr inbounds %class.CornerApex, ptr %1812, i64 %1814
  %1816 = load double, ptr %4, align 8, !tbaa !9
  %1817 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %1818 = load i32, ptr %15, align 4, !tbaa !20
  %1819 = sext i32 %1818 to i64
  %1820 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1817, i64 noundef %1819) #8
  %1821 = load double, ptr %1820, align 8, !tbaa !9
  %1822 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 4
  %1823 = load ptr, ptr %1822, align 8, !tbaa !11
  %1824 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %1823)
  call void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144) %1815, ptr noundef nonnull align 8 dereferenceable(8) %234, ptr noundef nonnull align 8 dereferenceable(8) %235, double noundef %1816, double noundef %1821, double noundef %1824, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext false)
  %1825 = load double, ptr %234, align 8, !tbaa !9
  %1826 = load double, ptr %14, align 8, !tbaa !9
  %1827 = fadd double %1826, %1825
  store double %1827, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %236) #8
  %1828 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %1829 = load i32, ptr %15, align 4, !tbaa !20
  %1830 = sext i32 %1829 to i64
  %1831 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1828, i64 noundef %1830) #8
  %1832 = load double, ptr %1831, align 8, !tbaa !9
  %1833 = load double, ptr %235, align 8, !tbaa !9
  %1834 = call noundef double @_Z17dimLessCornerAreadd(double noundef %1832, double noundef %1833)
  store double %1834, ptr %236, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #8
  %1835 = load double, ptr %234, align 8, !tbaa !9
  %1836 = load double, ptr %234, align 8, !tbaa !9
  %1837 = fmul double %1835, %1836
  %1838 = load double, ptr %236, align 8, !tbaa !9
  %1839 = fmul double %1837, %1838
  store double %1839, ptr %237, align 8, !tbaa !9
  %1840 = load double, ptr %17, align 8, !tbaa !9
  %1841 = load double, ptr %234, align 8, !tbaa !9
  %1842 = fcmp ogt double %1840, %1841
  store i1 false, ptr %240, align 1
  store i1 false, ptr %242, align 1
  store i1 false, ptr %244, align 1
  store i1 false, ptr %246, align 1
  store i1 false, ptr %248, align 1
  store i1 false, ptr %250, align 1
  store i1 false, ptr %252, align 1
  store i1 false, ptr %253, align 1
  store i1 false, ptr %254, align 1
  store i1 false, ptr %255, align 1
  store i1 false, ptr %257, align 1
  store i1 false, ptr %259, align 1
  store i1 false, ptr %260, align 1
  store i1 false, ptr %261, align 1
  store i1 false, ptr %262, align 1
  store i1 false, ptr %263, align 1
  store i1 false, ptr %265, align 1
  store i1 false, ptr %267, align 1
  store i1 false, ptr %268, align 1
  store i1 false, ptr %269, align 1
  store i1 false, ptr %270, align 1
  store i1 false, ptr %271, align 1
  store i1 false, ptr %273, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #8
  store i1 false, ptr %275, align 1
  store i1 false, ptr %276, align 1
  store i1 false, ptr %279, align 1
  store i1 false, ptr %281, align 1
  store i1 false, ptr %282, align 1
  store i1 false, ptr %283, align 1
  store i1 false, ptr %285, align 1
  store i1 false, ptr %287, align 1
  store i1 false, ptr %288, align 1
  store i1 false, ptr %289, align 1
  store i1 false, ptr %290, align 1
  br i1 %1842, label %1859, label %1843

1843:                                             ; preds = %1809
  call void @llvm.lifetime.start.p0(i64 32, ptr %239) #8
  store i1 true, ptr %240, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %241) #8
  store i1 true, ptr %242, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %243) #8
  store i1 true, ptr %244, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %245) #8
  store i1 true, ptr %246, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %247) #8
  store i1 true, ptr %248, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %249) #8
  store i1 true, ptr %250, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %251) #8
  store i1 true, ptr %252, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #8
  store i1 true, ptr %253, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %249, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %251)
          to label %1844 unwind label %1976

1844:                                             ; preds = %1843
  store i1 true, ptr %254, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %247, ptr noundef nonnull align 8 dereferenceable(32) %249, ptr noundef @.str.1)
          to label %1845 unwind label %1980

1845:                                             ; preds = %1844
  store i1 true, ptr %255, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %256) #8
  store i1 true, ptr %257, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %258) #8
  store i1 true, ptr %259, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #8
  store i1 true, ptr %260, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %258)
          to label %1846 unwind label %1984

1846:                                             ; preds = %1845
  store i1 true, ptr %261, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %245, ptr noundef nonnull align 8 dereferenceable(32) %247, ptr noundef nonnull align 8 dereferenceable(32) %256)
          to label %1847 unwind label %1988

1847:                                             ; preds = %1846
  store i1 true, ptr %262, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %243, ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef @.str.2)
          to label %1848 unwind label %1992

1848:                                             ; preds = %1847
  store i1 true, ptr %263, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %264) #8
  store i1 true, ptr %265, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %266) #8
  store i1 true, ptr %267, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #8
  store i1 true, ptr %268, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %264, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %266)
          to label %1849 unwind label %1996

1849:                                             ; preds = %1848
  store i1 true, ptr %269, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %241, ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef nonnull align 8 dereferenceable(32) %264)
          to label %1850 unwind label %2000

1850:                                             ; preds = %1849
  store i1 true, ptr %270, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %239, ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef @.str.4)
          to label %1851 unwind label %2004

1851:                                             ; preds = %1850
  store i1 true, ptr %271, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %272) #8
  store i1 true, ptr %273, align 1
  store i32 337, ptr %274, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %272, ptr noundef nonnull align 4 dereferenceable(4) %274)
          to label %1852 unwind label %2008

1852:                                             ; preds = %1851
  store i1 true, ptr %275, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %238, ptr noundef nonnull align 8 dereferenceable(32) %239, ptr noundef nonnull align 8 dereferenceable(32) %272)
          to label %1853 unwind label %2012

1853:                                             ; preds = %1852
  store i1 true, ptr %276, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %278) #8
  store i1 true, ptr %279, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %280) #8
  store i1 true, ptr %281, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %280) #8
  store i1 true, ptr %282, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %280)
          to label %1854 unwind label %2016

1854:                                             ; preds = %1853
  store i1 true, ptr %283, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %284) #8
  store i1 true, ptr %285, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %286) #8
  store i1 true, ptr %287, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %286) #8
  store i1 true, ptr %288, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %286)
          to label %1855 unwind label %2020

1855:                                             ; preds = %1854
  store i1 true, ptr %289, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %277, ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef nonnull align 8 dereferenceable(32) %284)
          to label %1856 unwind label %2024

1856:                                             ; preds = %1855
  store i1 true, ptr %290, align 1
  %1857 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %238, ptr noundef %277, i32 noundef 0)
          to label %1858 unwind label %2028

1858:                                             ; preds = %1856
  br label %1859

1859:                                             ; preds = %1858, %1809
  %1860 = phi i1 [ true, %1809 ], [ %1857, %1858 ]
  %1861 = xor i1 %1860, true
  %1862 = load i1, ptr %290, align 1
  br i1 %1862, label %1863, label %1864

1863:                                             ; preds = %1859
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #8
  br label %1864

1864:                                             ; preds = %1863, %1859
  %1865 = load i1, ptr %289, align 1
  br i1 %1865, label %1866, label %1867

1866:                                             ; preds = %1864
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #8
  br label %1867

1867:                                             ; preds = %1866, %1864
  %1868 = load i1, ptr %288, align 1
  br i1 %1868, label %1869, label %1870

1869:                                             ; preds = %1867
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %286) #8
  br label %1870

1870:                                             ; preds = %1869, %1867
  %1871 = load i1, ptr %287, align 1
  br i1 %1871, label %1872, label %1873

1872:                                             ; preds = %1870
  call void @llvm.lifetime.end.p0(i64 1, ptr %286) #8
  br label %1873

1873:                                             ; preds = %1872, %1870
  %1874 = load i1, ptr %285, align 1
  br i1 %1874, label %1875, label %1876

1875:                                             ; preds = %1873
  call void @llvm.lifetime.end.p0(i64 32, ptr %284) #8
  br label %1876

1876:                                             ; preds = %1875, %1873
  %1877 = load i1, ptr %283, align 1
  br i1 %1877, label %1878, label %1879

1878:                                             ; preds = %1876
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #8
  br label %1879

1879:                                             ; preds = %1878, %1876
  %1880 = load i1, ptr %282, align 1
  br i1 %1880, label %1881, label %1882

1881:                                             ; preds = %1879
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %280) #8
  br label %1882

1882:                                             ; preds = %1881, %1879
  %1883 = load i1, ptr %281, align 1
  br i1 %1883, label %1884, label %1885

1884:                                             ; preds = %1882
  call void @llvm.lifetime.end.p0(i64 1, ptr %280) #8
  br label %1885

1885:                                             ; preds = %1884, %1882
  %1886 = load i1, ptr %279, align 1
  br i1 %1886, label %1887, label %1888

1887:                                             ; preds = %1885
  call void @llvm.lifetime.end.p0(i64 32, ptr %278) #8
  br label %1888

1888:                                             ; preds = %1887, %1885
  %1889 = load i1, ptr %276, align 1
  br i1 %1889, label %1890, label %1891

1890:                                             ; preds = %1888
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #8
  br label %1891

1891:                                             ; preds = %1890, %1888
  %1892 = load i1, ptr %275, align 1
  br i1 %1892, label %1893, label %1894

1893:                                             ; preds = %1891
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #8
  br label %1894

1894:                                             ; preds = %1893, %1891
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #8
  %1895 = load i1, ptr %273, align 1
  br i1 %1895, label %1896, label %1897

1896:                                             ; preds = %1894
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #8
  br label %1897

1897:                                             ; preds = %1896, %1894
  %1898 = load i1, ptr %271, align 1
  br i1 %1898, label %1899, label %1900

1899:                                             ; preds = %1897
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #8
  br label %1900

1900:                                             ; preds = %1899, %1897
  %1901 = load i1, ptr %270, align 1
  br i1 %1901, label %1902, label %1903

1902:                                             ; preds = %1900
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #8
  br label %1903

1903:                                             ; preds = %1902, %1900
  %1904 = load i1, ptr %269, align 1
  br i1 %1904, label %1905, label %1906

1905:                                             ; preds = %1903
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #8
  br label %1906

1906:                                             ; preds = %1905, %1903
  %1907 = load i1, ptr %268, align 1
  br i1 %1907, label %1908, label %1909

1908:                                             ; preds = %1906
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #8
  br label %1909

1909:                                             ; preds = %1908, %1906
  %1910 = load i1, ptr %267, align 1
  br i1 %1910, label %1911, label %1912

1911:                                             ; preds = %1909
  call void @llvm.lifetime.end.p0(i64 1, ptr %266) #8
  br label %1912

1912:                                             ; preds = %1911, %1909
  %1913 = load i1, ptr %265, align 1
  br i1 %1913, label %1914, label %1915

1914:                                             ; preds = %1912
  call void @llvm.lifetime.end.p0(i64 32, ptr %264) #8
  br label %1915

1915:                                             ; preds = %1914, %1912
  %1916 = load i1, ptr %263, align 1
  br i1 %1916, label %1917, label %1918

1917:                                             ; preds = %1915
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #8
  br label %1918

1918:                                             ; preds = %1917, %1915
  %1919 = load i1, ptr %262, align 1
  br i1 %1919, label %1920, label %1921

1920:                                             ; preds = %1918
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #8
  br label %1921

1921:                                             ; preds = %1920, %1918
  %1922 = load i1, ptr %261, align 1
  br i1 %1922, label %1923, label %1924

1923:                                             ; preds = %1921
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #8
  br label %1924

1924:                                             ; preds = %1923, %1921
  %1925 = load i1, ptr %260, align 1
  br i1 %1925, label %1926, label %1927

1926:                                             ; preds = %1924
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #8
  br label %1927

1927:                                             ; preds = %1926, %1924
  %1928 = load i1, ptr %259, align 1
  br i1 %1928, label %1929, label %1930

1929:                                             ; preds = %1927
  call void @llvm.lifetime.end.p0(i64 1, ptr %258) #8
  br label %1930

1930:                                             ; preds = %1929, %1927
  %1931 = load i1, ptr %257, align 1
  br i1 %1931, label %1932, label %1933

1932:                                             ; preds = %1930
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #8
  br label %1933

1933:                                             ; preds = %1932, %1930
  %1934 = load i1, ptr %255, align 1
  br i1 %1934, label %1935, label %1936

1935:                                             ; preds = %1933
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #8
  br label %1936

1936:                                             ; preds = %1935, %1933
  %1937 = load i1, ptr %254, align 1
  br i1 %1937, label %1938, label %1939

1938:                                             ; preds = %1936
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #8
  br label %1939

1939:                                             ; preds = %1938, %1936
  %1940 = load i1, ptr %253, align 1
  br i1 %1940, label %1941, label %1942

1941:                                             ; preds = %1939
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #8
  br label %1942

1942:                                             ; preds = %1941, %1939
  %1943 = load i1, ptr %252, align 1
  br i1 %1943, label %1944, label %1945

1944:                                             ; preds = %1942
  call void @llvm.lifetime.end.p0(i64 1, ptr %251) #8
  br label %1945

1945:                                             ; preds = %1944, %1942
  %1946 = load i1, ptr %250, align 1
  br i1 %1946, label %1947, label %1948

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

1948:                                             ; preds = %1947, %1945
  %1949 = load i1, ptr %248, align 1
  br i1 %1949, label %1950, label %1951

1950:                                             ; preds = %1948
  call void @llvm.lifetime.end.p0(i64 32, ptr %247) #8
  br label %1951

1951:                                             ; preds = %1950, %1948
  %1952 = load i1, ptr %246, align 1
  br i1 %1952, label %1953, label %1954

1953:                                             ; preds = %1951
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #8
  br label %1954

1954:                                             ; preds = %1953, %1951
  %1955 = load i1, ptr %244, align 1
  br i1 %1955, label %1956, label %1957

1956:                                             ; preds = %1954
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #8
  br label %1957

1957:                                             ; preds = %1956, %1954
  %1958 = load i1, ptr %242, align 1
  br i1 %1958, label %1959, label %1960

1959:                                             ; preds = %1957
  call void @llvm.lifetime.end.p0(i64 32, ptr %241) #8
  br label %1960

1960:                                             ; preds = %1959, %1957
  %1961 = load i1, ptr %240, align 1
  br i1 %1961, label %1962, label %1963

1962:                                             ; preds = %1960
  call void @llvm.lifetime.end.p0(i64 32, ptr %239) #8
  br label %1963

1963:                                             ; preds = %1962, %1960
  %1964 = load double, ptr %17, align 8, !tbaa !9
  %1965 = load double, ptr %234, align 8, !tbaa !9
  %1966 = fcmp ole double %1964, %1965
  br i1 %1966, label %1967, label %2147

1967:                                             ; preds = %1963
  %1968 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 3
  %1969 = load ptr, ptr %1968, align 8, !tbaa !30
  %1970 = call noundef zeroext i1 @_ZNK4Elem12isTrappedWatE9FluidBlob(ptr noundef nonnull align 8 dereferenceable(408) %1969, i32 noundef 1)
  %1971 = zext i1 %1970 to i32
  %1972 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %1971)
  %1973 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1972, ptr noundef @.str.8)
  %1974 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.20)
  %1975 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1974, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %2147

1976:                                             ; preds = %1843
  %1977 = landingpad { ptr, i32 }
          cleanup
  %1978 = extractvalue { ptr, i32 } %1977, 0
  store ptr %1978, ptr %34, align 8
  %1979 = extractvalue { ptr, i32 } %1977, 1
  store i32 %1979, ptr %35, align 4
  br label %2122

1980:                                             ; preds = %1844
  %1981 = landingpad { ptr, i32 }
          cleanup
  %1982 = extractvalue { ptr, i32 } %1981, 0
  store ptr %1982, ptr %34, align 8
  %1983 = extractvalue { ptr, i32 } %1981, 1
  store i32 %1983, ptr %35, align 4
  br label %2118

1984:                                             ; preds = %1845
  %1985 = landingpad { ptr, i32 }
          cleanup
  %1986 = extractvalue { ptr, i32 } %1985, 0
  store ptr %1986, ptr %34, align 8
  %1987 = extractvalue { ptr, i32 } %1985, 1
  store i32 %1987, ptr %35, align 4
  br label %2105

1988:                                             ; preds = %1846
  %1989 = landingpad { ptr, i32 }
          cleanup
  %1990 = extractvalue { ptr, i32 } %1989, 0
  store ptr %1990, ptr %34, align 8
  %1991 = extractvalue { ptr, i32 } %1989, 1
  store i32 %1991, ptr %35, align 4
  br label %2101

1992:                                             ; preds = %1847
  %1993 = landingpad { ptr, i32 }
          cleanup
  %1994 = extractvalue { ptr, i32 } %1993, 0
  store ptr %1994, ptr %34, align 8
  %1995 = extractvalue { ptr, i32 } %1993, 1
  store i32 %1995, ptr %35, align 4
  br label %2097

1996:                                             ; preds = %1848
  %1997 = landingpad { ptr, i32 }
          cleanup
  %1998 = extractvalue { ptr, i32 } %1997, 0
  store ptr %1998, ptr %34, align 8
  %1999 = extractvalue { ptr, i32 } %1997, 1
  store i32 %1999, ptr %35, align 4
  br label %2084

2000:                                             ; preds = %1849
  %2001 = landingpad { ptr, i32 }
          cleanup
  %2002 = extractvalue { ptr, i32 } %2001, 0
  store ptr %2002, ptr %34, align 8
  %2003 = extractvalue { ptr, i32 } %2001, 1
  store i32 %2003, ptr %35, align 4
  br label %2080

2004:                                             ; preds = %1850
  %2005 = landingpad { ptr, i32 }
          cleanup
  %2006 = extractvalue { ptr, i32 } %2005, 0
  store ptr %2006, ptr %34, align 8
  %2007 = extractvalue { ptr, i32 } %2005, 1
  store i32 %2007, ptr %35, align 4
  br label %2076

2008:                                             ; preds = %1851
  %2009 = landingpad { ptr, i32 }
          cleanup
  %2010 = extractvalue { ptr, i32 } %2009, 0
  store ptr %2010, ptr %34, align 8
  %2011 = extractvalue { ptr, i32 } %2009, 1
  store i32 %2011, ptr %35, align 4
  br label %2069

2012:                                             ; preds = %1852
  %2013 = landingpad { ptr, i32 }
          cleanup
  %2014 = extractvalue { ptr, i32 } %2013, 0
  store ptr %2014, ptr %34, align 8
  %2015 = extractvalue { ptr, i32 } %2013, 1
  store i32 %2015, ptr %35, align 4
  br label %2065

2016:                                             ; preds = %1853
  %2017 = landingpad { ptr, i32 }
          cleanup
  %2018 = extractvalue { ptr, i32 } %2017, 0
  store ptr %2018, ptr %34, align 8
  %2019 = extractvalue { ptr, i32 } %2017, 1
  store i32 %2019, ptr %35, align 4
  br label %2052

2020:                                             ; preds = %1854
  %2021 = landingpad { ptr, i32 }
          cleanup
  %2022 = extractvalue { ptr, i32 } %2021, 0
  store ptr %2022, ptr %34, align 8
  %2023 = extractvalue { ptr, i32 } %2021, 1
  store i32 %2023, ptr %35, align 4
  br label %2039

2024:                                             ; preds = %1855
  %2025 = landingpad { ptr, i32 }
          cleanup
  %2026 = extractvalue { ptr, i32 } %2025, 0
  store ptr %2026, ptr %34, align 8
  %2027 = extractvalue { ptr, i32 } %2025, 1
  store i32 %2027, ptr %35, align 4
  br label %2035

2028:                                             ; preds = %1856
  %2029 = landingpad { ptr, i32 }
          cleanup
  %2030 = extractvalue { ptr, i32 } %2029, 0
  store ptr %2030, ptr %34, align 8
  %2031 = extractvalue { ptr, i32 } %2029, 1
  store i32 %2031, ptr %35, align 4
  %2032 = load i1, ptr %290, align 1
  br i1 %2032, label %2033, label %2034

2033:                                             ; preds = %2028
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #8
  br label %2034

2034:                                             ; preds = %2033, %2028
  br label %2035

2035:                                             ; preds = %2034, %2024
  %2036 = load i1, ptr %289, align 1
  br i1 %2036, label %2037, label %2038

2037:                                             ; preds = %2035
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #8
  br label %2038

2038:                                             ; preds = %2037, %2035
  br label %2039

2039:                                             ; preds = %2038, %2020
  %2040 = load i1, ptr %288, align 1
  br i1 %2040, label %2041, label %2042

2041:                                             ; preds = %2039
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %286) #8
  br label %2042

2042:                                             ; preds = %2041, %2039
  %2043 = load i1, ptr %287, align 1
  br i1 %2043, label %2044, label %2045

2044:                                             ; preds = %2042
  call void @llvm.lifetime.end.p0(i64 1, ptr %286) #8
  br label %2045

2045:                                             ; preds = %2044, %2042
  %2046 = load i1, ptr %285, align 1
  br i1 %2046, label %2047, label %2048

2047:                                             ; preds = %2045
  call void @llvm.lifetime.end.p0(i64 32, ptr %284) #8
  br label %2048

2048:                                             ; preds = %2047, %2045
  %2049 = load i1, ptr %283, align 1
  br i1 %2049, label %2050, label %2051

2050:                                             ; preds = %2048
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #8
  br label %2051

2051:                                             ; preds = %2050, %2048
  br label %2052

2052:                                             ; preds = %2051, %2016
  %2053 = load i1, ptr %282, align 1
  br i1 %2053, label %2054, label %2055

2054:                                             ; preds = %2052
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %280) #8
  br label %2055

2055:                                             ; preds = %2054, %2052
  %2056 = load i1, ptr %281, align 1
  br i1 %2056, label %2057, label %2058

2057:                                             ; preds = %2055
  call void @llvm.lifetime.end.p0(i64 1, ptr %280) #8
  br label %2058

2058:                                             ; preds = %2057, %2055
  %2059 = load i1, ptr %279, align 1
  br i1 %2059, label %2060, label %2061

2060:                                             ; preds = %2058
  call void @llvm.lifetime.end.p0(i64 32, ptr %278) #8
  br label %2061

2061:                                             ; preds = %2060, %2058
  %2062 = load i1, ptr %276, align 1
  br i1 %2062, label %2063, label %2064

2063:                                             ; preds = %2061
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #8
  br label %2064

2064:                                             ; preds = %2063, %2061
  br label %2065

2065:                                             ; preds = %2064, %2012
  %2066 = load i1, ptr %275, align 1
  br i1 %2066, label %2067, label %2068

2067:                                             ; preds = %2065
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #8
  br label %2068

2068:                                             ; preds = %2067, %2065
  br label %2069

2069:                                             ; preds = %2068, %2008
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #8
  %2070 = load i1, ptr %273, align 1
  br i1 %2070, label %2071, label %2072

2071:                                             ; preds = %2069
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #8
  br label %2072

2072:                                             ; preds = %2071, %2069
  %2073 = load i1, ptr %271, align 1
  br i1 %2073, label %2074, label %2075

2074:                                             ; preds = %2072
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #8
  br label %2075

2075:                                             ; preds = %2074, %2072
  br label %2076

2076:                                             ; preds = %2075, %2004
  %2077 = load i1, ptr %270, align 1
  br i1 %2077, label %2078, label %2079

2078:                                             ; preds = %2076
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #8
  br label %2079

2079:                                             ; preds = %2078, %2076
  br label %2080

2080:                                             ; preds = %2079, %2000
  %2081 = load i1, ptr %269, align 1
  br i1 %2081, label %2082, label %2083

2082:                                             ; preds = %2080
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #8
  br label %2083

2083:                                             ; preds = %2082, %2080
  br label %2084

2084:                                             ; preds = %2083, %1996
  %2085 = load i1, ptr %268, align 1
  br i1 %2085, label %2086, label %2087

2086:                                             ; preds = %2084
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #8
  br label %2087

2087:                                             ; preds = %2086, %2084
  %2088 = load i1, ptr %267, align 1
  br i1 %2088, label %2089, label %2090

2089:                                             ; preds = %2087
  call void @llvm.lifetime.end.p0(i64 1, ptr %266) #8
  br label %2090

2090:                                             ; preds = %2089, %2087
  %2091 = load i1, ptr %265, align 1
  br i1 %2091, label %2092, label %2093

2092:                                             ; preds = %2090
  call void @llvm.lifetime.end.p0(i64 32, ptr %264) #8
  br label %2093

2093:                                             ; preds = %2092, %2090
  %2094 = load i1, ptr %263, align 1
  br i1 %2094, label %2095, label %2096

2095:                                             ; preds = %2093
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #8
  br label %2096

2096:                                             ; preds = %2095, %2093
  br label %2097

2097:                                             ; preds = %2096, %1992
  %2098 = load i1, ptr %262, align 1
  br i1 %2098, label %2099, label %2100

2099:                                             ; preds = %2097
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #8
  br label %2100

2100:                                             ; preds = %2099, %2097
  br label %2101

2101:                                             ; preds = %2100, %1988
  %2102 = load i1, ptr %261, align 1
  br i1 %2102, label %2103, label %2104

2103:                                             ; preds = %2101
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #8
  br label %2104

2104:                                             ; preds = %2103, %2101
  br label %2105

2105:                                             ; preds = %2104, %1984
  %2106 = load i1, ptr %260, align 1
  br i1 %2106, label %2107, label %2108

2107:                                             ; preds = %2105
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #8
  br label %2108

2108:                                             ; preds = %2107, %2105
  %2109 = load i1, ptr %259, align 1
  br i1 %2109, label %2110, label %2111

2110:                                             ; preds = %2108
  call void @llvm.lifetime.end.p0(i64 1, ptr %258) #8
  br label %2111

2111:                                             ; preds = %2110, %2108
  %2112 = load i1, ptr %257, align 1
  br i1 %2112, label %2113, label %2114

2113:                                             ; preds = %2111
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #8
  br label %2114

2114:                                             ; preds = %2113, %2111
  %2115 = load i1, ptr %255, align 1
  br i1 %2115, label %2116, label %2117

2116:                                             ; preds = %2114
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #8
  br label %2117

2117:                                             ; preds = %2116, %2114
  br label %2118

2118:                                             ; preds = %2117, %1980
  %2119 = load i1, ptr %254, align 1
  br i1 %2119, label %2120, label %2121

2120:                                             ; preds = %2118
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #8
  br label %2121

2121:                                             ; preds = %2120, %2118
  br label %2122

2122:                                             ; preds = %2121, %1976
  %2123 = load i1, ptr %253, align 1
  br i1 %2123, label %2124, label %2125

2124:                                             ; preds = %2122
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #8
  br label %2125

2125:                                             ; preds = %2124, %2122
  %2126 = load i1, ptr %252, align 1
  br i1 %2126, label %2127, label %2128

2127:                                             ; preds = %2125
  call void @llvm.lifetime.end.p0(i64 1, ptr %251) #8
  br label %2128

2128:                                             ; preds = %2127, %2125
  %2129 = load i1, ptr %250, align 1
  br i1 %2129, label %2130, label %2131

2130:                                             ; preds = %2128
  call void @llvm.lifetime.end.p0(i64 32, ptr %249) #8
  br label %2131

2131:                                             ; preds = %2130, %2128
  %2132 = load i1, ptr %248, align 1
  br i1 %2132, label %2133, label %2134

2133:                                             ; preds = %2131
  call void @llvm.lifetime.end.p0(i64 32, ptr %247) #8
  br label %2134

2134:                                             ; preds = %2133, %2131
  %2135 = load i1, ptr %246, align 1
  br i1 %2135, label %2136, label %2137

2136:                                             ; preds = %2134
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #8
  br label %2137

2137:                                             ; preds = %2136, %2134
  %2138 = load i1, ptr %244, align 1
  br i1 %2138, label %2139, label %2140

2139:                                             ; preds = %2137
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #8
  br label %2140

2140:                                             ; preds = %2139, %2137
  %2141 = load i1, ptr %242, align 1
  br i1 %2141, label %2142, label %2143

2142:                                             ; preds = %2140
  call void @llvm.lifetime.end.p0(i64 32, ptr %241) #8
  br label %2143

2143:                                             ; preds = %2142, %2140
  %2144 = load i1, ptr %240, align 1
  br i1 %2144, label %2145, label %2146

2145:                                             ; preds = %2143
  call void @llvm.lifetime.end.p0(i64 32, ptr %239) #8
  br label %2146

2146:                                             ; preds = %2145, %2143
  br label %2488

2147:                                             ; preds = %1967, %1963
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %292) #8
  %2148 = load double, ptr %180, align 8, !tbaa !9
  %2149 = load double, ptr %237, align 8, !tbaa !9
  %2150 = fsub double %2148, %2149
  store double %2150, ptr %292, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %293) #8
  store double 1.000000e-50, ptr %293, align 8, !tbaa !9
  %2151 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %292, ptr noundef nonnull align 8 dereferenceable(8) %293)
  %2152 = load double, ptr %2151, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %293) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %292) #8
  store double %2152, ptr %291, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %294) #8
  %2153 = load double, ptr %236, align 8, !tbaa !9
  %2154 = load double, ptr %234, align 8, !tbaa !9
  %2155 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %2156 = load i32, ptr %15, align 4, !tbaa !20
  %2157 = sext i32 %2156 to i64
  %2158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2155, i64 noundef %2157) #8
  %2159 = load double, ptr %2158, align 8, !tbaa !9
  %2160 = load double, ptr %235, align 8, !tbaa !9
  %2161 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 4
  %2162 = load ptr, ptr %2161, align 8, !tbaa !11
  %2163 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %2162)
  %2164 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %2163)
  %2165 = call noundef double @_Z17cornerConductanceddddd(double noundef %2153, double noundef %2154, double noundef %2159, double noundef %2160, double noundef %2164)
  store double %2165, ptr %294, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %295) #8
  %2166 = load double, ptr %291, align 8, !tbaa !9
  %2167 = load double, ptr %180, align 8, !tbaa !9
  %2168 = load double, ptr %17, align 8, !tbaa !9
  %2169 = load double, ptr %234, align 8, !tbaa !9
  %2170 = load double, ptr %235, align 8, !tbaa !9
  %2171 = load double, ptr %16, align 8, !tbaa !9
  %2172 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %2173 = load i32, ptr %15, align 4, !tbaa !20
  %2174 = sext i32 %2173 to i64
  %2175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2172, i64 noundef %2174) #8
  %2176 = load double, ptr %2175, align 8, !tbaa !9
  %2177 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 4
  %2178 = load ptr, ptr %2177, align 8, !tbaa !11
  %2179 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984) %2178)
  %2180 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %2179)
  %2181 = call noundef double @_Z16layerConductancedddddddddd(double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef %2166, double noundef %2167, double noundef %2168, double noundef %2169, double noundef %2170, double noundef %2171, double noundef %2176, double noundef %2180)
  store double %2181, ptr %295, align 8, !tbaa !9
  %2182 = load double, ptr %294, align 8, !tbaa !9
  %2183 = fcmp ogt double %2182, 0.000000e+00
  store i1 false, ptr %298, align 1
  store i1 false, ptr %300, align 1
  store i1 false, ptr %302, align 1
  store i1 false, ptr %304, align 1
  store i1 false, ptr %306, align 1
  store i1 false, ptr %308, align 1
  store i1 false, ptr %310, align 1
  store i1 false, ptr %311, align 1
  store i1 false, ptr %312, align 1
  store i1 false, ptr %313, align 1
  store i1 false, ptr %315, align 1
  store i1 false, ptr %317, align 1
  store i1 false, ptr %318, align 1
  store i1 false, ptr %319, align 1
  store i1 false, ptr %320, align 1
  store i1 false, ptr %321, align 1
  store i1 false, ptr %323, align 1
  store i1 false, ptr %325, align 1
  store i1 false, ptr %326, align 1
  store i1 false, ptr %327, align 1
  store i1 false, ptr %328, align 1
  store i1 false, ptr %329, align 1
  store i1 false, ptr %331, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #8
  store i1 false, ptr %333, align 1
  store i1 false, ptr %334, align 1
  store i1 false, ptr %337, align 1
  store i1 false, ptr %339, align 1
  store i1 false, ptr %340, align 1
  store i1 false, ptr %341, align 1
  store i1 false, ptr %343, align 1
  store i1 false, ptr %345, align 1
  store i1 false, ptr %346, align 1
  store i1 false, ptr %347, align 1
  store i1 false, ptr %348, align 1
  br i1 %2183, label %2200, label %2184

2184:                                             ; preds = %2147
  call void @llvm.lifetime.start.p0(i64 32, ptr %297) #8
  store i1 true, ptr %298, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %299) #8
  store i1 true, ptr %300, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %301) #8
  store i1 true, ptr %302, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %303) #8
  store i1 true, ptr %304, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %305) #8
  store i1 true, ptr %306, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %307) #8
  store i1 true, ptr %308, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %309) #8
  store i1 true, ptr %310, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %309) #8
  store i1 true, ptr %311, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %309)
          to label %2185 unwind label %2317

2185:                                             ; preds = %2184
  store i1 true, ptr %312, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %305, ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef @.str.1)
          to label %2186 unwind label %2321

2186:                                             ; preds = %2185
  store i1 true, ptr %313, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %314) #8
  store i1 true, ptr %315, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %316) #8
  store i1 true, ptr %317, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %316) #8
  store i1 true, ptr %318, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %314, ptr noundef @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %316)
          to label %2187 unwind label %2325

2187:                                             ; preds = %2186
  store i1 true, ptr %319, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %303, ptr noundef nonnull align 8 dereferenceable(32) %305, ptr noundef nonnull align 8 dereferenceable(32) %314)
          to label %2188 unwind label %2329

2188:                                             ; preds = %2187
  store i1 true, ptr %320, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %301, ptr noundef nonnull align 8 dereferenceable(32) %303, ptr noundef @.str.2)
          to label %2189 unwind label %2333

2189:                                             ; preds = %2188
  store i1 true, ptr %321, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %322) #8
  store i1 true, ptr %323, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %324) #8
  store i1 true, ptr %325, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #8
  store i1 true, ptr %326, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %324)
          to label %2190 unwind label %2337

2190:                                             ; preds = %2189
  store i1 true, ptr %327, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %299, ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef nonnull align 8 dereferenceable(32) %322)
          to label %2191 unwind label %2341

2191:                                             ; preds = %2190
  store i1 true, ptr %328, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %297, ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef @.str.4)
          to label %2192 unwind label %2345

2192:                                             ; preds = %2191
  store i1 true, ptr %329, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %330) #8
  store i1 true, ptr %331, align 1
  store i32 359, ptr %332, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %330, ptr noundef nonnull align 4 dereferenceable(4) %332)
          to label %2193 unwind label %2349

2193:                                             ; preds = %2192
  store i1 true, ptr %333, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %296, ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef nonnull align 8 dereferenceable(32) %330)
          to label %2194 unwind label %2353

2194:                                             ; preds = %2193
  store i1 true, ptr %334, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %336) #8
  store i1 true, ptr %337, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %338) #8
  store i1 true, ptr %339, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %338) #8
  store i1 true, ptr %340, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %338)
          to label %2195 unwind label %2357

2195:                                             ; preds = %2194
  store i1 true, ptr %341, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %342) #8
  store i1 true, ptr %343, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %344) #8
  store i1 true, ptr %345, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #8
  store i1 true, ptr %346, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %344)
          to label %2196 unwind label %2361

2196:                                             ; preds = %2195
  store i1 true, ptr %347, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %335, ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef nonnull align 8 dereferenceable(32) %342)
          to label %2197 unwind label %2365

2197:                                             ; preds = %2196
  store i1 true, ptr %348, align 1
  %2198 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %296, ptr noundef %335, i32 noundef 0)
          to label %2199 unwind label %2369

2199:                                             ; preds = %2197
  br label %2200

2200:                                             ; preds = %2199, %2147
  %2201 = phi i1 [ true, %2147 ], [ %2198, %2199 ]
  %2202 = xor i1 %2201, true
  %2203 = load i1, ptr %348, align 1
  br i1 %2203, label %2204, label %2205

2204:                                             ; preds = %2200
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #8
  br label %2205

2205:                                             ; preds = %2204, %2200
  %2206 = load i1, ptr %347, align 1
  br i1 %2206, label %2207, label %2208

2207:                                             ; preds = %2205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #8
  br label %2208

2208:                                             ; preds = %2207, %2205
  %2209 = load i1, ptr %346, align 1
  br i1 %2209, label %2210, label %2211

2210:                                             ; preds = %2208
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #8
  br label %2211

2211:                                             ; preds = %2210, %2208
  %2212 = load i1, ptr %345, align 1
  br i1 %2212, label %2213, label %2214

2213:                                             ; preds = %2211
  call void @llvm.lifetime.end.p0(i64 1, ptr %344) #8
  br label %2214

2214:                                             ; preds = %2213, %2211
  %2215 = load i1, ptr %343, align 1
  br i1 %2215, label %2216, label %2217

2216:                                             ; preds = %2214
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #8
  br label %2217

2217:                                             ; preds = %2216, %2214
  %2218 = load i1, ptr %341, align 1
  br i1 %2218, label %2219, label %2220

2219:                                             ; preds = %2217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #8
  br label %2220

2220:                                             ; preds = %2219, %2217
  %2221 = load i1, ptr %340, align 1
  br i1 %2221, label %2222, label %2223

2222:                                             ; preds = %2220
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %338) #8
  br label %2223

2223:                                             ; preds = %2222, %2220
  %2224 = load i1, ptr %339, align 1
  br i1 %2224, label %2225, label %2226

2225:                                             ; preds = %2223
  call void @llvm.lifetime.end.p0(i64 1, ptr %338) #8
  br label %2226

2226:                                             ; preds = %2225, %2223
  %2227 = load i1, ptr %337, align 1
  br i1 %2227, label %2228, label %2229

2228:                                             ; preds = %2226
  call void @llvm.lifetime.end.p0(i64 32, ptr %336) #8
  br label %2229

2229:                                             ; preds = %2228, %2226
  %2230 = load i1, ptr %334, align 1
  br i1 %2230, label %2231, label %2232

2231:                                             ; preds = %2229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #8
  br label %2232

2232:                                             ; preds = %2231, %2229
  %2233 = load i1, ptr %333, align 1
  br i1 %2233, label %2234, label %2235

2234:                                             ; preds = %2232
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #8
  br label %2235

2235:                                             ; preds = %2234, %2232
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #8
  %2236 = load i1, ptr %331, align 1
  br i1 %2236, label %2237, label %2238

2237:                                             ; preds = %2235
  call void @llvm.lifetime.end.p0(i64 32, ptr %330) #8
  br label %2238

2238:                                             ; preds = %2237, %2235
  %2239 = load i1, ptr %329, align 1
  br i1 %2239, label %2240, label %2241

2240:                                             ; preds = %2238
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #8
  br label %2241

2241:                                             ; preds = %2240, %2238
  %2242 = load i1, ptr %328, align 1
  br i1 %2242, label %2243, label %2244

2243:                                             ; preds = %2241
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #8
  br label %2244

2244:                                             ; preds = %2243, %2241
  %2245 = load i1, ptr %327, align 1
  br i1 %2245, label %2246, label %2247

2246:                                             ; preds = %2244
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #8
  br label %2247

2247:                                             ; preds = %2246, %2244
  %2248 = load i1, ptr %326, align 1
  br i1 %2248, label %2249, label %2250

2249:                                             ; preds = %2247
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #8
  br label %2250

2250:                                             ; preds = %2249, %2247
  %2251 = load i1, ptr %325, align 1
  br i1 %2251, label %2252, label %2253

2252:                                             ; preds = %2250
  call void @llvm.lifetime.end.p0(i64 1, ptr %324) #8
  br label %2253

2253:                                             ; preds = %2252, %2250
  %2254 = load i1, ptr %323, align 1
  br i1 %2254, label %2255, label %2256

2255:                                             ; preds = %2253
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #8
  br label %2256

2256:                                             ; preds = %2255, %2253
  %2257 = load i1, ptr %321, align 1
  br i1 %2257, label %2258, label %2259

2258:                                             ; preds = %2256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #8
  br label %2259

2259:                                             ; preds = %2258, %2256
  %2260 = load i1, ptr %320, align 1
  br i1 %2260, label %2261, label %2262

2261:                                             ; preds = %2259
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #8
  br label %2262

2262:                                             ; preds = %2261, %2259
  %2263 = load i1, ptr %319, align 1
  br i1 %2263, label %2264, label %2265

2264:                                             ; preds = %2262
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #8
  br label %2265

2265:                                             ; preds = %2264, %2262
  %2266 = load i1, ptr %318, align 1
  br i1 %2266, label %2267, label %2268

2267:                                             ; preds = %2265
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %316) #8
  br label %2268

2268:                                             ; preds = %2267, %2265
  %2269 = load i1, ptr %317, align 1
  br i1 %2269, label %2270, label %2271

2270:                                             ; preds = %2268
  call void @llvm.lifetime.end.p0(i64 1, ptr %316) #8
  br label %2271

2271:                                             ; preds = %2270, %2268
  %2272 = load i1, ptr %315, align 1
  br i1 %2272, label %2273, label %2274

2273:                                             ; preds = %2271
  call void @llvm.lifetime.end.p0(i64 32, ptr %314) #8
  br label %2274

2274:                                             ; preds = %2273, %2271
  %2275 = load i1, ptr %313, align 1
  br i1 %2275, label %2276, label %2277

2276:                                             ; preds = %2274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #8
  br label %2277

2277:                                             ; preds = %2276, %2274
  %2278 = load i1, ptr %312, align 1
  br i1 %2278, label %2279, label %2280

2279:                                             ; preds = %2277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #8
  br label %2280

2280:                                             ; preds = %2279, %2277
  %2281 = load i1, ptr %311, align 1
  br i1 %2281, label %2282, label %2283

2282:                                             ; preds = %2280
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %309) #8
  br label %2283

2283:                                             ; preds = %2282, %2280
  %2284 = load i1, ptr %310, align 1
  br i1 %2284, label %2285, label %2286

2285:                                             ; preds = %2283
  call void @llvm.lifetime.end.p0(i64 1, ptr %309) #8
  br label %2286

2286:                                             ; preds = %2285, %2283
  %2287 = load i1, ptr %308, align 1
  br i1 %2287, label %2288, label %2289

2288:                                             ; preds = %2286
  call void @llvm.lifetime.end.p0(i64 32, ptr %307) #8
  br label %2289

2289:                                             ; preds = %2288, %2286
  %2290 = load i1, ptr %306, align 1
  br i1 %2290, label %2291, label %2292

2291:                                             ; preds = %2289
  call void @llvm.lifetime.end.p0(i64 32, ptr %305) #8
  br label %2292

2292:                                             ; preds = %2291, %2289
  %2293 = load i1, ptr %304, align 1
  br i1 %2293, label %2294, label %2295

2294:                                             ; preds = %2292
  call void @llvm.lifetime.end.p0(i64 32, ptr %303) #8
  br label %2295

2295:                                             ; preds = %2294, %2292
  %2296 = load i1, ptr %302, align 1
  br i1 %2296, label %2297, label %2298

2297:                                             ; preds = %2295
  call void @llvm.lifetime.end.p0(i64 32, ptr %301) #8
  br label %2298

2298:                                             ; preds = %2297, %2295
  %2299 = load i1, ptr %300, align 1
  br i1 %2299, label %2300, label %2301

2300:                                             ; preds = %2298
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #8
  br label %2301

2301:                                             ; preds = %2300, %2298
  %2302 = load i1, ptr %298, align 1
  br i1 %2302, label %2303, label %2304

2303:                                             ; preds = %2301
  call void @llvm.lifetime.end.p0(i64 32, ptr %297) #8
  br label %2304

2304:                                             ; preds = %2303, %2301
  %2305 = load double, ptr %237, align 8, !tbaa !9
  %2306 = load double, ptr %6, align 8, !tbaa !9
  %2307 = fadd double %2306, %2305
  store double %2307, ptr %6, align 8, !tbaa !9
  %2308 = load double, ptr %294, align 8, !tbaa !9
  %2309 = load double, ptr %7, align 8, !tbaa !9
  %2310 = fadd double %2309, %2308
  store double %2310, ptr %7, align 8, !tbaa !9
  %2311 = load double, ptr %291, align 8, !tbaa !9
  %2312 = load double, ptr %10, align 8, !tbaa !9
  %2313 = fadd double %2312, %2311
  store double %2313, ptr %10, align 8, !tbaa !9
  %2314 = load double, ptr %295, align 8, !tbaa !9
  %2315 = load double, ptr %11, align 8, !tbaa !9
  %2316 = fadd double %2315, %2314
  store double %2316, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %2833

2317:                                             ; preds = %2184
  %2318 = landingpad { ptr, i32 }
          cleanup
  %2319 = extractvalue { ptr, i32 } %2318, 0
  store ptr %2319, ptr %34, align 8
  %2320 = extractvalue { ptr, i32 } %2318, 1
  store i32 %2320, ptr %35, align 4
  br label %2463

2321:                                             ; preds = %2185
  %2322 = landingpad { ptr, i32 }
          cleanup
  %2323 = extractvalue { ptr, i32 } %2322, 0
  store ptr %2323, ptr %34, align 8
  %2324 = extractvalue { ptr, i32 } %2322, 1
  store i32 %2324, ptr %35, align 4
  br label %2459

2325:                                             ; preds = %2186
  %2326 = landingpad { ptr, i32 }
          cleanup
  %2327 = extractvalue { ptr, i32 } %2326, 0
  store ptr %2327, ptr %34, align 8
  %2328 = extractvalue { ptr, i32 } %2326, 1
  store i32 %2328, ptr %35, align 4
  br label %2446

2329:                                             ; preds = %2187
  %2330 = landingpad { ptr, i32 }
          cleanup
  %2331 = extractvalue { ptr, i32 } %2330, 0
  store ptr %2331, ptr %34, align 8
  %2332 = extractvalue { ptr, i32 } %2330, 1
  store i32 %2332, ptr %35, align 4
  br label %2442

2333:                                             ; preds = %2188
  %2334 = landingpad { ptr, i32 }
          cleanup
  %2335 = extractvalue { ptr, i32 } %2334, 0
  store ptr %2335, ptr %34, align 8
  %2336 = extractvalue { ptr, i32 } %2334, 1
  store i32 %2336, ptr %35, align 4
  br label %2438

2337:                                             ; preds = %2189
  %2338 = landingpad { ptr, i32 }
          cleanup
  %2339 = extractvalue { ptr, i32 } %2338, 0
  store ptr %2339, ptr %34, align 8
  %2340 = extractvalue { ptr, i32 } %2338, 1
  store i32 %2340, ptr %35, align 4
  br label %2425

2341:                                             ; preds = %2190
  %2342 = landingpad { ptr, i32 }
          cleanup
  %2343 = extractvalue { ptr, i32 } %2342, 0
  store ptr %2343, ptr %34, align 8
  %2344 = extractvalue { ptr, i32 } %2342, 1
  store i32 %2344, ptr %35, align 4
  br label %2421

2345:                                             ; preds = %2191
  %2346 = landingpad { ptr, i32 }
          cleanup
  %2347 = extractvalue { ptr, i32 } %2346, 0
  store ptr %2347, ptr %34, align 8
  %2348 = extractvalue { ptr, i32 } %2346, 1
  store i32 %2348, ptr %35, align 4
  br label %2417

2349:                                             ; preds = %2192
  %2350 = landingpad { ptr, i32 }
          cleanup
  %2351 = extractvalue { ptr, i32 } %2350, 0
  store ptr %2351, ptr %34, align 8
  %2352 = extractvalue { ptr, i32 } %2350, 1
  store i32 %2352, ptr %35, align 4
  br label %2410

2353:                                             ; preds = %2193
  %2354 = landingpad { ptr, i32 }
          cleanup
  %2355 = extractvalue { ptr, i32 } %2354, 0
  store ptr %2355, ptr %34, align 8
  %2356 = extractvalue { ptr, i32 } %2354, 1
  store i32 %2356, ptr %35, align 4
  br label %2406

2357:                                             ; preds = %2194
  %2358 = landingpad { ptr, i32 }
          cleanup
  %2359 = extractvalue { ptr, i32 } %2358, 0
  store ptr %2359, ptr %34, align 8
  %2360 = extractvalue { ptr, i32 } %2358, 1
  store i32 %2360, ptr %35, align 4
  br label %2393

2361:                                             ; preds = %2195
  %2362 = landingpad { ptr, i32 }
          cleanup
  %2363 = extractvalue { ptr, i32 } %2362, 0
  store ptr %2363, ptr %34, align 8
  %2364 = extractvalue { ptr, i32 } %2362, 1
  store i32 %2364, ptr %35, align 4
  br label %2380

2365:                                             ; preds = %2196
  %2366 = landingpad { ptr, i32 }
          cleanup
  %2367 = extractvalue { ptr, i32 } %2366, 0
  store ptr %2367, ptr %34, align 8
  %2368 = extractvalue { ptr, i32 } %2366, 1
  store i32 %2368, ptr %35, align 4
  br label %2376

2369:                                             ; preds = %2197
  %2370 = landingpad { ptr, i32 }
          cleanup
  %2371 = extractvalue { ptr, i32 } %2370, 0
  store ptr %2371, ptr %34, align 8
  %2372 = extractvalue { ptr, i32 } %2370, 1
  store i32 %2372, ptr %35, align 4
  %2373 = load i1, ptr %348, align 1
  br i1 %2373, label %2374, label %2375

2374:                                             ; preds = %2369
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #8
  br label %2375

2375:                                             ; preds = %2374, %2369
  br label %2376

2376:                                             ; preds = %2375, %2365
  %2377 = load i1, ptr %347, align 1
  br i1 %2377, label %2378, label %2379

2378:                                             ; preds = %2376
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #8
  br label %2379

2379:                                             ; preds = %2378, %2376
  br label %2380

2380:                                             ; preds = %2379, %2361
  %2381 = load i1, ptr %346, align 1
  br i1 %2381, label %2382, label %2383

2382:                                             ; preds = %2380
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %344) #8
  br label %2383

2383:                                             ; preds = %2382, %2380
  %2384 = load i1, ptr %345, align 1
  br i1 %2384, label %2385, label %2386

2385:                                             ; preds = %2383
  call void @llvm.lifetime.end.p0(i64 1, ptr %344) #8
  br label %2386

2386:                                             ; preds = %2385, %2383
  %2387 = load i1, ptr %343, align 1
  br i1 %2387, label %2388, label %2389

2388:                                             ; preds = %2386
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #8
  br label %2389

2389:                                             ; preds = %2388, %2386
  %2390 = load i1, ptr %341, align 1
  br i1 %2390, label %2391, label %2392

2391:                                             ; preds = %2389
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #8
  br label %2392

2392:                                             ; preds = %2391, %2389
  br label %2393

2393:                                             ; preds = %2392, %2357
  %2394 = load i1, ptr %340, align 1
  br i1 %2394, label %2395, label %2396

2395:                                             ; preds = %2393
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %338) #8
  br label %2396

2396:                                             ; preds = %2395, %2393
  %2397 = load i1, ptr %339, align 1
  br i1 %2397, label %2398, label %2399

2398:                                             ; preds = %2396
  call void @llvm.lifetime.end.p0(i64 1, ptr %338) #8
  br label %2399

2399:                                             ; preds = %2398, %2396
  %2400 = load i1, ptr %337, align 1
  br i1 %2400, label %2401, label %2402

2401:                                             ; preds = %2399
  call void @llvm.lifetime.end.p0(i64 32, ptr %336) #8
  br label %2402

2402:                                             ; preds = %2401, %2399
  %2403 = load i1, ptr %334, align 1
  br i1 %2403, label %2404, label %2405

2404:                                             ; preds = %2402
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #8
  br label %2405

2405:                                             ; preds = %2404, %2402
  br label %2406

2406:                                             ; preds = %2405, %2353
  %2407 = load i1, ptr %333, align 1
  br i1 %2407, label %2408, label %2409

2408:                                             ; preds = %2406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #8
  br label %2409

2409:                                             ; preds = %2408, %2406
  br label %2410

2410:                                             ; preds = %2409, %2349
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #8
  %2411 = load i1, ptr %331, align 1
  br i1 %2411, label %2412, label %2413

2412:                                             ; preds = %2410
  call void @llvm.lifetime.end.p0(i64 32, ptr %330) #8
  br label %2413

2413:                                             ; preds = %2412, %2410
  %2414 = load i1, ptr %329, align 1
  br i1 %2414, label %2415, label %2416

2415:                                             ; preds = %2413
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #8
  br label %2416

2416:                                             ; preds = %2415, %2413
  br label %2417

2417:                                             ; preds = %2416, %2345
  %2418 = load i1, ptr %328, align 1
  br i1 %2418, label %2419, label %2420

2419:                                             ; preds = %2417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #8
  br label %2420

2420:                                             ; preds = %2419, %2417
  br label %2421

2421:                                             ; preds = %2420, %2341
  %2422 = load i1, ptr %327, align 1
  br i1 %2422, label %2423, label %2424

2423:                                             ; preds = %2421
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #8
  br label %2424

2424:                                             ; preds = %2423, %2421
  br label %2425

2425:                                             ; preds = %2424, %2337
  %2426 = load i1, ptr %326, align 1
  br i1 %2426, label %2427, label %2428

2427:                                             ; preds = %2425
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %324) #8
  br label %2428

2428:                                             ; preds = %2427, %2425
  %2429 = load i1, ptr %325, align 1
  br i1 %2429, label %2430, label %2431

2430:                                             ; preds = %2428
  call void @llvm.lifetime.end.p0(i64 1, ptr %324) #8
  br label %2431

2431:                                             ; preds = %2430, %2428
  %2432 = load i1, ptr %323, align 1
  br i1 %2432, label %2433, label %2434

2433:                                             ; preds = %2431
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #8
  br label %2434

2434:                                             ; preds = %2433, %2431
  %2435 = load i1, ptr %321, align 1
  br i1 %2435, label %2436, label %2437

2436:                                             ; preds = %2434
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #8
  br label %2437

2437:                                             ; preds = %2436, %2434
  br label %2438

2438:                                             ; preds = %2437, %2333
  %2439 = load i1, ptr %320, align 1
  br i1 %2439, label %2440, label %2441

2440:                                             ; preds = %2438
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #8
  br label %2441

2441:                                             ; preds = %2440, %2438
  br label %2442

2442:                                             ; preds = %2441, %2329
  %2443 = load i1, ptr %319, align 1
  br i1 %2443, label %2444, label %2445

2444:                                             ; preds = %2442
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #8
  br label %2445

2445:                                             ; preds = %2444, %2442
  br label %2446

2446:                                             ; preds = %2445, %2325
  %2447 = load i1, ptr %318, align 1
  br i1 %2447, label %2448, label %2449

2448:                                             ; preds = %2446
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %316) #8
  br label %2449

2449:                                             ; preds = %2448, %2446
  %2450 = load i1, ptr %317, align 1
  br i1 %2450, label %2451, label %2452

2451:                                             ; preds = %2449
  call void @llvm.lifetime.end.p0(i64 1, ptr %316) #8
  br label %2452

2452:                                             ; preds = %2451, %2449
  %2453 = load i1, ptr %315, align 1
  br i1 %2453, label %2454, label %2455

2454:                                             ; preds = %2452
  call void @llvm.lifetime.end.p0(i64 32, ptr %314) #8
  br label %2455

2455:                                             ; preds = %2454, %2452
  %2456 = load i1, ptr %313, align 1
  br i1 %2456, label %2457, label %2458

2457:                                             ; preds = %2455
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #8
  br label %2458

2458:                                             ; preds = %2457, %2455
  br label %2459

2459:                                             ; preds = %2458, %2321
  %2460 = load i1, ptr %312, align 1
  br i1 %2460, label %2461, label %2462

2461:                                             ; preds = %2459
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #8
  br label %2462

2462:                                             ; preds = %2461, %2459
  br label %2463

2463:                                             ; preds = %2462, %2317
  %2464 = load i1, ptr %311, align 1
  br i1 %2464, label %2465, label %2466

2465:                                             ; preds = %2463
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %309) #8
  br label %2466

2466:                                             ; preds = %2465, %2463
  %2467 = load i1, ptr %310, align 1
  br i1 %2467, label %2468, label %2469

2468:                                             ; preds = %2466
  call void @llvm.lifetime.end.p0(i64 1, ptr %309) #8
  br label %2469

2469:                                             ; preds = %2468, %2466
  %2470 = load i1, ptr %308, align 1
  br i1 %2470, label %2471, label %2472

2471:                                             ; preds = %2469
  call void @llvm.lifetime.end.p0(i64 32, ptr %307) #8
  br label %2472

2472:                                             ; preds = %2471, %2469
  %2473 = load i1, ptr %306, align 1
  br i1 %2473, label %2474, label %2475

2474:                                             ; preds = %2472
  call void @llvm.lifetime.end.p0(i64 32, ptr %305) #8
  br label %2475

2475:                                             ; preds = %2474, %2472
  %2476 = load i1, ptr %304, align 1
  br i1 %2476, label %2477, label %2478

2477:                                             ; preds = %2475
  call void @llvm.lifetime.end.p0(i64 32, ptr %303) #8
  br label %2478

2478:                                             ; preds = %2477, %2475
  %2479 = load i1, ptr %302, align 1
  br i1 %2479, label %2480, label %2481

2480:                                             ; preds = %2478
  call void @llvm.lifetime.end.p0(i64 32, ptr %301) #8
  br label %2481

2481:                                             ; preds = %2480, %2478
  %2482 = load i1, ptr %300, align 1
  br i1 %2482, label %2483, label %2484

2483:                                             ; preds = %2481
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #8
  br label %2484

2484:                                             ; preds = %2483, %2481
  %2485 = load i1, ptr %298, align 1
  br i1 %2485, label %2486, label %2487

2486:                                             ; preds = %2484
  call void @llvm.lifetime.end.p0(i64 32, ptr %297) #8
  br label %2487

2487:                                             ; preds = %2486, %2484
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #8
  br label %2488

2488:                                             ; preds = %2487, %2146
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %236) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #8
  br label %2489

2489:                                             ; preds = %2488, %1808
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #8
  br label %2490

2490:                                             ; preds = %2489, %1637, %1466, %1295
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %2839

2491:                                             ; preds = %556
  call void @llvm.lifetime.start.p0(i64 8, ptr %349) #8
  %2492 = load double, ptr %5, align 8, !tbaa !9
  store double %2492, ptr %349, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %350) #8
  %2493 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 4
  %2494 = load ptr, ptr %2493, align 8, !tbaa !28
  %2495 = load i32, ptr %15, align 4, !tbaa !20
  %2496 = sext i32 %2495 to i64
  %2497 = getelementptr inbounds %class.LayerApex, ptr %2494, i64 %2496
  %2498 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %2499 = load i32, ptr %15, align 4, !tbaa !20
  %2500 = sext i32 %2499 to i64
  %2501 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2498, i64 noundef %2500) #8
  %2502 = load double, ptr %4, align 8, !tbaa !9
  %2503 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 4
  %2504 = load ptr, ptr %2503, align 8, !tbaa !11
  %2505 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %2504)
  call void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144) %2497, ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef nonnull align 8 dereferenceable(8) %2501, double noundef %2502, double noundef %2505, i1 noundef zeroext false)
  %2506 = load double, ptr %350, align 8, !tbaa !9
  %2507 = fcmp ogt double %2506, 0.000000e+00
  store i1 false, ptr %353, align 1
  store i1 false, ptr %355, align 1
  store i1 false, ptr %357, align 1
  store i1 false, ptr %359, align 1
  store i1 false, ptr %361, align 1
  store i1 false, ptr %363, align 1
  store i1 false, ptr %365, align 1
  store i1 false, ptr %366, align 1
  store i1 false, ptr %367, align 1
  store i1 false, ptr %368, align 1
  store i1 false, ptr %370, align 1
  store i1 false, ptr %372, align 1
  store i1 false, ptr %373, align 1
  store i1 false, ptr %374, align 1
  store i1 false, ptr %375, align 1
  store i1 false, ptr %376, align 1
  store i1 false, ptr %378, align 1
  store i1 false, ptr %380, align 1
  store i1 false, ptr %381, align 1
  store i1 false, ptr %382, align 1
  store i1 false, ptr %383, align 1
  store i1 false, ptr %384, align 1
  store i1 false, ptr %386, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %387) #8
  store i1 false, ptr %388, align 1
  store i1 false, ptr %389, align 1
  store i1 false, ptr %392, align 1
  store i1 false, ptr %394, align 1
  store i1 false, ptr %395, align 1
  store i1 false, ptr %396, align 1
  store i1 false, ptr %398, align 1
  store i1 false, ptr %400, align 1
  store i1 false, ptr %401, align 1
  store i1 false, ptr %402, align 1
  store i1 false, ptr %403, align 1
  br i1 %2507, label %2524, label %2508

2508:                                             ; preds = %2491
  call void @llvm.lifetime.start.p0(i64 32, ptr %352) #8
  store i1 true, ptr %353, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %354) #8
  store i1 true, ptr %355, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %356) #8
  store i1 true, ptr %357, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %358) #8
  store i1 true, ptr %359, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %360) #8
  store i1 true, ptr %361, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %362) #8
  store i1 true, ptr %363, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %364) #8
  store i1 true, ptr %365, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %364) #8
  store i1 true, ptr %366, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %364)
          to label %2509 unwind label %2662

2509:                                             ; preds = %2508
  store i1 true, ptr %367, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %360, ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef @.str.1)
          to label %2510 unwind label %2666

2510:                                             ; preds = %2509
  store i1 true, ptr %368, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %369) #8
  store i1 true, ptr %370, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %371) #8
  store i1 true, ptr %372, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #8
  store i1 true, ptr %373, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %369, ptr noundef @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %371)
          to label %2511 unwind label %2670

2511:                                             ; preds = %2510
  store i1 true, ptr %374, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %358, ptr noundef nonnull align 8 dereferenceable(32) %360, ptr noundef nonnull align 8 dereferenceable(32) %369)
          to label %2512 unwind label %2674

2512:                                             ; preds = %2511
  store i1 true, ptr %375, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %356, ptr noundef nonnull align 8 dereferenceable(32) %358, ptr noundef @.str.2)
          to label %2513 unwind label %2678

2513:                                             ; preds = %2512
  store i1 true, ptr %376, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %377) #8
  store i1 true, ptr %378, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %379) #8
  store i1 true, ptr %380, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #8
  store i1 true, ptr %381, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %379)
          to label %2514 unwind label %2682

2514:                                             ; preds = %2513
  store i1 true, ptr %382, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %354, ptr noundef nonnull align 8 dereferenceable(32) %356, ptr noundef nonnull align 8 dereferenceable(32) %377)
          to label %2515 unwind label %2686

2515:                                             ; preds = %2514
  store i1 true, ptr %383, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %352, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef @.str.4)
          to label %2516 unwind label %2690

2516:                                             ; preds = %2515
  store i1 true, ptr %384, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %385) #8
  store i1 true, ptr %386, align 1
  store i32 374, ptr %387, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %385, ptr noundef nonnull align 4 dereferenceable(4) %387)
          to label %2517 unwind label %2694

2517:                                             ; preds = %2516
  store i1 true, ptr %388, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %351, ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef nonnull align 8 dereferenceable(32) %385)
          to label %2518 unwind label %2698

2518:                                             ; preds = %2517
  store i1 true, ptr %389, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %391) #8
  store i1 true, ptr %392, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %393) #8
  store i1 true, ptr %394, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %393) #8
  store i1 true, ptr %395, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %393)
          to label %2519 unwind label %2702

2519:                                             ; preds = %2518
  store i1 true, ptr %396, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %397) #8
  store i1 true, ptr %398, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %399) #8
  store i1 true, ptr %400, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #8
  store i1 true, ptr %401, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %397, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %399)
          to label %2520 unwind label %2706

2520:                                             ; preds = %2519
  store i1 true, ptr %402, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %390, ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef nonnull align 8 dereferenceable(32) %397)
          to label %2521 unwind label %2710

2521:                                             ; preds = %2520
  store i1 true, ptr %403, align 1
  %2522 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %351, ptr noundef %390, i32 noundef 0)
          to label %2523 unwind label %2714

2523:                                             ; preds = %2521
  br label %2524

2524:                                             ; preds = %2523, %2491
  %2525 = phi i1 [ true, %2491 ], [ %2522, %2523 ]
  %2526 = xor i1 %2525, true
  %2527 = load i1, ptr %403, align 1
  br i1 %2527, label %2528, label %2529

2528:                                             ; preds = %2524
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #8
  br label %2529

2529:                                             ; preds = %2528, %2524
  %2530 = load i1, ptr %402, align 1
  br i1 %2530, label %2531, label %2532

2531:                                             ; preds = %2529
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #8
  br label %2532

2532:                                             ; preds = %2531, %2529
  %2533 = load i1, ptr %401, align 1
  br i1 %2533, label %2534, label %2535

2534:                                             ; preds = %2532
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #8
  br label %2535

2535:                                             ; preds = %2534, %2532
  %2536 = load i1, ptr %400, align 1
  br i1 %2536, label %2537, label %2538

2537:                                             ; preds = %2535
  call void @llvm.lifetime.end.p0(i64 1, ptr %399) #8
  br label %2538

2538:                                             ; preds = %2537, %2535
  %2539 = load i1, ptr %398, align 1
  br i1 %2539, label %2540, label %2541

2540:                                             ; preds = %2538
  call void @llvm.lifetime.end.p0(i64 32, ptr %397) #8
  br label %2541

2541:                                             ; preds = %2540, %2538
  %2542 = load i1, ptr %396, align 1
  br i1 %2542, label %2543, label %2544

2543:                                             ; preds = %2541
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #8
  br label %2544

2544:                                             ; preds = %2543, %2541
  %2545 = load i1, ptr %395, align 1
  br i1 %2545, label %2546, label %2547

2546:                                             ; preds = %2544
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %393) #8
  br label %2547

2547:                                             ; preds = %2546, %2544
  %2548 = load i1, ptr %394, align 1
  br i1 %2548, label %2549, label %2550

2549:                                             ; preds = %2547
  call void @llvm.lifetime.end.p0(i64 1, ptr %393) #8
  br label %2550

2550:                                             ; preds = %2549, %2547
  %2551 = load i1, ptr %392, align 1
  br i1 %2551, label %2552, label %2553

2552:                                             ; preds = %2550
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #8
  br label %2553

2553:                                             ; preds = %2552, %2550
  %2554 = load i1, ptr %389, align 1
  br i1 %2554, label %2555, label %2556

2555:                                             ; preds = %2553
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #8
  br label %2556

2556:                                             ; preds = %2555, %2553
  %2557 = load i1, ptr %388, align 1
  br i1 %2557, label %2558, label %2559

2558:                                             ; preds = %2556
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %385) #8
  br label %2559

2559:                                             ; preds = %2558, %2556
  call void @llvm.lifetime.end.p0(i64 4, ptr %387) #8
  %2560 = load i1, ptr %386, align 1
  br i1 %2560, label %2561, label %2562

2561:                                             ; preds = %2559
  call void @llvm.lifetime.end.p0(i64 32, ptr %385) #8
  br label %2562

2562:                                             ; preds = %2561, %2559
  %2563 = load i1, ptr %384, align 1
  br i1 %2563, label %2564, label %2565

2564:                                             ; preds = %2562
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #8
  br label %2565

2565:                                             ; preds = %2564, %2562
  %2566 = load i1, ptr %383, align 1
  br i1 %2566, label %2567, label %2568

2567:                                             ; preds = %2565
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #8
  br label %2568

2568:                                             ; preds = %2567, %2565
  %2569 = load i1, ptr %382, align 1
  br i1 %2569, label %2570, label %2571

2570:                                             ; preds = %2568
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #8
  br label %2571

2571:                                             ; preds = %2570, %2568
  %2572 = load i1, ptr %381, align 1
  br i1 %2572, label %2573, label %2574

2573:                                             ; preds = %2571
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #8
  br label %2574

2574:                                             ; preds = %2573, %2571
  %2575 = load i1, ptr %380, align 1
  br i1 %2575, label %2576, label %2577

2576:                                             ; preds = %2574
  call void @llvm.lifetime.end.p0(i64 1, ptr %379) #8
  br label %2577

2577:                                             ; preds = %2576, %2574
  %2578 = load i1, ptr %378, align 1
  br i1 %2578, label %2579, label %2580

2579:                                             ; preds = %2577
  call void @llvm.lifetime.end.p0(i64 32, ptr %377) #8
  br label %2580

2580:                                             ; preds = %2579, %2577
  %2581 = load i1, ptr %376, align 1
  br i1 %2581, label %2582, label %2583

2582:                                             ; preds = %2580
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #8
  br label %2583

2583:                                             ; preds = %2582, %2580
  %2584 = load i1, ptr %375, align 1
  br i1 %2584, label %2585, label %2586

2585:                                             ; preds = %2583
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #8
  br label %2586

2586:                                             ; preds = %2585, %2583
  %2587 = load i1, ptr %374, align 1
  br i1 %2587, label %2588, label %2589

2588:                                             ; preds = %2586
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #8
  br label %2589

2589:                                             ; preds = %2588, %2586
  %2590 = load i1, ptr %373, align 1
  br i1 %2590, label %2591, label %2592

2591:                                             ; preds = %2589
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #8
  br label %2592

2592:                                             ; preds = %2591, %2589
  %2593 = load i1, ptr %372, align 1
  br i1 %2593, label %2594, label %2595

2594:                                             ; preds = %2592
  call void @llvm.lifetime.end.p0(i64 1, ptr %371) #8
  br label %2595

2595:                                             ; preds = %2594, %2592
  %2596 = load i1, ptr %370, align 1
  br i1 %2596, label %2597, label %2598

2597:                                             ; preds = %2595
  call void @llvm.lifetime.end.p0(i64 32, ptr %369) #8
  br label %2598

2598:                                             ; preds = %2597, %2595
  %2599 = load i1, ptr %368, align 1
  br i1 %2599, label %2600, label %2601

2600:                                             ; preds = %2598
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #8
  br label %2601

2601:                                             ; preds = %2600, %2598
  %2602 = load i1, ptr %367, align 1
  br i1 %2602, label %2603, label %2604

2603:                                             ; preds = %2601
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #8
  br label %2604

2604:                                             ; preds = %2603, %2601
  %2605 = load i1, ptr %366, align 1
  br i1 %2605, label %2606, label %2607

2606:                                             ; preds = %2604
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %364) #8
  br label %2607

2607:                                             ; preds = %2606, %2604
  %2608 = load i1, ptr %365, align 1
  br i1 %2608, label %2609, label %2610

2609:                                             ; preds = %2607
  call void @llvm.lifetime.end.p0(i64 1, ptr %364) #8
  br label %2610

2610:                                             ; preds = %2609, %2607
  %2611 = load i1, ptr %363, align 1
  br i1 %2611, label %2612, label %2613

2612:                                             ; preds = %2610
  call void @llvm.lifetime.end.p0(i64 32, ptr %362) #8
  br label %2613

2613:                                             ; preds = %2612, %2610
  %2614 = load i1, ptr %361, align 1
  br i1 %2614, label %2615, label %2616

2615:                                             ; preds = %2613
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #8
  br label %2616

2616:                                             ; preds = %2615, %2613
  %2617 = load i1, ptr %359, align 1
  br i1 %2617, label %2618, label %2619

2618:                                             ; preds = %2616
  call void @llvm.lifetime.end.p0(i64 32, ptr %358) #8
  br label %2619

2619:                                             ; preds = %2618, %2616
  %2620 = load i1, ptr %357, align 1
  br i1 %2620, label %2621, label %2622

2621:                                             ; preds = %2619
  call void @llvm.lifetime.end.p0(i64 32, ptr %356) #8
  br label %2622

2622:                                             ; preds = %2621, %2619
  %2623 = load i1, ptr %355, align 1
  br i1 %2623, label %2624, label %2625

2624:                                             ; preds = %2622
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #8
  br label %2625

2625:                                             ; preds = %2624, %2622
  %2626 = load i1, ptr %353, align 1
  br i1 %2626, label %2627, label %2628

2627:                                             ; preds = %2625
  call void @llvm.lifetime.end.p0(i64 32, ptr %352) #8
  br label %2628

2628:                                             ; preds = %2627, %2625
  call void @llvm.lifetime.start.p0(i64 8, ptr %404) #8
  %2629 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %2630 = load i32, ptr %15, align 4, !tbaa !20
  %2631 = sext i32 %2630 to i64
  %2632 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2629, i64 noundef %2631) #8
  %2633 = load double, ptr %2632, align 8, !tbaa !9
  %2634 = load double, ptr @_ZN9ElemModel2PIE, align 8, !tbaa !9
  %2635 = load double, ptr %349, align 8, !tbaa !9
  %2636 = fsub double %2634, %2635
  %2637 = call noundef double @_Z17dimLessCornerAreadd(double noundef %2633, double noundef %2636)
  store double %2637, ptr %404, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %405) #8
  %2638 = load double, ptr %404, align 8, !tbaa !9
  %2639 = load double, ptr %350, align 8, !tbaa !9
  %2640 = getelementptr inbounds %class.Polygon, ptr %514, i32 0, i32 2
  %2641 = load i32, ptr %15, align 4, !tbaa !20
  %2642 = sext i32 %2641 to i64
  %2643 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2640, i64 noundef %2642) #8
  %2644 = load double, ptr %2643, align 8, !tbaa !9
  %2645 = load double, ptr @_ZN9ElemModel2PIE, align 8, !tbaa !9
  %2646 = load double, ptr %349, align 8, !tbaa !9
  %2647 = fsub double %2645, %2646
  %2648 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 4
  %2649 = load ptr, ptr %2648, align 8, !tbaa !11
  %2650 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984) %2649)
  %2651 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %2650)
  %2652 = call noundef double @_Z17cornerConductanceddddd(double noundef %2638, double noundef %2639, double noundef %2644, double noundef %2647, double noundef %2651)
  store double %2652, ptr %405, align 8, !tbaa !9
  %2653 = load double, ptr %405, align 8, !tbaa !9
  %2654 = load double, ptr %9, align 8, !tbaa !9
  %2655 = fadd double %2654, %2653
  store double %2655, ptr %9, align 8, !tbaa !9
  %2656 = load double, ptr %350, align 8, !tbaa !9
  %2657 = load double, ptr %350, align 8, !tbaa !9
  %2658 = fmul double %2656, %2657
  %2659 = load double, ptr %404, align 8, !tbaa !9
  %2660 = load double, ptr %8, align 8, !tbaa !9
  %2661 = call double @llvm.fmuladd.f64(double %2658, double %2659, double %2660)
  store double %2661, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %405) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %404) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #8
  br label %2833

2662:                                             ; preds = %2508
  %2663 = landingpad { ptr, i32 }
          cleanup
  %2664 = extractvalue { ptr, i32 } %2663, 0
  store ptr %2664, ptr %34, align 8
  %2665 = extractvalue { ptr, i32 } %2663, 1
  store i32 %2665, ptr %35, align 4
  br label %2808

2666:                                             ; preds = %2509
  %2667 = landingpad { ptr, i32 }
          cleanup
  %2668 = extractvalue { ptr, i32 } %2667, 0
  store ptr %2668, ptr %34, align 8
  %2669 = extractvalue { ptr, i32 } %2667, 1
  store i32 %2669, ptr %35, align 4
  br label %2804

2670:                                             ; preds = %2510
  %2671 = landingpad { ptr, i32 }
          cleanup
  %2672 = extractvalue { ptr, i32 } %2671, 0
  store ptr %2672, ptr %34, align 8
  %2673 = extractvalue { ptr, i32 } %2671, 1
  store i32 %2673, ptr %35, align 4
  br label %2791

2674:                                             ; preds = %2511
  %2675 = landingpad { ptr, i32 }
          cleanup
  %2676 = extractvalue { ptr, i32 } %2675, 0
  store ptr %2676, ptr %34, align 8
  %2677 = extractvalue { ptr, i32 } %2675, 1
  store i32 %2677, ptr %35, align 4
  br label %2787

2678:                                             ; preds = %2512
  %2679 = landingpad { ptr, i32 }
          cleanup
  %2680 = extractvalue { ptr, i32 } %2679, 0
  store ptr %2680, ptr %34, align 8
  %2681 = extractvalue { ptr, i32 } %2679, 1
  store i32 %2681, ptr %35, align 4
  br label %2783

2682:                                             ; preds = %2513
  %2683 = landingpad { ptr, i32 }
          cleanup
  %2684 = extractvalue { ptr, i32 } %2683, 0
  store ptr %2684, ptr %34, align 8
  %2685 = extractvalue { ptr, i32 } %2683, 1
  store i32 %2685, ptr %35, align 4
  br label %2770

2686:                                             ; preds = %2514
  %2687 = landingpad { ptr, i32 }
          cleanup
  %2688 = extractvalue { ptr, i32 } %2687, 0
  store ptr %2688, ptr %34, align 8
  %2689 = extractvalue { ptr, i32 } %2687, 1
  store i32 %2689, ptr %35, align 4
  br label %2766

2690:                                             ; preds = %2515
  %2691 = landingpad { ptr, i32 }
          cleanup
  %2692 = extractvalue { ptr, i32 } %2691, 0
  store ptr %2692, ptr %34, align 8
  %2693 = extractvalue { ptr, i32 } %2691, 1
  store i32 %2693, ptr %35, align 4
  br label %2762

2694:                                             ; preds = %2516
  %2695 = landingpad { ptr, i32 }
          cleanup
  %2696 = extractvalue { ptr, i32 } %2695, 0
  store ptr %2696, ptr %34, align 8
  %2697 = extractvalue { ptr, i32 } %2695, 1
  store i32 %2697, ptr %35, align 4
  br label %2755

2698:                                             ; preds = %2517
  %2699 = landingpad { ptr, i32 }
          cleanup
  %2700 = extractvalue { ptr, i32 } %2699, 0
  store ptr %2700, ptr %34, align 8
  %2701 = extractvalue { ptr, i32 } %2699, 1
  store i32 %2701, ptr %35, align 4
  br label %2751

2702:                                             ; preds = %2518
  %2703 = landingpad { ptr, i32 }
          cleanup
  %2704 = extractvalue { ptr, i32 } %2703, 0
  store ptr %2704, ptr %34, align 8
  %2705 = extractvalue { ptr, i32 } %2703, 1
  store i32 %2705, ptr %35, align 4
  br label %2738

2706:                                             ; preds = %2519
  %2707 = landingpad { ptr, i32 }
          cleanup
  %2708 = extractvalue { ptr, i32 } %2707, 0
  store ptr %2708, ptr %34, align 8
  %2709 = extractvalue { ptr, i32 } %2707, 1
  store i32 %2709, ptr %35, align 4
  br label %2725

2710:                                             ; preds = %2520
  %2711 = landingpad { ptr, i32 }
          cleanup
  %2712 = extractvalue { ptr, i32 } %2711, 0
  store ptr %2712, ptr %34, align 8
  %2713 = extractvalue { ptr, i32 } %2711, 1
  store i32 %2713, ptr %35, align 4
  br label %2721

2714:                                             ; preds = %2521
  %2715 = landingpad { ptr, i32 }
          cleanup
  %2716 = extractvalue { ptr, i32 } %2715, 0
  store ptr %2716, ptr %34, align 8
  %2717 = extractvalue { ptr, i32 } %2715, 1
  store i32 %2717, ptr %35, align 4
  %2718 = load i1, ptr %403, align 1
  br i1 %2718, label %2719, label %2720

2719:                                             ; preds = %2714
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #8
  br label %2720

2720:                                             ; preds = %2719, %2714
  br label %2721

2721:                                             ; preds = %2720, %2710
  %2722 = load i1, ptr %402, align 1
  br i1 %2722, label %2723, label %2724

2723:                                             ; preds = %2721
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #8
  br label %2724

2724:                                             ; preds = %2723, %2721
  br label %2725

2725:                                             ; preds = %2724, %2706
  %2726 = load i1, ptr %401, align 1
  br i1 %2726, label %2727, label %2728

2727:                                             ; preds = %2725
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #8
  br label %2728

2728:                                             ; preds = %2727, %2725
  %2729 = load i1, ptr %400, align 1
  br i1 %2729, label %2730, label %2731

2730:                                             ; preds = %2728
  call void @llvm.lifetime.end.p0(i64 1, ptr %399) #8
  br label %2731

2731:                                             ; preds = %2730, %2728
  %2732 = load i1, ptr %398, align 1
  br i1 %2732, label %2733, label %2734

2733:                                             ; preds = %2731
  call void @llvm.lifetime.end.p0(i64 32, ptr %397) #8
  br label %2734

2734:                                             ; preds = %2733, %2731
  %2735 = load i1, ptr %396, align 1
  br i1 %2735, label %2736, label %2737

2736:                                             ; preds = %2734
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #8
  br label %2737

2737:                                             ; preds = %2736, %2734
  br label %2738

2738:                                             ; preds = %2737, %2702
  %2739 = load i1, ptr %395, align 1
  br i1 %2739, label %2740, label %2741

2740:                                             ; preds = %2738
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %393) #8
  br label %2741

2741:                                             ; preds = %2740, %2738
  %2742 = load i1, ptr %394, align 1
  br i1 %2742, label %2743, label %2744

2743:                                             ; preds = %2741
  call void @llvm.lifetime.end.p0(i64 1, ptr %393) #8
  br label %2744

2744:                                             ; preds = %2743, %2741
  %2745 = load i1, ptr %392, align 1
  br i1 %2745, label %2746, label %2747

2746:                                             ; preds = %2744
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #8
  br label %2747

2747:                                             ; preds = %2746, %2744
  %2748 = load i1, ptr %389, align 1
  br i1 %2748, label %2749, label %2750

2749:                                             ; preds = %2747
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #8
  br label %2750

2750:                                             ; preds = %2749, %2747
  br label %2751

2751:                                             ; preds = %2750, %2698
  %2752 = load i1, ptr %388, align 1
  br i1 %2752, label %2753, label %2754

2753:                                             ; preds = %2751
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %385) #8
  br label %2754

2754:                                             ; preds = %2753, %2751
  br label %2755

2755:                                             ; preds = %2754, %2694
  call void @llvm.lifetime.end.p0(i64 4, ptr %387) #8
  %2756 = load i1, ptr %386, align 1
  br i1 %2756, label %2757, label %2758

2757:                                             ; preds = %2755
  call void @llvm.lifetime.end.p0(i64 32, ptr %385) #8
  br label %2758

2758:                                             ; preds = %2757, %2755
  %2759 = load i1, ptr %384, align 1
  br i1 %2759, label %2760, label %2761

2760:                                             ; preds = %2758
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #8
  br label %2761

2761:                                             ; preds = %2760, %2758
  br label %2762

2762:                                             ; preds = %2761, %2690
  %2763 = load i1, ptr %383, align 1
  br i1 %2763, label %2764, label %2765

2764:                                             ; preds = %2762
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #8
  br label %2765

2765:                                             ; preds = %2764, %2762
  br label %2766

2766:                                             ; preds = %2765, %2686
  %2767 = load i1, ptr %382, align 1
  br i1 %2767, label %2768, label %2769

2768:                                             ; preds = %2766
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #8
  br label %2769

2769:                                             ; preds = %2768, %2766
  br label %2770

2770:                                             ; preds = %2769, %2682
  %2771 = load i1, ptr %381, align 1
  br i1 %2771, label %2772, label %2773

2772:                                             ; preds = %2770
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %379) #8
  br label %2773

2773:                                             ; preds = %2772, %2770
  %2774 = load i1, ptr %380, align 1
  br i1 %2774, label %2775, label %2776

2775:                                             ; preds = %2773
  call void @llvm.lifetime.end.p0(i64 1, ptr %379) #8
  br label %2776

2776:                                             ; preds = %2775, %2773
  %2777 = load i1, ptr %378, align 1
  br i1 %2777, label %2778, label %2779

2778:                                             ; preds = %2776
  call void @llvm.lifetime.end.p0(i64 32, ptr %377) #8
  br label %2779

2779:                                             ; preds = %2778, %2776
  %2780 = load i1, ptr %376, align 1
  br i1 %2780, label %2781, label %2782

2781:                                             ; preds = %2779
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #8
  br label %2782

2782:                                             ; preds = %2781, %2779
  br label %2783

2783:                                             ; preds = %2782, %2678
  %2784 = load i1, ptr %375, align 1
  br i1 %2784, label %2785, label %2786

2785:                                             ; preds = %2783
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #8
  br label %2786

2786:                                             ; preds = %2785, %2783
  br label %2787

2787:                                             ; preds = %2786, %2674
  %2788 = load i1, ptr %374, align 1
  br i1 %2788, label %2789, label %2790

2789:                                             ; preds = %2787
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #8
  br label %2790

2790:                                             ; preds = %2789, %2787
  br label %2791

2791:                                             ; preds = %2790, %2670
  %2792 = load i1, ptr %373, align 1
  br i1 %2792, label %2793, label %2794

2793:                                             ; preds = %2791
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #8
  br label %2794

2794:                                             ; preds = %2793, %2791
  %2795 = load i1, ptr %372, align 1
  br i1 %2795, label %2796, label %2797

2796:                                             ; preds = %2794
  call void @llvm.lifetime.end.p0(i64 1, ptr %371) #8
  br label %2797

2797:                                             ; preds = %2796, %2794
  %2798 = load i1, ptr %370, align 1
  br i1 %2798, label %2799, label %2800

2799:                                             ; preds = %2797
  call void @llvm.lifetime.end.p0(i64 32, ptr %369) #8
  br label %2800

2800:                                             ; preds = %2799, %2797
  %2801 = load i1, ptr %368, align 1
  br i1 %2801, label %2802, label %2803

2802:                                             ; preds = %2800
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #8
  br label %2803

2803:                                             ; preds = %2802, %2800
  br label %2804

2804:                                             ; preds = %2803, %2666
  %2805 = load i1, ptr %367, align 1
  br i1 %2805, label %2806, label %2807

2806:                                             ; preds = %2804
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #8
  br label %2807

2807:                                             ; preds = %2806, %2804
  br label %2808

2808:                                             ; preds = %2807, %2662
  %2809 = load i1, ptr %366, align 1
  br i1 %2809, label %2810, label %2811

2810:                                             ; preds = %2808
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %364) #8
  br label %2811

2811:                                             ; preds = %2810, %2808
  %2812 = load i1, ptr %365, align 1
  br i1 %2812, label %2813, label %2814

2813:                                             ; preds = %2811
  call void @llvm.lifetime.end.p0(i64 1, ptr %364) #8
  br label %2814

2814:                                             ; preds = %2813, %2811
  %2815 = load i1, ptr %363, align 1
  br i1 %2815, label %2816, label %2817

2816:                                             ; preds = %2814
  call void @llvm.lifetime.end.p0(i64 32, ptr %362) #8
  br label %2817

2817:                                             ; preds = %2816, %2814
  %2818 = load i1, ptr %361, align 1
  br i1 %2818, label %2819, label %2820

2819:                                             ; preds = %2817
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #8
  br label %2820

2820:                                             ; preds = %2819, %2817
  %2821 = load i1, ptr %359, align 1
  br i1 %2821, label %2822, label %2823

2822:                                             ; preds = %2820
  call void @llvm.lifetime.end.p0(i64 32, ptr %358) #8
  br label %2823

2823:                                             ; preds = %2822, %2820
  %2824 = load i1, ptr %357, align 1
  br i1 %2824, label %2825, label %2826

2825:                                             ; preds = %2823
  call void @llvm.lifetime.end.p0(i64 32, ptr %356) #8
  br label %2826

2826:                                             ; preds = %2825, %2823
  %2827 = load i1, ptr %355, align 1
  br i1 %2827, label %2828, label %2829

2828:                                             ; preds = %2826
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #8
  br label %2829

2829:                                             ; preds = %2828, %2826
  %2830 = load i1, ptr %353, align 1
  br i1 %2830, label %2831, label %2832

2831:                                             ; preds = %2829
  call void @llvm.lifetime.end.p0(i64 32, ptr %352) #8
  br label %2832

2832:                                             ; preds = %2831, %2829
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #8
  br label %2839

2833:                                             ; preds = %2628, %2304
  br label %2835

2834:                                             ; preds = %549
  br label %2835

2835:                                             ; preds = %2834, %2833
  br label %2836

2836:                                             ; preds = %2835
  %2837 = load i32, ptr %15, align 4, !tbaa !20
  %2838 = add nsw i32 %2837, 1
  store i32 %2838, ptr %15, align 4, !tbaa !20
  br label %543, !llvm.loop !31

2839:                                             ; preds = %2832, %2490
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %3486

2840:                                             ; preds = %548
  %2841 = load double, ptr %10, align 8, !tbaa !9
  %2842 = fcmp ogt double %2841, 0.000000e+00
  store i1 false, ptr %408, align 1
  store i1 false, ptr %410, align 1
  store i1 false, ptr %412, align 1
  store i1 false, ptr %414, align 1
  store i1 false, ptr %416, align 1
  store i1 false, ptr %418, align 1
  store i1 false, ptr %420, align 1
  store i1 false, ptr %421, align 1
  store i1 false, ptr %422, align 1
  store i1 false, ptr %423, align 1
  store i1 false, ptr %425, align 1
  store i1 false, ptr %427, align 1
  store i1 false, ptr %428, align 1
  store i1 false, ptr %429, align 1
  store i1 false, ptr %430, align 1
  store i1 false, ptr %431, align 1
  store i1 false, ptr %433, align 1
  store i1 false, ptr %435, align 1
  store i1 false, ptr %436, align 1
  store i1 false, ptr %437, align 1
  store i1 false, ptr %438, align 1
  store i1 false, ptr %439, align 1
  store i1 false, ptr %441, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %442) #8
  store i1 false, ptr %443, align 1
  store i1 false, ptr %444, align 1
  store i1 false, ptr %447, align 1
  store i1 false, ptr %449, align 1
  store i1 false, ptr %450, align 1
  store i1 false, ptr %451, align 1
  store i1 false, ptr %453, align 1
  store i1 false, ptr %455, align 1
  store i1 false, ptr %456, align 1
  store i1 false, ptr %457, align 1
  store i1 false, ptr %458, align 1
  br i1 %2842, label %2862, label %2843

2843:                                             ; preds = %2840
  %2844 = load double, ptr %8, align 8, !tbaa !9
  %2845 = fcmp ogt double %2844, 0.000000e+00
  br i1 %2845, label %2862, label %2846

2846:                                             ; preds = %2843
  call void @llvm.lifetime.start.p0(i64 32, ptr %407) #8
  store i1 true, ptr %408, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %409) #8
  store i1 true, ptr %410, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %411) #8
  store i1 true, ptr %412, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %413) #8
  store i1 true, ptr %414, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %415) #8
  store i1 true, ptr %416, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %417) #8
  store i1 true, ptr %418, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %419) #8
  store i1 true, ptr %420, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %419) #8
  store i1 true, ptr %421, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %419)
          to label %2847 unwind label %3135

2847:                                             ; preds = %2846
  store i1 true, ptr %422, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %415, ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef @.str.1)
          to label %2848 unwind label %3139

2848:                                             ; preds = %2847
  store i1 true, ptr %423, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %424) #8
  store i1 true, ptr %425, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %426) #8
  store i1 true, ptr %427, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #8
  store i1 true, ptr %428, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %424, ptr noundef @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %426)
          to label %2849 unwind label %3143

2849:                                             ; preds = %2848
  store i1 true, ptr %429, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %413, ptr noundef nonnull align 8 dereferenceable(32) %415, ptr noundef nonnull align 8 dereferenceable(32) %424)
          to label %2850 unwind label %3147

2850:                                             ; preds = %2849
  store i1 true, ptr %430, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %411, ptr noundef nonnull align 8 dereferenceable(32) %413, ptr noundef @.str.2)
          to label %2851 unwind label %3151

2851:                                             ; preds = %2850
  store i1 true, ptr %431, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %432) #8
  store i1 true, ptr %433, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %434) #8
  store i1 true, ptr %435, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %434) #8
  store i1 true, ptr %436, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %432, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %434)
          to label %2852 unwind label %3155

2852:                                             ; preds = %2851
  store i1 true, ptr %437, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %409, ptr noundef nonnull align 8 dereferenceable(32) %411, ptr noundef nonnull align 8 dereferenceable(32) %432)
          to label %2853 unwind label %3159

2853:                                             ; preds = %2852
  store i1 true, ptr %438, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %407, ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef @.str.4)
          to label %2854 unwind label %3163

2854:                                             ; preds = %2853
  store i1 true, ptr %439, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %440) #8
  store i1 true, ptr %441, align 1
  store i32 396, ptr %442, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %440, ptr noundef nonnull align 4 dereferenceable(4) %442)
          to label %2855 unwind label %3167

2855:                                             ; preds = %2854
  store i1 true, ptr %443, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %406, ptr noundef nonnull align 8 dereferenceable(32) %407, ptr noundef nonnull align 8 dereferenceable(32) %440)
          to label %2856 unwind label %3171

2856:                                             ; preds = %2855
  store i1 true, ptr %444, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %446) #8
  store i1 true, ptr %447, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %448) #8
  store i1 true, ptr %449, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %448) #8
  store i1 true, ptr %450, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %448)
          to label %2857 unwind label %3175

2857:                                             ; preds = %2856
  store i1 true, ptr %451, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %452) #8
  store i1 true, ptr %453, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %454) #8
  store i1 true, ptr %455, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %454) #8
  store i1 true, ptr %456, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %452, ptr noundef @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %454)
          to label %2858 unwind label %3179

2858:                                             ; preds = %2857
  store i1 true, ptr %457, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %445, ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef nonnull align 8 dereferenceable(32) %452)
          to label %2859 unwind label %3183

2859:                                             ; preds = %2858
  store i1 true, ptr %458, align 1
  %2860 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %406, ptr noundef %445, i32 noundef 0)
          to label %2861 unwind label %3187

2861:                                             ; preds = %2859
  br label %2862

2862:                                             ; preds = %2861, %2843, %2840
  %2863 = phi i1 [ true, %2843 ], [ true, %2840 ], [ %2860, %2861 ]
  %2864 = xor i1 %2863, true
  %2865 = load i1, ptr %458, align 1
  br i1 %2865, label %2866, label %2867

2866:                                             ; preds = %2862
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %445) #8
  br label %2867

2867:                                             ; preds = %2866, %2862
  %2868 = load i1, ptr %457, align 1
  br i1 %2868, label %2869, label %2870

2869:                                             ; preds = %2867
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #8
  br label %2870

2870:                                             ; preds = %2869, %2867
  %2871 = load i1, ptr %456, align 1
  br i1 %2871, label %2872, label %2873

2872:                                             ; preds = %2870
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %454) #8
  br label %2873

2873:                                             ; preds = %2872, %2870
  %2874 = load i1, ptr %455, align 1
  br i1 %2874, label %2875, label %2876

2875:                                             ; preds = %2873
  call void @llvm.lifetime.end.p0(i64 1, ptr %454) #8
  br label %2876

2876:                                             ; preds = %2875, %2873
  %2877 = load i1, ptr %453, align 1
  br i1 %2877, label %2878, label %2879

2878:                                             ; preds = %2876
  call void @llvm.lifetime.end.p0(i64 32, ptr %452) #8
  br label %2879

2879:                                             ; preds = %2878, %2876
  %2880 = load i1, ptr %451, align 1
  br i1 %2880, label %2881, label %2882

2881:                                             ; preds = %2879
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #8
  br label %2882

2882:                                             ; preds = %2881, %2879
  %2883 = load i1, ptr %450, align 1
  br i1 %2883, label %2884, label %2885

2884:                                             ; preds = %2882
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %448) #8
  br label %2885

2885:                                             ; preds = %2884, %2882
  %2886 = load i1, ptr %449, align 1
  br i1 %2886, label %2887, label %2888

2887:                                             ; preds = %2885
  call void @llvm.lifetime.end.p0(i64 1, ptr %448) #8
  br label %2888

2888:                                             ; preds = %2887, %2885
  %2889 = load i1, ptr %447, align 1
  br i1 %2889, label %2890, label %2891

2890:                                             ; preds = %2888
  call void @llvm.lifetime.end.p0(i64 32, ptr %446) #8
  br label %2891

2891:                                             ; preds = %2890, %2888
  %2892 = load i1, ptr %444, align 1
  br i1 %2892, label %2893, label %2894

2893:                                             ; preds = %2891
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %406) #8
  br label %2894

2894:                                             ; preds = %2893, %2891
  %2895 = load i1, ptr %443, align 1
  br i1 %2895, label %2896, label %2897

2896:                                             ; preds = %2894
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %440) #8
  br label %2897

2897:                                             ; preds = %2896, %2894
  call void @llvm.lifetime.end.p0(i64 4, ptr %442) #8
  %2898 = load i1, ptr %441, align 1
  br i1 %2898, label %2899, label %2900

2899:                                             ; preds = %2897
  call void @llvm.lifetime.end.p0(i64 32, ptr %440) #8
  br label %2900

2900:                                             ; preds = %2899, %2897
  %2901 = load i1, ptr %439, align 1
  br i1 %2901, label %2902, label %2903

2902:                                             ; preds = %2900
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %407) #8
  br label %2903

2903:                                             ; preds = %2902, %2900
  %2904 = load i1, ptr %438, align 1
  br i1 %2904, label %2905, label %2906

2905:                                             ; preds = %2903
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #8
  br label %2906

2906:                                             ; preds = %2905, %2903
  %2907 = load i1, ptr %437, align 1
  br i1 %2907, label %2908, label %2909

2908:                                             ; preds = %2906
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %432) #8
  br label %2909

2909:                                             ; preds = %2908, %2906
  %2910 = load i1, ptr %436, align 1
  br i1 %2910, label %2911, label %2912

2911:                                             ; preds = %2909
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %434) #8
  br label %2912

2912:                                             ; preds = %2911, %2909
  %2913 = load i1, ptr %435, align 1
  br i1 %2913, label %2914, label %2915

2914:                                             ; preds = %2912
  call void @llvm.lifetime.end.p0(i64 1, ptr %434) #8
  br label %2915

2915:                                             ; preds = %2914, %2912
  %2916 = load i1, ptr %433, align 1
  br i1 %2916, label %2917, label %2918

2917:                                             ; preds = %2915
  call void @llvm.lifetime.end.p0(i64 32, ptr %432) #8
  br label %2918

2918:                                             ; preds = %2917, %2915
  %2919 = load i1, ptr %431, align 1
  br i1 %2919, label %2920, label %2921

2920:                                             ; preds = %2918
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #8
  br label %2921

2921:                                             ; preds = %2920, %2918
  %2922 = load i1, ptr %430, align 1
  br i1 %2922, label %2923, label %2924

2923:                                             ; preds = %2921
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #8
  br label %2924

2924:                                             ; preds = %2923, %2921
  %2925 = load i1, ptr %429, align 1
  br i1 %2925, label %2926, label %2927

2926:                                             ; preds = %2924
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #8
  br label %2927

2927:                                             ; preds = %2926, %2924
  %2928 = load i1, ptr %428, align 1
  br i1 %2928, label %2929, label %2930

2929:                                             ; preds = %2927
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #8
  br label %2930

2930:                                             ; preds = %2929, %2927
  %2931 = load i1, ptr %427, align 1
  br i1 %2931, label %2932, label %2933

2932:                                             ; preds = %2930
  call void @llvm.lifetime.end.p0(i64 1, ptr %426) #8
  br label %2933

2933:                                             ; preds = %2932, %2930
  %2934 = load i1, ptr %425, align 1
  br i1 %2934, label %2935, label %2936

2935:                                             ; preds = %2933
  call void @llvm.lifetime.end.p0(i64 32, ptr %424) #8
  br label %2936

2936:                                             ; preds = %2935, %2933
  %2937 = load i1, ptr %423, align 1
  br i1 %2937, label %2938, label %2939

2938:                                             ; preds = %2936
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #8
  br label %2939

2939:                                             ; preds = %2938, %2936
  %2940 = load i1, ptr %422, align 1
  br i1 %2940, label %2941, label %2942

2941:                                             ; preds = %2939
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #8
  br label %2942

2942:                                             ; preds = %2941, %2939
  %2943 = load i1, ptr %421, align 1
  br i1 %2943, label %2944, label %2945

2944:                                             ; preds = %2942
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %419) #8
  br label %2945

2945:                                             ; preds = %2944, %2942
  %2946 = load i1, ptr %420, align 1
  br i1 %2946, label %2947, label %2948

2947:                                             ; preds = %2945
  call void @llvm.lifetime.end.p0(i64 1, ptr %419) #8
  br label %2948

2948:                                             ; preds = %2947, %2945
  %2949 = load i1, ptr %418, align 1
  br i1 %2949, label %2950, label %2951

2950:                                             ; preds = %2948
  call void @llvm.lifetime.end.p0(i64 32, ptr %417) #8
  br label %2951

2951:                                             ; preds = %2950, %2948
  %2952 = load i1, ptr %416, align 1
  br i1 %2952, label %2953, label %2954

2953:                                             ; preds = %2951
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #8
  br label %2954

2954:                                             ; preds = %2953, %2951
  %2955 = load i1, ptr %414, align 1
  br i1 %2955, label %2956, label %2957

2956:                                             ; preds = %2954
  call void @llvm.lifetime.end.p0(i64 32, ptr %413) #8
  br label %2957

2957:                                             ; preds = %2956, %2954
  %2958 = load i1, ptr %412, align 1
  br i1 %2958, label %2959, label %2960

2959:                                             ; preds = %2957
  call void @llvm.lifetime.end.p0(i64 32, ptr %411) #8
  br label %2960

2960:                                             ; preds = %2959, %2957
  %2961 = load i1, ptr %410, align 1
  br i1 %2961, label %2962, label %2963

2962:                                             ; preds = %2960
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #8
  br label %2963

2963:                                             ; preds = %2962, %2960
  %2964 = load i1, ptr %408, align 1
  br i1 %2964, label %2965, label %2966

2965:                                             ; preds = %2963
  call void @llvm.lifetime.end.p0(i64 32, ptr %407) #8
  br label %2966

2966:                                             ; preds = %2965, %2963
  %2967 = load double, ptr %8, align 8, !tbaa !9
  %2968 = load double, ptr %10, align 8, !tbaa !9
  %2969 = fadd double %2967, %2968
  %2970 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 13
  %2971 = load double, ptr %2970, align 8, !tbaa !33
  %2972 = fdiv double %2969, %2971
  %2973 = fsub double 1.000000e+00, %2972
  %2974 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 14
  store double %2973, ptr %2974, align 8, !tbaa !34
  %2975 = load double, ptr %11, align 8, !tbaa !9
  %2976 = load double, ptr %9, align 8, !tbaa !9
  %2977 = fadd double %2975, %2976
  %2978 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 18
  store double %2977, ptr %2978, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr %459) #8
  %2979 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 13
  %2980 = load double, ptr %2979, align 8, !tbaa !33
  %2981 = load double, ptr %8, align 8, !tbaa !9
  %2982 = fsub double %2980, %2981
  %2983 = load double, ptr %10, align 8, !tbaa !9
  %2984 = fsub double %2982, %2983
  %2985 = load double, ptr %6, align 8, !tbaa !9
  %2986 = fsub double %2984, %2985
  %2987 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 13
  %2988 = load double, ptr %2987, align 8, !tbaa !33
  %2989 = fdiv double %2986, %2988
  store double %2989, ptr %459, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %460) #8
  %2990 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 13
  %2991 = load double, ptr %2990, align 8, !tbaa !33
  %2992 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 4
  %2993 = load ptr, ptr %2992, align 8, !tbaa !11
  %2994 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %2993)
  %2995 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %2994)
  %2996 = load ptr, ptr %514, align 8, !tbaa !36
  %2997 = getelementptr inbounds ptr, ptr %2996, i64 23
  %2998 = load ptr, ptr %2997, align 8
  %2999 = call noundef double %2998(ptr noundef nonnull align 8 dereferenceable(152) %514, double noundef %2991, double noundef %2995)
  %3000 = load double, ptr %459, align 8, !tbaa !9
  %3001 = fmul double %2999, %3000
  store double %3001, ptr %460, align 8, !tbaa !9
  %3002 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 9
  %3003 = load i8, ptr %3002, align 2, !tbaa !38, !range !39, !noundef !40
  %3004 = trunc i8 %3003 to i1
  br i1 %3004, label %3005, label %3477

3005:                                             ; preds = %2966
  %3006 = load double, ptr %7, align 8, !tbaa !9
  %3007 = fcmp ogt double %3006, 0.000000e+00
  store i1 false, ptr %463, align 1
  store i1 false, ptr %465, align 1
  store i1 false, ptr %467, align 1
  store i1 false, ptr %469, align 1
  store i1 false, ptr %471, align 1
  store i1 false, ptr %473, align 1
  store i1 false, ptr %475, align 1
  store i1 false, ptr %476, align 1
  store i1 false, ptr %477, align 1
  store i1 false, ptr %478, align 1
  store i1 false, ptr %480, align 1
  store i1 false, ptr %482, align 1
  store i1 false, ptr %483, align 1
  store i1 false, ptr %484, align 1
  store i1 false, ptr %485, align 1
  store i1 false, ptr %486, align 1
  store i1 false, ptr %488, align 1
  store i1 false, ptr %490, align 1
  store i1 false, ptr %491, align 1
  store i1 false, ptr %492, align 1
  store i1 false, ptr %493, align 1
  store i1 false, ptr %494, align 1
  store i1 false, ptr %496, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %497) #8
  store i1 false, ptr %498, align 1
  store i1 false, ptr %499, align 1
  store i1 false, ptr %502, align 1
  store i1 false, ptr %504, align 1
  store i1 false, ptr %505, align 1
  store i1 false, ptr %506, align 1
  store i1 false, ptr %508, align 1
  store i1 false, ptr %510, align 1
  store i1 false, ptr %511, align 1
  store i1 false, ptr %512, align 1
  store i1 false, ptr %513, align 1
  br i1 %3007, label %3024, label %3008

3008:                                             ; preds = %3005
  call void @llvm.lifetime.start.p0(i64 32, ptr %462) #8
  store i1 true, ptr %463, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %464) #8
  store i1 true, ptr %465, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %466) #8
  store i1 true, ptr %467, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %468) #8
  store i1 true, ptr %469, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %470) #8
  store i1 true, ptr %471, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %472) #8
  store i1 true, ptr %473, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %474) #8
  store i1 true, ptr %475, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %474) #8
  store i1 true, ptr %476, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %472, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %474)
          to label %3009 unwind label %3306

3009:                                             ; preds = %3008
  store i1 true, ptr %477, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %470, ptr noundef nonnull align 8 dereferenceable(32) %472, ptr noundef @.str.1)
          to label %3010 unwind label %3310

3010:                                             ; preds = %3009
  store i1 true, ptr %478, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %479) #8
  store i1 true, ptr %480, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %481) #8
  store i1 true, ptr %482, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #8
  store i1 true, ptr %483, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %479, ptr noundef @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %481)
          to label %3011 unwind label %3314

3011:                                             ; preds = %3010
  store i1 true, ptr %484, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %468, ptr noundef nonnull align 8 dereferenceable(32) %470, ptr noundef nonnull align 8 dereferenceable(32) %479)
          to label %3012 unwind label %3318

3012:                                             ; preds = %3011
  store i1 true, ptr %485, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %466, ptr noundef nonnull align 8 dereferenceable(32) %468, ptr noundef @.str.2)
          to label %3013 unwind label %3322

3013:                                             ; preds = %3012
  store i1 true, ptr %486, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %487) #8
  store i1 true, ptr %488, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %489) #8
  store i1 true, ptr %490, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %489) #8
  store i1 true, ptr %491, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %487, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %489)
          to label %3014 unwind label %3326

3014:                                             ; preds = %3013
  store i1 true, ptr %492, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %464, ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef nonnull align 8 dereferenceable(32) %487)
          to label %3015 unwind label %3330

3015:                                             ; preds = %3014
  store i1 true, ptr %493, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %462, ptr noundef nonnull align 8 dereferenceable(32) %464, ptr noundef @.str.4)
          to label %3016 unwind label %3334

3016:                                             ; preds = %3015
  store i1 true, ptr %494, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %495) #8
  store i1 true, ptr %496, align 1
  store i32 409, ptr %497, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %495, ptr noundef nonnull align 4 dereferenceable(4) %497)
          to label %3017 unwind label %3338

3017:                                             ; preds = %3016
  store i1 true, ptr %498, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %461, ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef nonnull align 8 dereferenceable(32) %495)
          to label %3018 unwind label %3342

3018:                                             ; preds = %3017
  store i1 true, ptr %499, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %501) #8
  store i1 true, ptr %502, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %503) #8
  store i1 true, ptr %504, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %503) #8
  store i1 true, ptr %505, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %501, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %503)
          to label %3019 unwind label %3346

3019:                                             ; preds = %3018
  store i1 true, ptr %506, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %507) #8
  store i1 true, ptr %508, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %509) #8
  store i1 true, ptr %510, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #8
  store i1 true, ptr %511, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %507, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %509)
          to label %3020 unwind label %3350

3020:                                             ; preds = %3019
  store i1 true, ptr %512, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %500, ptr noundef nonnull align 8 dereferenceable(32) %501, ptr noundef nonnull align 8 dereferenceable(32) %507)
          to label %3021 unwind label %3354

3021:                                             ; preds = %3020
  store i1 true, ptr %513, align 1
  %3022 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %461, ptr noundef %500, i32 noundef 0)
          to label %3023 unwind label %3358

3023:                                             ; preds = %3021
  br label %3024

3024:                                             ; preds = %3023, %3005
  %3025 = phi i1 [ true, %3005 ], [ %3022, %3023 ]
  %3026 = xor i1 %3025, true
  %3027 = load i1, ptr %513, align 1
  br i1 %3027, label %3028, label %3029

3028:                                             ; preds = %3024
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %500) #8
  br label %3029

3029:                                             ; preds = %3028, %3024
  %3030 = load i1, ptr %512, align 1
  br i1 %3030, label %3031, label %3032

3031:                                             ; preds = %3029
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %507) #8
  br label %3032

3032:                                             ; preds = %3031, %3029
  %3033 = load i1, ptr %511, align 1
  br i1 %3033, label %3034, label %3035

3034:                                             ; preds = %3032
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #8
  br label %3035

3035:                                             ; preds = %3034, %3032
  %3036 = load i1, ptr %510, align 1
  br i1 %3036, label %3037, label %3038

3037:                                             ; preds = %3035
  call void @llvm.lifetime.end.p0(i64 1, ptr %509) #8
  br label %3038

3038:                                             ; preds = %3037, %3035
  %3039 = load i1, ptr %508, align 1
  br i1 %3039, label %3040, label %3041

3040:                                             ; preds = %3038
  call void @llvm.lifetime.end.p0(i64 32, ptr %507) #8
  br label %3041

3041:                                             ; preds = %3040, %3038
  %3042 = load i1, ptr %506, align 1
  br i1 %3042, label %3043, label %3044

3043:                                             ; preds = %3041
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %501) #8
  br label %3044

3044:                                             ; preds = %3043, %3041
  %3045 = load i1, ptr %505, align 1
  br i1 %3045, label %3046, label %3047

3046:                                             ; preds = %3044
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %503) #8
  br label %3047

3047:                                             ; preds = %3046, %3044
  %3048 = load i1, ptr %504, align 1
  br i1 %3048, label %3049, label %3050

3049:                                             ; preds = %3047
  call void @llvm.lifetime.end.p0(i64 1, ptr %503) #8
  br label %3050

3050:                                             ; preds = %3049, %3047
  %3051 = load i1, ptr %502, align 1
  br i1 %3051, label %3052, label %3053

3052:                                             ; preds = %3050
  call void @llvm.lifetime.end.p0(i64 32, ptr %501) #8
  br label %3053

3053:                                             ; preds = %3052, %3050
  %3054 = load i1, ptr %499, align 1
  br i1 %3054, label %3055, label %3056

3055:                                             ; preds = %3053
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %461) #8
  br label %3056

3056:                                             ; preds = %3055, %3053
  %3057 = load i1, ptr %498, align 1
  br i1 %3057, label %3058, label %3059

3058:                                             ; preds = %3056
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %495) #8
  br label %3059

3059:                                             ; preds = %3058, %3056
  call void @llvm.lifetime.end.p0(i64 4, ptr %497) #8
  %3060 = load i1, ptr %496, align 1
  br i1 %3060, label %3061, label %3062

3061:                                             ; preds = %3059
  call void @llvm.lifetime.end.p0(i64 32, ptr %495) #8
  br label %3062

3062:                                             ; preds = %3061, %3059
  %3063 = load i1, ptr %494, align 1
  br i1 %3063, label %3064, label %3065

3064:                                             ; preds = %3062
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %462) #8
  br label %3065

3065:                                             ; preds = %3064, %3062
  %3066 = load i1, ptr %493, align 1
  br i1 %3066, label %3067, label %3068

3067:                                             ; preds = %3065
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %464) #8
  br label %3068

3068:                                             ; preds = %3067, %3065
  %3069 = load i1, ptr %492, align 1
  br i1 %3069, label %3070, label %3071

3070:                                             ; preds = %3068
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %487) #8
  br label %3071

3071:                                             ; preds = %3070, %3068
  %3072 = load i1, ptr %491, align 1
  br i1 %3072, label %3073, label %3074

3073:                                             ; preds = %3071
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %489) #8
  br label %3074

3074:                                             ; preds = %3073, %3071
  %3075 = load i1, ptr %490, align 1
  br i1 %3075, label %3076, label %3077

3076:                                             ; preds = %3074
  call void @llvm.lifetime.end.p0(i64 1, ptr %489) #8
  br label %3077

3077:                                             ; preds = %3076, %3074
  %3078 = load i1, ptr %488, align 1
  br i1 %3078, label %3079, label %3080

3079:                                             ; preds = %3077
  call void @llvm.lifetime.end.p0(i64 32, ptr %487) #8
  br label %3080

3080:                                             ; preds = %3079, %3077
  %3081 = load i1, ptr %486, align 1
  br i1 %3081, label %3082, label %3083

3082:                                             ; preds = %3080
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %466) #8
  br label %3083

3083:                                             ; preds = %3082, %3080
  %3084 = load i1, ptr %485, align 1
  br i1 %3084, label %3085, label %3086

3085:                                             ; preds = %3083
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %468) #8
  br label %3086

3086:                                             ; preds = %3085, %3083
  %3087 = load i1, ptr %484, align 1
  br i1 %3087, label %3088, label %3089

3088:                                             ; preds = %3086
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %479) #8
  br label %3089

3089:                                             ; preds = %3088, %3086
  %3090 = load i1, ptr %483, align 1
  br i1 %3090, label %3091, label %3092

3091:                                             ; preds = %3089
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #8
  br label %3092

3092:                                             ; preds = %3091, %3089
  %3093 = load i1, ptr %482, align 1
  br i1 %3093, label %3094, label %3095

3094:                                             ; preds = %3092
  call void @llvm.lifetime.end.p0(i64 1, ptr %481) #8
  br label %3095

3095:                                             ; preds = %3094, %3092
  %3096 = load i1, ptr %480, align 1
  br i1 %3096, label %3097, label %3098

3097:                                             ; preds = %3095
  call void @llvm.lifetime.end.p0(i64 32, ptr %479) #8
  br label %3098

3098:                                             ; preds = %3097, %3095
  %3099 = load i1, ptr %478, align 1
  br i1 %3099, label %3100, label %3101

3100:                                             ; preds = %3098
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #8
  br label %3101

3101:                                             ; preds = %3100, %3098
  %3102 = load i1, ptr %477, align 1
  br i1 %3102, label %3103, label %3104

3103:                                             ; preds = %3101
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %472) #8
  br label %3104

3104:                                             ; preds = %3103, %3101
  %3105 = load i1, ptr %476, align 1
  br i1 %3105, label %3106, label %3107

3106:                                             ; preds = %3104
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %474) #8
  br label %3107

3107:                                             ; preds = %3106, %3104
  %3108 = load i1, ptr %475, align 1
  br i1 %3108, label %3109, label %3110

3109:                                             ; preds = %3107
  call void @llvm.lifetime.end.p0(i64 1, ptr %474) #8
  br label %3110

3110:                                             ; preds = %3109, %3107
  %3111 = load i1, ptr %473, align 1
  br i1 %3111, label %3112, label %3113

3112:                                             ; preds = %3110
  call void @llvm.lifetime.end.p0(i64 32, ptr %472) #8
  br label %3113

3113:                                             ; preds = %3112, %3110
  %3114 = load i1, ptr %471, align 1
  br i1 %3114, label %3115, label %3116

3115:                                             ; preds = %3113
  call void @llvm.lifetime.end.p0(i64 32, ptr %470) #8
  br label %3116

3116:                                             ; preds = %3115, %3113
  %3117 = load i1, ptr %469, align 1
  br i1 %3117, label %3118, label %3119

3118:                                             ; preds = %3116
  call void @llvm.lifetime.end.p0(i64 32, ptr %468) #8
  br label %3119

3119:                                             ; preds = %3118, %3116
  %3120 = load i1, ptr %467, align 1
  br i1 %3120, label %3121, label %3122

3121:                                             ; preds = %3119
  call void @llvm.lifetime.end.p0(i64 32, ptr %466) #8
  br label %3122

3122:                                             ; preds = %3121, %3119
  %3123 = load i1, ptr %465, align 1
  br i1 %3123, label %3124, label %3125

3124:                                             ; preds = %3122
  call void @llvm.lifetime.end.p0(i64 32, ptr %464) #8
  br label %3125

3125:                                             ; preds = %3124, %3122
  %3126 = load i1, ptr %463, align 1
  br i1 %3126, label %3127, label %3128

3127:                                             ; preds = %3125
  call void @llvm.lifetime.end.p0(i64 32, ptr %462) #8
  br label %3128

3128:                                             ; preds = %3127, %3125
  %3129 = load double, ptr %7, align 8, !tbaa !9
  %3130 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 19
  %3131 = getelementptr inbounds %"struct.std::pair", ptr %3130, i32 0, i32 0
  store double %3129, ptr %3131, align 8, !tbaa !41
  %3132 = load double, ptr %460, align 8, !tbaa !9
  %3133 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 19
  %3134 = getelementptr inbounds %"struct.std::pair", ptr %3133, i32 0, i32 1
  store double %3132, ptr %3134, align 8, !tbaa !42
  br label %3485

3135:                                             ; preds = %2846
  %3136 = landingpad { ptr, i32 }
          cleanup
  %3137 = extractvalue { ptr, i32 } %3136, 0
  store ptr %3137, ptr %34, align 8
  %3138 = extractvalue { ptr, i32 } %3136, 1
  store i32 %3138, ptr %35, align 4
  br label %3281

3139:                                             ; preds = %2847
  %3140 = landingpad { ptr, i32 }
          cleanup
  %3141 = extractvalue { ptr, i32 } %3140, 0
  store ptr %3141, ptr %34, align 8
  %3142 = extractvalue { ptr, i32 } %3140, 1
  store i32 %3142, ptr %35, align 4
  br label %3277

3143:                                             ; preds = %2848
  %3144 = landingpad { ptr, i32 }
          cleanup
  %3145 = extractvalue { ptr, i32 } %3144, 0
  store ptr %3145, ptr %34, align 8
  %3146 = extractvalue { ptr, i32 } %3144, 1
  store i32 %3146, ptr %35, align 4
  br label %3264

3147:                                             ; preds = %2849
  %3148 = landingpad { ptr, i32 }
          cleanup
  %3149 = extractvalue { ptr, i32 } %3148, 0
  store ptr %3149, ptr %34, align 8
  %3150 = extractvalue { ptr, i32 } %3148, 1
  store i32 %3150, ptr %35, align 4
  br label %3260

3151:                                             ; preds = %2850
  %3152 = landingpad { ptr, i32 }
          cleanup
  %3153 = extractvalue { ptr, i32 } %3152, 0
  store ptr %3153, ptr %34, align 8
  %3154 = extractvalue { ptr, i32 } %3152, 1
  store i32 %3154, ptr %35, align 4
  br label %3256

3155:                                             ; preds = %2851
  %3156 = landingpad { ptr, i32 }
          cleanup
  %3157 = extractvalue { ptr, i32 } %3156, 0
  store ptr %3157, ptr %34, align 8
  %3158 = extractvalue { ptr, i32 } %3156, 1
  store i32 %3158, ptr %35, align 4
  br label %3243

3159:                                             ; preds = %2852
  %3160 = landingpad { ptr, i32 }
          cleanup
  %3161 = extractvalue { ptr, i32 } %3160, 0
  store ptr %3161, ptr %34, align 8
  %3162 = extractvalue { ptr, i32 } %3160, 1
  store i32 %3162, ptr %35, align 4
  br label %3239

3163:                                             ; preds = %2853
  %3164 = landingpad { ptr, i32 }
          cleanup
  %3165 = extractvalue { ptr, i32 } %3164, 0
  store ptr %3165, ptr %34, align 8
  %3166 = extractvalue { ptr, i32 } %3164, 1
  store i32 %3166, ptr %35, align 4
  br label %3235

3167:                                             ; preds = %2854
  %3168 = landingpad { ptr, i32 }
          cleanup
  %3169 = extractvalue { ptr, i32 } %3168, 0
  store ptr %3169, ptr %34, align 8
  %3170 = extractvalue { ptr, i32 } %3168, 1
  store i32 %3170, ptr %35, align 4
  br label %3228

3171:                                             ; preds = %2855
  %3172 = landingpad { ptr, i32 }
          cleanup
  %3173 = extractvalue { ptr, i32 } %3172, 0
  store ptr %3173, ptr %34, align 8
  %3174 = extractvalue { ptr, i32 } %3172, 1
  store i32 %3174, ptr %35, align 4
  br label %3224

3175:                                             ; preds = %2856
  %3176 = landingpad { ptr, i32 }
          cleanup
  %3177 = extractvalue { ptr, i32 } %3176, 0
  store ptr %3177, ptr %34, align 8
  %3178 = extractvalue { ptr, i32 } %3176, 1
  store i32 %3178, ptr %35, align 4
  br label %3211

3179:                                             ; preds = %2857
  %3180 = landingpad { ptr, i32 }
          cleanup
  %3181 = extractvalue { ptr, i32 } %3180, 0
  store ptr %3181, ptr %34, align 8
  %3182 = extractvalue { ptr, i32 } %3180, 1
  store i32 %3182, ptr %35, align 4
  br label %3198

3183:                                             ; preds = %2858
  %3184 = landingpad { ptr, i32 }
          cleanup
  %3185 = extractvalue { ptr, i32 } %3184, 0
  store ptr %3185, ptr %34, align 8
  %3186 = extractvalue { ptr, i32 } %3184, 1
  store i32 %3186, ptr %35, align 4
  br label %3194

3187:                                             ; preds = %2859
  %3188 = landingpad { ptr, i32 }
          cleanup
  %3189 = extractvalue { ptr, i32 } %3188, 0
  store ptr %3189, ptr %34, align 8
  %3190 = extractvalue { ptr, i32 } %3188, 1
  store i32 %3190, ptr %35, align 4
  %3191 = load i1, ptr %458, align 1
  br i1 %3191, label %3192, label %3193

3192:                                             ; preds = %3187
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %445) #8
  br label %3193

3193:                                             ; preds = %3192, %3187
  br label %3194

3194:                                             ; preds = %3193, %3183
  %3195 = load i1, ptr %457, align 1
  br i1 %3195, label %3196, label %3197

3196:                                             ; preds = %3194
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #8
  br label %3197

3197:                                             ; preds = %3196, %3194
  br label %3198

3198:                                             ; preds = %3197, %3179
  %3199 = load i1, ptr %456, align 1
  br i1 %3199, label %3200, label %3201

3200:                                             ; preds = %3198
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %454) #8
  br label %3201

3201:                                             ; preds = %3200, %3198
  %3202 = load i1, ptr %455, align 1
  br i1 %3202, label %3203, label %3204

3203:                                             ; preds = %3201
  call void @llvm.lifetime.end.p0(i64 1, ptr %454) #8
  br label %3204

3204:                                             ; preds = %3203, %3201
  %3205 = load i1, ptr %453, align 1
  br i1 %3205, label %3206, label %3207

3206:                                             ; preds = %3204
  call void @llvm.lifetime.end.p0(i64 32, ptr %452) #8
  br label %3207

3207:                                             ; preds = %3206, %3204
  %3208 = load i1, ptr %451, align 1
  br i1 %3208, label %3209, label %3210

3209:                                             ; preds = %3207
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #8
  br label %3210

3210:                                             ; preds = %3209, %3207
  br label %3211

3211:                                             ; preds = %3210, %3175
  %3212 = load i1, ptr %450, align 1
  br i1 %3212, label %3213, label %3214

3213:                                             ; preds = %3211
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %448) #8
  br label %3214

3214:                                             ; preds = %3213, %3211
  %3215 = load i1, ptr %449, align 1
  br i1 %3215, label %3216, label %3217

3216:                                             ; preds = %3214
  call void @llvm.lifetime.end.p0(i64 1, ptr %448) #8
  br label %3217

3217:                                             ; preds = %3216, %3214
  %3218 = load i1, ptr %447, align 1
  br i1 %3218, label %3219, label %3220

3219:                                             ; preds = %3217
  call void @llvm.lifetime.end.p0(i64 32, ptr %446) #8
  br label %3220

3220:                                             ; preds = %3219, %3217
  %3221 = load i1, ptr %444, align 1
  br i1 %3221, label %3222, label %3223

3222:                                             ; preds = %3220
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %406) #8
  br label %3223

3223:                                             ; preds = %3222, %3220
  br label %3224

3224:                                             ; preds = %3223, %3171
  %3225 = load i1, ptr %443, align 1
  br i1 %3225, label %3226, label %3227

3226:                                             ; preds = %3224
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %440) #8
  br label %3227

3227:                                             ; preds = %3226, %3224
  br label %3228

3228:                                             ; preds = %3227, %3167
  call void @llvm.lifetime.end.p0(i64 4, ptr %442) #8
  %3229 = load i1, ptr %441, align 1
  br i1 %3229, label %3230, label %3231

3230:                                             ; preds = %3228
  call void @llvm.lifetime.end.p0(i64 32, ptr %440) #8
  br label %3231

3231:                                             ; preds = %3230, %3228
  %3232 = load i1, ptr %439, align 1
  br i1 %3232, label %3233, label %3234

3233:                                             ; preds = %3231
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %407) #8
  br label %3234

3234:                                             ; preds = %3233, %3231
  br label %3235

3235:                                             ; preds = %3234, %3163
  %3236 = load i1, ptr %438, align 1
  br i1 %3236, label %3237, label %3238

3237:                                             ; preds = %3235
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #8
  br label %3238

3238:                                             ; preds = %3237, %3235
  br label %3239

3239:                                             ; preds = %3238, %3159
  %3240 = load i1, ptr %437, align 1
  br i1 %3240, label %3241, label %3242

3241:                                             ; preds = %3239
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %432) #8
  br label %3242

3242:                                             ; preds = %3241, %3239
  br label %3243

3243:                                             ; preds = %3242, %3155
  %3244 = load i1, ptr %436, align 1
  br i1 %3244, label %3245, label %3246

3245:                                             ; preds = %3243
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %434) #8
  br label %3246

3246:                                             ; preds = %3245, %3243
  %3247 = load i1, ptr %435, align 1
  br i1 %3247, label %3248, label %3249

3248:                                             ; preds = %3246
  call void @llvm.lifetime.end.p0(i64 1, ptr %434) #8
  br label %3249

3249:                                             ; preds = %3248, %3246
  %3250 = load i1, ptr %433, align 1
  br i1 %3250, label %3251, label %3252

3251:                                             ; preds = %3249
  call void @llvm.lifetime.end.p0(i64 32, ptr %432) #8
  br label %3252

3252:                                             ; preds = %3251, %3249
  %3253 = load i1, ptr %431, align 1
  br i1 %3253, label %3254, label %3255

3254:                                             ; preds = %3252
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #8
  br label %3255

3255:                                             ; preds = %3254, %3252
  br label %3256

3256:                                             ; preds = %3255, %3151
  %3257 = load i1, ptr %430, align 1
  br i1 %3257, label %3258, label %3259

3258:                                             ; preds = %3256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #8
  br label %3259

3259:                                             ; preds = %3258, %3256
  br label %3260

3260:                                             ; preds = %3259, %3147
  %3261 = load i1, ptr %429, align 1
  br i1 %3261, label %3262, label %3263

3262:                                             ; preds = %3260
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #8
  br label %3263

3263:                                             ; preds = %3262, %3260
  br label %3264

3264:                                             ; preds = %3263, %3143
  %3265 = load i1, ptr %428, align 1
  br i1 %3265, label %3266, label %3267

3266:                                             ; preds = %3264
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #8
  br label %3267

3267:                                             ; preds = %3266, %3264
  %3268 = load i1, ptr %427, align 1
  br i1 %3268, label %3269, label %3270

3269:                                             ; preds = %3267
  call void @llvm.lifetime.end.p0(i64 1, ptr %426) #8
  br label %3270

3270:                                             ; preds = %3269, %3267
  %3271 = load i1, ptr %425, align 1
  br i1 %3271, label %3272, label %3273

3272:                                             ; preds = %3270
  call void @llvm.lifetime.end.p0(i64 32, ptr %424) #8
  br label %3273

3273:                                             ; preds = %3272, %3270
  %3274 = load i1, ptr %423, align 1
  br i1 %3274, label %3275, label %3276

3275:                                             ; preds = %3273
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #8
  br label %3276

3276:                                             ; preds = %3275, %3273
  br label %3277

3277:                                             ; preds = %3276, %3139
  %3278 = load i1, ptr %422, align 1
  br i1 %3278, label %3279, label %3280

3279:                                             ; preds = %3277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #8
  br label %3280

3280:                                             ; preds = %3279, %3277
  br label %3281

3281:                                             ; preds = %3280, %3135
  %3282 = load i1, ptr %421, align 1
  br i1 %3282, label %3283, label %3284

3283:                                             ; preds = %3281
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %419) #8
  br label %3284

3284:                                             ; preds = %3283, %3281
  %3285 = load i1, ptr %420, align 1
  br i1 %3285, label %3286, label %3287

3286:                                             ; preds = %3284
  call void @llvm.lifetime.end.p0(i64 1, ptr %419) #8
  br label %3287

3287:                                             ; preds = %3286, %3284
  %3288 = load i1, ptr %418, align 1
  br i1 %3288, label %3289, label %3290

3289:                                             ; preds = %3287
  call void @llvm.lifetime.end.p0(i64 32, ptr %417) #8
  br label %3290

3290:                                             ; preds = %3289, %3287
  %3291 = load i1, ptr %416, align 1
  br i1 %3291, label %3292, label %3293

3292:                                             ; preds = %3290
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #8
  br label %3293

3293:                                             ; preds = %3292, %3290
  %3294 = load i1, ptr %414, align 1
  br i1 %3294, label %3295, label %3296

3295:                                             ; preds = %3293
  call void @llvm.lifetime.end.p0(i64 32, ptr %413) #8
  br label %3296

3296:                                             ; preds = %3295, %3293
  %3297 = load i1, ptr %412, align 1
  br i1 %3297, label %3298, label %3299

3298:                                             ; preds = %3296
  call void @llvm.lifetime.end.p0(i64 32, ptr %411) #8
  br label %3299

3299:                                             ; preds = %3298, %3296
  %3300 = load i1, ptr %410, align 1
  br i1 %3300, label %3301, label %3302

3301:                                             ; preds = %3299
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #8
  br label %3302

3302:                                             ; preds = %3301, %3299
  %3303 = load i1, ptr %408, align 1
  br i1 %3303, label %3304, label %3305

3304:                                             ; preds = %3302
  call void @llvm.lifetime.end.p0(i64 32, ptr %407) #8
  br label %3305

3305:                                             ; preds = %3304, %3302
  br label %3486

3306:                                             ; preds = %3008
  %3307 = landingpad { ptr, i32 }
          cleanup
  %3308 = extractvalue { ptr, i32 } %3307, 0
  store ptr %3308, ptr %34, align 8
  %3309 = extractvalue { ptr, i32 } %3307, 1
  store i32 %3309, ptr %35, align 4
  br label %3452

3310:                                             ; preds = %3009
  %3311 = landingpad { ptr, i32 }
          cleanup
  %3312 = extractvalue { ptr, i32 } %3311, 0
  store ptr %3312, ptr %34, align 8
  %3313 = extractvalue { ptr, i32 } %3311, 1
  store i32 %3313, ptr %35, align 4
  br label %3448

3314:                                             ; preds = %3010
  %3315 = landingpad { ptr, i32 }
          cleanup
  %3316 = extractvalue { ptr, i32 } %3315, 0
  store ptr %3316, ptr %34, align 8
  %3317 = extractvalue { ptr, i32 } %3315, 1
  store i32 %3317, ptr %35, align 4
  br label %3435

3318:                                             ; preds = %3011
  %3319 = landingpad { ptr, i32 }
          cleanup
  %3320 = extractvalue { ptr, i32 } %3319, 0
  store ptr %3320, ptr %34, align 8
  %3321 = extractvalue { ptr, i32 } %3319, 1
  store i32 %3321, ptr %35, align 4
  br label %3431

3322:                                             ; preds = %3012
  %3323 = landingpad { ptr, i32 }
          cleanup
  %3324 = extractvalue { ptr, i32 } %3323, 0
  store ptr %3324, ptr %34, align 8
  %3325 = extractvalue { ptr, i32 } %3323, 1
  store i32 %3325, ptr %35, align 4
  br label %3427

3326:                                             ; preds = %3013
  %3327 = landingpad { ptr, i32 }
          cleanup
  %3328 = extractvalue { ptr, i32 } %3327, 0
  store ptr %3328, ptr %34, align 8
  %3329 = extractvalue { ptr, i32 } %3327, 1
  store i32 %3329, ptr %35, align 4
  br label %3414

3330:                                             ; preds = %3014
  %3331 = landingpad { ptr, i32 }
          cleanup
  %3332 = extractvalue { ptr, i32 } %3331, 0
  store ptr %3332, ptr %34, align 8
  %3333 = extractvalue { ptr, i32 } %3331, 1
  store i32 %3333, ptr %35, align 4
  br label %3410

3334:                                             ; preds = %3015
  %3335 = landingpad { ptr, i32 }
          cleanup
  %3336 = extractvalue { ptr, i32 } %3335, 0
  store ptr %3336, ptr %34, align 8
  %3337 = extractvalue { ptr, i32 } %3335, 1
  store i32 %3337, ptr %35, align 4
  br label %3406

3338:                                             ; preds = %3016
  %3339 = landingpad { ptr, i32 }
          cleanup
  %3340 = extractvalue { ptr, i32 } %3339, 0
  store ptr %3340, ptr %34, align 8
  %3341 = extractvalue { ptr, i32 } %3339, 1
  store i32 %3341, ptr %35, align 4
  br label %3399

3342:                                             ; preds = %3017
  %3343 = landingpad { ptr, i32 }
          cleanup
  %3344 = extractvalue { ptr, i32 } %3343, 0
  store ptr %3344, ptr %34, align 8
  %3345 = extractvalue { ptr, i32 } %3343, 1
  store i32 %3345, ptr %35, align 4
  br label %3395

3346:                                             ; preds = %3018
  %3347 = landingpad { ptr, i32 }
          cleanup
  %3348 = extractvalue { ptr, i32 } %3347, 0
  store ptr %3348, ptr %34, align 8
  %3349 = extractvalue { ptr, i32 } %3347, 1
  store i32 %3349, ptr %35, align 4
  br label %3382

3350:                                             ; preds = %3019
  %3351 = landingpad { ptr, i32 }
          cleanup
  %3352 = extractvalue { ptr, i32 } %3351, 0
  store ptr %3352, ptr %34, align 8
  %3353 = extractvalue { ptr, i32 } %3351, 1
  store i32 %3353, ptr %35, align 4
  br label %3369

3354:                                             ; preds = %3020
  %3355 = landingpad { ptr, i32 }
          cleanup
  %3356 = extractvalue { ptr, i32 } %3355, 0
  store ptr %3356, ptr %34, align 8
  %3357 = extractvalue { ptr, i32 } %3355, 1
  store i32 %3357, ptr %35, align 4
  br label %3365

3358:                                             ; preds = %3021
  %3359 = landingpad { ptr, i32 }
          cleanup
  %3360 = extractvalue { ptr, i32 } %3359, 0
  store ptr %3360, ptr %34, align 8
  %3361 = extractvalue { ptr, i32 } %3359, 1
  store i32 %3361, ptr %35, align 4
  %3362 = load i1, ptr %513, align 1
  br i1 %3362, label %3363, label %3364

3363:                                             ; preds = %3358
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %500) #8
  br label %3364

3364:                                             ; preds = %3363, %3358
  br label %3365

3365:                                             ; preds = %3364, %3354
  %3366 = load i1, ptr %512, align 1
  br i1 %3366, label %3367, label %3368

3367:                                             ; preds = %3365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %507) #8
  br label %3368

3368:                                             ; preds = %3367, %3365
  br label %3369

3369:                                             ; preds = %3368, %3350
  %3370 = load i1, ptr %511, align 1
  br i1 %3370, label %3371, label %3372

3371:                                             ; preds = %3369
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #8
  br label %3372

3372:                                             ; preds = %3371, %3369
  %3373 = load i1, ptr %510, align 1
  br i1 %3373, label %3374, label %3375

3374:                                             ; preds = %3372
  call void @llvm.lifetime.end.p0(i64 1, ptr %509) #8
  br label %3375

3375:                                             ; preds = %3374, %3372
  %3376 = load i1, ptr %508, align 1
  br i1 %3376, label %3377, label %3378

3377:                                             ; preds = %3375
  call void @llvm.lifetime.end.p0(i64 32, ptr %507) #8
  br label %3378

3378:                                             ; preds = %3377, %3375
  %3379 = load i1, ptr %506, align 1
  br i1 %3379, label %3380, label %3381

3380:                                             ; preds = %3378
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %501) #8
  br label %3381

3381:                                             ; preds = %3380, %3378
  br label %3382

3382:                                             ; preds = %3381, %3346
  %3383 = load i1, ptr %505, align 1
  br i1 %3383, label %3384, label %3385

3384:                                             ; preds = %3382
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %503) #8
  br label %3385

3385:                                             ; preds = %3384, %3382
  %3386 = load i1, ptr %504, align 1
  br i1 %3386, label %3387, label %3388

3387:                                             ; preds = %3385
  call void @llvm.lifetime.end.p0(i64 1, ptr %503) #8
  br label %3388

3388:                                             ; preds = %3387, %3385
  %3389 = load i1, ptr %502, align 1
  br i1 %3389, label %3390, label %3391

3390:                                             ; preds = %3388
  call void @llvm.lifetime.end.p0(i64 32, ptr %501) #8
  br label %3391

3391:                                             ; preds = %3390, %3388
  %3392 = load i1, ptr %499, align 1
  br i1 %3392, label %3393, label %3394

3393:                                             ; preds = %3391
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %461) #8
  br label %3394

3394:                                             ; preds = %3393, %3391
  br label %3395

3395:                                             ; preds = %3394, %3342
  %3396 = load i1, ptr %498, align 1
  br i1 %3396, label %3397, label %3398

3397:                                             ; preds = %3395
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %495) #8
  br label %3398

3398:                                             ; preds = %3397, %3395
  br label %3399

3399:                                             ; preds = %3398, %3338
  call void @llvm.lifetime.end.p0(i64 4, ptr %497) #8
  %3400 = load i1, ptr %496, align 1
  br i1 %3400, label %3401, label %3402

3401:                                             ; preds = %3399
  call void @llvm.lifetime.end.p0(i64 32, ptr %495) #8
  br label %3402

3402:                                             ; preds = %3401, %3399
  %3403 = load i1, ptr %494, align 1
  br i1 %3403, label %3404, label %3405

3404:                                             ; preds = %3402
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %462) #8
  br label %3405

3405:                                             ; preds = %3404, %3402
  br label %3406

3406:                                             ; preds = %3405, %3334
  %3407 = load i1, ptr %493, align 1
  br i1 %3407, label %3408, label %3409

3408:                                             ; preds = %3406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %464) #8
  br label %3409

3409:                                             ; preds = %3408, %3406
  br label %3410

3410:                                             ; preds = %3409, %3330
  %3411 = load i1, ptr %492, align 1
  br i1 %3411, label %3412, label %3413

3412:                                             ; preds = %3410
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %487) #8
  br label %3413

3413:                                             ; preds = %3412, %3410
  br label %3414

3414:                                             ; preds = %3413, %3326
  %3415 = load i1, ptr %491, align 1
  br i1 %3415, label %3416, label %3417

3416:                                             ; preds = %3414
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %489) #8
  br label %3417

3417:                                             ; preds = %3416, %3414
  %3418 = load i1, ptr %490, align 1
  br i1 %3418, label %3419, label %3420

3419:                                             ; preds = %3417
  call void @llvm.lifetime.end.p0(i64 1, ptr %489) #8
  br label %3420

3420:                                             ; preds = %3419, %3417
  %3421 = load i1, ptr %488, align 1
  br i1 %3421, label %3422, label %3423

3422:                                             ; preds = %3420
  call void @llvm.lifetime.end.p0(i64 32, ptr %487) #8
  br label %3423

3423:                                             ; preds = %3422, %3420
  %3424 = load i1, ptr %486, align 1
  br i1 %3424, label %3425, label %3426

3425:                                             ; preds = %3423
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %466) #8
  br label %3426

3426:                                             ; preds = %3425, %3423
  br label %3427

3427:                                             ; preds = %3426, %3322
  %3428 = load i1, ptr %485, align 1
  br i1 %3428, label %3429, label %3430

3429:                                             ; preds = %3427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %468) #8
  br label %3430

3430:                                             ; preds = %3429, %3427
  br label %3431

3431:                                             ; preds = %3430, %3318
  %3432 = load i1, ptr %484, align 1
  br i1 %3432, label %3433, label %3434

3433:                                             ; preds = %3431
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %479) #8
  br label %3434

3434:                                             ; preds = %3433, %3431
  br label %3435

3435:                                             ; preds = %3434, %3314
  %3436 = load i1, ptr %483, align 1
  br i1 %3436, label %3437, label %3438

3437:                                             ; preds = %3435
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %481) #8
  br label %3438

3438:                                             ; preds = %3437, %3435
  %3439 = load i1, ptr %482, align 1
  br i1 %3439, label %3440, label %3441

3440:                                             ; preds = %3438
  call void @llvm.lifetime.end.p0(i64 1, ptr %481) #8
  br label %3441

3441:                                             ; preds = %3440, %3438
  %3442 = load i1, ptr %480, align 1
  br i1 %3442, label %3443, label %3444

3443:                                             ; preds = %3441
  call void @llvm.lifetime.end.p0(i64 32, ptr %479) #8
  br label %3444

3444:                                             ; preds = %3443, %3441
  %3445 = load i1, ptr %478, align 1
  br i1 %3445, label %3446, label %3447

3446:                                             ; preds = %3444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #8
  br label %3447

3447:                                             ; preds = %3446, %3444
  br label %3448

3448:                                             ; preds = %3447, %3310
  %3449 = load i1, ptr %477, align 1
  br i1 %3449, label %3450, label %3451

3450:                                             ; preds = %3448
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %472) #8
  br label %3451

3451:                                             ; preds = %3450, %3448
  br label %3452

3452:                                             ; preds = %3451, %3306
  %3453 = load i1, ptr %476, align 1
  br i1 %3453, label %3454, label %3455

3454:                                             ; preds = %3452
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %474) #8
  br label %3455

3455:                                             ; preds = %3454, %3452
  %3456 = load i1, ptr %475, align 1
  br i1 %3456, label %3457, label %3458

3457:                                             ; preds = %3455
  call void @llvm.lifetime.end.p0(i64 1, ptr %474) #8
  br label %3458

3458:                                             ; preds = %3457, %3455
  %3459 = load i1, ptr %473, align 1
  br i1 %3459, label %3460, label %3461

3460:                                             ; preds = %3458
  call void @llvm.lifetime.end.p0(i64 32, ptr %472) #8
  br label %3461

3461:                                             ; preds = %3460, %3458
  %3462 = load i1, ptr %471, align 1
  br i1 %3462, label %3463, label %3464

3463:                                             ; preds = %3461
  call void @llvm.lifetime.end.p0(i64 32, ptr %470) #8
  br label %3464

3464:                                             ; preds = %3463, %3461
  %3465 = load i1, ptr %469, align 1
  br i1 %3465, label %3466, label %3467

3466:                                             ; preds = %3464
  call void @llvm.lifetime.end.p0(i64 32, ptr %468) #8
  br label %3467

3467:                                             ; preds = %3466, %3464
  %3468 = load i1, ptr %467, align 1
  br i1 %3468, label %3469, label %3470

3469:                                             ; preds = %3467
  call void @llvm.lifetime.end.p0(i64 32, ptr %466) #8
  br label %3470

3470:                                             ; preds = %3469, %3467
  %3471 = load i1, ptr %465, align 1
  br i1 %3471, label %3472, label %3473

3472:                                             ; preds = %3470
  call void @llvm.lifetime.end.p0(i64 32, ptr %464) #8
  br label %3473

3473:                                             ; preds = %3472, %3470
  %3474 = load i1, ptr %463, align 1
  br i1 %3474, label %3475, label %3476

3475:                                             ; preds = %3473
  call void @llvm.lifetime.end.p0(i64 32, ptr %462) #8
  br label %3476

3476:                                             ; preds = %3475, %3473
  call void @llvm.lifetime.end.p0(i64 8, ptr %460) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %459) #8
  br label %3486

3477:                                             ; preds = %2966
  %3478 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 19
  %3479 = getelementptr inbounds %"struct.std::pair", ptr %3478, i32 0, i32 0
  store double 0.000000e+00, ptr %3479, align 8, !tbaa !41
  %3480 = load double, ptr %460, align 8, !tbaa !9
  %3481 = load double, ptr %7, align 8, !tbaa !9
  %3482 = fadd double %3480, %3481
  %3483 = getelementptr inbounds %class.ElemModel, ptr %514, i32 0, i32 19
  %3484 = getelementptr inbounds %"struct.std::pair", ptr %3483, i32 0, i32 1
  store double %3482, ptr %3484, align 8, !tbaa !42
  br label %3485

3485:                                             ; preds = %3477, %3128
  call void @llvm.lifetime.end.p0(i64 8, ptr %460) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %459) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  ret void

3486:                                             ; preds = %3476, %3305, %2839
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  br label %3487

3487:                                             ; preds = %3486
  %3488 = load ptr, ptr %34, align 8
  %3489 = load i32, ptr %35, align 4
  %3490 = insertvalue { ptr, i32 } poison, ptr %3488, 0
  %3491 = insertvalue { ptr, i32 } %3490, i32 %3489, 1
  resume { ptr, i32 } %3491
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) #3

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

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

; 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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_Z17cornerConductanceddddd(double noundef, double noundef, double noundef, double noundef, double noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z16layerConductancedddddddddd(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) #0

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

declare void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) #5

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

; Function Attrs: nounwind
declare double @tan(double noundef) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z17dimLessCornerAreadd(double noundef, double noundef) #7

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

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

declare void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), double noundef, double noundef, i1 noundef zeroext) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK9LayerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144)) #0 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #5

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !6, i64 32}
!12 = !{!"_ZTS9ElemModel", !10, i64 8, !10, i64 16, !6, i64 24, !6, i64 32, !10, i64 40, !6, i64 48, !13, i64 56, !13, i64 57, !13, i64 58, !13, i64 59, !14, i64 60, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !15, i64 120, !15, i64 136}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!"_ZTSSt4pairIddE", !10, i64 0, !10, i64 8}
!16 = !{!17, !10, i64 168}
!17 = !{!"_ZTS8VoidElem", !12, i64 0, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176}
!18 = !{!17, !10, i64 176}
!19 = !{!12, !10, i64 40}
!20 = !{!14, !14, i64 0}
!21 = !{!22, !14, i64 184}
!22 = !{!"_ZTS7Polygon", !17, i64 0, !14, i64 184, !23, i64 192, !6, i64 216, !6, i64 224, !27, i64 232, !7, i64 234, !10, i64 240}
!23 = !{!"_ZTSSt6vectorIdSaIdEE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"short", !7, i64 0}
!28 = !{!22, !6, i64 224}
!29 = !{!22, !6, i64 216}
!30 = !{!12, !6, i64 24}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = !{!12, !10, i64 72}
!34 = !{!12, !10, i64 80}
!35 = !{!12, !10, i64 112}
!36 = !{!37, !37, i64 0}
!37 = !{!"vtable pointer", !8, i64 0}
!38 = !{!12, !13, i64 58}
!39 = !{i8 0, i8 2}
!40 = !{}
!41 = !{!12, !10, i64 120}
!42 = !{!12, !10, i64 128}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__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.5" = type { i8 }
%class.LayerApex = type { %class.Apex, i32, ptr, double, ptr, double }
%class.Apex = type { ptr, i8, double, double, ptr, i32, double, double, double, double, i8, i8, i8, i8, %"struct.std::pair.24" }
%"struct.std::pair.24" = type { i32, double }
%class.CornerApex = type { %class.Apex, ptr, double, double, double, ptr }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZN9ElemModel2PIE = external local_unnamed_addr constant double, align 8
@__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd = external hidden unnamed_addr constant [25 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [19 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7Polygon24calcR_waterWithOilLayersEd(ptr noundef nonnull align 8 dereferenceable(248) %0, double noundef %1) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca double, align 8
  %4 = alloca double, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator.5", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.5", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.5", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.5", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.5", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.5", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator.5", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator.5", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.5", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.5", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.5", align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.5", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator.5", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %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.5", align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator.5", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator.5", align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator.5", align 1
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::allocator.5", align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %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.5", align 1
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator.5", align 1
  %81 = alloca double, align 8
  %82 = alloca double, align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::allocator.5", align 1
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::allocator.5", align 1
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator.5", align 1
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %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.5", align 1
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::allocator.5", align 1
  %102 = alloca double, align 8
  %103 = alloca double, align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator.5", align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator.5", align 1
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator.5", align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca i32, align 4
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::allocator.5", align 1
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca %"class.std::allocator.5", align 1
  %123 = alloca double, align 8
  %124 = alloca double, align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::allocator.5", align 1
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::allocator.5", align 1
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::allocator.5", align 1
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca i32, align 4
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca %"class.std::allocator.5", align 1
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::allocator.5", align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::__cxx11::basic_string", align 8
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::allocator.5", align 1
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::allocator.5", align 1
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::allocator.5", align 1
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca i32, align 4
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.std::allocator.5", align 1
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::allocator.5", align 1
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.std::allocator.5", align 1
  %171 = alloca %"class.std::__cxx11::basic_string", align 8
  %172 = alloca %"class.std::allocator.5", align 1
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.std::allocator.5", align 1
  %175 = alloca %"class.std::__cxx11::basic_string", align 8
  %176 = alloca i32, align 4
  %177 = alloca %"class.std::__cxx11::basic_string", align 8
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::allocator.5", align 1
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::allocator.5", align 1
  %182 = getelementptr inbounds i8, ptr %0, i64 32
  %183 = load ptr, ptr %182, align 8, !tbaa !5
  %184 = tail call noundef ptr @_ZNK10CommonData9injectantEv(ptr noundef nonnull align 8 dereferenceable(1972) %183)
  %185 = load ptr, ptr %182, align 8, !tbaa !5
  %186 = tail call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %185)
  %187 = icmp eq ptr %184, %186
  %.0712.in.v = select i1 %187, i64 168, i64 176
  %.0712.in = getelementptr inbounds i8, ptr %0, i64 %.0712.in.v
  %.0712 = load double, ptr %.0712.in, align 8, !tbaa !14
  %188 = getelementptr inbounds i8, ptr %0, i64 40
  %189 = load double, ptr %188, align 8, !tbaa !15
  %190 = getelementptr inbounds i8, ptr %0, i64 192
  %191 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef 0) #8
  %192 = load double, ptr %191, align 8, !tbaa !14
  %193 = tail call double @tan(double noundef %192) #8
  %194 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef 1) #8
  %195 = load double, ptr %194, align 8, !tbaa !14
  %196 = tail call double @tan(double noundef %195) #8
  %197 = getelementptr inbounds i8, ptr %0, i64 184
  %198 = load i32, ptr %197, align 8, !tbaa !16
  %199 = icmp sgt i32 %198, 0
  br i1 %199, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %2
  %200 = fdiv double 1.000000e+00, %193
  %201 = fdiv double 1.000000e+00, %196
  %202 = fadd double %200, %201
  %203 = fmul double %189, %202
  %204 = getelementptr inbounds i8, ptr %0, i64 224
  %205 = getelementptr inbounds i8, ptr %0, i64 216
  %206 = load double, ptr @_ZN9ElemModel2PIE, align 8
  %207 = fmul double %203, 1.010000e+00
  %208 = getelementptr inbounds i8, ptr %0, i64 24
  br label %211

._crit_edge:                                      ; preds = %751, %2
  %.0824.lcssa = phi double [ 0.000000e+00, %2 ], [ %.1825, %751 ]
  %.0822.lcssa = phi double [ 0.000000e+00, %2 ], [ %.1823, %751 ]
  %.0820.lcssa = phi double [ 0.000000e+00, %2 ], [ %.1821, %751 ]
  %.0750.lcssa = phi double [ 0.000000e+00, %2 ], [ %.1751, %751 ]
  %.0748.lcssa = phi double [ 0.000000e+00, %2 ], [ %.1749, %751 ]
  %.0713.lcssa = phi double [ 0.000000e+00, %2 ], [ %.1, %751 ]
  %209 = fcmp ule double %.0822.lcssa, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %157) #8
  %210 = fcmp ule double %.0750.lcssa, 0.000000e+00
  %or.cond.not = select i1 %209, i1 %210, i1 false
  br i1 %or.cond.not, label %755, label %770

211:                                              ; preds = %.lr.ph, %751
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %751 ]
  %.07132182 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1, %751 ]
  %.07482181 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1749, %751 ]
  %.07502180 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1751, %751 ]
  %.08202179 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1821, %751 ]
  %.08222178 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1823, %751 ]
  %.08242177 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1825, %751 ]
  %.08602176 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1861, %751 ]
  %212 = load ptr, ptr %204, align 8, !tbaa !24
  %213 = getelementptr inbounds %class.LayerApex, ptr %212, i64 %indvars.iv
  %214 = call noundef zeroext i1 @_ZNK4Apex6existsEv(ptr noundef nonnull align 8 dereferenceable(104) %213)
  br i1 %214, label %215, label %751

215:                                              ; preds = %211
  %216 = load ptr, ptr %205, align 8, !tbaa !25
  %217 = getelementptr inbounds %class.CornerApex, ptr %216, i64 %indvars.iv
  %218 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %217)
  br i1 %218, label %219, label %668

219:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #8
  store double %.0712, ptr %3, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #8
  %220 = load ptr, ptr %204, align 8, !tbaa !24
  %221 = getelementptr inbounds %class.LayerApex, ptr %220, i64 %indvars.iv
  %222 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %indvars.iv) #8
  %223 = load ptr, ptr %182, align 8, !tbaa !5
  %224 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %223)
  call void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144) %221, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %222, double noundef %1, double noundef %224, i1 noundef zeroext false)
  %225 = load double, ptr %4, align 8, !tbaa !14
  %226 = fcmp ule double %225, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #8
  br i1 %226, label %227, label %242

227:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %228 unwind label %335

228:                                              ; preds = %227
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.1)
          to label %229 unwind label %337

229:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %230 unwind label %339

230:                                              ; preds = %229
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %231 unwind label %341

231:                                              ; preds = %230
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.2)
          to label %232 unwind label %343

232:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %233 unwind label %345

233:                                              ; preds = %232
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %234 unwind label %347

234:                                              ; preds = %233
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.4)
          to label %235 unwind label %349

235:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  store i32 310, ptr %18, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %236 unwind label %351

236:                                              ; preds = %235
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %237 unwind label %353

237:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %238 unwind label %355

238:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %239 unwind label %357

239:                                              ; preds = %238
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %240 unwind label %359

240:                                              ; preds = %239
  %241 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %5, ptr noundef nonnull %19, i32 noundef 0)
          to label %.critedge1268 unwind label %361

242:                                              ; preds = %219
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  br label %.critedge1289

.critedge1268:                                    ; preds = %240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  %.pre = load double, ptr %4, align 8, !tbaa !14
  br label %.critedge1289

.critedge1289:                                    ; preds = %242, %.critedge1268
  %243 = phi double [ %225, %242 ], [ %.pre, %.critedge1268 ]
  %244 = load double, ptr %188, align 8, !tbaa !15
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef 0) #8
  %246 = load double, ptr %245, align 8, !tbaa !14
  %247 = call double @tan(double noundef %246) #8
  %248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef 1) #8
  %249 = load double, ptr %248, align 8, !tbaa !14
  %250 = call double @tan(double noundef %249) #8
  %251 = insertelement <2 x double> poison, double %247, i64 0
  %252 = insertelement <2 x double> %251, double %250, i64 1
  %253 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %252
  %shift = shufflevector <2 x double> %253, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %254 = fadd <2 x double> %253, %shift
  %255 = extractelement <2 x double> %254, i64 0
  %256 = fmul double %244, %255
  %257 = fcmp uge double %243, %256
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #8
  br i1 %257, label %258, label %273

258:                                              ; preds = %.critedge1289
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %259 unwind label %376

259:                                              ; preds = %258
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.1)
          to label %260 unwind label %378

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %261 unwind label %380

261:                                              ; preds = %260
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %262 unwind label %382

262:                                              ; preds = %261
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.2)
          to label %263 unwind label %384

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %264 unwind label %386

264:                                              ; preds = %263
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %265 unwind label %388

265:                                              ; preds = %264
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.4)
          to label %266 unwind label %390

266:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #8
  store i32 312, ptr %37, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %267 unwind label %392

267:                                              ; preds = %266
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %268 unwind label %394

268:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %269 unwind label %396

269:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %270 unwind label %398

270:                                              ; preds = %269
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %271 unwind label %400

271:                                              ; preds = %270
  %272 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %24, ptr noundef nonnull %38, i32 noundef 0)
          to label %.critedge1304 unwind label %402

273:                                              ; preds = %.critedge1289
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #8
  br label %.critedge1325

.critedge1304:                                    ; preds = %271
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %.critedge1325

.critedge1325:                                    ; preds = %273, %.critedge1304
  %274 = load ptr, ptr %204, align 8, !tbaa !24
  %275 = getelementptr inbounds %class.LayerApex, ptr %274, i64 %indvars.iv
  %276 = call noundef double @_ZNK9LayerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %275)
  %277 = load double, ptr %188, align 8, !tbaa !15
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef 0) #8
  %279 = load double, ptr %278, align 8, !tbaa !14
  %280 = call double @tan(double noundef %279) #8
  %281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef 1) #8
  %282 = load double, ptr %281, align 8, !tbaa !14
  %283 = call double @tan(double noundef %282) #8
  %284 = insertelement <2 x double> poison, double %280, i64 0
  %285 = insertelement <2 x double> %284, double %283, i64 1
  %286 = fdiv <2 x double> <double 1.000000e+00, double 1.000000e+00>, %285
  %shift2192 = shufflevector <2 x double> %286, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %287 = fadd <2 x double> %286, %shift2192
  %288 = extractelement <2 x double> %287, i64 0
  %289 = fmul double %277, %288
  %290 = fcmp uge double %276, %289
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %56) #8
  br i1 %290, label %291, label %306

291:                                              ; preds = %.critedge1325
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %292 unwind label %417

292:                                              ; preds = %291
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.1)
          to label %293 unwind label %419

293:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %294 unwind label %421

294:                                              ; preds = %293
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %295 unwind label %423

295:                                              ; preds = %294
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.2)
          to label %296 unwind label %425

296:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %297 unwind label %427

297:                                              ; preds = %296
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %298 unwind label %429

298:                                              ; preds = %297
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.4)
          to label %299 unwind label %431

299:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #8
  store i32 313, ptr %56, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 4 dereferenceable(4) %56)
          to label %300 unwind label %433

300:                                              ; preds = %299
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %301 unwind label %435

301:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %302 unwind label %437

302:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %303 unwind label %439

303:                                              ; preds = %302
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %304 unwind label %441

304:                                              ; preds = %303
  %305 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %43, ptr noundef nonnull %57, i32 noundef 0)
          to label %.critedge1340 unwind label %443

306:                                              ; preds = %.critedge1325
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #8
  br label %.critedge1361

.critedge1340:                                    ; preds = %304
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br label %.critedge1361

.critedge1361:                                    ; preds = %306, %.critedge1340
  %307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %indvars.iv) #8
  %308 = load double, ptr %307, align 8, !tbaa !14
  %309 = load double, ptr %3, align 8, !tbaa !14
  %310 = fsub double %206, %309
  %311 = call noundef double @_Z17dimLessCornerAreadd(double noundef %308, double noundef %310)
  %312 = load double, ptr %4, align 8, !tbaa !14
  %313 = fmul double %312, %312
  %314 = fmul double %311, %313
  %315 = fadd double %.08602176, %312
  %316 = icmp ult i64 %indvars.iv, 2
  br i1 %316, label %317, label %.critedge1397

317:                                              ; preds = %.critedge1361
  %318 = fcmp ugt double %315, %207
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %75) #8
  br i1 %318, label %319, label %334

319:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %69) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %320 unwind label %458

320:                                              ; preds = %319
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.1)
          to label %321 unwind label %460

321:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %322 unwind label %462

322:                                              ; preds = %321
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %323 unwind label %464

323:                                              ; preds = %322
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.2)
          to label %324 unwind label %466

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %73) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %325 unwind label %468

325:                                              ; preds = %324
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %72)
          to label %326 unwind label %470

326:                                              ; preds = %325
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.4)
          to label %327 unwind label %472

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #8
  store i32 322, ptr %75, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %328 unwind label %474

328:                                              ; preds = %327
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %329 unwind label %476

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %78) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %330 unwind label %478

330:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %80) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %331 unwind label %480

331:                                              ; preds = %330
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %332 unwind label %482

332:                                              ; preds = %331
  %333 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %62, ptr noundef nonnull %76, i32 noundef 0)
          to label %.critedge1376 unwind label %484

334:                                              ; preds = %317
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %75) #8
  br label %.critedge1397

.critedge1376:                                    ; preds = %332
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  br label %.critedge1397

335:                                              ; preds = %227
  %336 = landingpad { ptr, i32 }
          cleanup
  br label %375

337:                                              ; preds = %228
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %374

339:                                              ; preds = %229
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %373

341:                                              ; preds = %230
  %342 = landingpad { ptr, i32 }
          cleanup
  br label %372

343:                                              ; preds = %231
  %344 = landingpad { ptr, i32 }
          cleanup
  br label %371

345:                                              ; preds = %232
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %370

347:                                              ; preds = %233
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %369

349:                                              ; preds = %234
  %350 = landingpad { ptr, i32 }
          cleanup
  br label %368

351:                                              ; preds = %235
  %352 = landingpad { ptr, i32 }
          cleanup
  br label %367

353:                                              ; preds = %236
  %354 = landingpad { ptr, i32 }
          cleanup
  br label %366

355:                                              ; preds = %237
  %356 = landingpad { ptr, i32 }
          cleanup
  br label %365

357:                                              ; preds = %238
  %358 = landingpad { ptr, i32 }
          cleanup
  br label %364

359:                                              ; preds = %239
  %360 = landingpad { ptr, i32 }
          cleanup
  br label %363

361:                                              ; preds = %240
  %362 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %363

363:                                              ; preds = %359, %361
  %.pn1167 = phi { ptr, i32 } [ %362, %361 ], [ %360, %359 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %364

364:                                              ; preds = %357, %363
  %.pn1167.pn = phi { ptr, i32 } [ %.pn1167, %363 ], [ %358, %357 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %365

365:                                              ; preds = %355, %364
  %.pn1167.pn.pn = phi { ptr, i32 } [ %.pn1167.pn, %364 ], [ %356, %355 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  br label %366

366:                                              ; preds = %353, %365
  %.pn1167.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn, %365 ], [ %354, %353 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %367

367:                                              ; preds = %366, %351
  %.pn1167.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn.pn, %366 ], [ %352, %351 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  br label %368

368:                                              ; preds = %349, %367
  %.pn1167.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn.pn.pn, %367 ], [ %350, %349 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %369

369:                                              ; preds = %347, %368
  %.pn1167.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn.pn.pn.pn, %368 ], [ %348, %347 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %370

370:                                              ; preds = %345, %369
  %.pn1167.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn.pn.pn.pn.pn, %369 ], [ %346, %345 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %371

371:                                              ; preds = %343, %370
  %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn.pn.pn.pn.pn.pn, %370 ], [ %344, %343 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  br label %372

372:                                              ; preds = %341, %371
  %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn, %371 ], [ %342, %341 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %373

373:                                              ; preds = %339, %372
  %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn.pn, %372 ], [ %340, %339 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  br label %374

374:                                              ; preds = %337, %373
  %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %373 ], [ %338, %337 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  br label %375

375:                                              ; preds = %335, %374
  %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %374 ], [ %336, %335 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  br label %667

376:                                              ; preds = %258
  %377 = landingpad { ptr, i32 }
          cleanup
  br label %416

378:                                              ; preds = %259
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %415

380:                                              ; preds = %260
  %381 = landingpad { ptr, i32 }
          cleanup
  br label %414

382:                                              ; preds = %261
  %383 = landingpad { ptr, i32 }
          cleanup
  br label %413

384:                                              ; preds = %262
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %412

386:                                              ; preds = %263
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %411

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

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

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

394:                                              ; preds = %267
  %395 = landingpad { ptr, i32 }
          cleanup
  br label %407

396:                                              ; preds = %268
  %397 = landingpad { ptr, i32 }
          cleanup
  br label %406

398:                                              ; preds = %269
  %399 = landingpad { ptr, i32 }
          cleanup
  br label %405

400:                                              ; preds = %270
  %401 = landingpad { ptr, i32 }
          cleanup
  br label %404

402:                                              ; preds = %271
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %404

404:                                              ; preds = %400, %402
  %.pn1181 = phi { ptr, i32 } [ %403, %402 ], [ %401, %400 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %405

405:                                              ; preds = %398, %404
  %.pn1181.pn = phi { ptr, i32 } [ %.pn1181, %404 ], [ %399, %398 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %406

406:                                              ; preds = %396, %405
  %.pn1181.pn.pn = phi { ptr, i32 } [ %.pn1181.pn, %405 ], [ %397, %396 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %407

407:                                              ; preds = %394, %406
  %.pn1181.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn, %406 ], [ %395, %394 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %408

408:                                              ; preds = %407, %392
  %.pn1181.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn.pn, %407 ], [ %393, %392 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %409

409:                                              ; preds = %390, %408
  %.pn1181.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn.pn.pn, %408 ], [ %391, %390 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %410

410:                                              ; preds = %388, %409
  %.pn1181.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn.pn.pn.pn, %409 ], [ %389, %388 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %411

411:                                              ; preds = %386, %410
  %.pn1181.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn.pn.pn.pn.pn, %410 ], [ %387, %386 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %412

412:                                              ; preds = %384, %411
  %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn.pn.pn.pn.pn.pn, %411 ], [ %385, %384 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  br label %413

413:                                              ; preds = %382, %412
  %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn, %412 ], [ %383, %382 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %414

414:                                              ; preds = %380, %413
  %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn.pn, %413 ], [ %381, %380 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %415

415:                                              ; preds = %378, %414
  %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %414 ], [ %379, %378 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %416

416:                                              ; preds = %376, %415
  %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %415 ], [ %377, %376 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %667

417:                                              ; preds = %291
  %418 = landingpad { ptr, i32 }
          cleanup
  br label %457

419:                                              ; preds = %292
  %420 = landingpad { ptr, i32 }
          cleanup
  br label %456

421:                                              ; preds = %293
  %422 = landingpad { ptr, i32 }
          cleanup
  br label %455

423:                                              ; preds = %294
  %424 = landingpad { ptr, i32 }
          cleanup
  br label %454

425:                                              ; preds = %295
  %426 = landingpad { ptr, i32 }
          cleanup
  br label %453

427:                                              ; preds = %296
  %428 = landingpad { ptr, i32 }
          cleanup
  br label %452

429:                                              ; preds = %297
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %451

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

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

435:                                              ; preds = %300
  %436 = landingpad { ptr, i32 }
          cleanup
  br label %448

437:                                              ; preds = %301
  %438 = landingpad { ptr, i32 }
          cleanup
  br label %447

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

441:                                              ; preds = %303
  %442 = landingpad { ptr, i32 }
          cleanup
  br label %445

443:                                              ; preds = %304
  %444 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %445

445:                                              ; preds = %441, %443
  %.pn1195 = phi { ptr, i32 } [ %444, %443 ], [ %442, %441 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %446

446:                                              ; preds = %439, %445
  %.pn1195.pn = phi { ptr, i32 } [ %.pn1195, %445 ], [ %440, %439 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %447

447:                                              ; preds = %437, %446
  %.pn1195.pn.pn = phi { ptr, i32 } [ %.pn1195.pn, %446 ], [ %438, %437 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %448

448:                                              ; preds = %435, %447
  %.pn1195.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn, %447 ], [ %436, %435 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %449

449:                                              ; preds = %448, %433
  %.pn1195.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn, %448 ], [ %434, %433 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %450

450:                                              ; preds = %431, %449
  %.pn1195.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn.pn, %449 ], [ %432, %431 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %451

451:                                              ; preds = %429, %450
  %.pn1195.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn.pn.pn, %450 ], [ %430, %429 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %452

452:                                              ; preds = %427, %451
  %.pn1195.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn.pn.pn.pn, %451 ], [ %428, %427 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %453

453:                                              ; preds = %425, %452
  %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn.pn.pn.pn.pn, %452 ], [ %426, %425 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %454

454:                                              ; preds = %423, %453
  %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn, %453 ], [ %424, %423 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %455

455:                                              ; preds = %421, %454
  %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn.pn, %454 ], [ %422, %421 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %456

456:                                              ; preds = %419, %455
  %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %455 ], [ %420, %419 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %457

457:                                              ; preds = %417, %456
  %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %456 ], [ %418, %417 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  br label %667

458:                                              ; preds = %319
  %459 = landingpad { ptr, i32 }
          cleanup
  br label %498

460:                                              ; preds = %320
  %461 = landingpad { ptr, i32 }
          cleanup
  br label %497

462:                                              ; preds = %321
  %463 = landingpad { ptr, i32 }
          cleanup
  br label %496

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

466:                                              ; preds = %323
  %467 = landingpad { ptr, i32 }
          cleanup
  br label %494

468:                                              ; preds = %324
  %469 = landingpad { ptr, i32 }
          cleanup
  br label %493

470:                                              ; preds = %325
  %471 = landingpad { ptr, i32 }
          cleanup
  br label %492

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

474:                                              ; preds = %327
  %475 = landingpad { ptr, i32 }
          cleanup
  br label %490

476:                                              ; preds = %328
  %477 = landingpad { ptr, i32 }
          cleanup
  br label %489

478:                                              ; preds = %329
  %479 = landingpad { ptr, i32 }
          cleanup
  br label %488

480:                                              ; preds = %330
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %487

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

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

486:                                              ; preds = %482, %484
  %.pn1209 = phi { ptr, i32 } [ %485, %484 ], [ %483, %482 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %487

487:                                              ; preds = %480, %486
  %.pn1209.pn = phi { ptr, i32 } [ %.pn1209, %486 ], [ %481, %480 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %488

488:                                              ; preds = %478, %487
  %.pn1209.pn.pn = phi { ptr, i32 } [ %.pn1209.pn, %487 ], [ %479, %478 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %489

489:                                              ; preds = %476, %488
  %.pn1209.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn, %488 ], [ %477, %476 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %490

490:                                              ; preds = %489, %474
  %.pn1209.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn.pn, %489 ], [ %475, %474 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %491

491:                                              ; preds = %472, %490
  %.pn1209.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn.pn.pn, %490 ], [ %473, %472 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %492

492:                                              ; preds = %470, %491
  %.pn1209.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn.pn.pn.pn, %491 ], [ %471, %470 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  br label %493

493:                                              ; preds = %468, %492
  %.pn1209.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn.pn.pn.pn.pn, %492 ], [ %469, %468 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %494

494:                                              ; preds = %466, %493
  %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn.pn.pn.pn.pn.pn, %493 ], [ %467, %466 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %495

495:                                              ; preds = %464, %494
  %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn, %494 ], [ %465, %464 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  br label %496

496:                                              ; preds = %462, %495
  %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn.pn, %495 ], [ %463, %462 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %497

497:                                              ; preds = %460, %496
  %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %496 ], [ %461, %460 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %498

498:                                              ; preds = %458, %497
  %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %497 ], [ %459, %458 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  br label %667

.critedge1397:                                    ; preds = %334, %.critedge1376, %.critedge1361
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #8
  store double %.0712, ptr %82, align 8, !tbaa !14
  %499 = load ptr, ptr %205, align 8, !tbaa !25
  %500 = getelementptr inbounds %class.CornerApex, ptr %499, i64 %indvars.iv
  %501 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %indvars.iv) #8
  %502 = load double, ptr %501, align 8, !tbaa !14
  %503 = load ptr, ptr %182, align 8, !tbaa !5
  %504 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %503)
  call void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144) %500, ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %82, double noundef %1, double noundef %502, double noundef %504, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext false)
  %505 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %indvars.iv) #8
  %506 = load double, ptr %505, align 8, !tbaa !14
  %507 = load double, ptr %82, align 8, !tbaa !14
  %508 = call noundef double @_Z17dimLessCornerAreadd(double noundef %506, double noundef %507)
  %509 = load double, ptr %81, align 8, !tbaa !14
  %510 = fmul double %509, %509
  %511 = fmul double %508, %510
  %512 = load double, ptr %4, align 8, !tbaa !14
  %513 = fcmp ule double %512, %509
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %96) #8
  br i1 %513, label %514, label %529

514:                                              ; preds = %.critedge1397
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %90) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %90)
          to label %515 unwind label %541

515:                                              ; preds = %514
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull @.str.1)
          to label %516 unwind label %543

516:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %92) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %517 unwind label %545

517:                                              ; preds = %516
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %518 unwind label %547

518:                                              ; preds = %517
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.2)
          to label %519 unwind label %549

519:                                              ; preds = %518
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %94) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %520 unwind label %551

520:                                              ; preds = %519
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %521 unwind label %553

521:                                              ; preds = %520
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.4)
          to label %522 unwind label %555

522:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #8
  store i32 337, ptr %96, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 4 dereferenceable(4) %96)
          to label %523 unwind label %557

523:                                              ; preds = %522
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %524 unwind label %559

524:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %99) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %525 unwind label %561

525:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %101) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %526 unwind label %563

526:                                              ; preds = %525
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %527 unwind label %565

527:                                              ; preds = %526
  %528 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %83, ptr noundef nonnull %97, i32 noundef 0)
          to label %.critedge1412 unwind label %567

529:                                              ; preds = %.critedge1397
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %96) #8
  br label %.critedge1433

.critedge1412:                                    ; preds = %527
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %101) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  %.pre2189 = load double, ptr %4, align 8, !tbaa !14
  %.pre2190 = load double, ptr %81, align 8, !tbaa !14
  br label %.critedge1433

.critedge1433:                                    ; preds = %529, %.critedge1412
  %530 = phi double [ %509, %529 ], [ %.pre2190, %.critedge1412 ]
  %531 = phi double [ %512, %529 ], [ %.pre2189, %.critedge1412 ]
  %532 = fcmp ugt double %531, %530
  br i1 %532, label %582, label %533

533:                                              ; preds = %.critedge1433
  %534 = load ptr, ptr %208, align 8, !tbaa !27
  %535 = call noundef zeroext i1 @_ZNK4Elem12isTrappedWatE9FluidBlob(ptr noundef nonnull align 8 dereferenceable(408) %534, i32 noundef 1)
  %536 = zext i1 %535 to i32
  %537 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %536)
  %538 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %537, ptr noundef nonnull @.str.8)
  %539 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.20)
  %540 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %539, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %582

541:                                              ; preds = %514
  %542 = landingpad { ptr, i32 }
          cleanup
  br label %581

543:                                              ; preds = %515
  %544 = landingpad { ptr, i32 }
          cleanup
  br label %580

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

547:                                              ; preds = %517
  %548 = landingpad { ptr, i32 }
          cleanup
  br label %578

549:                                              ; preds = %518
  %550 = landingpad { ptr, i32 }
          cleanup
  br label %577

551:                                              ; preds = %519
  %552 = landingpad { ptr, i32 }
          cleanup
  br label %576

553:                                              ; preds = %520
  %554 = landingpad { ptr, i32 }
          cleanup
  br label %575

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

557:                                              ; preds = %522
  %558 = landingpad { ptr, i32 }
          cleanup
  br label %573

559:                                              ; preds = %523
  %560 = landingpad { ptr, i32 }
          cleanup
  br label %572

561:                                              ; preds = %524
  %562 = landingpad { ptr, i32 }
          cleanup
  br label %571

563:                                              ; preds = %525
  %564 = landingpad { ptr, i32 }
          cleanup
  br label %570

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

567:                                              ; preds = %527
  %568 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  br label %569

569:                                              ; preds = %565, %567
  %.pn1223 = phi { ptr, i32 } [ %568, %567 ], [ %566, %565 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #8
  br label %570

570:                                              ; preds = %563, %569
  %.pn1223.pn = phi { ptr, i32 } [ %.pn1223, %569 ], [ %564, %563 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %101) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  br label %571

571:                                              ; preds = %561, %570
  %.pn1223.pn.pn = phi { ptr, i32 } [ %.pn1223.pn, %570 ], [ %562, %561 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  br label %572

572:                                              ; preds = %559, %571
  %.pn1223.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn, %571 ], [ %560, %559 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #8
  br label %573

573:                                              ; preds = %572, %557
  %.pn1223.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn.pn, %572 ], [ %558, %557 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %574

574:                                              ; preds = %555, %573
  %.pn1223.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn.pn.pn, %573 ], [ %556, %555 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  br label %575

575:                                              ; preds = %553, %574
  %.pn1223.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn.pn.pn.pn, %574 ], [ %554, %553 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %576

576:                                              ; preds = %551, %575
  %.pn1223.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn.pn.pn.pn.pn, %575 ], [ %552, %551 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  br label %577

577:                                              ; preds = %549, %576
  %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn.pn.pn.pn.pn.pn, %576 ], [ %550, %549 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %578

578:                                              ; preds = %547, %577
  %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn, %577 ], [ %548, %547 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #8
  br label %579

579:                                              ; preds = %545, %578
  %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn.pn, %578 ], [ %546, %545 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  br label %580

580:                                              ; preds = %543, %579
  %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %579 ], [ %544, %543 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %581

581:                                              ; preds = %541, %580
  %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %580 ], [ %542, %541 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %90) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  br label %666

582:                                              ; preds = %533, %.critedge1433
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %102) #8
  %583 = fsub double %314, %511
  store double %583, ptr %102, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %103) #8
  store double 1.000000e-50, ptr %103, align 8, !tbaa !14
  %584 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %103)
  %585 = load double, ptr %584, align 8, !tbaa !14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %103) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %102) #8
  %586 = load double, ptr %81, align 8, !tbaa !14
  %587 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %indvars.iv) #8
  %588 = load double, ptr %587, align 8, !tbaa !14
  %589 = load double, ptr %82, align 8, !tbaa !14
  %590 = load ptr, ptr %182, align 8, !tbaa !5
  %591 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %590)
  %592 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %591)
  %593 = call noundef double @_Z17cornerConductanceddddd(double noundef %508, double noundef %586, double noundef %588, double noundef %589, double noundef %592)
  %594 = load double, ptr %4, align 8, !tbaa !14
  %595 = load double, ptr %81, align 8, !tbaa !14
  %596 = load double, ptr %82, align 8, !tbaa !14
  %597 = load double, ptr %3, align 8, !tbaa !14
  %598 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %indvars.iv) #8
  %599 = load double, ptr %598, align 8, !tbaa !14
  %600 = load ptr, ptr %182, align 8, !tbaa !5
  %601 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984) %600)
  %602 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %601)
  %603 = call noundef double @_Z16layerConductancedddddddddd(double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef %585, double noundef %314, double noundef %594, double noundef %595, double noundef %596, double noundef %597, double noundef %599, double noundef %602)
  %604 = fcmp ule double %593, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %117) #8
  br i1 %604, label %605, label %620

605:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %111) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %606 unwind label %625

606:                                              ; preds = %605
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str.1)
          to label %607 unwind label %627

607:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %113) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %608 unwind label %629

608:                                              ; preds = %607
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %609 unwind label %631

609:                                              ; preds = %608
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull @.str.2)
          to label %610 unwind label %633

610:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %115) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %611 unwind label %635

611:                                              ; preds = %610
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %612 unwind label %637

612:                                              ; preds = %611
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull @.str.4)
          to label %613 unwind label %639

613:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #8
  store i32 359, ptr %117, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr noundef nonnull align 4 dereferenceable(4) %117)
          to label %614 unwind label %641

614:                                              ; preds = %613
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %615 unwind label %643

615:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %616 unwind label %645

616:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %121) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %122) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %122) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %122)
          to label %617 unwind label %647

617:                                              ; preds = %616
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %118, ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %618 unwind label %649

618:                                              ; preds = %617
  %619 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %104, ptr noundef nonnull %118, i32 noundef 0)
          to label %.critedge1448 unwind label %651

620:                                              ; preds = %582
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %117) #8
  br label %.critedge1469

.critedge1448:                                    ; preds = %618
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %122) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %122) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %117) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #8
  br label %.critedge1469

.critedge1469:                                    ; preds = %620, %.critedge1448
  %621 = fadd double %.07132182, %511
  %622 = fadd double %.07482181, %593
  %623 = fadd double %.08222178, %585
  %624 = fadd double %.08242177, %603
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  br label %751

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

627:                                              ; preds = %606
  %628 = landingpad { ptr, i32 }
          cleanup
  br label %664

629:                                              ; preds = %607
  %630 = landingpad { ptr, i32 }
          cleanup
  br label %663

631:                                              ; preds = %608
  %632 = landingpad { ptr, i32 }
          cleanup
  br label %662

633:                                              ; preds = %609
  %634 = landingpad { ptr, i32 }
          cleanup
  br label %661

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

637:                                              ; preds = %611
  %638 = landingpad { ptr, i32 }
          cleanup
  br label %659

639:                                              ; preds = %612
  %640 = landingpad { ptr, i32 }
          cleanup
  br label %658

641:                                              ; preds = %613
  %642 = landingpad { ptr, i32 }
          cleanup
  br label %657

643:                                              ; preds = %614
  %644 = landingpad { ptr, i32 }
          cleanup
  br label %656

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

647:                                              ; preds = %616
  %648 = landingpad { ptr, i32 }
          cleanup
  br label %654

649:                                              ; preds = %617
  %650 = landingpad { ptr, i32 }
          cleanup
  br label %653

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

653:                                              ; preds = %649, %651
  %.pn1237 = phi { ptr, i32 } [ %652, %651 ], [ %650, %649 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  br label %654

654:                                              ; preds = %647, %653
  %.pn1237.pn = phi { ptr, i32 } [ %.pn1237, %653 ], [ %648, %647 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %122) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %122) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #8
  br label %655

655:                                              ; preds = %645, %654
  %.pn1237.pn.pn = phi { ptr, i32 } [ %.pn1237.pn, %654 ], [ %646, %645 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  br label %656

656:                                              ; preds = %643, %655
  %.pn1237.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn, %655 ], [ %644, %643 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  br label %657

657:                                              ; preds = %656, %641
  %.pn1237.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn, %656 ], [ %642, %641 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %117) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #8
  br label %658

658:                                              ; preds = %639, %657
  %.pn1237.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn.pn, %657 ], [ %640, %639 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #8
  br label %659

659:                                              ; preds = %637, %658
  %.pn1237.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn.pn.pn, %658 ], [ %638, %637 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #8
  br label %660

660:                                              ; preds = %635, %659
  %.pn1237.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn.pn.pn.pn, %659 ], [ %636, %635 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #8
  br label %661

661:                                              ; preds = %633, %660
  %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn.pn.pn.pn.pn, %660 ], [ %634, %633 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #8
  br label %662

662:                                              ; preds = %631, %661
  %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn, %661 ], [ %632, %631 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %663

663:                                              ; preds = %629, %662
  %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn, %662 ], [ %630, %629 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  br label %664

664:                                              ; preds = %627, %663
  %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %663 ], [ %628, %627 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #8
  br label %665

665:                                              ; preds = %625, %664
  %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %664 ], [ %626, %625 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #8
  br label %666

666:                                              ; preds = %581, %665
  %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %665 ], [ %.pn1223.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %581 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #8
  br label %667

667:                                              ; preds = %666, %498, %457, %416, %375
  %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1195.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %457 ], [ %.pn1181.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %416 ], [ %.pn1167.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %375 ], [ %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %666 ], [ %.pn1209.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %498 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  br label %900

668:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #8
  store double %.0712, ptr %123, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %124) #8
  %669 = load ptr, ptr %204, align 8, !tbaa !24
  %670 = getelementptr inbounds %class.LayerApex, ptr %669, i64 %indvars.iv
  %671 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %indvars.iv) #8
  %672 = load ptr, ptr %182, align 8, !tbaa !5
  %673 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %672)
  call void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144) %670, ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %671, double noundef %1, double noundef %673, i1 noundef zeroext false)
  %674 = load double, ptr %124, align 8, !tbaa !14
  %675 = fcmp ule double %674, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %138) #8
  br i1 %675, label %676, label %691

676:                                              ; preds = %668
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %129) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %130) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %131) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %132) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %132)
          to label %677 unwind label %710

677:                                              ; preds = %676
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef nonnull @.str.1)
          to label %678 unwind label %712

678:                                              ; preds = %677
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %133) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %134) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %134)
          to label %679 unwind label %714

679:                                              ; preds = %678
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %680 unwind label %716

680:                                              ; preds = %679
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %128, ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull @.str.2)
          to label %681 unwind label %718

681:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %135) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %136) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %136)
          to label %682 unwind label %720

682:                                              ; preds = %681
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 8 dereferenceable(32) %135)
          to label %683 unwind label %722

683:                                              ; preds = %682
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull @.str.4)
          to label %684 unwind label %724

684:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %137) #8
  store i32 374, ptr %138, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %137, ptr noundef nonnull align 4 dereferenceable(4) %138)
          to label %685 unwind label %726

685:                                              ; preds = %684
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %125, ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(32) %137)
          to label %686 unwind label %728

686:                                              ; preds = %685
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %140) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %141) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %141)
          to label %687 unwind label %730

687:                                              ; preds = %686
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %142) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %143) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %688 unwind label %732

688:                                              ; preds = %687
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %139, ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %689 unwind label %734

689:                                              ; preds = %688
  %690 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %125, ptr noundef nonnull %139, i32 noundef 0)
          to label %.critedge1484 unwind label %736

691:                                              ; preds = %668
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %138) #8
  br label %.critedge1505

.critedge1484:                                    ; preds = %689
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %138) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %136) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %132) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #8
  br label %.critedge1505

.critedge1505:                                    ; preds = %691, %.critedge1484
  %692 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %indvars.iv) #8
  %693 = load double, ptr %692, align 8, !tbaa !14
  %694 = load double, ptr %123, align 8, !tbaa !14
  %695 = fsub double %206, %694
  %696 = call noundef double @_Z17dimLessCornerAreadd(double noundef %693, double noundef %695)
  %697 = load double, ptr %124, align 8, !tbaa !14
  %698 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %indvars.iv) #8
  %699 = load double, ptr %698, align 8, !tbaa !14
  %700 = load double, ptr %123, align 8, !tbaa !14
  %701 = fsub double %206, %700
  %702 = load ptr, ptr %182, align 8, !tbaa !5
  %703 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984) %702)
  %704 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %703)
  %705 = call noundef double @_Z17cornerConductanceddddd(double noundef %696, double noundef %697, double noundef %699, double noundef %701, double noundef %704)
  %706 = fadd double %.08202179, %705
  %707 = load double, ptr %124, align 8, !tbaa !14
  %708 = fmul double %707, %707
  %709 = call double @llvm.fmuladd.f64(double %708, double %696, double %.07502180)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #8
  br label %751

710:                                              ; preds = %676
  %711 = landingpad { ptr, i32 }
          cleanup
  br label %750

712:                                              ; preds = %677
  %713 = landingpad { ptr, i32 }
          cleanup
  br label %749

714:                                              ; preds = %678
  %715 = landingpad { ptr, i32 }
          cleanup
  br label %748

716:                                              ; preds = %679
  %717 = landingpad { ptr, i32 }
          cleanup
  br label %747

718:                                              ; preds = %680
  %719 = landingpad { ptr, i32 }
          cleanup
  br label %746

720:                                              ; preds = %681
  %721 = landingpad { ptr, i32 }
          cleanup
  br label %745

722:                                              ; preds = %682
  %723 = landingpad { ptr, i32 }
          cleanup
  br label %744

724:                                              ; preds = %683
  %725 = landingpad { ptr, i32 }
          cleanup
  br label %743

726:                                              ; preds = %684
  %727 = landingpad { ptr, i32 }
          cleanup
  br label %742

728:                                              ; preds = %685
  %729 = landingpad { ptr, i32 }
          cleanup
  br label %741

730:                                              ; preds = %686
  %731 = landingpad { ptr, i32 }
          cleanup
  br label %740

732:                                              ; preds = %687
  %733 = landingpad { ptr, i32 }
          cleanup
  br label %739

734:                                              ; preds = %688
  %735 = landingpad { ptr, i32 }
          cleanup
  br label %738

736:                                              ; preds = %689
  %737 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #8
  br label %738

738:                                              ; preds = %734, %736
  %.pn1153 = phi { ptr, i32 } [ %737, %736 ], [ %735, %734 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #8
  br label %739

739:                                              ; preds = %732, %738
  %.pn1153.pn = phi { ptr, i32 } [ %.pn1153, %738 ], [ %733, %732 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #8
  br label %740

740:                                              ; preds = %730, %739
  %.pn1153.pn.pn = phi { ptr, i32 } [ %.pn1153.pn, %739 ], [ %731, %730 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %141) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %140) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #8
  br label %741

741:                                              ; preds = %728, %740
  %.pn1153.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn, %740 ], [ %729, %728 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %742

742:                                              ; preds = %741, %726
  %.pn1153.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn.pn, %741 ], [ %727, %726 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %138) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  br label %743

743:                                              ; preds = %724, %742
  %.pn1153.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn.pn.pn, %742 ], [ %725, %724 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  br label %744

744:                                              ; preds = %722, %743
  %.pn1153.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn.pn.pn.pn, %743 ], [ %723, %722 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  br label %745

745:                                              ; preds = %720, %744
  %.pn1153.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn.pn.pn.pn.pn, %744 ], [ %721, %720 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %136) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #8
  br label %746

746:                                              ; preds = %718, %745
  %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn.pn.pn.pn.pn.pn, %745 ], [ %719, %718 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #8
  br label %747

747:                                              ; preds = %716, %746
  %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn, %746 ], [ %717, %716 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #8
  br label %748

748:                                              ; preds = %714, %747
  %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn.pn, %747 ], [ %715, %714 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %134) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #8
  br label %749

749:                                              ; preds = %712, %748
  %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %748 ], [ %713, %712 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #8
  br label %750

750:                                              ; preds = %710, %749
  %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %749 ], [ %711, %710 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %132) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %132) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %131) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %124) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #8
  br label %900

751:                                              ; preds = %.critedge1505, %.critedge1469, %211
  %.1861 = phi double [ %315, %.critedge1469 ], [ %.08602176, %.critedge1505 ], [ %.08602176, %211 ]
  %.1825 = phi double [ %624, %.critedge1469 ], [ %.08242177, %.critedge1505 ], [ %.08242177, %211 ]
  %.1823 = phi double [ %623, %.critedge1469 ], [ %.08222178, %.critedge1505 ], [ %.08222178, %211 ]
  %.1821 = phi double [ %.08202179, %.critedge1469 ], [ %706, %.critedge1505 ], [ %.08202179, %211 ]
  %.1751 = phi double [ %.07502180, %.critedge1469 ], [ %709, %.critedge1505 ], [ %.07502180, %211 ]
  %.1749 = phi double [ %622, %.critedge1469 ], [ %.07482181, %.critedge1505 ], [ %.07482181, %211 ]
  %.1 = phi double [ %621, %.critedge1469 ], [ %.07132182, %.critedge1505 ], [ %.07132182, %211 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %752 = load i32, ptr %197, align 8, !tbaa !16
  %753 = sext i32 %752 to i64
  %754 = icmp slt i64 %indvars.iv.next, %753
  br i1 %754, label %211, label %._crit_edge, !llvm.loop !28

755:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %145) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %147) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %148) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %149) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %151) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %756 unwind label %813

756:                                              ; preds = %755
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %149, ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull @.str.1)
          to label %757 unwind label %815

757:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %152) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %153) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %153)
          to label %758 unwind label %817

758:                                              ; preds = %757
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %148, ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull align 8 dereferenceable(32) %152)
          to label %759 unwind label %819

759:                                              ; preds = %758
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %147, ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull @.str.2)
          to label %760 unwind label %821

760:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %154) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %155) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %155)
          to label %761 unwind label %823

761:                                              ; preds = %760
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %146, ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %762 unwind label %825

762:                                              ; preds = %761
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %145, ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull @.str.4)
          to label %763 unwind label %827

763:                                              ; preds = %762
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %156) #8
  store i32 396, ptr %157, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %156, ptr noundef nonnull align 4 dereferenceable(4) %157)
          to label %764 unwind label %829

764:                                              ; preds = %763
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %144, ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 8 dereferenceable(32) %156)
          to label %765 unwind label %831

765:                                              ; preds = %764
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %159) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %160) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %160)
          to label %766 unwind label %833

766:                                              ; preds = %765
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %162) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %162)
          to label %767 unwind label %835

767:                                              ; preds = %766
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %158, ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef nonnull align 8 dereferenceable(32) %161)
          to label %768 unwind label %837

768:                                              ; preds = %767
  %769 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %144, ptr noundef nonnull %158, i32 noundef 0)
          to label %.critedge1520 unwind label %839

770:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %157) #8
  br label %.critedge1541

.critedge1520:                                    ; preds = %768
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %160) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %159) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %157) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %153) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %151) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %145) #8
  br label %.critedge1541

.critedge1541:                                    ; preds = %770, %.critedge1520
  %771 = fadd double %.0822.lcssa, %.0750.lcssa
  %772 = getelementptr inbounds i8, ptr %0, i64 72
  %773 = load double, ptr %772, align 8, !tbaa !30
  %774 = fdiv double %771, %773
  %775 = fsub double 1.000000e+00, %774
  %776 = getelementptr inbounds i8, ptr %0, i64 80
  store double %775, ptr %776, align 8, !tbaa !31
  %777 = fadd double %.0824.lcssa, %.0820.lcssa
  %778 = getelementptr inbounds i8, ptr %0, i64 112
  store double %777, ptr %778, align 8, !tbaa !32
  %779 = fsub double %773, %.0750.lcssa
  %780 = fsub double %779, %.0822.lcssa
  %781 = fsub double %780, %.0713.lcssa
  %782 = fdiv double %781, %773
  %783 = load ptr, ptr %182, align 8, !tbaa !5
  %784 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData5waterEv(ptr noundef nonnull align 8 dereferenceable(984) %783)
  %785 = call noundef double @_ZNK5Fluid9viscosityEv(ptr noundef nonnull align 8 dereferenceable(80) %784)
  %786 = load ptr, ptr %0, align 8, !tbaa !33
  %787 = getelementptr inbounds i8, ptr %786, i64 184
  %788 = load ptr, ptr %787, align 8
  %789 = call noundef double %788(ptr noundef nonnull align 8 dereferenceable(152) %0, double noundef %773, double noundef %785)
  %790 = fmul double %782, %789
  %791 = getelementptr inbounds i8, ptr %0, i64 58
  %792 = load i8, ptr %791, align 2, !tbaa !35, !range !36, !noundef !37
  %793 = trunc nuw i8 %792 to i1
  br i1 %793, label %794, label %895

794:                                              ; preds = %.critedge1541
  %795 = fcmp ule double %.0748.lcssa, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %176) #8
  br i1 %795, label %796, label %811

796:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %164) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %165) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %166) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %167) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %168) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %169) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %170) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %170)
          to label %797 unwind label %854

797:                                              ; preds = %796
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %168, ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef nonnull @.str.1)
          to label %798 unwind label %856

798:                                              ; preds = %797
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %171) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %172) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef nonnull @__FUNCTION__._ZN7Polygon24calcR_waterWithOilLayersEd, ptr noundef nonnull align 1 dereferenceable(1) %172)
          to label %799 unwind label %858

799:                                              ; preds = %798
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %167, ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef nonnull align 8 dereferenceable(32) %171)
          to label %800 unwind label %860

800:                                              ; preds = %799
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %166, ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef nonnull @.str.2)
          to label %801 unwind label %862

801:                                              ; preds = %800
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %173) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %174) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %174)
          to label %802 unwind label %864

802:                                              ; preds = %801
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %165, ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 8 dereferenceable(32) %173)
          to label %803 unwind label %866

803:                                              ; preds = %802
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %164, ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull @.str.4)
          to label %804 unwind label %868

804:                                              ; preds = %803
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %175) #8
  store i32 409, ptr %176, align 4, !tbaa !26
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %175, ptr noundef nonnull align 4 dereferenceable(4) %176)
          to label %805 unwind label %870

805:                                              ; preds = %804
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %163, ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %175)
          to label %806 unwind label %872

806:                                              ; preds = %805
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %178) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %179) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %179)
          to label %807 unwind label %874

807:                                              ; preds = %806
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %180) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %181) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %181)
          to label %808 unwind label %876

808:                                              ; preds = %807
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %177, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 8 dereferenceable(32) %180)
          to label %809 unwind label %878

809:                                              ; preds = %808
  %810 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %163, ptr noundef nonnull %177, i32 noundef 0)
          to label %.critedge1556 unwind label %880

811:                                              ; preds = %794
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %176) #8
  br label %.critedge1577

.critedge1556:                                    ; preds = %809
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %179) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %176) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %174) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %172) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %170) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %168) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %166) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #8
  br label %.critedge1577

.critedge1577:                                    ; preds = %811, %.critedge1556
  %812 = getelementptr inbounds i8, ptr %0, i64 120
  store double %.0748.lcssa, ptr %812, align 8, !tbaa !38
  br label %898

813:                                              ; preds = %755
  %814 = landingpad { ptr, i32 }
          cleanup
  br label %853

815:                                              ; preds = %756
  %816 = landingpad { ptr, i32 }
          cleanup
  br label %852

817:                                              ; preds = %757
  %818 = landingpad { ptr, i32 }
          cleanup
  br label %851

819:                                              ; preds = %758
  %820 = landingpad { ptr, i32 }
          cleanup
  br label %850

821:                                              ; preds = %759
  %822 = landingpad { ptr, i32 }
          cleanup
  br label %849

823:                                              ; preds = %760
  %824 = landingpad { ptr, i32 }
          cleanup
  br label %848

825:                                              ; preds = %761
  %826 = landingpad { ptr, i32 }
          cleanup
  br label %847

827:                                              ; preds = %762
  %828 = landingpad { ptr, i32 }
          cleanup
  br label %846

829:                                              ; preds = %763
  %830 = landingpad { ptr, i32 }
          cleanup
  br label %845

831:                                              ; preds = %764
  %832 = landingpad { ptr, i32 }
          cleanup
  br label %844

833:                                              ; preds = %765
  %834 = landingpad { ptr, i32 }
          cleanup
  br label %843

835:                                              ; preds = %766
  %836 = landingpad { ptr, i32 }
          cleanup
  br label %842

837:                                              ; preds = %767
  %838 = landingpad { ptr, i32 }
          cleanup
  br label %841

839:                                              ; preds = %768
  %840 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #8
  br label %841

841:                                              ; preds = %837, %839
  %.pn = phi { ptr, i32 } [ %840, %839 ], [ %838, %837 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #8
  br label %842

842:                                              ; preds = %835, %841
  %.pn.pn = phi { ptr, i32 } [ %.pn, %841 ], [ %836, %835 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #8
  br label %843

843:                                              ; preds = %833, %842
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %842 ], [ %834, %833 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %160) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %159) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  br label %844

844:                                              ; preds = %831, %843
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %843 ], [ %832, %831 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #8
  br label %845

845:                                              ; preds = %844, %829
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %844 ], [ %830, %829 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %157) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #8
  br label %846

846:                                              ; preds = %827, %845
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %845 ], [ %828, %827 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #8
  br label %847

847:                                              ; preds = %825, %846
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %846 ], [ %826, %825 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  br label %848

848:                                              ; preds = %823, %847
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %847 ], [ %824, %823 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #8
  br label %849

849:                                              ; preds = %821, %848
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %848 ], [ %822, %821 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #8
  br label %850

850:                                              ; preds = %819, %849
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %849 ], [ %820, %819 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #8
  br label %851

851:                                              ; preds = %817, %850
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %850 ], [ %818, %817 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %153) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #8
  br label %852

852:                                              ; preds = %815, %851
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %851 ], [ %816, %815 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #8
  br label %853

853:                                              ; preds = %813, %852
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %852 ], [ %814, %813 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %151) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %145) #8
  br label %900

854:                                              ; preds = %796
  %855 = landingpad { ptr, i32 }
          cleanup
  br label %894

856:                                              ; preds = %797
  %857 = landingpad { ptr, i32 }
          cleanup
  br label %893

858:                                              ; preds = %798
  %859 = landingpad { ptr, i32 }
          cleanup
  br label %892

860:                                              ; preds = %799
  %861 = landingpad { ptr, i32 }
          cleanup
  br label %891

862:                                              ; preds = %800
  %863 = landingpad { ptr, i32 }
          cleanup
  br label %890

864:                                              ; preds = %801
  %865 = landingpad { ptr, i32 }
          cleanup
  br label %889

866:                                              ; preds = %802
  %867 = landingpad { ptr, i32 }
          cleanup
  br label %888

868:                                              ; preds = %803
  %869 = landingpad { ptr, i32 }
          cleanup
  br label %887

870:                                              ; preds = %804
  %871 = landingpad { ptr, i32 }
          cleanup
  br label %886

872:                                              ; preds = %805
  %873 = landingpad { ptr, i32 }
          cleanup
  br label %885

874:                                              ; preds = %806
  %875 = landingpad { ptr, i32 }
          cleanup
  br label %884

876:                                              ; preds = %807
  %877 = landingpad { ptr, i32 }
          cleanup
  br label %883

878:                                              ; preds = %808
  %879 = landingpad { ptr, i32 }
          cleanup
  br label %882

880:                                              ; preds = %809
  %881 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  br label %882

882:                                              ; preds = %878, %880
  %.pn1139 = phi { ptr, i32 } [ %881, %880 ], [ %879, %878 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #8
  br label %883

883:                                              ; preds = %876, %882
  %.pn1139.pn = phi { ptr, i32 } [ %.pn1139, %882 ], [ %877, %876 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %181) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #8
  br label %884

884:                                              ; preds = %874, %883
  %.pn1139.pn.pn = phi { ptr, i32 } [ %.pn1139.pn, %883 ], [ %875, %874 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %179) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  br label %885

885:                                              ; preds = %872, %884
  %.pn1139.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn, %884 ], [ %873, %872 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #8
  br label %886

886:                                              ; preds = %885, %870
  %.pn1139.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn, %885 ], [ %871, %870 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %176) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #8
  br label %887

887:                                              ; preds = %868, %886
  %.pn1139.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn.pn, %886 ], [ %869, %868 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #8
  br label %888

888:                                              ; preds = %866, %887
  %.pn1139.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn.pn.pn, %887 ], [ %867, %866 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #8
  br label %889

889:                                              ; preds = %864, %888
  %.pn1139.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn.pn.pn.pn, %888 ], [ %865, %864 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %174) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #8
  br label %890

890:                                              ; preds = %862, %889
  %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn.pn.pn.pn.pn, %889 ], [ %863, %862 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #8
  br label %891

891:                                              ; preds = %860, %890
  %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn, %890 ], [ %861, %860 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #8
  br label %892

892:                                              ; preds = %858, %891
  %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn.pn, %891 ], [ %859, %858 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %172) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #8
  br label %893

893:                                              ; preds = %856, %892
  %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %892 ], [ %857, %856 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #8
  br label %894

894:                                              ; preds = %854, %893
  %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %893 ], [ %855, %854 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %170) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %168) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %166) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #8
  br label %900

895:                                              ; preds = %.critedge1541
  %896 = getelementptr inbounds i8, ptr %0, i64 120
  store double 0.000000e+00, ptr %896, align 8, !tbaa !38
  %897 = fadd double %.0748.lcssa, %790
  br label %898

898:                                              ; preds = %895, %.critedge1577
  %.sink = phi double [ %897, %895 ], [ %790, %.critedge1577 ]
  %899 = getelementptr inbounds i8, ptr %0, i64 128
  store double %.sink, ptr %899, align 8, !tbaa !39
  ret void

900:                                              ; preds = %667, %750, %853, %894
  %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1139.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %894 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %853 ], [ %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %667 ], [ %.pn1153.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %750 ]
  resume { ptr, i32 } %.pn1237.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

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

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

; 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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_Z17cornerConductanceddddd(double noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z16layerConductancedddddddddd(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #0

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

declare void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #5

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @tan(double noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z17dimLessCornerAreadd(double noundef, double noundef) local_unnamed_addr #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4Apex6existsEv(ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #0 align 2

declare void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), double noundef, double noundef, i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK9LayerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #0 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #5

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

attributes #0 = { 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 #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 nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress 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 #8 = { 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, !10, i64 32}
!6 = !{!"_ZTS9ElemModel", !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 32, !7, i64 40, !10, i64 48, !11, i64 56, !11, i64 57, !11, i64 58, !11, i64 59, !12, i64 60, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !13, i64 120, !13, i64 136}
!7 = !{!"double", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"int", !8, i64 0}
!13 = !{!"_ZTSSt4pairIddE", !7, i64 0, !7, i64 8}
!14 = !{!7, !7, i64 0}
!15 = !{!6, !7, i64 40}
!16 = !{!17, !12, i64 184}
!17 = !{!"_ZTS7Polygon", !18, i64 0, !12, i64 184, !19, i64 192, !10, i64 216, !10, i64 224, !23, i64 232, !8, i64 234, !7, i64 240}
!18 = !{!"_ZTS8VoidElem", !6, i64 0, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176}
!19 = !{!"_ZTSSt6vectorIdSaIdEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!23 = !{!"short", !8, i64 0}
!24 = !{!17, !10, i64 224}
!25 = !{!17, !10, i64 216}
!26 = !{!12, !12, i64 0}
!27 = !{!6, !10, i64 24}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = !{!6, !7, i64 72}
!31 = !{!6, !7, i64 80}
!32 = !{!6, !7, i64 112}
!33 = !{!34, !34, i64 0}
!34 = !{!"vtable pointer", !9, i64 0}
!35 = !{!6, !11, i64 58}
!36 = !{i8 0, i8 2}
!37 = !{}
!38 = !{!6, !7, i64 120}
!39 = !{!6, !7, i64 128}


; Effective O3 passes: BDCEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass