; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnextract/blockNet.ll (ZNK12blockNetwork8writePNMEv)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.79" = type { i8 }
%class.var3 = type { double, double, double }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::_Rb_tree_const_iterator.82" = type { ptr }
%class.blockNetwork = type { ptr, i32, i32, i32, ptr, %"struct.std::array", %class.voxelImageT.34, %"class.std::vector.36", %"class.std::vector.41", %"class.std::vector.46", %"class.std::vector.46", i32, i32, i32, i32 }
%"struct.std::array" = type { [8 x %class.voxel] }
%class.voxel = type <{ ptr, i16, i16, i16, [2 x i8], float, [4 x i8] }>
%class.voxelImageT.34 = type { %class.voxelImageTBase, %class.voxelField.35, %class.var3, %class.var3 }
%class.voxelImageTBase = type { ptr }
%class.voxelField.35 = type { ptr, i64, %class.var3.28, %"class.std::vector.18" }
%class.var3.28 = type { i32, i32, i32 }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<poreNE *, std::allocator<poreNE *>>::_Vector_impl" }
%"struct.std::_Vector_base<poreNE *, std::allocator<poreNE *>>::_Vector_impl" = type { %"struct.std::_Vector_base<poreNE *, std::allocator<poreNE *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<poreNE *, std::allocator<poreNE *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = type { %"struct.std::_Vector_base<throatNE *, std::allocator<throatNE *>>::_Vector_impl" }
%"struct.std::_Vector_base<throatNE *, std::allocator<throatNE *>>::_Vector_impl" = type { %"struct.std::_Vector_base<throatNE *, std::allocator<throatNE *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<throatNE *, std::allocator<throatNE *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.46" = type { %"struct.std::_Vector_base.47" }
%"struct.std::_Vector_base.47" = type { %"struct.std::_Vector_base<medialBall *, std::allocator<medialBall *>>::_Vector_impl" }
%"struct.std::_Vector_base<medialBall *, std::allocator<medialBall *>>::_Vector_impl" = type { %"struct.std::_Vector_base<medialBall *, std::allocator<medialBall *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<medialBall *, std::allocator<medialBall *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.throatNE = type { i32, i32, i32, i32, i32, i16, i16, %"class.std::vector.61", %"class.std::vector.61", %class.var3 }
%"class.std::vector.61" = type { %"struct.std::_Vector_base.62" }
%"struct.std::_Vector_base.62" = type { %"struct.std::_Vector_base<voxel *, std::allocator<voxel *>>::_Vector_impl" }
%"struct.std::_Vector_base<voxel *, std::allocator<voxel *>>::_Vector_impl" = type { %"struct.std::_Vector_base<voxel *, std::allocator<voxel *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<voxel *, std::allocator<voxel *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.medialBall = type { ptr, float, float, float, i16, float, i16, i16, i16, i16, i16, ptr, ptr, ptr }
%class.inputDataNE = type { %class.InputFile.base, i32, i32, i32, i32, double, %class.var3, %"class.std::__cxx11::basic_string", i64, %"class.std::__cxx11::basic_string", %"class.std::vector.13", %class.segment, %"class.std::vector.18", %"class.std::vector.23", %class.voxelImageT }
%class.InputFile.base = type <{ %"class.std::vector.5", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8 }>
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<std::vector<segments>, std::allocator<std::vector<segments>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<segments>, std::allocator<std::vector<segments>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<segments>, std::allocator<std::vector<segments>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<segments>, std::allocator<std::vector<segments>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.segment = type { i32, i8, ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<poroRange, std::allocator<poroRange>>::_Vector_impl" }
%"struct.std::_Vector_base<poroRange, std::allocator<poroRange>>::_Vector_impl" = type { %"struct.std::_Vector_base<poroRange, std::allocator<poroRange>>::_Vector_impl_data" }
%"struct.std::_Vector_base<poroRange, std::allocator<poroRange>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.voxelImageT = type { %class.voxelImageTBase, %class.voxelField, %class.var3, %class.var3 }
%class.voxelField = type { ptr, i64, %class.var3.28, %"class.std::vector.29" }
%"class.std::vector.29" = type { %"struct.std::_Vector_base.30" }
%"struct.std::_Vector_base.30" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.poreNE = type { i32, i32, %"class.std::map", ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int>>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, int>, std::_Select1st<std::pair<const int, int>>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::pair.66" = type { i32, i32 }

@_ZN12blockNetwork4nBP6E = external dso_local global i32, align 4
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.34 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [17 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK12blockNetwork8writePNMEv(ptr noundef nonnull align 8 dereferenceable(448) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::vector.77", align 8
  %4 = alloca double, align 8
  %5 = alloca %"class.std::allocator.79", align 1
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::vector.77", align 8
  %9 = alloca double, align 8
  %10 = alloca %"class.std::allocator.79", align 1
  %11 = alloca %"class.std::vector.77", align 8
  %12 = alloca double, align 8
  %13 = alloca %"class.std::allocator.79", align 1
  %14 = alloca %"class.std::vector.77", align 8
  %15 = alloca double, align 8
  %16 = alloca %"class.std::allocator.79", align 1
  %17 = alloca %"class.std::vector.77", align 8
  %18 = alloca double, align 8
  %19 = alloca %"class.std::allocator.79", align 1
  %20 = alloca %"class.std::vector.77", align 8
  %21 = alloca double, align 8
  %22 = alloca %"class.std::allocator.79", align 1
  %23 = alloca %"class.std::vector.77", align 8
  %24 = alloca double, align 8
  %25 = alloca %"class.std::allocator.79", align 1
  %26 = alloca %"class.std::vector.77", align 8
  %27 = alloca double, align 8
  %28 = alloca %"class.std::allocator.79", align 1
  %29 = alloca %"class.std::vector.77", align 8
  %30 = alloca double, align 8
  %31 = alloca %"class.std::allocator.79", align 1
  %32 = alloca %class.var3, align 8
  %33 = alloca i32, align 4
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca float, align 4
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca float, align 4
  %48 = alloca double, align 8
  %49 = alloca float, align 4
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca ptr, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca ptr, align 8
  %62 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %63 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca ptr, align 8
  %69 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %70 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca double, align 8
  %74 = alloca ptr, align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca ptr, align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca ptr, align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca i32, align 4
  %88 = alloca ptr, align 8
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca %"struct.std::_Rb_tree_const_iterator.82", align 8
  %92 = alloca %"struct.std::_Rb_tree_const_iterator.82", align 8
  %93 = alloca ptr, align 8
  %94 = alloca %"struct.std::_Rb_tree_const_iterator.82", align 8
  %95 = alloca %"struct.std::_Rb_tree_const_iterator.82", align 8
  %96 = alloca ptr, align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca i32, align 4
  %100 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %101 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %3) #8
  %102 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 12
  %103 = load i32, ptr %102, align 4, !tbaa !9
  %104 = sext i32 %103 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #8
  store double 0.000000e+00, ptr %4, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %5) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %104, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %105 unwind label %149

105:                                              ; preds = %1
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #8
  %106 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 12
  %107 = load i32, ptr %106, align 4, !tbaa !9
  %108 = sext i32 %107 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  store double 0.000000e+00, ptr %9, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %108, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %109 unwind label %153

109:                                              ; preds = %105
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #8
  %110 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 12
  %111 = load i32, ptr %110, align 4, !tbaa !9
  %112 = sext i32 %111 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  store double 0.000000e+00, ptr %12, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %112, ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %113 unwind label %157

113:                                              ; preds = %109
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #8
  %114 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 12
  %115 = load i32, ptr %114, align 4, !tbaa !9
  %116 = sext i32 %115 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  store double 0.000000e+00, ptr %15, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %116, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %117 unwind label %161

117:                                              ; preds = %113
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #8
  %118 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 12
  %119 = load i32, ptr %118, align 4, !tbaa !9
  %120 = sext i32 %119 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  store double 0.000000e+00, ptr %18, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %120, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %121 unwind label %165

121:                                              ; preds = %117
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #8
  %122 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 12
  %123 = load i32, ptr %122, align 4, !tbaa !9
  %124 = sext i32 %123 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  store double 0.000000e+00, ptr %21, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %124, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %125 unwind label %169

125:                                              ; preds = %121
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #8
  %126 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 11
  %127 = load i32, ptr %126, align 8, !tbaa !37
  %128 = sext i32 %127 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  store double 0.000000e+00, ptr %24, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %128, ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %129 unwind label %173

129:                                              ; preds = %125
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #8
  %130 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 11
  %131 = load i32, ptr %130, align 8, !tbaa !37
  %132 = sext i32 %131 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  store double 0.000000e+00, ptr %27, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %132, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %133 unwind label %177

133:                                              ; preds = %129
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #8
  %134 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 11
  %135 = load i32, ptr %134, align 8, !tbaa !37
  %136 = sext i32 %135 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  store double 0.000000e+00, ptr %30, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #8
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %136, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %137 unwind label %181

137:                                              ; preds = %133
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #8
  invoke void @_ZN4var3IdEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %32, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %138 unwind label %185

138:                                              ; preds = %137
  %139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.34)
          to label %140 unwind label %185

140:                                              ; preds = %138
  %141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %142 unwind label %185

142:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store i32 0, ptr %33, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  store double 0.000000e+00, ptr %34, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store double 0.000000e+00, ptr %35, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  store double 0.000000e+00, ptr %36, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  store i32 0, ptr %37, align 4, !tbaa !38
  br label %143

143:                                              ; preds = %556, %142
  %144 = load i32, ptr %37, align 4, !tbaa !38
  %145 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 12
  %146 = load i32, ptr %145, align 4, !tbaa !9
  %147 = icmp slt i32 %144, %146
  br i1 %147, label %189, label %148

148:                                              ; preds = %143
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %566

149:                                              ; preds = %1
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %6, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #8
  br label %1287

153:                                              ; preds = %105
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %6, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  br label %1286

157:                                              ; preds = %109
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %6, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  br label %1285

161:                                              ; preds = %113
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %6, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  br label %1284

165:                                              ; preds = %117
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %6, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  br label %1283

169:                                              ; preds = %121
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %6, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %1282

173:                                              ; preds = %125
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %6, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %1281

177:                                              ; preds = %129
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %6, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %1280

181:                                              ; preds = %133
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %6, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %1279

185:                                              ; preds = %140, %138, %137
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %6, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %7, align 4
  br label %1278

189:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  %190 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 8
  %191 = load i32, ptr %37, align 4, !tbaa !38
  %192 = sext i32 %191 to i64
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %192) #8
  %194 = load ptr, ptr %193, align 8, !tbaa !5
  store ptr %194, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  store double 0.000000e+00, ptr %39, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  store double 0.000000e+00, ptr %40, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  store double 0.000000e+00, ptr %41, align 8, !tbaa !36
  %195 = load ptr, ptr %38, align 8, !tbaa !5
  %196 = getelementptr inbounds %class.throatNE, ptr %195, i32 0, i32 3
  %197 = load i32, ptr %196, align 4, !tbaa !39
  %198 = icmp eq i32 %197, 0
  br i1 %198, label %199, label %202

199:                                              ; preds = %189
  %200 = load ptr, ptr %38, align 8, !tbaa !5
  %201 = getelementptr inbounds %class.throatNE, ptr %200, i32 0, i32 3
  store i32 6, ptr %201, align 4, !tbaa !39
  br label %202

202:                                              ; preds = %199, %189
  %203 = load ptr, ptr %38, align 8, !tbaa !5
  %204 = getelementptr inbounds %class.throatNE, ptr %203, i32 0, i32 9
  %205 = invoke noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %204)
          to label %206 unwind label %213

206:                                              ; preds = %202
  %207 = fcmp olt double %205, 1.000000e-02
  br i1 %207, label %208, label %217

208:                                              ; preds = %206
  %209 = load ptr, ptr %38, align 8, !tbaa !5
  %210 = getelementptr inbounds %class.throatNE, ptr %209, i32 0, i32 9
  %211 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %210, i64 noundef 0)
          to label %212 unwind label %213

212:                                              ; preds = %208
  store double 1.000000e-01, ptr %211, align 8, !tbaa !36
  br label %217

213:                                              ; preds = %217, %208, %202
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %6, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %7, align 4
  br label %565

217:                                              ; preds = %212, %206
  %218 = load ptr, ptr %38, align 8, !tbaa !5
  %219 = getelementptr inbounds %class.throatNE, ptr %218, i32 0, i32 9
  %220 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN4var3IdEpLERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(24) %219)
          to label %221 unwind label %213

221:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %222 = load ptr, ptr %38, align 8, !tbaa !5
  %223 = getelementptr inbounds %class.throatNE, ptr %222, i32 0, i32 1
  %224 = load i32, ptr %223, align 4, !tbaa !46
  %225 = icmp slt i32 %224, 2
  br i1 %225, label %226, label %252

226:                                              ; preds = %221
  %227 = load ptr, ptr %38, align 8, !tbaa !5
  %228 = getelementptr inbounds %class.throatNE, ptr %227, i32 0, i32 1
  %229 = load i32, ptr %228, align 4, !tbaa !46
  %230 = icmp eq i32 %229, 0
  br i1 %230, label %231, label %237

231:                                              ; preds = %226
  %232 = load ptr, ptr %38, align 8, !tbaa !5
  %233 = invoke noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %232)
          to label %234 unwind label %398

234:                                              ; preds = %231
  %235 = getelementptr inbounds %class.medialBall, ptr %233, i32 0, i32 1
  %236 = load float, ptr %235, align 8, !tbaa !47
  br label %249

237:                                              ; preds = %226
  %238 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %239 = load ptr, ptr %238, align 8, !tbaa !50
  %240 = getelementptr inbounds %class.inputDataNE, ptr %239, i32 0, i32 1
  %241 = load i32, ptr %240, align 4, !tbaa !51
  %242 = sitofp i32 %241 to float
  %243 = load ptr, ptr %38, align 8, !tbaa !5
  %244 = invoke noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %243)
          to label %245 unwind label %398

245:                                              ; preds = %237
  %246 = getelementptr inbounds %class.medialBall, ptr %244, i32 0, i32 1
  %247 = load float, ptr %246, align 8, !tbaa !47
  %248 = fsub float %242, %247
  br label %249

249:                                              ; preds = %245, %234
  %250 = phi float [ %236, %234 ], [ %248, %245 ]
  %251 = fpext float %250 to double
  br label %267

252:                                              ; preds = %221
  %253 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %254 = load ptr, ptr %38, align 8, !tbaa !5
  %255 = getelementptr inbounds %class.throatNE, ptr %254, i32 0, i32 1
  %256 = load i32, ptr %255, align 4, !tbaa !46
  %257 = sext i32 %256 to i64
  %258 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %253, i64 noundef %257) #8
  %259 = load ptr, ptr %258, align 8, !tbaa !5
  %260 = getelementptr inbounds %class.poreNE, ptr %259, i32 0, i32 3
  %261 = load ptr, ptr %260, align 8, !tbaa !77
  %262 = load ptr, ptr %38, align 8, !tbaa !5
  %263 = invoke noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %262)
          to label %264 unwind label %398

264:                                              ; preds = %252
  %265 = invoke noundef double @_Z4distPK10medialBallS1_(ptr noundef %261, ptr noundef %263)
          to label %266 unwind label %398

266:                                              ; preds = %264
  br label %267

267:                                              ; preds = %266, %249
  %268 = phi double [ %251, %249 ], [ %265, %266 ]
  store double %268, ptr %42, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %269 = load ptr, ptr %38, align 8, !tbaa !5
  %270 = getelementptr inbounds %class.throatNE, ptr %269, i32 0, i32 1
  %271 = load i32, ptr %270, align 4, !tbaa !46
  %272 = icmp slt i32 %271, 2
  br i1 %272, label %273, label %278

273:                                              ; preds = %267
  %274 = load ptr, ptr %38, align 8, !tbaa !5
  %275 = invoke noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %274)
          to label %276 unwind label %402

276:                                              ; preds = %273
  %277 = getelementptr inbounds %class.medialBall, ptr %275, i32 0, i32 5
  br label %289

278:                                              ; preds = %267
  %279 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %280 = load ptr, ptr %38, align 8, !tbaa !5
  %281 = getelementptr inbounds %class.throatNE, ptr %280, i32 0, i32 1
  %282 = load i32, ptr %281, align 4, !tbaa !46
  %283 = sext i32 %282 to i64
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %279, i64 noundef %283) #8
  %285 = load ptr, ptr %284, align 8, !tbaa !5
  %286 = getelementptr inbounds %class.poreNE, ptr %285, i32 0, i32 3
  %287 = load ptr, ptr %286, align 8, !tbaa !77
  %288 = getelementptr inbounds %class.medialBall, ptr %287, i32 0, i32 5
  br label %289

289:                                              ; preds = %278, %276
  %290 = phi ptr [ %277, %276 ], [ %288, %278 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  store float 1.000000e+00, ptr %44, align 4, !tbaa !87
  %291 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %290, ptr noundef nonnull align 4 dereferenceable(4) %44)
          to label %292 unwind label %406

292:                                              ; preds = %289
  %293 = load float, ptr %291, align 4, !tbaa !87
  %294 = fpext float %293 to double
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  store double %294, ptr %43, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %295 = load ptr, ptr %38, align 8, !tbaa !5
  %296 = getelementptr inbounds %class.throatNE, ptr %295, i32 0, i32 2
  %297 = load i32, ptr %296, align 8, !tbaa !88
  %298 = icmp slt i32 %297, 2
  br i1 %298, label %299, label %325

299:                                              ; preds = %292
  %300 = load ptr, ptr %38, align 8, !tbaa !5
  %301 = getelementptr inbounds %class.throatNE, ptr %300, i32 0, i32 2
  %302 = load i32, ptr %301, align 8, !tbaa !88
  %303 = icmp eq i32 %302, 0
  br i1 %303, label %304, label %310

304:                                              ; preds = %299
  %305 = load ptr, ptr %38, align 8, !tbaa !5
  %306 = invoke noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %305)
          to label %307 unwind label %410

307:                                              ; preds = %304
  %308 = getelementptr inbounds %class.medialBall, ptr %306, i32 0, i32 1
  %309 = load float, ptr %308, align 8, !tbaa !47
  br label %322

310:                                              ; preds = %299
  %311 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %312 = load ptr, ptr %311, align 8, !tbaa !50
  %313 = getelementptr inbounds %class.inputDataNE, ptr %312, i32 0, i32 1
  %314 = load i32, ptr %313, align 4, !tbaa !51
  %315 = sitofp i32 %314 to float
  %316 = load ptr, ptr %38, align 8, !tbaa !5
  %317 = invoke noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %316)
          to label %318 unwind label %410

318:                                              ; preds = %310
  %319 = getelementptr inbounds %class.medialBall, ptr %317, i32 0, i32 1
  %320 = load float, ptr %319, align 8, !tbaa !47
  %321 = fsub float %315, %320
  br label %322

322:                                              ; preds = %318, %307
  %323 = phi float [ %309, %307 ], [ %321, %318 ]
  %324 = fpext float %323 to double
  br label %340

325:                                              ; preds = %292
  %326 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %327 = load ptr, ptr %38, align 8, !tbaa !5
  %328 = getelementptr inbounds %class.throatNE, ptr %327, i32 0, i32 2
  %329 = load i32, ptr %328, align 8, !tbaa !88
  %330 = sext i32 %329 to i64
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %326, i64 noundef %330) #8
  %332 = load ptr, ptr %331, align 8, !tbaa !5
  %333 = getelementptr inbounds %class.poreNE, ptr %332, i32 0, i32 3
  %334 = load ptr, ptr %333, align 8, !tbaa !77
  %335 = load ptr, ptr %38, align 8, !tbaa !5
  %336 = invoke noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %335)
          to label %337 unwind label %410

337:                                              ; preds = %325
  %338 = invoke noundef double @_Z4distPK10medialBallS1_(ptr noundef %334, ptr noundef %336)
          to label %339 unwind label %410

339:                                              ; preds = %337
  br label %340

340:                                              ; preds = %339, %322
  %341 = phi double [ %324, %322 ], [ %338, %339 ]
  store double %341, ptr %45, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  %342 = load ptr, ptr %38, align 8, !tbaa !5
  %343 = getelementptr inbounds %class.throatNE, ptr %342, i32 0, i32 2
  %344 = load i32, ptr %343, align 8, !tbaa !88
  %345 = icmp slt i32 %344, 2
  br i1 %345, label %346, label %351

346:                                              ; preds = %340
  %347 = load ptr, ptr %38, align 8, !tbaa !5
  %348 = invoke noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %347)
          to label %349 unwind label %414

349:                                              ; preds = %346
  %350 = getelementptr inbounds %class.medialBall, ptr %348, i32 0, i32 5
  br label %362

351:                                              ; preds = %340
  %352 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %353 = load ptr, ptr %38, align 8, !tbaa !5
  %354 = getelementptr inbounds %class.throatNE, ptr %353, i32 0, i32 2
  %355 = load i32, ptr %354, align 8, !tbaa !88
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %352, i64 noundef %356) #8
  %358 = load ptr, ptr %357, align 8, !tbaa !5
  %359 = getelementptr inbounds %class.poreNE, ptr %358, i32 0, i32 3
  %360 = load ptr, ptr %359, align 8, !tbaa !77
  %361 = getelementptr inbounds %class.medialBall, ptr %360, i32 0, i32 5
  br label %362

362:                                              ; preds = %351, %349
  %363 = phi ptr [ %350, %349 ], [ %361, %351 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  store float 1.000000e+00, ptr %47, align 4, !tbaa !87
  %364 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %363, ptr noundef nonnull align 4 dereferenceable(4) %47)
          to label %365 unwind label %418

365:                                              ; preds = %362
  %366 = load float, ptr %364, align 4, !tbaa !87
  %367 = fpext float %366 to double
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  store double %367, ptr %46, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  %368 = load ptr, ptr %38, align 8, !tbaa !5
  %369 = invoke noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %368)
          to label %370 unwind label %422

370:                                              ; preds = %365
  %371 = getelementptr inbounds %class.medialBall, ptr %369, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  store float 5.000000e-01, ptr %49, align 4, !tbaa !87
  %372 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %371, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %373 unwind label %426

373:                                              ; preds = %370
  %374 = load float, ptr %372, align 4, !tbaa !87
  %375 = fpext float %374 to double
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  store double %375, ptr %48, align 8, !tbaa !36
  %376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %377 unwind label %422

377:                                              ; preds = %373
  %378 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %376, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %379 unwind label %422

379:                                              ; preds = %377
  %380 = load double, ptr %378, align 8, !tbaa !36
  store double %380, ptr %48, align 8, !tbaa !36
  %381 = load double, ptr %48, align 8, !tbaa !36
  %382 = call i32 @rand() #8
  %383 = sitofp i32 %382 to double
  %384 = fdiv double %383, 0x41DFFFFFFFC00000
  %385 = fsub double 5.000000e-01, %384
  %386 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %385, double %381)
  %387 = load i32, ptr %37, align 4, !tbaa !38
  %388 = sext i32 %387 to i64
  %389 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %388) #8
  store double %386, ptr %389, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %390 = load double, ptr %42, align 8, !tbaa !36
  %391 = load double, ptr %45, align 8, !tbaa !36
  %392 = fadd double %390, %391
  store double %392, ptr %50, align 8, !tbaa !36
  %393 = load double, ptr %50, align 8, !tbaa !36
  %394 = fcmp olt double %393, 3.000000e+00
  br i1 %394, label %395, label %430

395:                                              ; preds = %379
  store double 3.010000e+00, ptr %50, align 8, !tbaa !36
  %396 = load i32, ptr %33, align 4, !tbaa !38
  %397 = add nsw i32 %396, 1
  store i32 %397, ptr %33, align 4, !tbaa !38
  br label %430

398:                                              ; preds = %264, %252, %237, %231
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %6, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %7, align 4
  br label %564

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

406:                                              ; preds = %289
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %6, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %563

410:                                              ; preds = %337, %325, %310, %304
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %6, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %7, align 4
  br label %562

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

418:                                              ; preds = %362
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %6, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %561

422:                                              ; preds = %377, %373, %365
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %6, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %7, align 4
  br label %560

426:                                              ; preds = %370
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %6, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %560

430:                                              ; preds = %395, %379
  %431 = load double, ptr %42, align 8, !tbaa !36
  %432 = fmul double %431, 6.700000e-01
  store double %432, ptr %40, align 8, !tbaa !36
  %433 = load double, ptr %45, align 8, !tbaa !36
  %434 = fmul double %433, 6.700000e-01
  store double %434, ptr %41, align 8, !tbaa !36
  %435 = load ptr, ptr %38, align 8, !tbaa !5
  %436 = getelementptr inbounds %class.throatNE, ptr %435, i32 0, i32 1
  %437 = load i32, ptr %436, align 4, !tbaa !46
  %438 = icmp slt i32 %437, 2
  br i1 %438, label %439, label %440

439:                                              ; preds = %430
  store double 1.000000e+00, ptr %40, align 8, !tbaa !36
  br label %440

440:                                              ; preds = %439, %430
  %441 = load ptr, ptr %38, align 8, !tbaa !5
  %442 = getelementptr inbounds %class.throatNE, ptr %441, i32 0, i32 2
  %443 = load i32, ptr %442, align 8, !tbaa !88
  %444 = icmp slt i32 %443, 2
  br i1 %444, label %445, label %446

445:                                              ; preds = %440
  store double 1.000000e+00, ptr %41, align 8, !tbaa !36
  br label %446

446:                                              ; preds = %445, %440
  %447 = load double, ptr %50, align 8, !tbaa !36
  %448 = load double, ptr %40, align 8, !tbaa !36
  %449 = fsub double %447, %448
  %450 = load double, ptr %41, align 8, !tbaa !36
  %451 = fsub double %449, %450
  store double %451, ptr %39, align 8, !tbaa !36
  %452 = load double, ptr %39, align 8, !tbaa !36
  %453 = fcmp olt double %452, 0x3E7AD7F29ABCAF48
  br i1 %453, label %454, label %455

454:                                              ; preds = %446
  store double 1.000000e+00, ptr %39, align 8, !tbaa !36
  br label %455

455:                                              ; preds = %454, %446
  %456 = load double, ptr %48, align 8, !tbaa !36
  %457 = load double, ptr %48, align 8, !tbaa !36
  %458 = fmul double %456, %457
  %459 = fdiv double %458, 4.000000e+00
  %460 = load ptr, ptr %38, align 8, !tbaa !5
  %461 = getelementptr inbounds %class.throatNE, ptr %460, i32 0, i32 9
  %462 = invoke noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %461)
          to label %463 unwind label %491

463:                                              ; preds = %455
  %464 = fdiv double %459, %462
  %465 = load i32, ptr %37, align 4, !tbaa !38
  %466 = sext i32 %465 to i64
  %467 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %466) #8
  store double %464, ptr %467, align 8, !tbaa !36
  %468 = load i32, ptr %37, align 4, !tbaa !38
  %469 = sext i32 %468 to i64
  %470 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %469) #8
  %471 = load double, ptr %470, align 8, !tbaa !36
  %472 = fcmp oge double %471, 0x3FB70A3D70A3D70A
  br i1 %472, label %473, label %499

473:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  store double 7.900000e-02, ptr %51, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  %474 = load i32, ptr %37, align 4, !tbaa !38
  %475 = sext i32 %474 to i64
  %476 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %475) #8
  %477 = load double, ptr %476, align 8, !tbaa !36
  %478 = fdiv double %477, 2.000000e+00
  store double %478, ptr %52, align 8, !tbaa !36
  %479 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %480 unwind label %495

480:                                              ; preds = %473
  %481 = load double, ptr %479, align 8, !tbaa !36
  %482 = load i32, ptr %37, align 4, !tbaa !38
  %483 = sext i32 %482 to i64
  %484 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %483) #8
  store double %481, ptr %484, align 8, !tbaa !36
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  %485 = load ptr, ptr %38, align 8, !tbaa !5
  %486 = getelementptr inbounds %class.throatNE, ptr %485, i32 0, i32 9
  %487 = invoke noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %486)
          to label %488 unwind label %491

488:                                              ; preds = %480
  %489 = load double, ptr %35, align 8, !tbaa !36
  %490 = fadd double %489, %487
  store double %490, ptr %35, align 8, !tbaa !36
  br label %499

491:                                              ; preds = %529, %509, %480, %455
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %6, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %7, align 4
  br label %559

495:                                              ; preds = %473
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %6, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %559

499:                                              ; preds = %488, %463
  %500 = load i32, ptr %37, align 4, !tbaa !38
  %501 = sext i32 %500 to i64
  %502 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %501) #8
  %503 = load double, ptr %502, align 8, !tbaa !36
  %504 = fcmp olt double %503, 1.000000e-02
  br i1 %504, label %505, label %529

505:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  %506 = invoke noundef double @_Z7randomGv()
          to label %507 unwind label %520

507:                                              ; preds = %505
  store double %506, ptr %53, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  store double 1.000000e-02, ptr %54, align 8, !tbaa !36
  %508 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %509 unwind label %524

509:                                              ; preds = %507
  %510 = load double, ptr %508, align 8, !tbaa !36
  %511 = load i32, ptr %37, align 4, !tbaa !38
  %512 = sext i32 %511 to i64
  %513 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %512) #8
  store double %510, ptr %513, align 8, !tbaa !36
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  %514 = load ptr, ptr %38, align 8, !tbaa !5
  %515 = getelementptr inbounds %class.throatNE, ptr %514, i32 0, i32 9
  %516 = invoke noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %515)
          to label %517 unwind label %491

517:                                              ; preds = %509
  %518 = load double, ptr %34, align 8, !tbaa !36
  %519 = fadd double %518, %516
  store double %519, ptr %34, align 8, !tbaa !36
  br label %529

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

524:                                              ; preds = %507
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %6, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %528

528:                                              ; preds = %524, %520
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  br label %559

529:                                              ; preds = %517, %499
  %530 = load ptr, ptr %38, align 8, !tbaa !5
  %531 = getelementptr inbounds %class.throatNE, ptr %530, i32 0, i32 9
  %532 = invoke noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %531)
          to label %533 unwind label %491

533:                                              ; preds = %529
  %534 = load double, ptr %36, align 8, !tbaa !36
  %535 = fadd double %534, %532
  store double %535, ptr %36, align 8, !tbaa !36
  %536 = load double, ptr %50, align 8, !tbaa !36
  %537 = fmul double %536, 1.000000e+00
  %538 = load i32, ptr %37, align 4, !tbaa !38
  %539 = sext i32 %538 to i64
  %540 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %539) #8
  store double %537, ptr %540, align 8, !tbaa !36
  %541 = load double, ptr %40, align 8, !tbaa !36
  %542 = fmul double %541, 1.000000e+00
  %543 = load i32, ptr %37, align 4, !tbaa !38
  %544 = sext i32 %543 to i64
  %545 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %544) #8
  store double %542, ptr %545, align 8, !tbaa !36
  %546 = load double, ptr %41, align 8, !tbaa !36
  %547 = fmul double %546, 1.000000e+00
  %548 = load i32, ptr %37, align 4, !tbaa !38
  %549 = sext i32 %548 to i64
  %550 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %549) #8
  store double %547, ptr %550, align 8, !tbaa !36
  %551 = load double, ptr %39, align 8, !tbaa !36
  %552 = fmul double %551, 1.000000e+00
  %553 = load i32, ptr %37, align 4, !tbaa !38
  %554 = sext i32 %553 to i64
  %555 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %554) #8
  store double %552, ptr %555, align 8, !tbaa !36
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  br label %556

556:                                              ; preds = %533
  %557 = load i32, ptr %37, align 4, !tbaa !38
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %37, align 4, !tbaa !38
  br label %143, !llvm.loop !89

559:                                              ; preds = %528, %495, %491
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %560

560:                                              ; preds = %559, %426, %422
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  br label %561

561:                                              ; preds = %560, %418, %414
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  br label %562

562:                                              ; preds = %561, %410
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  br label %563

563:                                              ; preds = %562, %406, %402
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %564

564:                                              ; preds = %563, %398
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %565

565:                                              ; preds = %564, %213
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1277

566:                                              ; preds = %148
  %567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.35)
          to label %568 unwind label %612

568:                                              ; preds = %566
  %569 = load i32, ptr %33, align 4, !tbaa !38
  %570 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %567, i32 noundef %569)
          to label %571 unwind label %612

571:                                              ; preds = %568
  %572 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %570, ptr noundef @.str.36)
          to label %573 unwind label %612

573:                                              ; preds = %571
  %574 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %572, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %575 unwind label %612

575:                                              ; preds = %573
  %576 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.37)
          to label %577 unwind label %612

577:                                              ; preds = %575
  %578 = load double, ptr %34, align 8, !tbaa !36
  %579 = load double, ptr %36, align 8, !tbaa !36
  %580 = fdiv double %578, %579
  %581 = fmul double %580, 1.000000e+02
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %576, double noundef %581)
          to label %583 unwind label %612

583:                                              ; preds = %577
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %582, ptr noundef @.str.38)
          to label %585 unwind label %612

585:                                              ; preds = %583
  %586 = load double, ptr %35, align 8, !tbaa !36
  %587 = load double, ptr %36, align 8, !tbaa !36
  %588 = fdiv double %586, %587
  %589 = fmul double %588, 1.000000e+02
  %590 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %584, double noundef %589)
          to label %591 unwind label %612

591:                                              ; preds = %585
  %592 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %590, ptr noundef @.str.39)
          to label %593 unwind label %612

593:                                              ; preds = %591
  %594 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %592, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %595 unwind label %612

595:                                              ; preds = %593
  %596 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.40)
          to label %597 unwind label %612

597:                                              ; preds = %595
  %598 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsIdERSoS0_RK4var3IT_E(ptr noundef nonnull align 8 dereferenceable(8) %596, ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %599 unwind label %612

599:                                              ; preds = %597
  %600 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %598, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %601 unwind label %612

601:                                              ; preds = %599
  %602 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.41)
          to label %603 unwind label %612

603:                                              ; preds = %601
  %604 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %602, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %605 unwind label %612

605:                                              ; preds = %603
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  store i32 2, ptr %55, align 4, !tbaa !38
  br label %606

606:                                              ; preds = %762, %605
  %607 = load i32, ptr %55, align 4, !tbaa !38
  %608 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 11
  %609 = load i32, ptr %608, align 8, !tbaa !37
  %610 = icmp slt i32 %607, %609
  br i1 %610, label %616, label %611

611:                                              ; preds = %606
  store i32 5, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %766

612:                                              ; preds = %771, %769, %603, %601, %599, %597, %595, %593, %591, %585, %583, %577, %575, %573, %571, %568, %566
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %6, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %7, align 4
  br label %1277

616:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %617 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %618 = load i32, ptr %55, align 4, !tbaa !38
  %619 = sext i32 %618 to i64
  %620 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %617, i64 noundef %619) #8
  %621 = load ptr, ptr %620, align 8, !tbaa !5
  store ptr %621, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %622 = load ptr, ptr %57, align 8, !tbaa !5
  %623 = getelementptr inbounds %class.poreNE, ptr %622, i32 0, i32 3
  %624 = load ptr, ptr %623, align 8, !tbaa !77
  %625 = getelementptr inbounds %class.medialBall, ptr %624, i32 0, i32 5
  %626 = load float, ptr %625, align 8, !tbaa !91
  %627 = fpext float %626 to double
  store double %627, ptr %58, align 8, !tbaa !36
  %628 = load double, ptr %58, align 8, !tbaa !36
  %629 = load i32, ptr %55, align 4, !tbaa !38
  %630 = sext i32 %629 to i64
  %631 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %630) #8
  store double %628, ptr %631, align 8, !tbaa !36
  %632 = load ptr, ptr %57, align 8, !tbaa !5
  %633 = getelementptr inbounds %class.poreNE, ptr %632, i32 0, i32 0
  %634 = load i32, ptr %633, align 8, !tbaa !92
  %635 = icmp slt i32 %634, 1
  br i1 %635, label %636, label %639

636:                                              ; preds = %616
  %637 = load ptr, ptr %57, align 8, !tbaa !5
  %638 = getelementptr inbounds %class.poreNE, ptr %637, i32 0, i32 0
  store i32 6, ptr %638, align 8, !tbaa !92
  br label %639

639:                                              ; preds = %636, %616
  %640 = load ptr, ptr %57, align 8, !tbaa !5
  %641 = getelementptr inbounds %class.poreNE, ptr %640, i32 0, i32 1
  %642 = load i32, ptr %641, align 4, !tbaa !93
  %643 = icmp slt i32 %642, 1
  br i1 %643, label %644, label %647

644:                                              ; preds = %639
  %645 = load ptr, ptr %57, align 8, !tbaa !5
  %646 = getelementptr inbounds %class.poreNE, ptr %645, i32 0, i32 1
  store i32 1, ptr %646, align 4, !tbaa !93
  br label %647

647:                                              ; preds = %644, %639
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  store double 5.000000e-38, ptr %59, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #8
  store double 0x38754484932D2E72, ptr %60, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #8
  %648 = load ptr, ptr %57, align 8, !tbaa !5
  %649 = getelementptr inbounds %class.poreNE, ptr %648, i32 0, i32 2
  store ptr %649, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #8
  %650 = load ptr, ptr %61, align 8, !tbaa !5
  %651 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %650) #8
  %652 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %62, i32 0, i32 0
  store ptr %651, ptr %652, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #8
  %653 = load ptr, ptr %61, align 8, !tbaa !5
  %654 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %653) #8
  %655 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %63, i32 0, i32 0
  store ptr %654, ptr %655, align 8
  br label %656

656:                                              ; preds = %686, %647
  %657 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  br i1 %657, label %659, label %658

658:                                              ; preds = %656
  store i32 8, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  br label %692

659:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #8
  %660 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  store ptr %660, ptr %64, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  %661 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 8
  %662 = load ptr, ptr %64, align 8, !tbaa !5
  %663 = getelementptr inbounds %"struct.std::pair.66", ptr %662, i32 0, i32 1
  %664 = load i32, ptr %663, align 4, !tbaa !94
  %665 = sext i32 %664 to i64
  %666 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %661, i64 noundef %665) #8
  %667 = load ptr, ptr %666, align 8, !tbaa !5
  store ptr %667, ptr %65, align 8, !tbaa !5
  %668 = load ptr, ptr %64, align 8, !tbaa !5
  %669 = getelementptr inbounds %"struct.std::pair.66", ptr %668, i32 0, i32 1
  %670 = load i32, ptr %669, align 4, !tbaa !94
  %671 = sext i32 %670 to i64
  %672 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %671) #8
  %673 = load double, ptr %672, align 8, !tbaa !36
  %674 = load ptr, ptr %65, align 8, !tbaa !5
  %675 = getelementptr inbounds %class.throatNE, ptr %674, i32 0, i32 9
  %676 = invoke noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %675)
          to label %677 unwind label %688

677:                                              ; preds = %659
  %678 = load double, ptr %59, align 8, !tbaa !36
  %679 = call double @llvm.fmuladd.f64(double %673, double %676, double %678)
  store double %679, ptr %59, align 8, !tbaa !36
  %680 = load ptr, ptr %65, align 8, !tbaa !5
  %681 = getelementptr inbounds %class.throatNE, ptr %680, i32 0, i32 9
  %682 = invoke noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %681)
          to label %683 unwind label %688

683:                                              ; preds = %677
  %684 = load double, ptr %60, align 8, !tbaa !36
  %685 = fadd double %684, %682
  store double %685, ptr %60, align 8, !tbaa !36
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  br label %686

686:                                              ; preds = %683
  %687 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  br label %656

688:                                              ; preds = %677, %659
  %689 = landingpad { ptr, i32 }
          cleanup
  %690 = extractvalue { ptr, i32 } %689, 0
  store ptr %690, ptr %6, align 8
  %691 = extractvalue { ptr, i32 } %689, 1
  store i32 %691, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  br label %765

692:                                              ; preds = %658
  %693 = load double, ptr %60, align 8, !tbaa !36
  %694 = load double, ptr %59, align 8, !tbaa !36
  %695 = fdiv double %694, %693
  store double %695, ptr %59, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  %696 = load double, ptr %58, align 8, !tbaa !36
  %697 = load double, ptr %58, align 8, !tbaa !36
  %698 = fmul double %696, %697
  %699 = fdiv double %698, 4.000000e+00
  %700 = load double, ptr %59, align 8, !tbaa !36
  %701 = fdiv double %699, %700
  store double %701, ptr %66, align 8, !tbaa !36
  %702 = load double, ptr %66, align 8, !tbaa !36
  %703 = load double, ptr %60, align 8, !tbaa !36
  %704 = fadd double %703, %702
  store double %704, ptr %60, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #8
  %705 = load ptr, ptr %57, align 8, !tbaa !5
  %706 = getelementptr inbounds %class.poreNE, ptr %705, i32 0, i32 1
  %707 = load i32, ptr %706, align 4, !tbaa !93
  %708 = sitofp i32 %707 to double
  store double %708, ptr %67, align 8, !tbaa !36
  %709 = load double, ptr %67, align 8, !tbaa !36
  %710 = load double, ptr %66, align 8, !tbaa !36
  %711 = fmul double %709, %710
  %712 = load double, ptr %60, align 8, !tbaa !36
  %713 = fdiv double %711, %712
  %714 = fptosi double %713 to i32
  %715 = load ptr, ptr %57, align 8, !tbaa !5
  %716 = getelementptr inbounds %class.poreNE, ptr %715, i32 0, i32 1
  store i32 %714, ptr %716, align 4, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  %717 = load ptr, ptr %57, align 8, !tbaa !5
  %718 = getelementptr inbounds %class.poreNE, ptr %717, i32 0, i32 2
  store ptr %718, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  %719 = load ptr, ptr %68, align 8, !tbaa !5
  %720 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %719) #8
  %721 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %69, i32 0, i32 0
  store ptr %720, ptr %721, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  %722 = load ptr, ptr %68, align 8, !tbaa !5
  %723 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %722) #8
  %724 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %70, i32 0, i32 0
  store ptr %723, ptr %724, align 8
  br label %725

725:                                              ; preds = %751, %692
  %726 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70) #8
  br i1 %726, label %728, label %727

727:                                              ; preds = %725
  store i32 10, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  br label %757

728:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  %729 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  store ptr %729, ptr %71, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  %730 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 8
  %731 = load ptr, ptr %71, align 8, !tbaa !5
  %732 = getelementptr inbounds %"struct.std::pair.66", ptr %731, i32 0, i32 1
  %733 = load i32, ptr %732, align 4, !tbaa !94
  %734 = sext i32 %733 to i64
  %735 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %730, i64 noundef %734) #8
  %736 = load ptr, ptr %735, align 8, !tbaa !5
  store ptr %736, ptr %72, align 8, !tbaa !5
  %737 = load double, ptr %67, align 8, !tbaa !36
  %738 = load ptr, ptr %72, align 8, !tbaa !5
  %739 = getelementptr inbounds %class.throatNE, ptr %738, i32 0, i32 9
  %740 = invoke noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %739)
          to label %741 unwind label %753

741:                                              ; preds = %728
  %742 = fmul double %737, %740
  %743 = load double, ptr %60, align 8, !tbaa !36
  %744 = fdiv double %742, %743
  %745 = load ptr, ptr %72, align 8, !tbaa !5
  %746 = getelementptr inbounds %class.throatNE, ptr %745, i32 0, i32 4
  %747 = load i32, ptr %746, align 8, !tbaa !96
  %748 = sitofp i32 %747 to double
  %749 = fadd double %748, %744
  %750 = fptosi double %749 to i32
  store i32 %750, ptr %746, align 8, !tbaa !96
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  br label %751

751:                                              ; preds = %741
  %752 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #8
  br label %725

753:                                              ; preds = %728
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %6, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  br label %765

757:                                              ; preds = %727
  %758 = load double, ptr %59, align 8, !tbaa !36
  %759 = load i32, ptr %55, align 4, !tbaa !38
  %760 = sext i32 %759 to i64
  %761 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %760) #8
  store double %758, ptr %761, align 8, !tbaa !36
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %762

762:                                              ; preds = %757
  %763 = load i32, ptr %55, align 4, !tbaa !38
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr %55, align 4, !tbaa !38
  br label %606, !llvm.loop !97

765:                                              ; preds = %753, %688
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %1277

766:                                              ; preds = %611
  %767 = load i32, ptr @_ZN12blockNetwork4nBP6E, align 4, !tbaa !38
  %768 = icmp ne i32 %767, 2
  br i1 %768, label %769, label %774

769:                                              ; preds = %766
  %770 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.42)
          to label %771 unwind label %612

771:                                              ; preds = %769
  %772 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %770, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %773 unwind label %612

773:                                              ; preds = %771
  store i32 1, ptr %56, align 4
  br label %1268

774:                                              ; preds = %766
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  %775 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %776 = load ptr, ptr %775, align 8, !tbaa !50
  %777 = getelementptr inbounds %class.inputDataNE, ptr %776, i32 0, i32 5
  %778 = load double, ptr %777, align 8, !tbaa !98
  store double %778, ptr %73, align 8, !tbaa !36
  %779 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.43)
          to label %780 unwind label %802

780:                                              ; preds = %774
  %781 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
          to label %782 unwind label %802

782:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #8
  %783 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %784 = load ptr, ptr %783, align 8, !tbaa !50
  invoke void @_ZNK9InputFile4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(122) %784)
          to label %785 unwind label %806

785:                                              ; preds = %782
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.44)
          to label %786 unwind label %810

786:                                              ; preds = %785
  %787 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  %788 = invoke noalias ptr @fopen(ptr noundef %787, ptr noundef @.str.45)
          to label %789 unwind label %814

789:                                              ; preds = %786
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  store ptr %788, ptr %74, align 8, !tbaa !5
  %790 = load ptr, ptr %74, align 8, !tbaa !5
  %791 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 8
  %792 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %791) #8
  %793 = trunc i64 %792 to i32
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %790, ptr noundef @.str.46, i32 noundef %793) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  store i32 0, ptr %77, align 4, !tbaa !38
  br label %795

795:                                              ; preds = %853, %789
  %796 = load i32, ptr %77, align 4, !tbaa !38
  %797 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 8
  %798 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %797) #8
  %799 = trunc i64 %798 to i32
  %800 = icmp slt i32 %796, %799
  br i1 %800, label %820, label %801

801:                                              ; preds = %795
  store i32 12, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  br label %860

802:                                              ; preds = %1265, %1263, %955, %953, %951, %949, %780, %774
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %6, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %7, align 4
  br label %1276

806:                                              ; preds = %782
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %6, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %7, align 4
  br label %819

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

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

818:                                              ; preds = %814, %810
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %819

819:                                              ; preds = %818, %806
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %882

820:                                              ; preds = %795
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #8
  %821 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 8
  %822 = load i32, ptr %77, align 4, !tbaa !38
  %823 = sext i32 %822 to i64
  %824 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %821, i64 noundef %823) #8
  %825 = load ptr, ptr %824, align 8, !tbaa !5
  store ptr %825, ptr %78, align 8, !tbaa !5
  %826 = load ptr, ptr %74, align 8, !tbaa !5
  %827 = load i32, ptr %77, align 4, !tbaa !38
  %828 = add nsw i32 %827, 1
  %829 = load ptr, ptr %78, align 8, !tbaa !5
  %830 = getelementptr inbounds %class.throatNE, ptr %829, i32 0, i32 1
  %831 = load i32, ptr %830, align 4, !tbaa !46
  %832 = sub nsw i32 %831, 1
  %833 = load ptr, ptr %78, align 8, !tbaa !5
  %834 = getelementptr inbounds %class.throatNE, ptr %833, i32 0, i32 2
  %835 = load i32, ptr %834, align 8, !tbaa !88
  %836 = sub nsw i32 %835, 1
  %837 = load ptr, ptr %78, align 8, !tbaa !5
  %838 = invoke noundef double @_ZNK8throatNE6radiusEv(ptr noundef nonnull align 8 dereferenceable(96) %837)
          to label %839 unwind label %856

839:                                              ; preds = %820
  %840 = load double, ptr %73, align 8, !tbaa !36
  %841 = fmul double %838, %840
  %842 = load i32, ptr %77, align 4, !tbaa !38
  %843 = sext i32 %842 to i64
  %844 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %843) #8
  %845 = load double, ptr %844, align 8, !tbaa !36
  %846 = load i32, ptr %77, align 4, !tbaa !38
  %847 = sext i32 %846 to i64
  %848 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %847) #8
  %849 = load double, ptr %848, align 8, !tbaa !36
  %850 = load double, ptr %73, align 8, !tbaa !36
  %851 = fmul double %849, %850
  %852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %826, ptr noundef @.str.47, i32 noundef %828, i32 noundef %832, i32 noundef %836, double noundef %841, double noundef %845, double noundef %851) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  br label %853

853:                                              ; preds = %839
  %854 = load i32, ptr %77, align 4, !tbaa !38
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr %77, align 4, !tbaa !38
  br label %795, !llvm.loop !99

856:                                              ; preds = %820
  %857 = landingpad { ptr, i32 }
          cleanup
  %858 = extractvalue { ptr, i32 } %857, 0
  store ptr %858, ptr %6, align 8
  %859 = extractvalue { ptr, i32 } %857, 1
  store i32 %859, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  br label %882

860:                                              ; preds = %801
  %861 = load ptr, ptr %74, align 8, !tbaa !5
  %862 = invoke i32 @fclose(ptr noundef %861)
          to label %863 unwind label %878

863:                                              ; preds = %860
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #8
  %864 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %865 = load ptr, ptr %864, align 8, !tbaa !50
  invoke void @_ZNK9InputFile4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 8 dereferenceable(122) %865)
          to label %866 unwind label %883

866:                                              ; preds = %863
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.48)
          to label %867 unwind label %887

867:                                              ; preds = %866
  %868 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  %869 = invoke noalias ptr @fopen(ptr noundef %868, ptr noundef @.str.45)
          to label %870 unwind label %891

870:                                              ; preds = %867
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  store ptr %869, ptr %79, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  store i32 0, ptr %82, align 4, !tbaa !38
  br label %871

871:                                              ; preds = %943, %870
  %872 = load i32, ptr %82, align 4, !tbaa !38
  %873 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 8
  %874 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %873) #8
  %875 = trunc i64 %874 to i32
  %876 = icmp slt i32 %872, %875
  br i1 %876, label %897, label %877

877:                                              ; preds = %871
  store i32 15, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  br label %946

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

882:                                              ; preds = %878, %856, %819
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  br label %1276

883:                                              ; preds = %863
  %884 = landingpad { ptr, i32 }
          cleanup
  %885 = extractvalue { ptr, i32 } %884, 0
  store ptr %885, ptr %6, align 8
  %886 = extractvalue { ptr, i32 } %884, 1
  store i32 %886, ptr %7, align 4
  br label %896

887:                                              ; preds = %866
  %888 = landingpad { ptr, i32 }
          cleanup
  %889 = extractvalue { ptr, i32 } %888, 0
  store ptr %889, ptr %6, align 8
  %890 = extractvalue { ptr, i32 } %888, 1
  store i32 %890, ptr %7, align 4
  br label %895

891:                                              ; preds = %867
  %892 = landingpad { ptr, i32 }
          cleanup
  %893 = extractvalue { ptr, i32 } %892, 0
  store ptr %893, ptr %6, align 8
  %894 = extractvalue { ptr, i32 } %892, 1
  store i32 %894, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  br label %895

895:                                              ; preds = %891, %887
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %896

896:                                              ; preds = %895, %883
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  br label %1003

897:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #8
  %898 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 8
  %899 = load i32, ptr %82, align 4, !tbaa !38
  %900 = sext i32 %899 to i64
  %901 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %898, i64 noundef %900) #8
  %902 = load ptr, ptr %901, align 8, !tbaa !5
  store ptr %902, ptr %83, align 8, !tbaa !5
  %903 = load ptr, ptr %79, align 8, !tbaa !5
  %904 = load i32, ptr %82, align 4, !tbaa !38
  %905 = add nsw i32 %904, 1
  %906 = load ptr, ptr %83, align 8, !tbaa !5
  %907 = getelementptr inbounds %class.throatNE, ptr %906, i32 0, i32 1
  %908 = load i32, ptr %907, align 4, !tbaa !46
  %909 = sub nsw i32 %908, 1
  %910 = load ptr, ptr %83, align 8, !tbaa !5
  %911 = getelementptr inbounds %class.throatNE, ptr %910, i32 0, i32 2
  %912 = load i32, ptr %911, align 8, !tbaa !88
  %913 = sub nsw i32 %912, 1
  %914 = load i32, ptr %82, align 4, !tbaa !38
  %915 = sext i32 %914 to i64
  %916 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %915) #8
  %917 = load double, ptr %916, align 8, !tbaa !36
  %918 = load double, ptr %73, align 8, !tbaa !36
  %919 = fmul double %917, %918
  %920 = load i32, ptr %82, align 4, !tbaa !38
  %921 = sext i32 %920 to i64
  %922 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %921) #8
  %923 = load double, ptr %922, align 8, !tbaa !36
  %924 = load double, ptr %73, align 8, !tbaa !36
  %925 = fmul double %923, %924
  %926 = load i32, ptr %82, align 4, !tbaa !38
  %927 = sext i32 %926 to i64
  %928 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %927) #8
  %929 = load double, ptr %928, align 8, !tbaa !36
  %930 = load double, ptr %73, align 8, !tbaa !36
  %931 = fmul double %929, %930
  %932 = load ptr, ptr %83, align 8, !tbaa !5
  %933 = getelementptr inbounds %class.throatNE, ptr %932, i32 0, i32 4
  %934 = load i32, ptr %933, align 8, !tbaa !96
  %935 = sitofp i32 %934 to double
  %936 = load double, ptr %73, align 8, !tbaa !36
  %937 = fmul double %935, %936
  %938 = load double, ptr %73, align 8, !tbaa !36
  %939 = fmul double %937, %938
  %940 = load double, ptr %73, align 8, !tbaa !36
  %941 = fmul double %939, %940
  %942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %903, ptr noundef @.str.49, i32 noundef %905, i32 noundef %909, i32 noundef %913, double noundef %919, double noundef %925, double noundef %931, double noundef %941, double noundef 0.000000e+00) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  br label %943

943:                                              ; preds = %897
  %944 = load i32, ptr %82, align 4, !tbaa !38
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr %82, align 4, !tbaa !38
  br label %871, !llvm.loop !100

946:                                              ; preds = %877
  %947 = load ptr, ptr %79, align 8, !tbaa !5
  %948 = invoke i32 @fclose(ptr noundef %947)
          to label %949 unwind label %999

949:                                              ; preds = %946
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  %950 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.50)
          to label %951 unwind label %802

951:                                              ; preds = %949
  %952 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
          to label %953 unwind label %802

953:                                              ; preds = %951
  %954 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.51)
          to label %955 unwind label %802

955:                                              ; preds = %953
  %956 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
          to label %957 unwind label %802

957:                                              ; preds = %955
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #8
  %958 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %959 = load ptr, ptr %958, align 8, !tbaa !50
  invoke void @_ZNK9InputFile4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(122) %959)
          to label %960 unwind label %1004

960:                                              ; preds = %957
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.52)
          to label %961 unwind label %1008

961:                                              ; preds = %960
  %962 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  %963 = invoke noalias ptr @fopen(ptr noundef %962, ptr noundef @.str.45)
          to label %964 unwind label %1012

964:                                              ; preds = %961
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #8
  store ptr %963, ptr %84, align 8, !tbaa !5
  %965 = load ptr, ptr %84, align 8, !tbaa !5
  %966 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %967 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %966) #8
  %968 = trunc i64 %967 to i32
  %969 = sub nsw i32 %968, 2
  %970 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %971 = load ptr, ptr %970, align 8, !tbaa !50
  %972 = getelementptr inbounds %class.inputDataNE, ptr %971, i32 0, i32 1
  %973 = load i32, ptr %972, align 4, !tbaa !51
  %974 = sitofp i32 %973 to double
  %975 = load double, ptr %73, align 8, !tbaa !36
  %976 = fmul double %974, %975
  %977 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %978 = load ptr, ptr %977, align 8, !tbaa !50
  %979 = getelementptr inbounds %class.inputDataNE, ptr %978, i32 0, i32 2
  %980 = load i32, ptr %979, align 8, !tbaa !101
  %981 = sitofp i32 %980 to double
  %982 = load double, ptr %73, align 8, !tbaa !36
  %983 = fmul double %981, %982
  %984 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %985 = load ptr, ptr %984, align 8, !tbaa !50
  %986 = getelementptr inbounds %class.inputDataNE, ptr %985, i32 0, i32 3
  %987 = load i32, ptr %986, align 4, !tbaa !102
  %988 = sitofp i32 %987 to double
  %989 = load double, ptr %73, align 8, !tbaa !36
  %990 = fmul double %988, %989
  %991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %965, ptr noundef @.str.53, i32 noundef %969, double noundef %976, double noundef %983, double noundef %990) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #8
  store i32 2, ptr %87, align 4, !tbaa !38
  br label %992

992:                                              ; preds = %1179, %964
  %993 = load i32, ptr %87, align 4, !tbaa !38
  %994 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %995 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %994) #8
  %996 = trunc i64 %995 to i32
  %997 = icmp slt i32 %993, %996
  br i1 %997, label %1018, label %998

998:                                              ; preds = %992
  store i32 18, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %1187

999:                                              ; preds = %946
  %1000 = landingpad { ptr, i32 }
          cleanup
  %1001 = extractvalue { ptr, i32 } %1000, 0
  store ptr %1001, ptr %6, align 8
  %1002 = extractvalue { ptr, i32 } %1000, 1
  store i32 %1002, ptr %7, align 4
  br label %1003

1003:                                             ; preds = %999, %896
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #8
  br label %1276

1004:                                             ; preds = %957
  %1005 = landingpad { ptr, i32 }
          cleanup
  %1006 = extractvalue { ptr, i32 } %1005, 0
  store ptr %1006, ptr %6, align 8
  %1007 = extractvalue { ptr, i32 } %1005, 1
  store i32 %1007, ptr %7, align 4
  br label %1017

1008:                                             ; preds = %960
  %1009 = landingpad { ptr, i32 }
          cleanup
  %1010 = extractvalue { ptr, i32 } %1009, 0
  store ptr %1010, ptr %6, align 8
  %1011 = extractvalue { ptr, i32 } %1009, 1
  store i32 %1011, ptr %7, align 4
  br label %1016

1012:                                             ; preds = %961
  %1013 = landingpad { ptr, i32 }
          cleanup
  %1014 = extractvalue { ptr, i32 } %1013, 0
  store ptr %1014, ptr %6, align 8
  %1015 = extractvalue { ptr, i32 } %1013, 1
  store i32 %1015, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  br label %1016

1016:                                             ; preds = %1012, %1008
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #8
  br label %1017

1017:                                             ; preds = %1016, %1004
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #8
  br label %1209

1018:                                             ; preds = %992
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #8
  %1019 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %1020 = load i32, ptr %87, align 4, !tbaa !38
  %1021 = sext i32 %1020 to i64
  %1022 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1019, i64 noundef %1021) #8
  %1023 = load ptr, ptr %1022, align 8, !tbaa !5
  store ptr %1023, ptr %88, align 8, !tbaa !5
  %1024 = load ptr, ptr %84, align 8, !tbaa !5
  %1025 = load i32, ptr %87, align 4, !tbaa !38
  %1026 = sub nsw i32 %1025, 1
  %1027 = load ptr, ptr %88, align 8, !tbaa !5
  %1028 = getelementptr inbounds %class.poreNE, ptr %1027, i32 0, i32 3
  %1029 = load ptr, ptr %1028, align 8, !tbaa !77
  %1030 = getelementptr inbounds %class.medialBall, ptr %1029, i32 0, i32 1
  %1031 = load float, ptr %1030, align 8, !tbaa !47
  %1032 = fpext float %1031 to double
  %1033 = load double, ptr %73, align 8, !tbaa !36
  %1034 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %1035 = load ptr, ptr %1034, align 8, !tbaa !50
  %1036 = getelementptr inbounds %class.inputDataNE, ptr %1035, i32 0, i32 6
  %1037 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %1036, i64 noundef 0)
          to label %1038 unwind label %1088

1038:                                             ; preds = %1018
  %1039 = load double, ptr %1037, align 8, !tbaa !36
  %1040 = fmul double 0.000000e+00, %1039
  %1041 = call double @llvm.fmuladd.f64(double %1032, double %1033, double %1040)
  %1042 = load ptr, ptr %88, align 8, !tbaa !5
  %1043 = getelementptr inbounds %class.poreNE, ptr %1042, i32 0, i32 3
  %1044 = load ptr, ptr %1043, align 8, !tbaa !77
  %1045 = getelementptr inbounds %class.medialBall, ptr %1044, i32 0, i32 2
  %1046 = load float, ptr %1045, align 4, !tbaa !103
  %1047 = fpext float %1046 to double
  %1048 = load double, ptr %73, align 8, !tbaa !36
  %1049 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %1050 = load ptr, ptr %1049, align 8, !tbaa !50
  %1051 = getelementptr inbounds %class.inputDataNE, ptr %1050, i32 0, i32 6
  %1052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %1051, i64 noundef 1)
          to label %1053 unwind label %1088

1053:                                             ; preds = %1038
  %1054 = load double, ptr %1052, align 8, !tbaa !36
  %1055 = fmul double 0.000000e+00, %1054
  %1056 = call double @llvm.fmuladd.f64(double %1047, double %1048, double %1055)
  %1057 = load ptr, ptr %88, align 8, !tbaa !5
  %1058 = getelementptr inbounds %class.poreNE, ptr %1057, i32 0, i32 3
  %1059 = load ptr, ptr %1058, align 8, !tbaa !77
  %1060 = getelementptr inbounds %class.medialBall, ptr %1059, i32 0, i32 3
  %1061 = load float, ptr %1060, align 8, !tbaa !104
  %1062 = fpext float %1061 to double
  %1063 = load double, ptr %73, align 8, !tbaa !36
  %1064 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %1065 = load ptr, ptr %1064, align 8, !tbaa !50
  %1066 = getelementptr inbounds %class.inputDataNE, ptr %1065, i32 0, i32 6
  %1067 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %1066, i64 noundef 2)
          to label %1068 unwind label %1088

1068:                                             ; preds = %1053
  %1069 = load double, ptr %1067, align 8, !tbaa !36
  %1070 = fmul double 0.000000e+00, %1069
  %1071 = call double @llvm.fmuladd.f64(double %1062, double %1063, double %1070)
  %1072 = load ptr, ptr %88, align 8, !tbaa !5
  %1073 = getelementptr inbounds %class.poreNE, ptr %1072, i32 0, i32 2
  %1074 = call noundef i64 @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %1073) #8
  %1075 = trunc i64 %1074 to i32
  %1076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1024, ptr noundef @.str.54, i32 noundef %1026, double noundef %1041, double noundef %1056, double noundef %1071, i32 noundef %1075) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #8
  store i32 0, ptr %89, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #8
  store i32 0, ptr %90, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #8
  %1077 = load ptr, ptr %88, align 8, !tbaa !5
  %1078 = getelementptr inbounds %class.poreNE, ptr %1077, i32 0, i32 2
  %1079 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %1078) #8
  %1080 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.82", ptr %91, i32 0, i32 0
  store ptr %1079, ptr %1080, align 8
  br label %1081

1081:                                             ; preds = %1146, %1068
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #8
  %1082 = load ptr, ptr %88, align 8, !tbaa !5
  %1083 = getelementptr inbounds %class.poreNE, ptr %1082, i32 0, i32 2
  %1084 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1083) #8
  %1085 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.82", ptr %92, i32 0, i32 0
  store ptr %1084, ptr %1085, align 8
  %1086 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 8 dereferenceable(8) %92) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #8
  br i1 %1086, label %1092, label %1087

1087:                                             ; preds = %1081
  store i32 21, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #8
  br label %1148

1088:                                             ; preds = %1053, %1038, %1018
  %1089 = landingpad { ptr, i32 }
          cleanup
  %1090 = extractvalue { ptr, i32 } %1089, 0
  store ptr %1090, ptr %6, align 8
  %1091 = extractvalue { ptr, i32 } %1089, 1
  store i32 %1091, ptr %7, align 4
  br label %1186

1092:                                             ; preds = %1081
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #8
  %1093 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 8
  %1094 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  %1095 = getelementptr inbounds %"struct.std::pair.66", ptr %1094, i32 0, i32 1
  %1096 = load i32, ptr %1095, align 4, !tbaa !94
  %1097 = sext i32 %1096 to i64
  %1098 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1093, i64 noundef %1097) #8
  %1099 = load ptr, ptr %1098, align 8, !tbaa !5
  store ptr %1099, ptr %93, align 8, !tbaa !5
  %1100 = load ptr, ptr %93, align 8, !tbaa !5
  %1101 = getelementptr inbounds %class.throatNE, ptr %1100, i32 0, i32 1
  %1102 = load i32, ptr %1101, align 4, !tbaa !46
  %1103 = load i32, ptr %87, align 4, !tbaa !38
  %1104 = icmp eq i32 %1102, %1103
  br i1 %1104, label %1105, label %1125

1105:                                             ; preds = %1092
  %1106 = load ptr, ptr %93, align 8, !tbaa !5
  %1107 = getelementptr inbounds %class.throatNE, ptr %1106, i32 0, i32 2
  %1108 = load i32, ptr %1107, align 8, !tbaa !88
  %1109 = icmp eq i32 %1108, 0
  br i1 %1109, label %1110, label %1111

1110:                                             ; preds = %1105
  store i32 1, ptr %89, align 4, !tbaa !38
  br label %1118

1111:                                             ; preds = %1105
  %1112 = load ptr, ptr %93, align 8, !tbaa !5
  %1113 = getelementptr inbounds %class.throatNE, ptr %1112, i32 0, i32 2
  %1114 = load i32, ptr %1113, align 8, !tbaa !88
  %1115 = icmp eq i32 %1114, 1
  br i1 %1115, label %1116, label %1117

1116:                                             ; preds = %1111
  store i32 1, ptr %90, align 4, !tbaa !38
  br label %1117

1117:                                             ; preds = %1116, %1111
  br label %1118

1118:                                             ; preds = %1117, %1110
  %1119 = load ptr, ptr %84, align 8, !tbaa !5
  %1120 = load ptr, ptr %93, align 8, !tbaa !5
  %1121 = getelementptr inbounds %class.throatNE, ptr %1120, i32 0, i32 2
  %1122 = load i32, ptr %1121, align 8, !tbaa !88
  %1123 = sub nsw i32 %1122, 1
  %1124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1119, ptr noundef @.str.55, i32 noundef %1123) #8
  br label %1145

1125:                                             ; preds = %1092
  %1126 = load ptr, ptr %93, align 8, !tbaa !5
  %1127 = getelementptr inbounds %class.throatNE, ptr %1126, i32 0, i32 1
  %1128 = load i32, ptr %1127, align 4, !tbaa !46
  %1129 = icmp eq i32 %1128, 0
  br i1 %1129, label %1130, label %1131

1130:                                             ; preds = %1125
  store i32 1, ptr %89, align 4, !tbaa !38
  br label %1138

1131:                                             ; preds = %1125
  %1132 = load ptr, ptr %93, align 8, !tbaa !5
  %1133 = getelementptr inbounds %class.throatNE, ptr %1132, i32 0, i32 1
  %1134 = load i32, ptr %1133, align 4, !tbaa !46
  %1135 = icmp eq i32 %1134, 1
  br i1 %1135, label %1136, label %1137

1136:                                             ; preds = %1131
  store i32 1, ptr %90, align 4, !tbaa !38
  br label %1137

1137:                                             ; preds = %1136, %1131
  br label %1138

1138:                                             ; preds = %1137, %1130
  %1139 = load ptr, ptr %84, align 8, !tbaa !5
  %1140 = load ptr, ptr %93, align 8, !tbaa !5
  %1141 = getelementptr inbounds %class.throatNE, ptr %1140, i32 0, i32 1
  %1142 = load i32, ptr %1141, align 4, !tbaa !46
  %1143 = sub nsw i32 %1142, 1
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1139, ptr noundef @.str.55, i32 noundef %1143) #8
  br label %1145

1145:                                             ; preds = %1138, %1118
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #8
  br label %1146

1146:                                             ; preds = %1145
  %1147 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %91) #8
  br label %1081, !llvm.loop !105

1148:                                             ; preds = %1087
  %1149 = load ptr, ptr %84, align 8, !tbaa !5
  %1150 = load i32, ptr %89, align 4, !tbaa !38
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef @.str.55, i32 noundef %1150) #8
  %1152 = load ptr, ptr %84, align 8, !tbaa !5
  %1153 = load i32, ptr %90, align 4, !tbaa !38
  %1154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1152, ptr noundef @.str.55, i32 noundef %1153) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  %1155 = load ptr, ptr %88, align 8, !tbaa !5
  %1156 = getelementptr inbounds %class.poreNE, ptr %1155, i32 0, i32 2
  %1157 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %1156) #8
  %1158 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.82", ptr %94, i32 0, i32 0
  store ptr %1157, ptr %1158, align 8
  br label %1159

1159:                                             ; preds = %1173, %1148
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #8
  %1160 = load ptr, ptr %88, align 8, !tbaa !5
  %1161 = getelementptr inbounds %class.poreNE, ptr %1160, i32 0, i32 2
  %1162 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1161) #8
  %1163 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.82", ptr %95, i32 0, i32 0
  store ptr %1162, ptr %1163, align 8
  %1164 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  br i1 %1164, label %1166, label %1165

1165:                                             ; preds = %1159
  store i32 24, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %1175

1166:                                             ; preds = %1159
  %1167 = load ptr, ptr %84, align 8, !tbaa !5
  %1168 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %94) #8
  %1169 = getelementptr inbounds %"struct.std::pair.66", ptr %1168, i32 0, i32 1
  %1170 = load i32, ptr %1169, align 4, !tbaa !94
  %1171 = add nsw i32 %1170, 1
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1167, ptr noundef @.str.55, i32 noundef %1171) #8
  br label %1173

1173:                                             ; preds = %1166
  %1174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %94) #8
  br label %1159, !llvm.loop !106

1175:                                             ; preds = %1165
  %1176 = load ptr, ptr %84, align 8, !tbaa !5
  %1177 = invoke i32 @fputs(ptr noundef @.str.56, ptr noundef %1176)
          to label %1178 unwind label %1182

1178:                                             ; preds = %1175
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  br label %1179

1179:                                             ; preds = %1178
  %1180 = load i32, ptr %87, align 4, !tbaa !38
  %1181 = add nsw i32 %1180, 1
  store i32 %1181, ptr %87, align 4, !tbaa !38
  br label %992, !llvm.loop !107

1182:                                             ; preds = %1175
  %1183 = landingpad { ptr, i32 }
          cleanup
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %6, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  br label %1186

1186:                                             ; preds = %1182, %1088
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %1209

1187:                                             ; preds = %998
  %1188 = load ptr, ptr %84, align 8, !tbaa !5
  %1189 = invoke i32 @fclose(ptr noundef %1188)
          to label %1190 unwind label %1205

1190:                                             ; preds = %1187
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #8
  %1191 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 4
  %1192 = load ptr, ptr %1191, align 8, !tbaa !50
  invoke void @_ZNK9InputFile4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull align 8 dereferenceable(122) %1192)
          to label %1193 unwind label %1210

1193:                                             ; preds = %1190
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef @.str.57)
          to label %1194 unwind label %1214

1194:                                             ; preds = %1193
  %1195 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  %1196 = invoke noalias ptr @fopen(ptr noundef %1195, ptr noundef @.str.45)
          to label %1197 unwind label %1218

1197:                                             ; preds = %1194
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  store ptr %1196, ptr %96, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #8
  store i32 2, ptr %99, align 4, !tbaa !38
  br label %1198

1198:                                             ; preds = %1253, %1197
  %1199 = load i32, ptr %99, align 4, !tbaa !38
  %1200 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %1201 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1200) #8
  %1202 = trunc i64 %1201 to i32
  %1203 = icmp slt i32 %1199, %1202
  br i1 %1203, label %1224, label %1204

1204:                                             ; preds = %1198
  store i32 27, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #8
  br label %1260

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

1209:                                             ; preds = %1205, %1186, %1017
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  br label %1276

1210:                                             ; preds = %1190
  %1211 = landingpad { ptr, i32 }
          cleanup
  %1212 = extractvalue { ptr, i32 } %1211, 0
  store ptr %1212, ptr %6, align 8
  %1213 = extractvalue { ptr, i32 } %1211, 1
  store i32 %1213, ptr %7, align 4
  br label %1223

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

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

1222:                                             ; preds = %1218, %1214
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  br label %1223

1223:                                             ; preds = %1222, %1210
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #8
  br label %1275

1224:                                             ; preds = %1198
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #8
  %1225 = getelementptr inbounds %class.blockNetwork, ptr %101, i32 0, i32 7
  %1226 = load i32, ptr %99, align 4, !tbaa !38
  %1227 = sext i32 %1226 to i64
  %1228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1225, i64 noundef %1227) #8
  %1229 = load ptr, ptr %1228, align 8, !tbaa !5
  store ptr %1229, ptr %100, align 8, !tbaa !5
  %1230 = load ptr, ptr %96, align 8, !tbaa !5
  %1231 = load i32, ptr %99, align 4, !tbaa !38
  %1232 = sub nsw i32 %1231, 1
  %1233 = load ptr, ptr %100, align 8, !tbaa !5
  %1234 = getelementptr inbounds %class.poreNE, ptr %1233, i32 0, i32 1
  %1235 = load i32, ptr %1234, align 4, !tbaa !93
  %1236 = sitofp i32 %1235 to double
  %1237 = load double, ptr %73, align 8, !tbaa !36
  %1238 = fmul double %1236, %1237
  %1239 = load double, ptr %73, align 8, !tbaa !36
  %1240 = fmul double %1238, %1239
  %1241 = load double, ptr %73, align 8, !tbaa !36
  %1242 = fmul double %1240, %1241
  %1243 = load ptr, ptr %100, align 8, !tbaa !5
  %1244 = invoke noundef double @_ZNK6poreNE6radiusEv(ptr noundef nonnull align 8 dereferenceable(64) %1243)
          to label %1245 unwind label %1256

1245:                                             ; preds = %1224
  %1246 = load double, ptr %73, align 8, !tbaa !36
  %1247 = fmul double %1244, %1246
  %1248 = load i32, ptr %99, align 4, !tbaa !38
  %1249 = sext i32 %1248 to i64
  %1250 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %1249) #8
  %1251 = load double, ptr %1250, align 8, !tbaa !36
  %1252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1230, ptr noundef @.str.58, i32 noundef %1232, double noundef %1242, double noundef %1247, double noundef %1251, double noundef 0.000000e+00) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  br label %1253

1253:                                             ; preds = %1245
  %1254 = load i32, ptr %99, align 4, !tbaa !38
  %1255 = add nsw i32 %1254, 1
  store i32 %1255, ptr %99, align 4, !tbaa !38
  br label %1198, !llvm.loop !108

1256:                                             ; preds = %1224
  %1257 = landingpad { ptr, i32 }
          cleanup
  %1258 = extractvalue { ptr, i32 } %1257, 0
  store ptr %1258, ptr %6, align 8
  %1259 = extractvalue { ptr, i32 } %1257, 1
  store i32 %1259, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #8
  br label %1275

1260:                                             ; preds = %1204
  %1261 = load ptr, ptr %96, align 8, !tbaa !5
  %1262 = invoke i32 @fclose(ptr noundef %1261)
          to label %1263 unwind label %1271

1263:                                             ; preds = %1260
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  %1264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.50)
          to label %1265 unwind label %802

1265:                                             ; preds = %1263
  %1266 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
          to label %1267 unwind label %802

1267:                                             ; preds = %1265
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  store i32 0, ptr %56, align 4
  br label %1268

1268:                                             ; preds = %1267, %773
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #8
  %1269 = load i32, ptr %56, align 4
  switch i32 %1269, label %1293 [
    i32 0, label %1270
    i32 1, label %1270
  ]

1270:                                             ; preds = %1268, %1268
  ret void

1271:                                             ; preds = %1260
  %1272 = landingpad { ptr, i32 }
          cleanup
  %1273 = extractvalue { ptr, i32 } %1272, 0
  store ptr %1273, ptr %6, align 8
  %1274 = extractvalue { ptr, i32 } %1272, 1
  store i32 %1274, ptr %7, align 4
  br label %1275

1275:                                             ; preds = %1271, %1256, %1223
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  br label %1276

1276:                                             ; preds = %1275, %1209, %1003, %882, %802
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  br label %1277

1277:                                             ; preds = %1276, %765, %612, %565
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1278

1278:                                             ; preds = %1277, %185
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  br label %1279

1279:                                             ; preds = %1278, %181
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #8
  br label %1280

1280:                                             ; preds = %1279, %177
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  br label %1281

1281:                                             ; preds = %1280, %173
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  br label %1282

1282:                                             ; preds = %1281, %169
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  br label %1283

1283:                                             ; preds = %1282, %165
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  br label %1284

1284:                                             ; preds = %1283, %161
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  br label %1285

1285:                                             ; preds = %1284, %157
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  br label %1286

1286:                                             ; preds = %1285, %153
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #8
  br label %1287

1287:                                             ; preds = %1286, %149
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #8
  br label %1288

1288:                                             ; preds = %1287
  %1289 = load ptr, ptr %6, align 8
  %1290 = load i32, ptr %7, align 4
  %1291 = insertvalue { ptr, i32 } poison, ptr %1289, 0
  %1292 = insertvalue { ptr, i32 } %1291, i32 %1290, 1
  resume { ptr, i32 } %1292

1293:                                             ; preds = %1268
  unreachable
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4var3IdEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24), double noundef, double noundef, double noundef) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN4var3IdEpLERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z4distPK10medialBallS1_(ptr noundef, ptr noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: nounwind
declare i32 @rand() #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z7randomGv() #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

declare noalias ptr @fopen(ptr noundef, ptr noundef) #4

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

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

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #7

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

declare i32 @fclose(ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

declare i32 @fputs(ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK6poreNE6radiusEv(ptr noundef nonnull align 8 dereferenceable(64)) #3 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 436}
!10 = !{!"_ZTS12blockNetwork", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !6, i64 24, !12, i64 32, !13, i64 224, !24, i64 336, !28, i64 360, !32, i64 384, !32, i64 408, !11, i64 432, !11, i64 436, !11, i64 440, !11, i64 444}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSSt5arrayI5voxelLm8EE", !7, i64 0}
!13 = !{!"_ZTS11voxelImageTIiE", !14, i64 0, !15, i64 8, !22, i64 64, !22, i64 88}
!14 = !{!"_ZTS15voxelImageTBase"}
!15 = !{!"_ZTS10voxelFieldIiE", !16, i64 8, !17, i64 16, !18, i64 32}
!16 = !{!"long long", !7, i64 0}
!17 = !{!"_ZTS4var3IiE", !11, i64 0, !11, i64 4, !11, i64 8}
!18 = !{!"_ZTSSt6vectorIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{!"_ZTS4var3IdE", !23, i64 0, !23, i64 8, !23, i64 16}
!23 = !{!"double", !7, i64 0}
!24 = !{!"_ZTSSt6vectorIP6poreNESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIP6poreNESaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIP6poreNESaIS1_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIP6poreNESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTSSt6vectorIP8throatNESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIP8throatNESaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIP8throatNESaIS1_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIP8throatNESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorIP10medialBallSaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIP10medialBallSaIS1_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIP10medialBallSaIS1_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIP10medialBallSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!23, !23, i64 0}
!37 = !{!10, !11, i64 432}
!38 = !{!11, !11, i64 0}
!39 = !{!40, !11, i64 12}
!40 = !{!"_ZTS8throatNE", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !41, i64 20, !41, i64 22, !42, i64 24, !42, i64 48, !22, i64 72}
!41 = !{!"short", !7, i64 0}
!42 = !{!"_ZTSSt6vectorIP5voxelSaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt12_Vector_baseIP5voxelSaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIP5voxelSaIS1_EE12_Vector_implE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIP5voxelSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!46 = !{!40, !11, i64 4}
!47 = !{!48, !49, i64 8}
!48 = !{!"_ZTS10medialBall", !6, i64 0, !49, i64 8, !49, i64 12, !49, i64 16, !41, i64 20, !49, i64 24, !41, i64 28, !41, i64 30, !41, i64 32, !41, i64 34, !41, i64 36, !6, i64 40, !6, i64 48, !6, i64 56}
!49 = !{!"float", !7, i64 0}
!50 = !{!10, !6, i64 24}
!51 = !{!52, !11, i64 124}
!52 = !{!"_ZTS11inputDataNE", !53, i64 0, !11, i64 124, !11, i64 128, !11, i64 132, !11, i64 136, !23, i64 144, !22, i64 152, !58, i64 176, !16, i64 208, !58, i64 216, !62, i64 248, !66, i64 272, !18, i64 288, !67, i64 312, !71, i64 336}
!53 = !{!"_ZTS9InputFile", !54, i64 0, !58, i64 24, !58, i64 56, !58, i64 88, !61, i64 120, !61, i64 121}
!54 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!58 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !59, i64 0, !60, i64 8, !7, i64 16}
!59 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!60 = !{!"long", !7, i64 0}
!61 = !{!"bool", !7, i64 0}
!62 = !{!"_ZTSSt6vectorIS_I8segmentsSaIS0_EESaIS2_EE", !63, i64 0}
!63 = !{!"_ZTSSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE12_Vector_implE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!66 = !{!"_ZTS7segment", !11, i64 0, !7, i64 4, !6, i64 8}
!67 = !{!"_ZTSSt6vectorI9poroRangeSaIS0_EE", !68, i64 0}
!68 = !{!"_ZTSSt12_Vector_baseI9poroRangeSaIS0_EE", !69, i64 0}
!69 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE12_Vector_implE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!71 = !{!"_ZTS11voxelImageTIhE", !14, i64 0, !72, i64 8, !22, i64 64, !22, i64 88}
!72 = !{!"_ZTS10voxelFieldIhE", !16, i64 8, !17, i64 16, !73, i64 32}
!73 = !{!"_ZTSSt6vectorIhSaIhEE", !74, i64 0}
!74 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !76, i64 0}
!76 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!77 = !{!78, !6, i64 56}
!78 = !{!"_ZTS6poreNE", !11, i64 0, !11, i64 4, !79, i64 8, !6, i64 56}
!79 = !{!"_ZTSSt3mapIiiSt4lessIiESaISt4pairIKiiEEE", !80, i64 0}
!80 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE", !81, i64 0}
!81 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !82, i64 0, !84, i64 8}
!82 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !83, i64 0}
!83 = !{!"_ZTSSt4lessIiE"}
!84 = !{!"_ZTSSt15_Rb_tree_header", !85, i64 0, !60, i64 32}
!85 = !{!"_ZTSSt18_Rb_tree_node_base", !86, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!86 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!87 = !{!49, !49, i64 0}
!88 = !{!40, !11, i64 8}
!89 = distinct !{!89, !90}
!90 = !{!"llvm.loop.mustprogress"}
!91 = !{!48, !49, i64 24}
!92 = !{!78, !11, i64 0}
!93 = !{!78, !11, i64 4}
!94 = !{!95, !11, i64 4}
!95 = !{!"_ZTSSt4pairIKiiE", !11, i64 0, !11, i64 4}
!96 = !{!40, !11, i64 16}
!97 = distinct !{!97, !90}
!98 = !{!52, !23, i64 144}
!99 = distinct !{!99, !90}
!100 = distinct !{!100, !90}
!101 = !{!52, !11, i64 128}
!102 = !{!52, !11, i64 132}
!103 = !{!48, !49, i64 12}
!104 = !{!48, !49, i64 16}
!105 = distinct !{!105, !90}
!106 = distinct !{!106, !90}
!107 = distinct !{!107, !90}
!108 = distinct !{!108, !90}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.77" = type { %"struct.std::_Vector_base.78" }
%"struct.std::_Vector_base.78" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.79" = type { i8 }
%class.var3 = type { double, double, double }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::_Rb_tree_const_iterator.82" = type { ptr }

@_ZN12blockNetwork4nBP6E = external dso_local local_unnamed_addr global i32, align 4
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.34 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [17 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK12blockNetwork8writePNMEv(ptr noundef nonnull align 8 dereferenceable(448) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::vector.77", align 8
  %3 = alloca double, align 8
  %4 = alloca %"class.std::allocator.79", align 1
  %5 = alloca %"class.std::vector.77", align 8
  %6 = alloca double, align 8
  %7 = alloca %"class.std::allocator.79", align 1
  %8 = alloca %"class.std::vector.77", align 8
  %9 = alloca double, align 8
  %10 = alloca %"class.std::allocator.79", align 1
  %11 = alloca %"class.std::vector.77", align 8
  %12 = alloca double, align 8
  %13 = alloca %"class.std::allocator.79", align 1
  %14 = alloca %"class.std::vector.77", align 8
  %15 = alloca double, align 8
  %16 = alloca %"class.std::allocator.79", align 1
  %17 = alloca %"class.std::vector.77", align 8
  %18 = alloca double, align 8
  %19 = alloca %"class.std::allocator.79", align 1
  %20 = alloca %"class.std::vector.77", align 8
  %21 = alloca double, align 8
  %22 = alloca %"class.std::allocator.79", align 1
  %23 = alloca %"class.std::vector.77", align 8
  %24 = alloca double, align 8
  %25 = alloca %"class.std::allocator.79", align 1
  %26 = alloca %"class.std::vector.77", align 8
  %27 = alloca double, align 8
  %28 = alloca %"class.std::allocator.79", align 1
  %29 = alloca %class.var3, align 8
  %30 = alloca double, align 8
  %31 = alloca float, align 4
  %32 = alloca double, align 8
  %33 = alloca float, align 4
  %34 = alloca double, align 8
  %35 = alloca float, align 4
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %41 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %42 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %43 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"struct.std::_Rb_tree_const_iterator.82", align 8
  %51 = alloca %"struct.std::_Rb_tree_const_iterator.82", align 8
  %52 = alloca %"struct.std::_Rb_tree_const_iterator.82", align 8
  %53 = alloca %"struct.std::_Rb_tree_const_iterator.82", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #9
  %56 = getelementptr inbounds i8, ptr %0, i64 436
  %57 = load i32, ptr %56, align 4, !tbaa !5
  %58 = sext i32 %57 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #9
  store double 0.000000e+00, ptr %3, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %58, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %59 unwind label %94

59:                                               ; preds = %1
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #9
  %60 = load i32, ptr %56, align 4, !tbaa !5
  %61 = sext i32 %60 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  store double 0.000000e+00, ptr %6, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %61, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %62 unwind label %96

62:                                               ; preds = %59
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #9
  %63 = load i32, ptr %56, align 4, !tbaa !5
  %64 = sext i32 %63 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  store double 0.000000e+00, ptr %9, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %64, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %65 unwind label %98

65:                                               ; preds = %62
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #9
  %66 = load i32, ptr %56, align 4, !tbaa !5
  %67 = sext i32 %66 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  store double 0.000000e+00, ptr %12, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %67, ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %68 unwind label %100

68:                                               ; preds = %65
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #9
  %69 = load i32, ptr %56, align 4, !tbaa !5
  %70 = sext i32 %69 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  store double 0.000000e+00, ptr %15, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %70, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %71 unwind label %102

71:                                               ; preds = %68
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #9
  %72 = load i32, ptr %56, align 4, !tbaa !5
  %73 = sext i32 %72 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  store double 0.000000e+00, ptr %18, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %73, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %74 unwind label %104

74:                                               ; preds = %71
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #9
  %75 = getelementptr inbounds i8, ptr %0, i64 432
  %76 = load i32, ptr %75, align 8, !tbaa !36
  %77 = sext i32 %76 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #9
  store double 0.000000e+00, ptr %21, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %77, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %78 unwind label %106

78:                                               ; preds = %74
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #9
  %79 = load i32, ptr %75, align 8, !tbaa !36
  %80 = sext i32 %79 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  store double 0.000000e+00, ptr %24, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %80, ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %81 unwind label %108

81:                                               ; preds = %78
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #9
  %82 = load i32, ptr %75, align 8, !tbaa !36
  %83 = sext i32 %82 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  store double 0.000000e+00, ptr %27, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #9
  call void @_ZNSaIdEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  invoke void @_ZNSt6vectorIdSaIdEEC2EmRKdRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %83, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %84 unwind label %110

84:                                               ; preds = %81
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #9
  call void @_ZN4var3IdEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %29, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00)
  %85 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.34)
          to label %86 unwind label %112

86:                                               ; preds = %84
  %87 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader270 unwind label %112

.preheader270:                                    ; preds = %86
  %88 = load i32, ptr %56, align 4, !tbaa !5
  %89 = icmp sgt i32 %88, 0
  br i1 %89, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader270
  %90 = getelementptr inbounds i8, ptr %0, i64 360
  %91 = getelementptr inbounds i8, ptr %0, i64 336
  %92 = getelementptr inbounds i8, ptr %0, i64 24
  br label %114

._crit_edge:                                      ; preds = %276, %.preheader270
  %.0224.lcssa = phi double [ 0.000000e+00, %.preheader270 ], [ %278, %276 ]
  %.0222.lcssa = phi double [ 0.000000e+00, %.preheader270 ], [ %.1223, %276 ]
  %.0219.lcssa = phi double [ 0.000000e+00, %.preheader270 ], [ %.1220, %276 ]
  %.0209.lcssa = phi i32 [ 0, %.preheader270 ], [ %.1210, %276 ]
  %93 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.35)
          to label %286 unwind label %323

94:                                               ; preds = %1
  %95 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  br label %662

96:                                               ; preds = %59
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  br label %661

98:                                               ; preds = %62
  %99 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  br label %660

100:                                              ; preds = %65
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  br label %659

102:                                              ; preds = %68
  %103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  br label %658

104:                                              ; preds = %71
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  br label %657

106:                                              ; preds = %74
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  br label %656

108:                                              ; preds = %78
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br label %655

110:                                              ; preds = %81
  %111 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIdED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  br label %654

112:                                              ; preds = %86, %84
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %653

114:                                              ; preds = %.lr.ph, %276
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %276 ]
  %.0209275 = phi i32 [ 0, %.lr.ph ], [ %.1210, %276 ]
  %.0219274 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1220, %276 ]
  %.0222273 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1223, %276 ]
  %.0224272 = phi double [ 0.000000e+00, %.lr.ph ], [ %278, %276 ]
  %115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %indvars.iv) #9
  %116 = load ptr, ptr %115, align 8, !tbaa !37
  %117 = getelementptr inbounds i8, ptr %116, i64 12
  %118 = load i32, ptr %117, align 4, !tbaa !38
  %119 = icmp eq i32 %118, 0
  br i1 %119, label %120, label %121

120:                                              ; preds = %114
  store i32 6, ptr %117, align 4, !tbaa !38
  br label %121

121:                                              ; preds = %120, %114
  %122 = getelementptr inbounds i8, ptr %116, i64 72
  %123 = call noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %122)
  %124 = fcmp olt double %123, 1.000000e-02
  br i1 %124, label %125, label %127

125:                                              ; preds = %121
  %126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %122, i64 noundef 0)
  store double 1.000000e-01, ptr %126, align 8, !tbaa !35
  br label %127

127:                                              ; preds = %125, %121
  %128 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN4var3IdEpLERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(24) %122)
  %129 = getelementptr inbounds i8, ptr %116, i64 4
  %130 = load i32, ptr %129, align 4, !tbaa !45
  %131 = icmp slt i32 %130, 2
  br i1 %131, label %132, label %150

132:                                              ; preds = %127
  %133 = icmp eq i32 %130, 0
  br i1 %133, label %134, label %138

134:                                              ; preds = %132
  %135 = call noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %116)
  %136 = getelementptr inbounds i8, ptr %135, i64 8
  %137 = load float, ptr %136, align 8, !tbaa !46
  br label %147

138:                                              ; preds = %132
  %139 = load ptr, ptr %92, align 8, !tbaa !49
  %140 = getelementptr inbounds i8, ptr %139, i64 124
  %141 = load i32, ptr %140, align 4, !tbaa !50
  %142 = sitofp i32 %141 to float
  %143 = call noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %116)
  %144 = getelementptr inbounds i8, ptr %143, i64 8
  %145 = load float, ptr %144, align 8, !tbaa !46
  %146 = fsub float %142, %145
  br label %147

147:                                              ; preds = %138, %134
  %148 = phi float [ %137, %134 ], [ %146, %138 ]
  %149 = fpext float %148 to double
  br label %158

150:                                              ; preds = %127
  %151 = zext nneg i32 %130 to i64
  %152 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %151) #9
  %153 = load ptr, ptr %152, align 8, !tbaa !37
  %154 = getelementptr inbounds i8, ptr %153, i64 56
  %155 = load ptr, ptr %154, align 8, !tbaa !76
  %156 = call noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %116)
  %157 = call noundef double @_Z4distPK10medialBallS1_(ptr noundef %155, ptr noundef %156)
  br label %158

158:                                              ; preds = %150, %147
  %159 = phi double [ %149, %147 ], [ %157, %150 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #9
  %160 = load i32, ptr %129, align 4, !tbaa !45
  %161 = icmp slt i32 %160, 2
  br i1 %161, label %162, label %164

162:                                              ; preds = %158
  %163 = call noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %116)
  br label %170

164:                                              ; preds = %158
  %165 = zext nneg i32 %160 to i64
  %166 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %165) #9
  %167 = load ptr, ptr %166, align 8, !tbaa !37
  %168 = getelementptr inbounds i8, ptr %167, i64 56
  %169 = load ptr, ptr %168, align 8, !tbaa !76
  br label %170

170:                                              ; preds = %164, %162
  %.pn267 = phi ptr [ %163, %162 ], [ %169, %164 ]
  %171 = getelementptr inbounds i8, ptr %.pn267, i64 24
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #9
  store float 1.000000e+00, ptr %31, align 4, !tbaa !86
  %172 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %171, ptr noundef nonnull align 4 dereferenceable(4) %31)
  %173 = load float, ptr %172, align 4, !tbaa !86
  %174 = fpext float %173 to double
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #9
  store double %174, ptr %30, align 8, !tbaa !35
  %175 = getelementptr inbounds i8, ptr %116, i64 8
  %176 = load i32, ptr %175, align 8, !tbaa !87
  %177 = icmp slt i32 %176, 2
  br i1 %177, label %178, label %196

178:                                              ; preds = %170
  %179 = icmp eq i32 %176, 0
  br i1 %179, label %180, label %184

180:                                              ; preds = %178
  %181 = call noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %116)
  %182 = getelementptr inbounds i8, ptr %181, i64 8
  %183 = load float, ptr %182, align 8, !tbaa !46
  br label %193

184:                                              ; preds = %178
  %185 = load ptr, ptr %92, align 8, !tbaa !49
  %186 = getelementptr inbounds i8, ptr %185, i64 124
  %187 = load i32, ptr %186, align 4, !tbaa !50
  %188 = sitofp i32 %187 to float
  %189 = call noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %116)
  %190 = getelementptr inbounds i8, ptr %189, i64 8
  %191 = load float, ptr %190, align 8, !tbaa !46
  %192 = fsub float %188, %191
  br label %193

193:                                              ; preds = %184, %180
  %194 = phi float [ %183, %180 ], [ %192, %184 ]
  %195 = fpext float %194 to double
  br label %204

196:                                              ; preds = %170
  %197 = zext nneg i32 %176 to i64
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %197) #9
  %199 = load ptr, ptr %198, align 8, !tbaa !37
  %200 = getelementptr inbounds i8, ptr %199, i64 56
  %201 = load ptr, ptr %200, align 8, !tbaa !76
  %202 = call noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %116)
  %203 = call noundef double @_Z4distPK10medialBallS1_(ptr noundef %201, ptr noundef %202)
  br label %204

204:                                              ; preds = %196, %193
  %205 = phi double [ %195, %193 ], [ %203, %196 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #9
  %206 = load i32, ptr %175, align 8, !tbaa !87
  %207 = icmp slt i32 %206, 2
  br i1 %207, label %208, label %210

208:                                              ; preds = %204
  %209 = call noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %116)
  br label %216

210:                                              ; preds = %204
  %211 = zext nneg i32 %206 to i64
  %212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %211) #9
  %213 = load ptr, ptr %212, align 8, !tbaa !37
  %214 = getelementptr inbounds i8, ptr %213, i64 56
  %215 = load ptr, ptr %214, align 8, !tbaa !76
  br label %216

216:                                              ; preds = %210, %208
  %.pn268 = phi ptr [ %209, %208 ], [ %215, %210 ]
  %217 = getelementptr inbounds i8, ptr %.pn268, i64 24
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #9
  store float 1.000000e+00, ptr %33, align 4, !tbaa !86
  %218 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %217, ptr noundef nonnull align 4 dereferenceable(4) %33)
  %219 = load float, ptr %218, align 4, !tbaa !86
  %220 = fpext float %219 to double
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #9
  store double %220, ptr %32, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #9
  %221 = call noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96) %116)
  %222 = getelementptr inbounds i8, ptr %221, i64 24
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #9
  store float 5.000000e-01, ptr %35, align 4, !tbaa !86
  %223 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %222, ptr noundef nonnull align 4 dereferenceable(4) %35)
  %224 = load float, ptr %223, align 4, !tbaa !86
  %225 = fpext float %224 to double
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #9
  store double %225, ptr %34, align 8, !tbaa !35
  %226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %227 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %226, ptr noundef nonnull align 8 dereferenceable(8) %32)
  %228 = load double, ptr %227, align 8, !tbaa !35
  store double %228, ptr %34, align 8, !tbaa !35
  %229 = call i32 @rand() #9
  %230 = sitofp i32 %229 to double
  %231 = fdiv double %230, 0x41DFFFFFFFC00000
  %232 = fsub double 5.000000e-01, %231
  %233 = call double @llvm.fmuladd.f64(double %232, double 5.000000e-01, double %228)
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv) #9
  store double %233, ptr %234, align 8, !tbaa !35
  %235 = fadd double %159, %205
  %236 = fcmp olt double %235, 3.000000e+00
  %.0231 = select i1 %236, double 3.010000e+00, double %235
  %237 = zext i1 %236 to i32
  %.1210 = add nuw nsw i32 %.0209275, %237
  %238 = fmul double %159, 6.700000e-01
  %239 = fmul double %205, 6.700000e-01
  %240 = load i32, ptr %129, align 4, !tbaa !45
  %241 = icmp slt i32 %240, 2
  %.0229 = select i1 %241, double 1.000000e+00, double %238
  %242 = load i32, ptr %175, align 8, !tbaa !87
  %243 = icmp slt i32 %242, 2
  %.0230 = select i1 %243, double 1.000000e+00, double %239
  %244 = fsub double %.0231, %.0229
  %245 = fsub double %244, %.0230
  %246 = fcmp olt double %245, 0x3E7AD7F29ABCAF48
  %.0227 = select i1 %246, double 1.000000e+00, double %245
  %247 = load double, ptr %34, align 8, !tbaa !35
  %248 = fmul double %247, %247
  %249 = fmul double %248, 2.500000e-01
  %250 = call noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %122)
  %251 = fdiv double %249, %250
  %252 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #9
  store double %251, ptr %252, align 8, !tbaa !35
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #9
  %254 = load double, ptr %253, align 8, !tbaa !35
  %255 = fcmp ult double %254, 0x3FB70A3D70A3D70A
  br i1 %255, label %265, label %256

256:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #9
  store double 7.900000e-02, ptr %36, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #9
  %257 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #9
  %258 = load double, ptr %257, align 8, !tbaa !35
  %259 = fmul double %258, 5.000000e-01
  store double %259, ptr %37, align 8, !tbaa !35
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37)
  %261 = load double, ptr %260, align 8, !tbaa !35
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #9
  store double %261, ptr %262, align 8, !tbaa !35
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #9
  %263 = call noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %122)
  %264 = fadd double %.0222273, %263
  br label %265

265:                                              ; preds = %256, %216
  %.1223 = phi double [ %264, %256 ], [ %.0222273, %216 ]
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #9
  %267 = load double, ptr %266, align 8, !tbaa !35
  %268 = fcmp olt double %267, 1.000000e-02
  br i1 %268, label %269, label %276

269:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #9
  %270 = call noundef double @_Z7randomGv()
  store double %270, ptr %38, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #9
  store double 1.000000e-02, ptr %39, align 8, !tbaa !35
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39)
  %272 = load double, ptr %271, align 8, !tbaa !35
  %273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #9
  store double %272, ptr %273, align 8, !tbaa !35
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #9
  %274 = call noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %122)
  %275 = fadd double %.0219274, %274
  br label %276

276:                                              ; preds = %269, %265
  %.1220 = phi double [ %275, %269 ], [ %.0219274, %265 ]
  %277 = call noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %122)
  %278 = fadd double %.0224272, %277
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %indvars.iv) #9
  store double %.0231, ptr %279, align 8, !tbaa !35
  %280 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %indvars.iv) #9
  store double %.0229, ptr %280, align 8, !tbaa !35
  %281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv) #9
  store double %.0230, ptr %281, align 8, !tbaa !35
  %282 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %indvars.iv) #9
  store double %.0227, ptr %282, align 8, !tbaa !35
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %283 = load i32, ptr %56, align 4, !tbaa !5
  %284 = sext i32 %283 to i64
  %285 = icmp slt i64 %indvars.iv.next, %284
  br i1 %285, label %114, label %._crit_edge, !llvm.loop !88

286:                                              ; preds = %._crit_edge
  %287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %93, i32 noundef %.0209.lcssa)
          to label %288 unwind label %323

288:                                              ; preds = %286
  %289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %287, ptr noundef nonnull @.str.36)
          to label %290 unwind label %323

290:                                              ; preds = %288
  %291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %292 unwind label %323

292:                                              ; preds = %290
  %293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.37)
          to label %294 unwind label %323

294:                                              ; preds = %292
  %295 = fdiv double %.0219.lcssa, %.0224.lcssa
  %296 = fmul double %295, 1.000000e+02
  %297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %293, double noundef %296)
          to label %298 unwind label %323

298:                                              ; preds = %294
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %297, ptr noundef nonnull @.str.38)
          to label %300 unwind label %323

300:                                              ; preds = %298
  %301 = fdiv double %.0222.lcssa, %.0224.lcssa
  %302 = fmul double %301, 1.000000e+02
  %303 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %299, double noundef %302)
          to label %304 unwind label %323

304:                                              ; preds = %300
  %305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull @.str.39)
          to label %306 unwind label %323

306:                                              ; preds = %304
  %307 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %308 unwind label %323

308:                                              ; preds = %306
  %309 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.40)
          to label %310 unwind label %323

310:                                              ; preds = %308
  %311 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsIdERSoS0_RK4var3IT_E(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull align 8 dereferenceable(24) %29)
          to label %312 unwind label %323

312:                                              ; preds = %310
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %311, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %314 unwind label %323

314:                                              ; preds = %312
  %315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.41)
          to label %316 unwind label %323

316:                                              ; preds = %314
  %317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader unwind label %323

.preheader:                                       ; preds = %316
  %318 = load i32, ptr %75, align 8, !tbaa !36
  %319 = icmp sgt i32 %318, 2
  br i1 %319, label %.lr.ph290, label %._crit_edge291

.lr.ph290:                                        ; preds = %.preheader
  %320 = getelementptr inbounds i8, ptr %0, i64 336
  %321 = getelementptr inbounds i8, ptr %0, i64 360
  br label %325

._crit_edge291:                                   ; preds = %._crit_edge288, %.preheader
  %322 = load i32, ptr @_ZN12blockNetwork4nBP6E, align 4, !tbaa !90
  %.not = icmp eq i32 %322, 2
  br i1 %.not, label %402, label %398

323:                                              ; preds = %400, %398, %316, %314, %312, %310, %308, %306, %304, %300, %298, %294, %292, %290, %288, %286, %._crit_edge
  %324 = landingpad { ptr, i32 }
          cleanup
  br label %653

325:                                              ; preds = %.lr.ph290, %._crit_edge288
  %indvars.iv321 = phi i64 [ 2, %.lr.ph290 ], [ %indvars.iv.next322, %._crit_edge288 ]
  %326 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %320, i64 noundef %indvars.iv321) #9
  %327 = load ptr, ptr %326, align 8, !tbaa !37
  %328 = getelementptr inbounds i8, ptr %327, i64 56
  %329 = load ptr, ptr %328, align 8, !tbaa !76
  %330 = getelementptr inbounds i8, ptr %329, i64 24
  %331 = load float, ptr %330, align 8, !tbaa !91
  %332 = fpext float %331 to double
  %333 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %indvars.iv321) #9
  store double %332, ptr %333, align 8, !tbaa !35
  %334 = load i32, ptr %327, align 8, !tbaa !92
  %335 = icmp slt i32 %334, 1
  br i1 %335, label %336, label %337

336:                                              ; preds = %325
  store i32 6, ptr %327, align 8, !tbaa !92
  br label %337

337:                                              ; preds = %336, %325
  %338 = getelementptr inbounds i8, ptr %327, i64 4
  %339 = load i32, ptr %338, align 4, !tbaa !93
  %340 = icmp slt i32 %339, 1
  br i1 %340, label %341, label %342

341:                                              ; preds = %337
  store i32 1, ptr %338, align 4, !tbaa !93
  br label %342

342:                                              ; preds = %341, %337
  %343 = getelementptr inbounds i8, ptr %327, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #9
  %344 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %343) #9
  store ptr %344, ptr %40, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #9
  %345 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %343) #9
  store ptr %345, ptr %41, align 8
  %346 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #9
  br i1 %346, label %.lr.ph282, label %._crit_edge283

._crit_edge283:                                   ; preds = %.lr.ph282, %342
  %.0234.lcssa = phi double [ 0x38754484932D2E72, %342 ], [ %374, %.lr.ph282 ]
  %.0233.lcssa = phi double [ 5.000000e-38, %342 ], [ %372, %.lr.ph282 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #9
  %347 = fdiv double %.0233.lcssa, %.0234.lcssa
  %348 = fmul double %332, %332
  %349 = fmul double %348, 2.500000e-01
  %350 = fdiv double %349, %347
  %351 = fadd double %.0234.lcssa, %350
  %352 = load i32, ptr %338, align 4, !tbaa !93
  %353 = sitofp i32 %352 to double
  %354 = fmul double %350, %353
  %355 = fdiv double %354, %351
  %356 = fptosi double %355 to i32
  store i32 %356, ptr %338, align 4, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #9
  %357 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %343) #9
  store ptr %357, ptr %42, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #9
  %358 = call ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %343) #9
  store ptr %358, ptr %43, align 8
  %359 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %43) #9
  br i1 %359, label %.lr.ph287, label %._crit_edge288

.lr.ph282:                                        ; preds = %342, %.lr.ph282
  %.0233280 = phi double [ %372, %.lr.ph282 ], [ 5.000000e-38, %342 ]
  %.0234279 = phi double [ %374, %.lr.ph282 ], [ 0x38754484932D2E72, %342 ]
  %360 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  %361 = getelementptr inbounds i8, ptr %360, i64 4
  %362 = load i32, ptr %361, align 4, !tbaa !94
  %363 = sext i32 %362 to i64
  %364 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %321, i64 noundef %363) #9
  %365 = load ptr, ptr %364, align 8, !tbaa !37
  %366 = load i32, ptr %361, align 4, !tbaa !94
  %367 = sext i32 %366 to i64
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %367) #9
  %369 = load double, ptr %368, align 8, !tbaa !35
  %370 = getelementptr inbounds i8, ptr %365, i64 72
  %371 = call noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %370)
  %372 = call double @llvm.fmuladd.f64(double %369, double %371, double %.0233280)
  %373 = call noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %370)
  %374 = fadd double %.0234279, %373
  %375 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  %376 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #9
  br i1 %376, label %.lr.ph282, label %._crit_edge283

._crit_edge288:                                   ; preds = %.lr.ph287, %._crit_edge283
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #9
  %377 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv321) #9
  store double %347, ptr %377, align 8, !tbaa !35
  %indvars.iv.next322 = add nuw nsw i64 %indvars.iv321, 1
  %378 = load i32, ptr %75, align 8, !tbaa !36
  %379 = sext i32 %378 to i64
  %380 = icmp slt i64 %indvars.iv.next322, %379
  br i1 %380, label %325, label %._crit_edge291, !llvm.loop !96

.lr.ph287:                                        ; preds = %._crit_edge283, %.lr.ph287
  %381 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #9
  %382 = getelementptr inbounds i8, ptr %381, i64 4
  %383 = load i32, ptr %382, align 4, !tbaa !94
  %384 = sext i32 %383 to i64
  %385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %321, i64 noundef %384) #9
  %386 = load ptr, ptr %385, align 8, !tbaa !37
  %387 = getelementptr inbounds i8, ptr %386, i64 72
  %388 = call noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24) %387)
  %389 = fmul double %388, %353
  %390 = fdiv double %389, %351
  %391 = getelementptr inbounds i8, ptr %386, i64 16
  %392 = load i32, ptr %391, align 8, !tbaa !97
  %393 = sitofp i32 %392 to double
  %394 = fadd double %390, %393
  %395 = fptosi double %394 to i32
  store i32 %395, ptr %391, align 8, !tbaa !97
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #9
  %397 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %43) #9
  br i1 %397, label %.lr.ph287, label %._crit_edge288

398:                                              ; preds = %._crit_edge291
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.42)
          to label %400 unwind label %323

400:                                              ; preds = %398
  %401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %399, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %652 unwind label %323

402:                                              ; preds = %._crit_edge291
  %403 = getelementptr inbounds i8, ptr %0, i64 24
  %404 = load ptr, ptr %403, align 8, !tbaa !49
  %405 = getelementptr inbounds i8, ptr %404, i64 144
  %406 = load double, ptr %405, align 8, !tbaa !98
  %407 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.43)
          to label %408 unwind label %425

408:                                              ; preds = %402
  %409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
          to label %410 unwind label %425

410:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #9
  %411 = load ptr, ptr %403, align 8, !tbaa !49
  invoke void @_ZNK9InputFile4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(122) %411)
          to label %412 unwind label %427

412:                                              ; preds = %410
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.44)
          to label %413 unwind label %429

413:                                              ; preds = %412
  %414 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  %415 = call noalias ptr @fopen(ptr noundef %414, ptr noundef nonnull @.str.45)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  %416 = getelementptr inbounds i8, ptr %0, i64 360
  %417 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %416) #9
  %418 = trunc i64 %417 to i32
  %419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %415, ptr noundef nonnull @.str.46, i32 noundef %418) #9
  %420 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %416) #9
  %421 = trunc i64 %420 to i32
  %422 = icmp sgt i32 %421, 0
  br i1 %422, label %.lr.ph294, label %._crit_edge295

._crit_edge295:                                   ; preds = %439, %413
  %423 = call i32 @fclose(ptr noundef %415)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #9
  %424 = load ptr, ptr %403, align 8, !tbaa !49
  invoke void @_ZNK9InputFile4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(122) %424)
          to label %455 unwind label %464

425:                                              ; preds = %650, %._crit_edge317, %501, %499, %497, %._crit_edge299, %408, %402
  %426 = landingpad { ptr, i32 }
          cleanup
  br label %653

427:                                              ; preds = %410
  %428 = landingpad { ptr, i32 }
          cleanup
  br label %431

429:                                              ; preds = %412
  %430 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %431

431:                                              ; preds = %429, %427
  %.pn = phi { ptr, i32 } [ %430, %429 ], [ %428, %427 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  br label %653

.lr.ph294:                                        ; preds = %413, %439
  %indvars.iv324 = phi i64 [ %indvars.iv.next325, %439 ], [ 0, %413 ]
  %432 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %416, i64 noundef %indvars.iv324) #9
  %433 = load ptr, ptr %432, align 8, !tbaa !37
  %434 = getelementptr inbounds i8, ptr %433, i64 4
  %435 = load i32, ptr %434, align 4, !tbaa !45
  %436 = getelementptr inbounds i8, ptr %433, i64 8
  %437 = load i32, ptr %436, align 8, !tbaa !87
  %438 = invoke noundef double @_ZNK8throatNE6radiusEv(ptr noundef nonnull align 8 dereferenceable(96) %433)
          to label %439 unwind label %453

439:                                              ; preds = %.lr.ph294
  %440 = add nsw i32 %437, -1
  %441 = add nsw i32 %435, -1
  %indvars.iv.next325 = add nuw nsw i64 %indvars.iv324, 1
  %442 = fmul double %406, %438
  %443 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv324) #9
  %444 = load double, ptr %443, align 8, !tbaa !35
  %445 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %indvars.iv324) #9
  %446 = load double, ptr %445, align 8, !tbaa !35
  %447 = fmul double %406, %446
  %448 = trunc nuw nsw i64 %indvars.iv.next325 to i32
  %449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %415, ptr noundef nonnull @.str.47, i32 noundef %448, i32 noundef %441, i32 noundef %440, double noundef %442, double noundef %444, double noundef %447) #9
  %450 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %416) #9
  %sext = shl i64 %450, 32
  %451 = ashr exact i64 %sext, 32
  %452 = icmp slt i64 %indvars.iv.next325, %451
  br i1 %452, label %.lr.ph294, label %._crit_edge295, !llvm.loop !99

453:                                              ; preds = %.lr.ph294
  %454 = landingpad { ptr, i32 }
          cleanup
  br label %653

455:                                              ; preds = %._crit_edge295
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.48)
          to label %456 unwind label %466

456:                                              ; preds = %455
  %457 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  %458 = call noalias ptr @fopen(ptr noundef %457, ptr noundef nonnull @.str.45)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  %459 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %416) #9
  %460 = trunc i64 %459 to i32
  %461 = icmp sgt i32 %460, 0
  br i1 %461, label %.lr.ph298, label %._crit_edge299

._crit_edge299:                                   ; preds = %.lr.ph298, %456
  %462 = call i32 @fclose(ptr noundef %458)
  %463 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.50)
          to label %497 unwind label %425

464:                                              ; preds = %._crit_edge295
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %468

466:                                              ; preds = %455
  %467 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %468

468:                                              ; preds = %466, %464
  %.pn246 = phi { ptr, i32 } [ %467, %466 ], [ %465, %464 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  br label %653

.lr.ph298:                                        ; preds = %456, %.lr.ph298
  %indvars.iv327 = phi i64 [ %indvars.iv.next328, %.lr.ph298 ], [ 0, %456 ]
  %469 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %416, i64 noundef %indvars.iv327) #9
  %470 = load ptr, ptr %469, align 8, !tbaa !37
  %indvars.iv.next328 = add nuw nsw i64 %indvars.iv327, 1
  %471 = getelementptr inbounds i8, ptr %470, i64 4
  %472 = load i32, ptr %471, align 4, !tbaa !45
  %473 = add nsw i32 %472, -1
  %474 = getelementptr inbounds i8, ptr %470, i64 8
  %475 = load i32, ptr %474, align 8, !tbaa !87
  %476 = add nsw i32 %475, -1
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %indvars.iv327) #9
  %478 = load double, ptr %477, align 8, !tbaa !35
  %479 = fmul double %406, %478
  %480 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %indvars.iv327) #9
  %481 = load double, ptr %480, align 8, !tbaa !35
  %482 = fmul double %406, %481
  %483 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %indvars.iv327) #9
  %484 = load double, ptr %483, align 8, !tbaa !35
  %485 = fmul double %406, %484
  %486 = getelementptr inbounds i8, ptr %470, i64 16
  %487 = load i32, ptr %486, align 8, !tbaa !97
  %488 = sitofp i32 %487 to double
  %489 = fmul double %406, %488
  %490 = fmul double %406, %489
  %491 = fmul double %406, %490
  %492 = trunc nuw nsw i64 %indvars.iv.next328 to i32
  %493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef nonnull @.str.49, i32 noundef %492, i32 noundef %473, i32 noundef %476, double noundef %479, double noundef %482, double noundef %485, double noundef %491, double noundef 0.000000e+00) #9
  %494 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %416) #9
  %sext336 = shl i64 %494, 32
  %495 = ashr exact i64 %sext336, 32
  %496 = icmp slt i64 %indvars.iv.next328, %495
  br i1 %496, label %.lr.ph298, label %._crit_edge299, !llvm.loop !100

497:                                              ; preds = %._crit_edge299
  %498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
          to label %499 unwind label %425

499:                                              ; preds = %497
  %500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.51)
          to label %501 unwind label %425

501:                                              ; preds = %499
  %502 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
          to label %503 unwind label %425

503:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #9
  %504 = load ptr, ptr %403, align 8, !tbaa !49
  invoke void @_ZNK9InputFile4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(122) %504)
          to label %505 unwind label %532

505:                                              ; preds = %503
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.52)
          to label %506 unwind label %534

506:                                              ; preds = %505
  %507 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  %508 = call noalias ptr @fopen(ptr noundef %507, ptr noundef nonnull @.str.45)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #9
  %509 = getelementptr inbounds i8, ptr %0, i64 336
  %510 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %509) #9
  %511 = trunc i64 %510 to i32
  %512 = add nsw i32 %511, -2
  %513 = load ptr, ptr %403, align 8, !tbaa !49
  %514 = getelementptr inbounds i8, ptr %513, i64 124
  %515 = load i32, ptr %514, align 4, !tbaa !50
  %516 = sitofp i32 %515 to double
  %517 = fmul double %406, %516
  %518 = getelementptr inbounds i8, ptr %513, i64 128
  %519 = load i32, ptr %518, align 8, !tbaa !101
  %520 = sitofp i32 %519 to double
  %521 = fmul double %406, %520
  %522 = getelementptr inbounds i8, ptr %513, i64 132
  %523 = load i32, ptr %522, align 4, !tbaa !102
  %524 = sitofp i32 %523 to double
  %525 = fmul double %406, %524
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.53, i32 noundef %512, double noundef %517, double noundef %521, double noundef %525) #9
  %527 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %509) #9
  %528 = trunc i64 %527 to i32
  %529 = icmp sgt i32 %528, 2
  br i1 %529, label %.lr.ph312, label %._crit_edge313

._crit_edge313:                                   ; preds = %._crit_edge309, %506
  %530 = call i32 @fclose(ptr noundef %508)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #9
  %531 = load ptr, ptr %403, align 8, !tbaa !49
  invoke void @_ZNK9InputFile4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(122) %531)
          to label %618 unwind label %627

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

534:                                              ; preds = %505
  %535 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %536

536:                                              ; preds = %534, %532
  %.pn248 = phi { ptr, i32 } [ %535, %534 ], [ %533, %532 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #9
  br label %653

.lr.ph312:                                        ; preds = %506, %._crit_edge309
  %indvars.iv330 = phi i64 [ %indvars.iv.next331, %._crit_edge309 ], [ 2, %506 ]
  %537 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %509, i64 noundef %indvars.iv330) #9
  %538 = load ptr, ptr %537, align 8, !tbaa !37
  %539 = getelementptr inbounds i8, ptr %538, i64 56
  %540 = load ptr, ptr %539, align 8, !tbaa !76
  %541 = getelementptr inbounds i8, ptr %540, i64 8
  %542 = load float, ptr %541, align 8, !tbaa !46
  %543 = fpext float %542 to double
  %544 = load ptr, ptr %403, align 8, !tbaa !49
  %545 = getelementptr inbounds i8, ptr %544, i64 152
  %546 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %545, i64 noundef 0)
  %547 = load double, ptr %546, align 8, !tbaa !35
  %548 = fmul double %547, 0.000000e+00
  %549 = call double @llvm.fmuladd.f64(double %543, double %406, double %548)
  %550 = load ptr, ptr %539, align 8, !tbaa !76
  %551 = getelementptr inbounds i8, ptr %550, i64 12
  %552 = load float, ptr %551, align 4, !tbaa !103
  %553 = fpext float %552 to double
  %554 = load ptr, ptr %403, align 8, !tbaa !49
  %555 = getelementptr inbounds i8, ptr %554, i64 152
  %556 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %555, i64 noundef 1)
  %557 = load double, ptr %556, align 8, !tbaa !35
  %558 = fmul double %557, 0.000000e+00
  %559 = call double @llvm.fmuladd.f64(double %553, double %406, double %558)
  %560 = load ptr, ptr %539, align 8, !tbaa !76
  %561 = getelementptr inbounds i8, ptr %560, i64 16
  %562 = load float, ptr %561, align 8, !tbaa !104
  %563 = fpext float %562 to double
  %564 = load ptr, ptr %403, align 8, !tbaa !49
  %565 = getelementptr inbounds i8, ptr %564, i64 152
  %566 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %565, i64 noundef 2)
  %567 = load double, ptr %566, align 8, !tbaa !35
  %568 = fmul double %567, 0.000000e+00
  %569 = call double @llvm.fmuladd.f64(double %563, double %406, double %568)
  %570 = getelementptr inbounds i8, ptr %538, i64 8
  %571 = call noundef i64 @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %570) #9
  %572 = trunc i64 %571 to i32
  %573 = trunc i64 %indvars.iv330 to i32
  %574 = add i32 %573, -1
  %575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.54, i32 noundef %574, double noundef %549, double noundef %559, double noundef %569, i32 noundef %572) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #9
  %576 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %570) #9
  store ptr %576, ptr %50, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #9
  %577 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %570) #9
  store ptr %577, ptr %51, align 8
  %578 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #9
  br i1 %578, label %.lr.ph303, label %._crit_edge304

._crit_edge304:                                   ; preds = %600, %.lr.ph312
  %.0215.lcssa = phi i32 [ 0, %.lr.ph312 ], [ %.3218, %600 ]
  %.0211.lcssa = phi i32 [ 0, %.lr.ph312 ], [ %.3214, %600 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #9
  %579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.55, i32 noundef %.0215.lcssa) #9
  %580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.55, i32 noundef %.0211.lcssa) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #9
  %581 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %570) #9
  store ptr %581, ptr %52, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #9
  %582 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %570) #9
  store ptr %582, ptr %53, align 8
  %583 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #9
  br i1 %583, label %.lr.ph308, label %._crit_edge309

.lr.ph303:                                        ; preds = %.lr.ph312, %600
  %.0211301 = phi i32 [ %.3214, %600 ], [ 0, %.lr.ph312 ]
  %.0215300 = phi i32 [ %.3218, %600 ], [ 0, %.lr.ph312 ]
  %584 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  %585 = getelementptr inbounds i8, ptr %584, i64 4
  %586 = load i32, ptr %585, align 4, !tbaa !94
  %587 = sext i32 %586 to i64
  %588 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %416, i64 noundef %587) #9
  %589 = load ptr, ptr %588, align 8, !tbaa !37
  %590 = getelementptr inbounds i8, ptr %589, i64 4
  %591 = load i32, ptr %590, align 4, !tbaa !45
  %592 = zext i32 %591 to i64
  %593 = icmp eq i64 %indvars.iv330, %592
  br i1 %593, label %594, label %598

594:                                              ; preds = %.lr.ph303
  %595 = getelementptr inbounds i8, ptr %589, i64 8
  %596 = load i32, ptr %595, align 8, !tbaa !87
  switch i32 %596, label %.fold.split [
    i32 0, label %600
    i32 1, label %597
  ]

597:                                              ; preds = %594
  br label %600

.fold.split:                                      ; preds = %594
  br label %600

598:                                              ; preds = %.lr.ph303
  switch i32 %591, label %.fold.split269 [
    i32 0, label %600
    i32 1, label %599
  ]

599:                                              ; preds = %598
  br label %600

.fold.split269:                                   ; preds = %598
  br label %600

600:                                              ; preds = %599, %.fold.split269, %598, %597, %.fold.split, %594
  %.sink341 = phi i32 [ %596, %594 ], [ %596, %.fold.split ], [ %596, %597 ], [ %591, %598 ], [ %591, %.fold.split269 ], [ %591, %599 ]
  %.3218 = phi i32 [ 1, %594 ], [ %.0215300, %.fold.split ], [ %.0215300, %597 ], [ 1, %598 ], [ %.0215300, %.fold.split269 ], [ %.0215300, %599 ]
  %.3214 = phi i32 [ %.0211301, %594 ], [ %.0211301, %.fold.split ], [ 1, %597 ], [ %.0211301, %598 ], [ %.0211301, %.fold.split269 ], [ 1, %599 ]
  %601 = add nsw i32 %.sink341, -1
  %602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.55, i32 noundef %601) #9
  %603 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #9
  %604 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %570) #9
  store ptr %604, ptr %51, align 8
  %605 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #9
  br i1 %605, label %.lr.ph303, label %._crit_edge304, !llvm.loop !105

._crit_edge309:                                   ; preds = %.lr.ph308, %._crit_edge304
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #9
  %606 = call i32 @fputs(ptr noundef nonnull @.str.56, ptr noundef %508)
  %indvars.iv.next331 = add nuw nsw i64 %indvars.iv330, 1
  %607 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %509) #9
  %sext337 = shl i64 %607, 32
  %608 = ashr exact i64 %sext337, 32
  %609 = icmp slt i64 %indvars.iv.next331, %608
  br i1 %609, label %.lr.ph312, label %._crit_edge313, !llvm.loop !106

.lr.ph308:                                        ; preds = %._crit_edge304, %.lr.ph308
  %610 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  %611 = getelementptr inbounds i8, ptr %610, i64 4
  %612 = load i32, ptr %611, align 4, !tbaa !94
  %613 = add nsw i32 %612, 1
  %614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.55, i32 noundef %613) #9
  %615 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %52) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #9
  %616 = call ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %570) #9
  store ptr %616, ptr %53, align 8
  %617 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #9
  br i1 %617, label %.lr.ph308, label %._crit_edge309, !llvm.loop !107

618:                                              ; preds = %._crit_edge313
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.57)
          to label %619 unwind label %629

619:                                              ; preds = %618
  %620 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  %621 = call noalias ptr @fopen(ptr noundef %620, ptr noundef nonnull @.str.45)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #9
  %622 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %509) #9
  %623 = trunc i64 %622 to i32
  %624 = icmp sgt i32 %623, 2
  br i1 %624, label %.lr.ph316, label %._crit_edge317

._crit_edge317:                                   ; preds = %.lr.ph316, %619
  %625 = call i32 @fclose(ptr noundef %621)
  %626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.50)
          to label %650 unwind label %425

627:                                              ; preds = %._crit_edge313
  %628 = landingpad { ptr, i32 }
          cleanup
  br label %631

629:                                              ; preds = %618
  %630 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %631

631:                                              ; preds = %629, %627
  %.pn250 = phi { ptr, i32 } [ %630, %629 ], [ %628, %627 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #9
  br label %653

.lr.ph316:                                        ; preds = %619, %.lr.ph316
  %indvars.iv333 = phi i64 [ %indvars.iv.next334, %.lr.ph316 ], [ 2, %619 ]
  %632 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %509, i64 noundef %indvars.iv333) #9
  %633 = load ptr, ptr %632, align 8, !tbaa !37
  %634 = getelementptr inbounds i8, ptr %633, i64 4
  %635 = load i32, ptr %634, align 4, !tbaa !93
  %636 = sitofp i32 %635 to double
  %637 = fmul double %406, %636
  %638 = fmul double %406, %637
  %639 = fmul double %406, %638
  %640 = call noundef double @_ZNK6poreNE6radiusEv(ptr noundef nonnull align 8 dereferenceable(64) %633)
  %641 = fmul double %406, %640
  %642 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv333) #9
  %643 = load double, ptr %642, align 8, !tbaa !35
  %644 = trunc i64 %indvars.iv333 to i32
  %645 = add i32 %644, -1
  %646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %621, ptr noundef nonnull @.str.58, i32 noundef %645, double noundef %639, double noundef %641, double noundef %643, double noundef 0.000000e+00) #9
  %indvars.iv.next334 = add nuw nsw i64 %indvars.iv333, 1
  %647 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %509) #9
  %sext338 = shl i64 %647, 32
  %648 = ashr exact i64 %sext338, 32
  %649 = icmp slt i64 %indvars.iv.next334, %648
  br i1 %649, label %.lr.ph316, label %._crit_edge317, !llvm.loop !108

650:                                              ; preds = %._crit_edge317
  %651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
          to label %652 unwind label %425

652:                                              ; preds = %650, %400
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #9
  ret void

653:                                              ; preds = %323, %431, %453, %631, %536, %468, %425, %112
  %.pn255.pn = phi { ptr, i32 } [ %113, %112 ], [ %324, %323 ], [ %426, %425 ], [ %.pn250, %631 ], [ %.pn248, %536 ], [ %.pn246, %468 ], [ %454, %453 ], [ %.pn, %431 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #9
  br label %654

654:                                              ; preds = %653, %110
  %.pn255.pn.pn = phi { ptr, i32 } [ %.pn255.pn, %653 ], [ %111, %110 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  br label %655

655:                                              ; preds = %654, %108
  %.pn255.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn, %654 ], [ %109, %108 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  br label %656

656:                                              ; preds = %655, %106
  %.pn255.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn.pn, %655 ], [ %107, %106 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #9
  br label %657

657:                                              ; preds = %656, %104
  %.pn255.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn.pn.pn, %656 ], [ %105, %104 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #9
  br label %658

658:                                              ; preds = %657, %102
  %.pn255.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn.pn.pn.pn, %657 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #9
  br label %659

659:                                              ; preds = %658, %100
  %.pn255.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn.pn.pn.pn.pn, %658 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #9
  br label %660

660:                                              ; preds = %659, %98
  %.pn255.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn.pn.pn.pn.pn.pn, %659 ], [ %99, %98 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #9
  br label %661

661:                                              ; preds = %660, %96
  %.pn255.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn.pn.pn.pn.pn.pn.pn, %660 ], [ %97, %96 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #9
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #9
  br label %662

662:                                              ; preds = %661, %94
  %.pn255.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn255.pn.pn.pn.pn.pn.pn.pn.pn.pn, %661 ], [ %95, %94 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #9
  resume { ptr, i32 } %.pn255.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4var3IdEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24), double noundef, double noundef, double noundef) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_Z3magIdET_RK4var3IS0_E(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN4var3IdEpLERKS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK8throatNE4mb22Ev(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z4distPK10medialBallS1_(ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: nounwind
declare i32 @rand() local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z7randomGv() local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(8) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: nofree nounwind
declare noalias noundef ptr @fopen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9InputFile4nameB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(122)) local_unnamed_addr #2 align 2

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

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #8

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

; Function Attrs: nofree nounwind
declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKiiEES5_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt3mapIiiSt4lessIiESaISt4pairIKiiEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKiiEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @fputs(ptr nocapture noundef readonly, ptr nocapture noundef) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK6poreNE6radiusEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #3 align 2

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { 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 #8 = { nofree 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 #9 = { 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 436}
!6 = !{!"_ZTS12blockNetwork", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !7, i64 24, !11, i64 32, !12, i64 224, !23, i64 336, !27, i64 360, !31, i64 384, !31, i64 408, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTSSt5arrayI5voxelLm8EE", !8, i64 0}
!12 = !{!"_ZTS11voxelImageTIiE", !13, i64 0, !14, i64 8, !21, i64 64, !21, i64 88}
!13 = !{!"_ZTS15voxelImageTBase"}
!14 = !{!"_ZTS10voxelFieldIiE", !15, i64 8, !16, i64 16, !17, i64 32}
!15 = !{!"long long", !8, i64 0}
!16 = !{!"_ZTS4var3IiE", !10, i64 0, !10, i64 4, !10, i64 8}
!17 = !{!"_ZTSSt6vectorIiSaIiEE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!21 = !{!"_ZTS4var3IdE", !22, i64 0, !22, i64 8, !22, i64 16}
!22 = !{!"double", !8, i64 0}
!23 = !{!"_ZTSSt6vectorIP6poreNESaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIP6poreNESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIP6poreNESaIS1_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIP6poreNESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!27 = !{!"_ZTSSt6vectorIP8throatNESaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIP8throatNESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIP8throatNESaIS1_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIP8throatNESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!31 = !{!"_ZTSSt6vectorIP10medialBallSaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIP10medialBallSaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIP10medialBallSaIS1_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIP10medialBallSaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!35 = !{!22, !22, i64 0}
!36 = !{!6, !10, i64 432}
!37 = !{!7, !7, i64 0}
!38 = !{!39, !10, i64 12}
!39 = !{!"_ZTS8throatNE", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !40, i64 20, !40, i64 22, !41, i64 24, !41, i64 48, !21, i64 72}
!40 = !{!"short", !8, i64 0}
!41 = !{!"_ZTSSt6vectorIP5voxelSaIS1_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIP5voxelSaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIP5voxelSaIS1_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIP5voxelSaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!45 = !{!39, !10, i64 4}
!46 = !{!47, !48, i64 8}
!47 = !{!"_ZTS10medialBall", !7, i64 0, !48, i64 8, !48, i64 12, !48, i64 16, !40, i64 20, !48, i64 24, !40, i64 28, !40, i64 30, !40, i64 32, !40, i64 34, !40, i64 36, !7, i64 40, !7, i64 48, !7, i64 56}
!48 = !{!"float", !8, i64 0}
!49 = !{!6, !7, i64 24}
!50 = !{!51, !10, i64 124}
!51 = !{!"_ZTS11inputDataNE", !52, i64 0, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !22, i64 144, !21, i64 152, !57, i64 176, !15, i64 208, !57, i64 216, !61, i64 248, !65, i64 272, !17, i64 288, !66, i64 312, !70, i64 336}
!52 = !{!"_ZTS9InputFile", !53, i64 0, !57, i64 24, !57, i64 56, !57, i64 88, !60, i64 120, !60, i64 121}
!53 = !{!"_ZTSSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!57 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !58, i64 0, !59, i64 8, !8, i64 16}
!58 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!59 = !{!"long", !8, i64 0}
!60 = !{!"bool", !8, i64 0}
!61 = !{!"_ZTSSt6vectorIS_I8segmentsSaIS0_EESaIS2_EE", !62, i64 0}
!62 = !{!"_ZTSSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE12_Vector_implE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseISt6vectorI8segmentsSaIS1_EESaIS3_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!65 = !{!"_ZTS7segment", !10, i64 0, !8, i64 4, !7, i64 8}
!66 = !{!"_ZTSSt6vectorI9poroRangeSaIS0_EE", !67, i64 0}
!67 = !{!"_ZTSSt12_Vector_baseI9poroRangeSaIS0_EE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE12_Vector_implE", !69, i64 0}
!69 = !{!"_ZTSNSt12_Vector_baseI9poroRangeSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!70 = !{!"_ZTS11voxelImageTIhE", !13, i64 0, !71, i64 8, !21, i64 64, !21, i64 88}
!71 = !{!"_ZTS10voxelFieldIhE", !15, i64 8, !16, i64 16, !72, i64 32}
!72 = !{!"_ZTSSt6vectorIhSaIhEE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!76 = !{!77, !7, i64 56}
!77 = !{!"_ZTS6poreNE", !10, i64 0, !10, i64 4, !78, i64 8, !7, i64 56}
!78 = !{!"_ZTSSt3mapIiiSt4lessIiESaISt4pairIKiiEEE", !79, i64 0}
!79 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE", !80, i64 0}
!80 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !81, i64 0, !83, i64 8}
!81 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !82, i64 0}
!82 = !{!"_ZTSSt4lessIiE"}
!83 = !{!"_ZTSSt15_Rb_tree_header", !84, i64 0, !59, i64 32}
!84 = !{!"_ZTSSt18_Rb_tree_node_base", !85, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!85 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!86 = !{!48, !48, i64 0}
!87 = !{!39, !10, i64 8}
!88 = distinct !{!88, !89}
!89 = !{!"llvm.loop.mustprogress"}
!90 = !{!10, !10, i64 0}
!91 = !{!47, !48, i64 24}
!92 = !{!77, !10, i64 0}
!93 = !{!77, !10, i64 4}
!94 = !{!95, !10, i64 4}
!95 = !{!"_ZTSSt4pairIKiiE", !10, i64 0, !10, i64 4}
!96 = distinct !{!96, !89}
!97 = !{!39, !10, i64 16}
!98 = !{!51, !22, i64 144}
!99 = distinct !{!99, !89}
!100 = distinct !{!100, !89}
!101 = !{!51, !10, i64 128}
!102 = !{!51, !10, i64 132}
!103 = !{!47, !48, i64 12}
!104 = !{!47, !48, i64 16}
!105 = distinct !{!105, !89}
!106 = distinct !{!106, !89}
!107 = distinct !{!107, !89}
!108 = distinct !{!108, !89}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass