; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow/polygon/polygonDrain.ll (ZN6Circle16initOilInjectionEd)

; 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::__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.2" = 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 }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@__FUNCTION__._ZN6Circle16initOilInjectionEd = external hidden unnamed_addr constant [17 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [102 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
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Circle16initOilInjectionEd(ptr noundef nonnull align 8 dereferenceable(184) %0, double noundef %1) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, 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 i1, align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca i1, align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca i1, align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca i1, align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i1, align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i1, align 1
  %18 = alloca %"class.std::allocator.2", align 1
  %19 = alloca i1, align 1
  %20 = alloca i1, align 1
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i1, align 1
  %24 = alloca i1, align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca i1, align 1
  %27 = alloca %"class.std::allocator.2", align 1
  %28 = alloca i1, align 1
  %29 = alloca i1, align 1
  %30 = alloca i1, align 1
  %31 = alloca i1, align 1
  %32 = alloca i1, align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca i1, align 1
  %35 = alloca %"class.std::allocator.2", align 1
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca i1, align 1
  %39 = alloca i1, align 1
  %40 = alloca i1, align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i1, align 1
  %43 = alloca i32, align 4
  %44 = alloca i1, align 1
  %45 = alloca i1, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca i1, align 1
  %49 = alloca %"class.std::allocator.2", align 1
  %50 = alloca i1, align 1
  %51 = alloca i1, align 1
  %52 = alloca i1, align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca i1, align 1
  %55 = alloca %"class.std::allocator.2", align 1
  %56 = alloca i1, align 1
  %57 = alloca i1, align 1
  %58 = alloca i1, align 1
  %59 = alloca i1, align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca i1, align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca i1, align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca i1, align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca i1, align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca i1, align 1
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca i1, align 1
  %73 = alloca %"class.std::allocator.2", align 1
  %74 = alloca i1, align 1
  %75 = alloca i1, align 1
  %76 = alloca i1, align 1
  %77 = alloca i1, align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca i1, align 1
  %80 = alloca %"class.std::allocator.2", align 1
  %81 = alloca i1, align 1
  %82 = alloca i1, align 1
  %83 = alloca i1, align 1
  %84 = alloca i1, align 1
  %85 = alloca i1, align 1
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca i1, align 1
  %88 = alloca %"class.std::allocator.2", align 1
  %89 = alloca i1, align 1
  %90 = alloca i1, align 1
  %91 = alloca i1, align 1
  %92 = alloca i1, align 1
  %93 = alloca i1, align 1
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca i1, align 1
  %96 = alloca i32, align 4
  %97 = alloca i1, align 1
  %98 = alloca i1, align 1
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca i1, align 1
  %102 = alloca %"class.std::allocator.2", align 1
  %103 = alloca i1, align 1
  %104 = alloca i1, align 1
  %105 = alloca i1, align 1
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca i1, align 1
  %108 = alloca %"class.std::allocator.2", align 1
  %109 = alloca i1, align 1
  %110 = alloca i1, align 1
  %111 = alloca i1, align 1
  %112 = alloca i1, align 1
  store ptr %0, ptr %3, align 8, !tbaa !5
  store double %1, ptr %4, align 8, !tbaa !9
  %113 = load ptr, ptr %3, align 8
  %114 = getelementptr inbounds %class.ElemModel, ptr %113, i32 0, i32 3
  %115 = load ptr, ptr %114, align 8, !tbaa !11
  %116 = call noundef i32 @_ZNK4Elem6nCnctsEv(ptr noundef nonnull align 8 dereferenceable(408) %115)
  %117 = icmp sgt i32 %116, 0
  store i1 false, ptr %7, align 1
  store i1 false, ptr %9, align 1
  store i1 false, ptr %11, align 1
  store i1 false, ptr %13, align 1
  store i1 false, ptr %15, align 1
  store i1 false, ptr %17, align 1
  store i1 false, ptr %19, align 1
  store i1 false, ptr %20, align 1
  store i1 false, ptr %23, 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 %29, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %31, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %34, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %42, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  store i1 false, ptr %44, align 1
  store i1 false, ptr %45, align 1
  store i1 false, ptr %48, 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 %54, align 1
  store i1 false, ptr %56, align 1
  store i1 false, ptr %57, align 1
  store i1 false, ptr %58, align 1
  store i1 false, ptr %59, align 1
  br i1 %117, label %134, label %118

118:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #5
  store i1 true, ptr %7, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #5
  store i1 true, ptr %9, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #5
  store i1 true, ptr %11, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #5
  store i1 true, ptr %13, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #5
  store i1 true, ptr %15, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #5
  store i1 true, ptr %17, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #5
  store i1 true, ptr %19, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #5
  store i1 true, ptr %20, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %119 unwind label %370

119:                                              ; preds = %118
  store i1 true, ptr %23, 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 %14, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.1)
          to label %120 unwind label %374

120:                                              ; preds = %119
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #5
  store i1 true, ptr %26, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #5
  store i1 true, ptr %28, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  store i1 true, ptr %29, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @__FUNCTION__._ZN6Circle16initOilInjectionEd, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %121 unwind label %378

121:                                              ; preds = %120
  store i1 true, ptr %30, 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 %12, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %122 unwind label %382

122:                                              ; preds = %121
  store i1 true, ptr %31, 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 %10, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.2)
          to label %123 unwind label %386

123:                                              ; preds = %122
  store i1 true, ptr %32, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #5
  store i1 true, ptr %34, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #5
  store i1 true, ptr %36, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #5
  store i1 true, ptr %37, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %124 unwind label %390

124:                                              ; preds = %123
  store i1 true, ptr %38, 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 %8, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %125 unwind label %394

125:                                              ; preds = %124
  store i1 true, ptr %39, 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 %6, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.4)
          to label %126 unwind label %398

126:                                              ; preds = %125
  store i1 true, ptr %40, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #5
  store i1 true, ptr %42, align 1
  store i32 27, ptr %43, align 4, !tbaa !16
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %127 unwind label %402

127:                                              ; preds = %126
  store i1 true, ptr %44, 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 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %128 unwind label %406

128:                                              ; preds = %127
  store i1 true, ptr %45, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #5
  store i1 true, ptr %48, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #5
  store i1 true, ptr %50, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #5
  store i1 true, ptr %51, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %129 unwind label %410

129:                                              ; preds = %128
  store i1 true, ptr %52, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #5
  store i1 true, ptr %54, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #5
  store i1 true, ptr %56, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #5
  store i1 true, ptr %57, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %130 unwind label %414

130:                                              ; preds = %129
  store i1 true, ptr %58, 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 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %131 unwind label %418

131:                                              ; preds = %130
  store i1 true, ptr %59, align 1
  %132 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %5, ptr noundef %46, i32 noundef 0)
          to label %133 unwind label %422

133:                                              ; preds = %131
  br label %134

134:                                              ; preds = %133, %2
  %135 = phi i1 [ true, %2 ], [ %132, %133 ]
  %136 = xor i1 %135, true
  %137 = load i1, ptr %59, align 1
  br i1 %137, label %138, label %139

138:                                              ; preds = %134
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #5
  br label %139

139:                                              ; preds = %138, %134
  %140 = load i1, ptr %58, align 1
  br i1 %140, label %141, label %142

141:                                              ; preds = %139
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #5
  br label %142

142:                                              ; preds = %141, %139
  %143 = load i1, ptr %57, align 1
  br i1 %143, label %144, label %145

144:                                              ; preds = %142
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #5
  br label %145

145:                                              ; preds = %144, %142
  %146 = load i1, ptr %56, align 1
  br i1 %146, label %147, label %148

147:                                              ; preds = %145
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #5
  br label %148

148:                                              ; preds = %147, %145
  %149 = load i1, ptr %54, align 1
  br i1 %149, label %150, label %151

150:                                              ; preds = %148
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #5
  br label %151

151:                                              ; preds = %150, %148
  %152 = load i1, ptr %52, align 1
  br i1 %152, label %153, label %154

153:                                              ; preds = %151
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  br label %154

154:                                              ; preds = %153, %151
  %155 = load i1, ptr %51, align 1
  br i1 %155, label %156, label %157

156:                                              ; preds = %154
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #5
  br label %157

157:                                              ; preds = %156, %154
  %158 = load i1, ptr %50, align 1
  br i1 %158, label %159, label %160

159:                                              ; preds = %157
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #5
  br label %160

160:                                              ; preds = %159, %157
  %161 = load i1, ptr %48, align 1
  br i1 %161, label %162, label %163

162:                                              ; preds = %160
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #5
  br label %163

163:                                              ; preds = %162, %160
  %164 = load i1, ptr %45, align 1
  br i1 %164, label %165, label %166

165:                                              ; preds = %163
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  br label %166

166:                                              ; preds = %165, %163
  %167 = load i1, ptr %44, align 1
  br i1 %167, label %168, label %169

168:                                              ; preds = %166
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  br label %169

169:                                              ; preds = %168, %166
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  %170 = load i1, ptr %42, align 1
  br i1 %170, label %171, label %172

171:                                              ; preds = %169
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #5
  br label %172

172:                                              ; preds = %171, %169
  %173 = load i1, ptr %40, align 1
  br i1 %173, label %174, label %175

174:                                              ; preds = %172
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  br label %175

175:                                              ; preds = %174, %172
  %176 = load i1, ptr %39, align 1
  br i1 %176, label %177, label %178

177:                                              ; preds = %175
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %178

178:                                              ; preds = %177, %175
  %179 = load i1, ptr %38, align 1
  br i1 %179, label %180, label %181

180:                                              ; preds = %178
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  br label %181

181:                                              ; preds = %180, %178
  %182 = load i1, ptr %37, align 1
  br i1 %182, label %183, label %184

183:                                              ; preds = %181
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #5
  br label %184

184:                                              ; preds = %183, %181
  %185 = load i1, ptr %36, align 1
  br i1 %185, label %186, label %187

186:                                              ; preds = %184
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #5
  br label %187

187:                                              ; preds = %186, %184
  %188 = load i1, ptr %34, align 1
  br i1 %188, label %189, label %190

189:                                              ; preds = %187
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #5
  br label %190

190:                                              ; preds = %189, %187
  %191 = load i1, ptr %32, align 1
  br i1 %191, label %192, label %193

192:                                              ; preds = %190
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %193

193:                                              ; preds = %192, %190
  %194 = load i1, ptr %31, align 1
  br i1 %194, label %195, label %196

195:                                              ; preds = %193
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %196

196:                                              ; preds = %195, %193
  %197 = load i1, ptr %30, align 1
  br i1 %197, label %198, label %199

198:                                              ; preds = %196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  br label %199

199:                                              ; preds = %198, %196
  %200 = load i1, ptr %29, align 1
  br i1 %200, label %201, label %202

201:                                              ; preds = %199
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  br label %202

202:                                              ; preds = %201, %199
  %203 = load i1, ptr %28, align 1
  br i1 %203, label %204, label %205

204:                                              ; preds = %202
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  br label %205

205:                                              ; preds = %204, %202
  %206 = load i1, ptr %26, align 1
  br i1 %206, label %207, label %208

207:                                              ; preds = %205
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #5
  br label %208

208:                                              ; preds = %207, %205
  %209 = load i1, ptr %24, align 1
  br i1 %209, label %210, label %211

210:                                              ; preds = %208
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %211

211:                                              ; preds = %210, %208
  %212 = load i1, ptr %23, align 1
  br i1 %212, label %213, label %214

213:                                              ; preds = %211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %214

214:                                              ; preds = %213, %211
  %215 = load i1, ptr %20, align 1
  br i1 %215, label %216, label %217

216:                                              ; preds = %214
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #5
  br label %217

217:                                              ; preds = %216, %214
  %218 = load i1, ptr %19, align 1
  br i1 %218, label %219, label %220

219:                                              ; preds = %217
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #5
  br label %220

220:                                              ; preds = %219, %217
  %221 = load i1, ptr %17, align 1
  br i1 %221, label %222, label %223

222:                                              ; preds = %220
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  br label %223

223:                                              ; preds = %222, %220
  %224 = load i1, ptr %15, align 1
  br i1 %224, label %225, label %226

225:                                              ; preds = %223
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %226

226:                                              ; preds = %225, %223
  %227 = load i1, ptr %13, align 1
  br i1 %227, label %228, label %229

228:                                              ; preds = %226
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  br label %229

229:                                              ; preds = %228, %226
  %230 = load i1, ptr %11, align 1
  br i1 %230, label %231, label %232

231:                                              ; preds = %229
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #5
  br label %232

232:                                              ; preds = %231, %229
  %233 = load i1, ptr %9, align 1
  br i1 %233, label %234, label %235

234:                                              ; preds = %232
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  br label %235

235:                                              ; preds = %234, %232
  %236 = load i1, ptr %7, align 1
  br i1 %236, label %237, label %238

237:                                              ; preds = %235
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #5
  br label %238

238:                                              ; preds = %237, %235
  %239 = getelementptr inbounds %class.ElemModel, ptr %113, i32 0, i32 3
  %240 = load ptr, ptr %239, align 8, !tbaa !11
  %241 = call noundef zeroext i1 @_ZNK4Apex15isInOilFloodVecEv(ptr noundef nonnull align 8 dereferenceable(104) %240)
  store i1 false, ptr %62, align 1
  store i1 false, ptr %64, align 1
  store i1 false, ptr %66, align 1
  store i1 false, ptr %68, align 1
  store i1 false, ptr %70, align 1
  store i1 false, ptr %72, align 1
  store i1 false, ptr %74, align 1
  store i1 false, ptr %75, align 1
  store i1 false, ptr %76, 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 %82, align 1
  store i1 false, ptr %83, align 1
  store i1 false, ptr %84, align 1
  store i1 false, ptr %85, align 1
  store i1 false, ptr %87, align 1
  store i1 false, ptr %89, align 1
  store i1 false, ptr %90, align 1
  store i1 false, ptr %91, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %93, align 1
  store i1 false, ptr %95, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #5
  store i1 false, ptr %97, align 1
  store i1 false, ptr %98, align 1
  store i1 false, ptr %101, 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 %107, align 1
  store i1 false, ptr %109, align 1
  store i1 false, ptr %110, align 1
  store i1 false, ptr %111, align 1
  store i1 false, ptr %112, align 1
  br i1 %241, label %242, label %258

242:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #5
  store i1 true, ptr %62, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #5
  store i1 true, ptr %64, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #5
  store i1 true, ptr %66, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #5
  store i1 true, ptr %68, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #5
  store i1 true, ptr %70, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #5
  store i1 true, ptr %72, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #5
  store i1 true, ptr %74, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #5
  store i1 true, ptr %75, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %243 unwind label %541

243:                                              ; preds = %242
  store i1 true, ptr %76, 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 %69, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str.1)
          to label %244 unwind label %545

244:                                              ; preds = %243
  store i1 true, ptr %77, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #5
  store i1 true, ptr %79, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #5
  store i1 true, ptr %81, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #5
  store i1 true, ptr %82, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @__FUNCTION__._ZN6Circle16initOilInjectionEd, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %245 unwind label %549

245:                                              ; preds = %244
  store i1 true, ptr %83, 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 %67, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %246 unwind label %553

246:                                              ; preds = %245
  store i1 true, ptr %84, 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 %65, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.2)
          to label %247 unwind label %557

247:                                              ; preds = %246
  store i1 true, ptr %85, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #5
  store i1 true, ptr %87, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #5
  store i1 true, ptr %89, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #5
  store i1 true, ptr %90, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %248 unwind label %561

248:                                              ; preds = %247
  store i1 true, ptr %91, 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 %63, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %249 unwind label %565

249:                                              ; preds = %248
  store i1 true, ptr %92, 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 %61, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.4)
          to label %250 unwind label %569

250:                                              ; preds = %249
  store i1 true, ptr %93, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #5
  store i1 true, ptr %95, align 1
  store i32 30, ptr %96, align 4, !tbaa !16
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 4 dereferenceable(4) %96)
          to label %251 unwind label %573

251:                                              ; preds = %250
  store i1 true, ptr %97, 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 %60, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %252 unwind label %577

252:                                              ; preds = %251
  store i1 true, ptr %98, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #5
  store i1 true, ptr %101, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %102) #5
  store i1 true, ptr %103, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #5
  store i1 true, ptr %104, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %102)
          to label %253 unwind label %581

253:                                              ; preds = %252
  store i1 true, ptr %105, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #5
  store i1 true, ptr %107, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %108) #5
  store i1 true, ptr %109, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #5
  store i1 true, ptr %110, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %254 unwind label %585

254:                                              ; preds = %253
  store i1 true, ptr %111, 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 %99, ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %255 unwind label %589

255:                                              ; preds = %254
  store i1 true, ptr %112, align 1
  %256 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %60, ptr noundef %99, i32 noundef 0)
          to label %257 unwind label %593

257:                                              ; preds = %255
  br label %258

258:                                              ; preds = %257, %238
  %259 = phi i1 [ true, %238 ], [ %256, %257 ]
  %260 = xor i1 %259, true
  %261 = load i1, ptr %112, align 1
  br i1 %261, label %262, label %263

262:                                              ; preds = %258
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #5
  br label %263

263:                                              ; preds = %262, %258
  %264 = load i1, ptr %111, align 1
  br i1 %264, label %265, label %266

265:                                              ; preds = %263
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #5
  br label %266

266:                                              ; preds = %265, %263
  %267 = load i1, ptr %110, align 1
  br i1 %267, label %268, label %269

268:                                              ; preds = %266
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #5
  br label %269

269:                                              ; preds = %268, %266
  %270 = load i1, ptr %109, align 1
  br i1 %270, label %271, label %272

271:                                              ; preds = %269
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #5
  br label %272

272:                                              ; preds = %271, %269
  %273 = load i1, ptr %107, align 1
  br i1 %273, label %274, label %275

274:                                              ; preds = %272
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #5
  br label %275

275:                                              ; preds = %274, %272
  %276 = load i1, ptr %105, align 1
  br i1 %276, label %277, label %278

277:                                              ; preds = %275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #5
  br label %278

278:                                              ; preds = %277, %275
  %279 = load i1, ptr %104, align 1
  br i1 %279, label %280, label %281

280:                                              ; preds = %278
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #5
  br label %281

281:                                              ; preds = %280, %278
  %282 = load i1, ptr %103, align 1
  br i1 %282, label %283, label %284

283:                                              ; preds = %281
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #5
  br label %284

284:                                              ; preds = %283, %281
  %285 = load i1, ptr %101, align 1
  br i1 %285, label %286, label %287

286:                                              ; preds = %284
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #5
  br label %287

287:                                              ; preds = %286, %284
  %288 = load i1, ptr %98, align 1
  br i1 %288, label %289, label %290

289:                                              ; preds = %287
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #5
  br label %290

290:                                              ; preds = %289, %287
  %291 = load i1, ptr %97, align 1
  br i1 %291, label %292, label %293

292:                                              ; preds = %290
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #5
  br label %293

293:                                              ; preds = %292, %290
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #5
  %294 = load i1, ptr %95, align 1
  br i1 %294, label %295, label %296

295:                                              ; preds = %293
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #5
  br label %296

296:                                              ; preds = %295, %293
  %297 = load i1, ptr %93, align 1
  br i1 %297, label %298, label %299

298:                                              ; preds = %296
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #5
  br label %299

299:                                              ; preds = %298, %296
  %300 = load i1, ptr %92, align 1
  br i1 %300, label %301, label %302

301:                                              ; preds = %299
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #5
  br label %302

302:                                              ; preds = %301, %299
  %303 = load i1, ptr %91, align 1
  br i1 %303, label %304, label %305

304:                                              ; preds = %302
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #5
  br label %305

305:                                              ; preds = %304, %302
  %306 = load i1, ptr %90, align 1
  br i1 %306, label %307, label %308

307:                                              ; preds = %305
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #5
  br label %308

308:                                              ; preds = %307, %305
  %309 = load i1, ptr %89, align 1
  br i1 %309, label %310, label %311

310:                                              ; preds = %308
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #5
  br label %311

311:                                              ; preds = %310, %308
  %312 = load i1, ptr %87, align 1
  br i1 %312, label %313, label %314

313:                                              ; preds = %311
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #5
  br label %314

314:                                              ; preds = %313, %311
  %315 = load i1, ptr %85, align 1
  br i1 %315, label %316, label %317

316:                                              ; preds = %314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #5
  br label %317

317:                                              ; preds = %316, %314
  %318 = load i1, ptr %84, align 1
  br i1 %318, label %319, label %320

319:                                              ; preds = %317
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #5
  br label %320

320:                                              ; preds = %319, %317
  %321 = load i1, ptr %83, align 1
  br i1 %321, label %322, label %323

322:                                              ; preds = %320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #5
  br label %323

323:                                              ; preds = %322, %320
  %324 = load i1, ptr %82, align 1
  br i1 %324, label %325, label %326

325:                                              ; preds = %323
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #5
  br label %326

326:                                              ; preds = %325, %323
  %327 = load i1, ptr %81, align 1
  br i1 %327, label %328, label %329

328:                                              ; preds = %326
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #5
  br label %329

329:                                              ; preds = %328, %326
  %330 = load i1, ptr %79, align 1
  br i1 %330, label %331, label %332

331:                                              ; preds = %329
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #5
  br label %332

332:                                              ; preds = %331, %329
  %333 = load i1, ptr %77, align 1
  br i1 %333, label %334, label %335

334:                                              ; preds = %332
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #5
  br label %335

335:                                              ; preds = %334, %332
  %336 = load i1, ptr %76, align 1
  br i1 %336, label %337, label %338

337:                                              ; preds = %335
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #5
  br label %338

338:                                              ; preds = %337, %335
  %339 = load i1, ptr %75, align 1
  br i1 %339, label %340, label %341

340:                                              ; preds = %338
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #5
  br label %341

341:                                              ; preds = %340, %338
  %342 = load i1, ptr %74, align 1
  br i1 %342, label %343, label %344

343:                                              ; preds = %341
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #5
  br label %344

344:                                              ; preds = %343, %341
  %345 = load i1, ptr %72, align 1
  br i1 %345, label %346, label %347

346:                                              ; preds = %344
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #5
  br label %347

347:                                              ; preds = %346, %344
  %348 = load i1, ptr %70, align 1
  br i1 %348, label %349, label %350

349:                                              ; preds = %347
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #5
  br label %350

350:                                              ; preds = %349, %347
  %351 = load i1, ptr %68, align 1
  br i1 %351, label %352, label %353

352:                                              ; preds = %350
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #5
  br label %353

353:                                              ; preds = %352, %350
  %354 = load i1, ptr %66, align 1
  br i1 %354, label %355, label %356

355:                                              ; preds = %353
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #5
  br label %356

356:                                              ; preds = %355, %353
  %357 = load i1, ptr %64, align 1
  br i1 %357, label %358, label %359

358:                                              ; preds = %356
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #5
  br label %359

359:                                              ; preds = %358, %356
  %360 = load i1, ptr %62, align 1
  br i1 %360, label %361, label %362

361:                                              ; preds = %359
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #5
  br label %362

362:                                              ; preds = %361, %359
  %363 = getelementptr inbounds %class.ElemModel, ptr %113, i32 0, i32 6
  %364 = load ptr, ptr %363, align 8, !tbaa !17
  %365 = getelementptr inbounds %class.ElemModel, ptr %113, i32 0, i32 4
  %366 = load ptr, ptr %365, align 8, !tbaa !18
  %367 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984) %366)
  %368 = icmp eq ptr %364, %367
  br i1 %368, label %369, label %712

369:                                              ; preds = %362
  br label %725

370:                                              ; preds = %118
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %21, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %22, align 4
  br label %516

374:                                              ; preds = %119
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %21, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %22, align 4
  br label %512

378:                                              ; preds = %120
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %21, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %22, align 4
  br label %499

382:                                              ; preds = %121
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %21, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %22, align 4
  br label %495

386:                                              ; preds = %122
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %21, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %22, align 4
  br label %491

390:                                              ; preds = %123
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %21, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %22, align 4
  br label %478

394:                                              ; preds = %124
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %21, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %22, align 4
  br label %474

398:                                              ; preds = %125
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %21, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %22, align 4
  br label %470

402:                                              ; preds = %126
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %21, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %22, align 4
  br label %463

406:                                              ; preds = %127
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %21, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %22, align 4
  br label %459

410:                                              ; preds = %128
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %21, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %22, align 4
  br label %446

414:                                              ; preds = %129
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %21, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %22, align 4
  br label %433

418:                                              ; preds = %130
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %21, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %22, align 4
  br label %429

422:                                              ; preds = %131
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %21, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %22, align 4
  %426 = load i1, ptr %59, align 1
  br i1 %426, label %427, label %428

427:                                              ; preds = %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #5
  br label %428

428:                                              ; preds = %427, %422
  br label %429

429:                                              ; preds = %428, %418
  %430 = load i1, ptr %58, align 1
  br i1 %430, label %431, label %432

431:                                              ; preds = %429
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #5
  br label %432

432:                                              ; preds = %431, %429
  br label %433

433:                                              ; preds = %432, %414
  %434 = load i1, ptr %57, align 1
  br i1 %434, label %435, label %436

435:                                              ; preds = %433
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #5
  br label %436

436:                                              ; preds = %435, %433
  %437 = load i1, ptr %56, align 1
  br i1 %437, label %438, label %439

438:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #5
  br label %439

439:                                              ; preds = %438, %436
  %440 = load i1, ptr %54, align 1
  br i1 %440, label %441, label %442

441:                                              ; preds = %439
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #5
  br label %442

442:                                              ; preds = %441, %439
  %443 = load i1, ptr %52, align 1
  br i1 %443, label %444, label %445

444:                                              ; preds = %442
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  br label %445

445:                                              ; preds = %444, %442
  br label %446

446:                                              ; preds = %445, %410
  %447 = load i1, ptr %51, align 1
  br i1 %447, label %448, label %449

448:                                              ; preds = %446
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #5
  br label %449

449:                                              ; preds = %448, %446
  %450 = load i1, ptr %50, align 1
  br i1 %450, label %451, label %452

451:                                              ; preds = %449
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #5
  br label %452

452:                                              ; preds = %451, %449
  %453 = load i1, ptr %48, align 1
  br i1 %453, label %454, label %455

454:                                              ; preds = %452
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #5
  br label %455

455:                                              ; preds = %454, %452
  %456 = load i1, ptr %45, align 1
  br i1 %456, label %457, label %458

457:                                              ; preds = %455
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  br label %458

458:                                              ; preds = %457, %455
  br label %459

459:                                              ; preds = %458, %406
  %460 = load i1, ptr %44, align 1
  br i1 %460, label %461, label %462

461:                                              ; preds = %459
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  br label %462

462:                                              ; preds = %461, %459
  br label %463

463:                                              ; preds = %462, %402
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  %464 = load i1, ptr %42, align 1
  br i1 %464, label %465, label %466

465:                                              ; preds = %463
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #5
  br label %466

466:                                              ; preds = %465, %463
  %467 = load i1, ptr %40, align 1
  br i1 %467, label %468, label %469

468:                                              ; preds = %466
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  br label %469

469:                                              ; preds = %468, %466
  br label %470

470:                                              ; preds = %469, %398
  %471 = load i1, ptr %39, align 1
  br i1 %471, label %472, label %473

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

473:                                              ; preds = %472, %470
  br label %474

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

476:                                              ; preds = %474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  br label %477

477:                                              ; preds = %476, %474
  br label %478

478:                                              ; preds = %477, %390
  %479 = load i1, ptr %37, align 1
  br i1 %479, label %480, label %481

480:                                              ; preds = %478
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #5
  br label %481

481:                                              ; preds = %480, %478
  %482 = load i1, ptr %36, align 1
  br i1 %482, label %483, label %484

483:                                              ; preds = %481
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #5
  br label %484

484:                                              ; preds = %483, %481
  %485 = load i1, ptr %34, align 1
  br i1 %485, label %486, label %487

486:                                              ; preds = %484
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #5
  br label %487

487:                                              ; preds = %486, %484
  %488 = load i1, ptr %32, align 1
  br i1 %488, label %489, label %490

489:                                              ; preds = %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %490

490:                                              ; preds = %489, %487
  br label %491

491:                                              ; preds = %490, %386
  %492 = load i1, ptr %31, align 1
  br i1 %492, label %493, label %494

493:                                              ; preds = %491
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %494

494:                                              ; preds = %493, %491
  br label %495

495:                                              ; preds = %494, %382
  %496 = load i1, ptr %30, align 1
  br i1 %496, label %497, label %498

497:                                              ; preds = %495
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  br label %498

498:                                              ; preds = %497, %495
  br label %499

499:                                              ; preds = %498, %378
  %500 = load i1, ptr %29, align 1
  br i1 %500, label %501, label %502

501:                                              ; preds = %499
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #5
  br label %502

502:                                              ; preds = %501, %499
  %503 = load i1, ptr %28, align 1
  br i1 %503, label %504, label %505

504:                                              ; preds = %502
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #5
  br label %505

505:                                              ; preds = %504, %502
  %506 = load i1, ptr %26, align 1
  br i1 %506, label %507, label %508

507:                                              ; preds = %505
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #5
  br label %508

508:                                              ; preds = %507, %505
  %509 = load i1, ptr %24, align 1
  br i1 %509, label %510, label %511

510:                                              ; preds = %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %511

511:                                              ; preds = %510, %508
  br label %512

512:                                              ; preds = %511, %374
  %513 = load i1, ptr %23, align 1
  br i1 %513, label %514, label %515

514:                                              ; preds = %512
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %515

515:                                              ; preds = %514, %512
  br label %516

516:                                              ; preds = %515, %370
  %517 = load i1, ptr %20, align 1
  br i1 %517, label %518, label %519

518:                                              ; preds = %516
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #5
  br label %519

519:                                              ; preds = %518, %516
  %520 = load i1, ptr %19, align 1
  br i1 %520, label %521, label %522

521:                                              ; preds = %519
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #5
  br label %522

522:                                              ; preds = %521, %519
  %523 = load i1, ptr %17, align 1
  br i1 %523, label %524, label %525

524:                                              ; preds = %522
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  br label %525

525:                                              ; preds = %524, %522
  %526 = load i1, ptr %15, align 1
  br i1 %526, label %527, label %528

527:                                              ; preds = %525
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %528

528:                                              ; preds = %527, %525
  %529 = load i1, ptr %13, align 1
  br i1 %529, label %530, label %531

530:                                              ; preds = %528
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  br label %531

531:                                              ; preds = %530, %528
  %532 = load i1, ptr %11, align 1
  br i1 %532, label %533, label %534

533:                                              ; preds = %531
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #5
  br label %534

534:                                              ; preds = %533, %531
  %535 = load i1, ptr %9, align 1
  br i1 %535, label %536, label %537

536:                                              ; preds = %534
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  br label %537

537:                                              ; preds = %536, %534
  %538 = load i1, ptr %7, align 1
  br i1 %538, label %539, label %540

539:                                              ; preds = %537
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #5
  br label %540

540:                                              ; preds = %539, %537
  br label %726

541:                                              ; preds = %242
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %21, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %22, align 4
  br label %687

545:                                              ; preds = %243
  %546 = landingpad { ptr, i32 }
          cleanup
  %547 = extractvalue { ptr, i32 } %546, 0
  store ptr %547, ptr %21, align 8
  %548 = extractvalue { ptr, i32 } %546, 1
  store i32 %548, ptr %22, align 4
  br label %683

549:                                              ; preds = %244
  %550 = landingpad { ptr, i32 }
          cleanup
  %551 = extractvalue { ptr, i32 } %550, 0
  store ptr %551, ptr %21, align 8
  %552 = extractvalue { ptr, i32 } %550, 1
  store i32 %552, ptr %22, align 4
  br label %670

553:                                              ; preds = %245
  %554 = landingpad { ptr, i32 }
          cleanup
  %555 = extractvalue { ptr, i32 } %554, 0
  store ptr %555, ptr %21, align 8
  %556 = extractvalue { ptr, i32 } %554, 1
  store i32 %556, ptr %22, align 4
  br label %666

557:                                              ; preds = %246
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %21, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %22, align 4
  br label %662

561:                                              ; preds = %247
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %21, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %22, align 4
  br label %649

565:                                              ; preds = %248
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %21, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %22, align 4
  br label %645

569:                                              ; preds = %249
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %21, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %22, align 4
  br label %641

573:                                              ; preds = %250
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %21, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %22, align 4
  br label %634

577:                                              ; preds = %251
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %21, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %22, align 4
  br label %630

581:                                              ; preds = %252
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %21, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %22, align 4
  br label %617

585:                                              ; preds = %253
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %21, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %22, align 4
  br label %604

589:                                              ; preds = %254
  %590 = landingpad { ptr, i32 }
          cleanup
  %591 = extractvalue { ptr, i32 } %590, 0
  store ptr %591, ptr %21, align 8
  %592 = extractvalue { ptr, i32 } %590, 1
  store i32 %592, ptr %22, align 4
  br label %600

593:                                              ; preds = %255
  %594 = landingpad { ptr, i32 }
          cleanup
  %595 = extractvalue { ptr, i32 } %594, 0
  store ptr %595, ptr %21, align 8
  %596 = extractvalue { ptr, i32 } %594, 1
  store i32 %596, ptr %22, align 4
  %597 = load i1, ptr %112, align 1
  br i1 %597, label %598, label %599

598:                                              ; preds = %593
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #5
  br label %599

599:                                              ; preds = %598, %593
  br label %600

600:                                              ; preds = %599, %589
  %601 = load i1, ptr %111, align 1
  br i1 %601, label %602, label %603

602:                                              ; preds = %600
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #5
  br label %603

603:                                              ; preds = %602, %600
  br label %604

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

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

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

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

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

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

613:                                              ; preds = %612, %610
  %614 = load i1, ptr %105, 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) %100) #5
  br label %616

616:                                              ; preds = %615, %613
  br label %617

617:                                              ; preds = %616, %581
  %618 = load i1, ptr %104, align 1
  br i1 %618, label %619, label %620

619:                                              ; preds = %617
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #5
  br label %620

620:                                              ; preds = %619, %617
  %621 = load i1, ptr %103, align 1
  br i1 %621, label %622, label %623

622:                                              ; preds = %620
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #5
  br label %623

623:                                              ; preds = %622, %620
  %624 = load i1, ptr %101, align 1
  br i1 %624, label %625, label %626

625:                                              ; preds = %623
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #5
  br label %626

626:                                              ; preds = %625, %623
  %627 = load i1, ptr %98, align 1
  br i1 %627, label %628, label %629

628:                                              ; preds = %626
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #5
  br label %629

629:                                              ; preds = %628, %626
  br label %630

630:                                              ; preds = %629, %577
  %631 = load i1, ptr %97, align 1
  br i1 %631, label %632, label %633

632:                                              ; preds = %630
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #5
  br label %633

633:                                              ; preds = %632, %630
  br label %634

634:                                              ; preds = %633, %573
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #5
  %635 = load i1, ptr %95, align 1
  br i1 %635, label %636, label %637

636:                                              ; preds = %634
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #5
  br label %637

637:                                              ; preds = %636, %634
  %638 = load i1, ptr %93, 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) %61) #5
  br label %640

640:                                              ; preds = %639, %637
  br label %641

641:                                              ; preds = %640, %569
  %642 = load i1, ptr %92, align 1
  br i1 %642, label %643, label %644

643:                                              ; preds = %641
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #5
  br label %644

644:                                              ; preds = %643, %641
  br label %645

645:                                              ; preds = %644, %565
  %646 = load i1, ptr %91, align 1
  br i1 %646, label %647, label %648

647:                                              ; preds = %645
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #5
  br label %648

648:                                              ; preds = %647, %645
  br label %649

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

651:                                              ; preds = %649
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #5
  br label %652

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

654:                                              ; preds = %652
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #5
  br label %655

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

657:                                              ; preds = %655
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #5
  br label %658

658:                                              ; preds = %657, %655
  %659 = load i1, ptr %85, 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) %65) #5
  br label %661

661:                                              ; preds = %660, %658
  br label %662

662:                                              ; preds = %661, %557
  %663 = load i1, ptr %84, align 1
  br i1 %663, label %664, label %665

664:                                              ; preds = %662
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #5
  br label %665

665:                                              ; preds = %664, %662
  br label %666

666:                                              ; preds = %665, %553
  %667 = load i1, ptr %83, align 1
  br i1 %667, label %668, label %669

668:                                              ; preds = %666
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #5
  br label %669

669:                                              ; preds = %668, %666
  br label %670

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

672:                                              ; preds = %670
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #5
  br label %673

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

675:                                              ; preds = %673
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #5
  br label %676

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

678:                                              ; preds = %676
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #5
  br label %679

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

681:                                              ; preds = %679
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #5
  br label %682

682:                                              ; preds = %681, %679
  br label %683

683:                                              ; preds = %682, %545
  %684 = load i1, ptr %76, align 1
  br i1 %684, label %685, label %686

685:                                              ; preds = %683
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #5
  br label %686

686:                                              ; preds = %685, %683
  br label %687

687:                                              ; preds = %686, %541
  %688 = load i1, ptr %75, align 1
  br i1 %688, label %689, label %690

689:                                              ; preds = %687
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #5
  br label %690

690:                                              ; preds = %689, %687
  %691 = load i1, ptr %74, align 1
  br i1 %691, label %692, label %693

692:                                              ; preds = %690
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #5
  br label %693

693:                                              ; preds = %692, %690
  %694 = load i1, ptr %72, align 1
  br i1 %694, label %695, label %696

695:                                              ; preds = %693
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #5
  br label %696

696:                                              ; preds = %695, %693
  %697 = load i1, ptr %70, align 1
  br i1 %697, label %698, label %699

698:                                              ; preds = %696
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #5
  br label %699

699:                                              ; preds = %698, %696
  %700 = load i1, ptr %68, align 1
  br i1 %700, label %701, label %702

701:                                              ; preds = %699
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #5
  br label %702

702:                                              ; preds = %701, %699
  %703 = load i1, ptr %66, align 1
  br i1 %703, label %704, label %705

704:                                              ; preds = %702
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #5
  br label %705

705:                                              ; preds = %704, %702
  %706 = load i1, ptr %64, align 1
  br i1 %706, label %707, label %708

707:                                              ; preds = %705
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #5
  br label %708

708:                                              ; preds = %707, %705
  %709 = load i1, ptr %62, align 1
  br i1 %709, label %710, label %711

710:                                              ; preds = %708
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #5
  br label %711

711:                                              ; preds = %710, %708
  br label %726

712:                                              ; preds = %362
  %713 = getelementptr inbounds %class.ElemModel, ptr %113, i32 0, i32 4
  %714 = load ptr, ptr %713, align 8, !tbaa !18
  %715 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %714)
  %716 = getelementptr inbounds %class.VoidElem, ptr %113, i32 0, i32 4
  %717 = load double, ptr %716, align 8, !tbaa !19
  %718 = call double @cos(double noundef %717) #5
  %719 = fmul double 2.000000e+00, %718
  %720 = fmul double %715, %719
  %721 = getelementptr inbounds %class.ElemModel, ptr %113, i32 0, i32 5
  %722 = load double, ptr %721, align 8, !tbaa !21
  %723 = fdiv double %720, %722
  %724 = getelementptr inbounds %class.ElemModel, ptr %113, i32 0, i32 15
  store double %723, ptr %724, align 8, !tbaa !22
  br label %725

725:                                              ; preds = %712, %369
  ret void

726:                                              ; preds = %711, %540
  %727 = load ptr, ptr %21, align 8
  %728 = load i32, ptr %22, align 4
  %729 = insertvalue { ptr, i32 } poison, ptr %727, 0
  %730 = insertvalue { ptr, i32 } %729, i32 %728, 1
  resume { ptr, i32 } %730
}

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) #2

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare double @cos(double noundef) #4

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #5 = { 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 24}
!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 = !{!14, !14, i64 0}
!17 = !{!12, !6, i64 48}
!18 = !{!12, !6, i64 32}
!19 = !{!20, !10, i64 176}
!20 = !{!"_ZTS8VoidElem", !12, i64 0, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176}
!21 = !{!12, !10, i64 40}
!22 = !{!12, !10, i64 88}


; 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::__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.2" = type { i8 }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@__FUNCTION__._ZN6Circle16initOilInjectionEd = external hidden unnamed_addr constant [17 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [102 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
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Circle16initOilInjectionEd(ptr nocapture noundef nonnull align 8 dereferenceable(184) %0, double noundef %1) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__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::allocator.2", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator.2", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.2", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.2", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.2", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator.2", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.2", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator.2", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca i32, align 4
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.2", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.2", align 1
  %41 = getelementptr inbounds i8, ptr %0, i64 24
  %42 = load ptr, ptr %41, align 8, !tbaa !5
  %43 = tail call noundef i32 @_ZNK4Elem6nCnctsEv(ptr noundef nonnull align 8 dereferenceable(408) %42)
  %44 = icmp slt i32 %43, 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #5
  br i1 %44, label %45, label %60

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

46:                                               ; preds = %45
  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.1)
          to label %47 unwind label %87

47:                                               ; preds = %46
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @__FUNCTION__._ZN6Circle16initOilInjectionEd, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %48 unwind label %89

48:                                               ; preds = %47
  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) %11)
          to label %49 unwind label %91

49:                                               ; preds = %48
  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.2)
          to label %50 unwind label %93

50:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %51 unwind label %95

51:                                               ; preds = %50
  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) %13)
          to label %52 unwind label %97

52:                                               ; preds = %51
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.4)
          to label %53 unwind label %99

53:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #5
  store i32 27, ptr %16, align 4, !tbaa !14
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %54 unwind label %101

54:                                               ; preds = %53
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %55 unwind label %103

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

56:                                               ; preds = %55
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %57 unwind label %107

57:                                               ; preds = %56
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %58 unwind label %109

58:                                               ; preds = %57
  %59 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %3, ptr noundef nonnull %17, i32 noundef 0)
          to label %.critedge273 unwind label %111

60:                                               ; preds = %2
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  br label %.critedge294

.critedge273:                                     ; preds = %58
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #5
  br label %.critedge294

.critedge294:                                     ; preds = %60, %.critedge273
  %61 = load ptr, ptr %41, align 8, !tbaa !5
  %62 = call noundef zeroext i1 @_ZNK4Apex15isInOilFloodVecEv(ptr noundef nonnull align 8 dereferenceable(104) %61)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  br i1 %62, label %63, label %78

63:                                               ; preds = %.critedge294
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %64 unwind label %126

64:                                               ; preds = %63
  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.1)
          to label %65 unwind label %128

65:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @__FUNCTION__._ZN6Circle16initOilInjectionEd, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %66 unwind label %130

66:                                               ; preds = %65
  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) %30)
          to label %67 unwind label %132

67:                                               ; preds = %66
  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.2)
          to label %68 unwind label %134

68:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %69 unwind label %136

69:                                               ; preds = %68
  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) %32)
          to label %70 unwind label %138

70:                                               ; preds = %69
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.4)
          to label %71 unwind label %140

71:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #5
  store i32 30, ptr %35, align 4, !tbaa !14
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %72 unwind label %142

72:                                               ; preds = %71
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %73 unwind label %144

73:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %74 unwind label %146

74:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %75 unwind label %148

75:                                               ; preds = %74
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %76 unwind label %150

76:                                               ; preds = %75
  %77 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %22, ptr noundef nonnull %36, i32 noundef 0)
          to label %.critedge309 unwind label %152

78:                                               ; preds = %.critedge294
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  br label %.critedge330

.critedge309:                                     ; preds = %76
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  br label %.critedge330

.critedge330:                                     ; preds = %78, %.critedge309
  %79 = getelementptr inbounds i8, ptr %0, i64 48
  %80 = load ptr, ptr %79, align 8, !tbaa !15
  %81 = getelementptr inbounds i8, ptr %0, i64 32
  %82 = load ptr, ptr %81, align 8, !tbaa !16
  %83 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK7GNMData3oilEv(ptr noundef nonnull align 8 dereferenceable(984) %82)
  %84 = icmp eq ptr %80, %83
  br i1 %84, label %179, label %167

85:                                               ; preds = %45
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %125

87:                                               ; preds = %46
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %124

89:                                               ; preds = %47
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %123

91:                                               ; preds = %48
  %92 = landingpad { ptr, i32 }
          cleanup
  br label %122

93:                                               ; preds = %49
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %121

95:                                               ; preds = %50
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %120

97:                                               ; preds = %51
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %119

99:                                               ; preds = %52
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %118

101:                                              ; preds = %53
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %117

103:                                              ; preds = %54
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %116

105:                                              ; preds = %55
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %115

107:                                              ; preds = %56
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %114

109:                                              ; preds = %57
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %113

111:                                              ; preds = %58
  %112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  br label %113

113:                                              ; preds = %109, %111
  %.pn = phi { ptr, i32 } [ %112, %111 ], [ %110, %109 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  br label %114

114:                                              ; preds = %107, %113
  %.pn.pn = phi { ptr, i32 } [ %.pn, %113 ], [ %108, %107 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  br label %115

115:                                              ; preds = %105, %114
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %114 ], [ %106, %105 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  br label %116

116:                                              ; preds = %103, %115
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %115 ], [ %104, %103 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  br label %117

117:                                              ; preds = %116, %101
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %116 ], [ %102, %101 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #5
  br label %118

118:                                              ; preds = %99, %117
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %117 ], [ %100, %99 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  br label %119

119:                                              ; preds = %97, %118
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %118 ], [ %98, %97 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %120

120:                                              ; preds = %95, %119
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %119 ], [ %96, %95 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #5
  br label %121

121:                                              ; preds = %93, %120
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %120 ], [ %94, %93 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  br label %122

122:                                              ; preds = %91, %121
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %121 ], [ %92, %91 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  br label %123

123:                                              ; preds = %89, %122
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %122 ], [ %90, %89 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %124

124:                                              ; preds = %87, %123
  %.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, %123 ], [ %88, %87 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  br label %125

125:                                              ; preds = %85, %124
  %.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, %124 ], [ %86, %85 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #5
  br label %180

126:                                              ; preds = %63
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %166

128:                                              ; preds = %64
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %165

130:                                              ; preds = %65
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %164

132:                                              ; preds = %66
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %163

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

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

138:                                              ; preds = %69
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %160

140:                                              ; preds = %70
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %159

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

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

146:                                              ; preds = %73
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %156

148:                                              ; preds = %74
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %155

150:                                              ; preds = %75
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %154

152:                                              ; preds = %76
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  br label %154

154:                                              ; preds = %150, %152
  %.pn246 = phi { ptr, i32 } [ %153, %152 ], [ %151, %150 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  br label %155

155:                                              ; preds = %148, %154
  %.pn246.pn = phi { ptr, i32 } [ %.pn246, %154 ], [ %149, %148 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #5
  br label %156

156:                                              ; preds = %146, %155
  %.pn246.pn.pn = phi { ptr, i32 } [ %.pn246.pn, %155 ], [ %147, %146 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br label %157

157:                                              ; preds = %144, %156
  %.pn246.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn, %156 ], [ %145, %144 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  br label %158

158:                                              ; preds = %157, %142
  %.pn246.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn, %157 ], [ %143, %142 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  br label %159

159:                                              ; preds = %140, %158
  %.pn246.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn, %158 ], [ %141, %140 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  br label %160

160:                                              ; preds = %138, %159
  %.pn246.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn, %159 ], [ %139, %138 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  br label %161

161:                                              ; preds = %136, %160
  %.pn246.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn, %160 ], [ %137, %136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  br label %162

162:                                              ; preds = %134, %161
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn, %161 ], [ %135, %134 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  br label %163

163:                                              ; preds = %132, %162
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn, %162 ], [ %133, %132 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  br label %164

164:                                              ; preds = %130, %163
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn, %163 ], [ %131, %130 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br label %165

165:                                              ; preds = %128, %164
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %164 ], [ %129, %128 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %166

166:                                              ; preds = %126, %165
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %165 ], [ %127, %126 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  br label %180

167:                                              ; preds = %.critedge330
  %168 = load ptr, ptr %81, align 8, !tbaa !16
  %169 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %168)
  %170 = getelementptr inbounds i8, ptr %0, i64 176
  %171 = load double, ptr %170, align 8, !tbaa !17
  %172 = call double @cos(double noundef %171) #5
  %173 = fmul double %172, 2.000000e+00
  %174 = fmul double %169, %173
  %175 = getelementptr inbounds i8, ptr %0, i64 40
  %176 = load double, ptr %175, align 8, !tbaa !19
  %177 = fdiv double %174, %176
  %178 = getelementptr inbounds i8, ptr %0, i64 88
  store double %177, ptr %178, align 8, !tbaa !20
  br label %179

179:                                              ; preds = %.critedge330, %167
  ret void

180:                                              ; preds = %166, %125
  %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %166 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %125 ]
  resume { ptr, i32 } %.pn246.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4Elem6nCnctsEv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #1 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4Apex15isInOilFloodVecEv(ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #1 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 #1 align 2

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @cos(double noundef) local_unnamed_addr #4

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #5 = { 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 24}
!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 = !{!12, !12, i64 0}
!15 = !{!6, !10, i64 48}
!16 = !{!6, !10, i64 32}
!17 = !{!18, !7, i64 176}
!18 = !{!"_ZTS8VoidElem", !6, i64 0, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176}
!19 = !{!6, !7, i64 40}
!20 = !{!6, !7, i64 88}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass