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

; 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 }
%"struct.std::pair" = type <{ %"struct.std::_Rb_tree_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair.59" = type { i32, i32 }
%"class.__gnu_cxx::__normal_iterator.68" = type { ptr }
%"class.std::set" = type { %"class.std::_Rb_tree.69" }
%"class.std::_Rb_tree.69" = type { %"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, int, std::_Identity<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.73" = type <{ %"struct.std::_Rb_tree_const_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.76" = type { ptr }
%class.metaballcomparer = type { i8 }
%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.var3 = type { double, double, double }
%"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.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::pair.66" = type { i32, i32 }
%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 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [2 x i8], align 1

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #2

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10medialBallC2EP5voxels(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i16 noundef signext) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, i64 noundef) #6 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN13medialSurface3vxlEiii(ptr noundef nonnull align 8 dereferenceable(252), i32 noundef, i32 noundef, i32 noundef) #6 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN12blockNetwork16createNewThroatsERP13medialSurface(ptr noundef nonnull align 8 dereferenceable(448) %0, ptr noundef nonnull align 8 dereferenceable(8) %1) #4 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i8, align 1
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca %"struct.std::pair", align 8
  %17 = alloca %"struct.std::pair.59", align 4
  %18 = alloca { ptr, i8 }, align 8
  %19 = alloca %"struct.std::pair", align 8
  %20 = alloca %"struct.std::pair.59", align 4
  %21 = alloca { ptr, i8 }, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i8, align 1
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca %"struct.std::pair", align 8
  %37 = alloca %"struct.std::pair.59", align 4
  %38 = alloca { ptr, i8 }, align 8
  %39 = alloca %"struct.std::pair", align 8
  %40 = alloca %"struct.std::pair.59", align 4
  %41 = alloca { ptr, i8 }, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i8, align 1
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca i32, align 4
  %54 = alloca %"struct.std::pair", align 8
  %55 = alloca %"struct.std::pair.59", align 4
  %56 = alloca { ptr, i8 }, align 8
  %57 = alloca %"struct.std::pair", align 8
  %58 = alloca %"struct.std::pair.59", align 4
  %59 = alloca { ptr, i8 }, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %64 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %65 = alloca ptr, align 8
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca %"class.std::set", align 8
  %74 = alloca i32, align 4
  %75 = alloca %"struct.std::pair.73", align 8
  %76 = alloca %"struct.std::pair.73", align 8
  %77 = alloca %"struct.std::pair.73", align 8
  %78 = alloca %"struct.std::pair.73", align 8
  %79 = alloca %"struct.std::pair.73", align 8
  %80 = alloca %"struct.std::pair.73", align 8
  %81 = alloca ptr, align 8
  %82 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %83 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %84 = alloca i32, align 4
  %85 = alloca ptr, align 8
  %86 = alloca ptr, align 8
  %87 = alloca ptr, align 8
  %88 = alloca ptr, align 8
  %89 = alloca ptr, align 8
  %90 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %91 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %92 = alloca ptr, align 8
  %93 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %94 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %95 = alloca %class.metaballcomparer, align 1
  %96 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %97 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %98 = alloca %class.metaballcomparer, align 1
  %99 = alloca ptr, align 8
  %100 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %101 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %102 = alloca ptr, align 8
  %103 = alloca ptr, align 8
  %104 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %105 = alloca ptr, align 8
  %106 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %107 = alloca ptr, align 8
  %108 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %109 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %110 = alloca %class.metaballcomparer, align 1
  %111 = alloca ptr, align 8
  %112 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %113 = alloca ptr, align 8
  %114 = alloca ptr, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %115 = load ptr, ptr %3, align 8
  %116 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.13)
  %117 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %118 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %117) #9
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %116, i64 noundef %118)
  %120 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef @.str.14)
  %121 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #9
  store i32 0, ptr %5, align 4, !tbaa !9
  br label %122

122:                                              ; preds = %319, %2
  %123 = load i32, ptr %5, align 4, !tbaa !9
  %124 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %125 = getelementptr inbounds i8, ptr %124, i64 8
  %126 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %125)
  %127 = sub nsw i32 %126, 1
  %128 = icmp slt i32 %123, %127
  br i1 %128, label %130, label %129

129:                                              ; preds = %122
  store i32 2, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  br label %322

130:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  store i32 1, ptr %7, align 4, !tbaa !9
  br label %131

131:                                              ; preds = %315, %130
  %132 = load i32, ptr %7, align 4, !tbaa !9
  %133 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %134 = getelementptr inbounds i8, ptr %133, i64 8
  %135 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %134)
  %136 = sub nsw i32 %135, 1
  %137 = icmp slt i32 %132, %136
  br i1 %137, label %139, label %138

138:                                              ; preds = %131
  store i32 5, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %318

139:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  store i32 1, ptr %8, align 4, !tbaa !9
  br label %140

140:                                              ; preds = %311, %139
  %141 = load i32, ptr %8, align 4, !tbaa !9
  %142 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %143 = getelementptr inbounds i8, ptr %142, i64 8
  %144 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %143)
  %145 = sub nsw i32 %144, 1
  %146 = icmp slt i32 %141, %145
  br i1 %146, label %148, label %147

147:                                              ; preds = %140
  store i32 8, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %314

148:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %149 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %150 = getelementptr inbounds i8, ptr %149, i64 8
  %151 = load i32, ptr %5, align 4, !tbaa !9
  %152 = load i32, ptr %8, align 4, !tbaa !9
  %153 = load i32, ptr %7, align 4, !tbaa !9
  %154 = sext i32 %153 to i64
  %155 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %150, i32 noundef %151, i32 noundef %152, i64 noundef %154)
  %156 = load i32, ptr %155, align 4, !tbaa !9
  store i32 %156, ptr %9, align 4, !tbaa !9
  %157 = load i32, ptr %9, align 4, !tbaa !9
  %158 = icmp sge i32 %157, 0
  br i1 %158, label %159, label %310

159:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %160 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %161 = getelementptr inbounds i8, ptr %160, i64 8
  %162 = load i32, ptr %5, align 4, !tbaa !9
  %163 = add nsw i32 %162, 1
  %164 = load i32, ptr %8, align 4, !tbaa !9
  %165 = load i32, ptr %7, align 4, !tbaa !9
  %166 = sext i32 %165 to i64
  %167 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %161, i32 noundef %163, i32 noundef %164, i64 noundef %166)
  %168 = load i32, ptr %167, align 4, !tbaa !9
  store i32 %168, ptr %10, align 4, !tbaa !9
  %169 = load i32, ptr %9, align 4, !tbaa !9
  %170 = load i32, ptr %10, align 4, !tbaa !9
  %171 = icmp ne i32 %169, %170
  br i1 %171, label %172, label %295

172:                                              ; preds = %159
  %173 = load i32, ptr %10, align 4, !tbaa !9
  %174 = icmp sge i32 %173, 0
  br i1 %174, label %175, label %266

175:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #9
  %176 = load i32, ptr %10, align 4, !tbaa !9
  %177 = load i32, ptr %9, align 4, !tbaa !9
  %178 = icmp sgt i32 %176, %177
  %179 = zext i1 %178 to i8
  store i8 %179, ptr %11, align 1, !tbaa !11
  %180 = load i8, ptr %11, align 1, !tbaa !11, !range !13, !noundef !14
  %181 = trunc i8 %180 to i1
  br i1 %181, label %186, label %182

182:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %183 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %183, ptr %12, align 4, !tbaa !9
  %184 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %184, ptr %9, align 4, !tbaa !9
  %185 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %185, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %186

186:                                              ; preds = %182, %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %187 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %188 = load i32, ptr %9, align 4, !tbaa !9
  %189 = sext i32 %188 to i64
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %187, i64 noundef %189) #9
  %191 = load ptr, ptr %190, align 8, !tbaa !5
  store ptr %191, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %192 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %193 = load i32, ptr %10, align 4, !tbaa !9
  %194 = sext i32 %193 to i64
  %195 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %192, i64 noundef %194) #9
  %196 = load ptr, ptr %195, align 8, !tbaa !5
  store ptr %196, ptr %14, align 8, !tbaa !5
  %197 = load ptr, ptr %13, align 8, !tbaa !5
  %198 = icmp ne ptr %197, null
  br i1 %198, label %204, label %199

199:                                              ; preds = %186
  %200 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
  %201 = load i32, ptr %9, align 4, !tbaa !9
  %202 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %200, i32 noundef %201)
  %203 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %202, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %204

204:                                              ; preds = %199, %186
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %205 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %206 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %205) #9
  %207 = trunc i64 %206 to i32
  store i32 %207, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #9
  %208 = load ptr, ptr %14, align 8, !tbaa !5
  %209 = getelementptr inbounds %class.poreNE, ptr %208, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %17, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %15)
  %210 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %209, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store { ptr, i8 } %210, ptr %18, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %16, ptr align 8 %18, i64 9, i1 false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  %211 = getelementptr inbounds %"struct.std::pair", ptr %16, i32 0, i32 1
  %212 = load i8, ptr %211, align 8, !tbaa !15, !range !13, !noundef !14
  %213 = trunc i8 %212 to i1
  br i1 %213, label %214, label %246

214:                                              ; preds = %204
  %215 = getelementptr inbounds %"struct.std::pair", ptr %16, i32 0, i32 1
  %216 = load i8, ptr %215, align 8, !tbaa !15, !range !13, !noundef !14
  %217 = trunc i8 %216 to i1
  %218 = zext i1 %217 to i32
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #9
  %219 = load ptr, ptr %13, align 8, !tbaa !5
  %220 = getelementptr inbounds %class.poreNE, ptr %219, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %20, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %15)
  %221 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %220, ptr noundef nonnull align 4 dereferenceable(8) %20)
  store { ptr, i8 } %221, ptr %21, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %21, i64 9, i1 false)
  %222 = getelementptr inbounds %"struct.std::pair", ptr %19, i32 0, i32 1
  %223 = load i8, ptr %222, align 8, !tbaa !15, !range !13, !noundef !14
  %224 = trunc i8 %223 to i1
  %225 = zext i1 %224 to i32
  %226 = icmp ne i32 %218, %225
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #9
  br i1 %226, label %227, label %235

227:                                              ; preds = %214
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.16)
  %229 = load i32, ptr %9, align 4, !tbaa !9
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %228, i32 noundef %229)
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef @.str.17)
  %232 = load i32, ptr %10, align 4, !tbaa !9
  %233 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %231, i32 noundef %232)
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %233, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %235

235:                                              ; preds = %227, %214
  %236 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %237 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
  %238 = load i32, ptr %15, align 4, !tbaa !9
  %239 = load i32, ptr %9, align 4, !tbaa !9
  %240 = load i32, ptr %10, align 4, !tbaa !9
  invoke void @_ZN8throatNEC2Eiii(ptr noundef nonnull align 8 dereferenceable(96) %237, i32 noundef %238, i32 noundef %239, i32 noundef %240)
          to label %241 unwind label %242

241:                                              ; preds = %235
  store ptr %237, ptr %22, align 8, !tbaa !5
  call void @_ZNSt6vectorIP8throatNESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %236, ptr noundef nonnull align 8 dereferenceable(8) %22)
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %246

242:                                              ; preds = %235
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %23, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %24, align 4
  call void @_ZdlPvm(ptr noundef %237, i64 noundef 96) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  br label %1395

246:                                              ; preds = %241, %204
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %247 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %248 = getelementptr inbounds %"struct.std::pair", ptr %16, i32 0, i32 0
  %249 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %248) #9
  %250 = getelementptr inbounds %"struct.std::pair.66", ptr %249, i32 0, i32 1
  %251 = load i32, ptr %250, align 4, !tbaa !18
  %252 = sext i32 %251 to i64
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %247, i64 noundef %252) #9
  %254 = load ptr, ptr %253, align 8, !tbaa !5
  store ptr %254, ptr %25, align 8, !tbaa !5
  %255 = load i8, ptr %11, align 1, !tbaa !11, !range !13, !noundef !14
  %256 = trunc i8 %255 to i1
  %257 = zext i1 %256 to i32
  %258 = mul nsw i32 2, %257
  %259 = sub nsw i32 %258, 1
  %260 = sitofp i32 %259 to double
  %261 = load ptr, ptr %25, align 8, !tbaa !5
  %262 = getelementptr inbounds %class.throatNE, ptr %261, i32 0, i32 9
  %263 = getelementptr inbounds %class.var3, ptr %262, i32 0, i32 0
  %264 = load double, ptr %263, align 8, !tbaa !20
  %265 = fadd double %264, %260
  store double %265, ptr %263, align 8, !tbaa !20
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #9
  br label %266

266:                                              ; preds = %246, %172
  %267 = load i32, ptr %9, align 4, !tbaa !9
  %268 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 1
  %269 = load i32, ptr %268, align 8, !tbaa !29
  %270 = icmp sge i32 %267, %269
  br i1 %270, label %271, label %280

271:                                              ; preds = %266
  %272 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %273 = load i32, ptr %9, align 4, !tbaa !9
  %274 = sext i32 %273 to i64
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %272, i64 noundef %274) #9
  %276 = load ptr, ptr %275, align 8, !tbaa !5
  %277 = getelementptr inbounds %class.poreNE, ptr %276, i32 0, i32 0
  %278 = load i32, ptr %277, align 8, !tbaa !53
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr %277, align 8, !tbaa !53
  br label %280

280:                                              ; preds = %271, %266
  %281 = load i32, ptr %10, align 4, !tbaa !9
  %282 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 1
  %283 = load i32, ptr %282, align 8, !tbaa !29
  %284 = icmp sge i32 %281, %283
  br i1 %284, label %285, label %294

285:                                              ; preds = %280
  %286 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %287 = load i32, ptr %10, align 4, !tbaa !9
  %288 = sext i32 %287 to i64
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %286, i64 noundef %288) #9
  %290 = load ptr, ptr %289, align 8, !tbaa !5
  %291 = getelementptr inbounds %class.poreNE, ptr %290, i32 0, i32 0
  %292 = load i32, ptr %291, align 8, !tbaa !53
  %293 = add nsw i32 %292, 1
  store i32 %293, ptr %291, align 8, !tbaa !53
  br label %294

294:                                              ; preds = %285, %280
  br label %295

295:                                              ; preds = %294, %159
  %296 = load i32, ptr %9, align 4, !tbaa !9
  %297 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 1
  %298 = load i32, ptr %297, align 8, !tbaa !29
  %299 = icmp sge i32 %296, %298
  br i1 %299, label %300, label %309

300:                                              ; preds = %295
  %301 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %302 = load i32, ptr %9, align 4, !tbaa !9
  %303 = sext i32 %302 to i64
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %301, i64 noundef %303) #9
  %305 = load ptr, ptr %304, align 8, !tbaa !5
  %306 = getelementptr inbounds %class.poreNE, ptr %305, i32 0, i32 1
  %307 = load i32, ptr %306, align 4, !tbaa !64
  %308 = add nsw i32 %307, 1
  store i32 %308, ptr %306, align 4, !tbaa !64
  br label %309

309:                                              ; preds = %300, %295
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %310

310:                                              ; preds = %309, %148
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %311

311:                                              ; preds = %310
  %312 = load i32, ptr %8, align 4, !tbaa !9
  %313 = add nsw i32 %312, 1
  store i32 %313, ptr %8, align 4, !tbaa !9
  br label %140, !llvm.loop !65

314:                                              ; preds = %147
  br label %315

315:                                              ; preds = %314
  %316 = load i32, ptr %7, align 4, !tbaa !9
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr %7, align 4, !tbaa !9
  br label %131, !llvm.loop !67

318:                                              ; preds = %138
  br label %319

319:                                              ; preds = %318
  %320 = load i32, ptr %5, align 4, !tbaa !9
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr %5, align 4, !tbaa !9
  br label %122, !llvm.loop !68

322:                                              ; preds = %129
  %323 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %324 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %323) #9
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %324)
  %326 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %325, ptr noundef @.str.18)
  %327 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %326)
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  store i32 0, ptr %26, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %511, %322
  %329 = load i32, ptr %26, align 4, !tbaa !9
  %330 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %331 = getelementptr inbounds i8, ptr %330, i64 8
  %332 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %331)
  %333 = sub nsw i32 %332, 1
  %334 = icmp slt i32 %329, %333
  br i1 %334, label %336, label %335

335:                                              ; preds = %328
  store i32 11, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %514

336:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %337

337:                                              ; preds = %507, %336
  %338 = load i32, ptr %27, align 4, !tbaa !9
  %339 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %340 = getelementptr inbounds i8, ptr %339, i64 8
  %341 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %340)
  %342 = sub nsw i32 %341, 1
  %343 = icmp slt i32 %338, %342
  br i1 %343, label %345, label %344

344:                                              ; preds = %337
  store i32 14, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %510

345:                                              ; preds = %337
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %346

346:                                              ; preds = %503, %345
  %347 = load i32, ptr %28, align 4, !tbaa !9
  %348 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %349 = getelementptr inbounds i8, ptr %348, i64 8
  %350 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %349)
  %351 = sub nsw i32 %350, 1
  %352 = icmp slt i32 %347, %351
  br i1 %352, label %354, label %353

353:                                              ; preds = %346
  store i32 17, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %506

354:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %355 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %356 = getelementptr inbounds i8, ptr %355, i64 8
  %357 = load i32, ptr %28, align 4, !tbaa !9
  %358 = load i32, ptr %26, align 4, !tbaa !9
  %359 = load i32, ptr %27, align 4, !tbaa !9
  %360 = sext i32 %359 to i64
  %361 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %356, i32 noundef %357, i32 noundef %358, i64 noundef %360)
  %362 = load i32, ptr %361, align 4, !tbaa !9
  store i32 %362, ptr %29, align 4, !tbaa !9
  %363 = load i32, ptr %29, align 4, !tbaa !9
  %364 = icmp sge i32 %363, 0
  br i1 %364, label %365, label %502

365:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %366 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %367 = getelementptr inbounds i8, ptr %366, i64 8
  %368 = load i32, ptr %28, align 4, !tbaa !9
  %369 = load i32, ptr %26, align 4, !tbaa !9
  %370 = add nsw i32 %369, 1
  %371 = load i32, ptr %27, align 4, !tbaa !9
  %372 = sext i32 %371 to i64
  %373 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %367, i32 noundef %368, i32 noundef %370, i64 noundef %372)
  %374 = load i32, ptr %373, align 4, !tbaa !9
  store i32 %374, ptr %30, align 4, !tbaa !9
  %375 = load i32, ptr %29, align 4, !tbaa !9
  %376 = load i32, ptr %30, align 4, !tbaa !9
  %377 = icmp ne i32 %375, %376
  br i1 %377, label %378, label %501

378:                                              ; preds = %365
  %379 = load i32, ptr %30, align 4, !tbaa !9
  %380 = icmp sge i32 %379, 0
  br i1 %380, label %381, label %472

381:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #9
  %382 = load i32, ptr %30, align 4, !tbaa !9
  %383 = load i32, ptr %29, align 4, !tbaa !9
  %384 = icmp sgt i32 %382, %383
  %385 = zext i1 %384 to i8
  store i8 %385, ptr %31, align 1, !tbaa !11
  %386 = load i8, ptr %31, align 1, !tbaa !11, !range !13, !noundef !14
  %387 = trunc i8 %386 to i1
  br i1 %387, label %392, label %388

388:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %389 = load i32, ptr %29, align 4, !tbaa !9
  store i32 %389, ptr %32, align 4, !tbaa !9
  %390 = load i32, ptr %30, align 4, !tbaa !9
  store i32 %390, ptr %29, align 4, !tbaa !9
  %391 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %391, ptr %30, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %392

392:                                              ; preds = %388, %381
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %393 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %394 = load i32, ptr %29, align 4, !tbaa !9
  %395 = sext i32 %394 to i64
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %393, i64 noundef %395) #9
  %397 = load ptr, ptr %396, align 8, !tbaa !5
  store ptr %397, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %398 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %399 = load i32, ptr %30, align 4, !tbaa !9
  %400 = sext i32 %399 to i64
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %398, i64 noundef %400) #9
  %402 = load ptr, ptr %401, align 8, !tbaa !5
  store ptr %402, ptr %34, align 8, !tbaa !5
  %403 = load ptr, ptr %33, align 8, !tbaa !5
  %404 = icmp ne ptr %403, null
  br i1 %404, label %410, label %405

405:                                              ; preds = %392
  %406 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
  %407 = load i32, ptr %29, align 4, !tbaa !9
  %408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %406, i32 noundef %407)
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %408, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %410

410:                                              ; preds = %405, %392
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %411 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %412 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %411) #9
  %413 = trunc i64 %412 to i32
  store i32 %413, ptr %35, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #9
  %414 = load ptr, ptr %34, align 8, !tbaa !5
  %415 = getelementptr inbounds %class.poreNE, ptr %414, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %35)
  %416 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %415, ptr noundef nonnull align 4 dereferenceable(8) %37)
  store { ptr, i8 } %416, ptr %38, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %36, ptr align 8 %38, i64 9, i1 false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  %417 = getelementptr inbounds %"struct.std::pair", ptr %36, i32 0, i32 1
  %418 = load i8, ptr %417, align 8, !tbaa !15, !range !13, !noundef !14
  %419 = trunc i8 %418 to i1
  br i1 %419, label %420, label %452

420:                                              ; preds = %410
  %421 = getelementptr inbounds %"struct.std::pair", ptr %36, i32 0, i32 1
  %422 = load i8, ptr %421, align 8, !tbaa !15, !range !13, !noundef !14
  %423 = trunc i8 %422 to i1
  %424 = zext i1 %423 to i32
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #9
  %425 = load ptr, ptr %33, align 8, !tbaa !5
  %426 = getelementptr inbounds %class.poreNE, ptr %425, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 4 dereferenceable(4) %35)
  %427 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %426, ptr noundef nonnull align 4 dereferenceable(8) %40)
  store { ptr, i8 } %427, ptr %41, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %39, ptr align 8 %41, i64 9, i1 false)
  %428 = getelementptr inbounds %"struct.std::pair", ptr %39, i32 0, i32 1
  %429 = load i8, ptr %428, align 8, !tbaa !15, !range !13, !noundef !14
  %430 = trunc i8 %429 to i1
  %431 = zext i1 %430 to i32
  %432 = icmp ne i32 %424, %431
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #9
  br i1 %432, label %433, label %441

433:                                              ; preds = %420
  %434 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.16)
  %435 = load i32, ptr %29, align 4, !tbaa !9
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %434, i32 noundef %435)
  %437 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef @.str.17)
  %438 = load i32, ptr %30, align 4, !tbaa !9
  %439 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %437, i32 noundef %438)
  %440 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %439, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %441

441:                                              ; preds = %433, %420
  %442 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %443 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
  %444 = load i32, ptr %35, align 4, !tbaa !9
  %445 = load i32, ptr %29, align 4, !tbaa !9
  %446 = load i32, ptr %30, align 4, !tbaa !9
  invoke void @_ZN8throatNEC2Eiii(ptr noundef nonnull align 8 dereferenceable(96) %443, i32 noundef %444, i32 noundef %445, i32 noundef %446)
          to label %447 unwind label %448

447:                                              ; preds = %441
  store ptr %443, ptr %42, align 8, !tbaa !5
  call void @_ZNSt6vectorIP8throatNESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %442, ptr noundef nonnull align 8 dereferenceable(8) %42)
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  br label %452

448:                                              ; preds = %441
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %23, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %24, align 4
  call void @_ZdlPvm(ptr noundef %443, i64 noundef 96) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1395

452:                                              ; preds = %447, %410
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %453 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %454 = getelementptr inbounds %"struct.std::pair", ptr %36, i32 0, i32 0
  %455 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %454) #9
  %456 = getelementptr inbounds %"struct.std::pair.66", ptr %455, i32 0, i32 1
  %457 = load i32, ptr %456, align 4, !tbaa !18
  %458 = sext i32 %457 to i64
  %459 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %453, i64 noundef %458) #9
  %460 = load ptr, ptr %459, align 8, !tbaa !5
  store ptr %460, ptr %43, align 8, !tbaa !5
  %461 = load i8, ptr %31, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc i8 %461 to i1
  %463 = zext i1 %462 to i32
  %464 = mul nsw i32 2, %463
  %465 = sub nsw i32 %464, 1
  %466 = sitofp i32 %465 to double
  %467 = load ptr, ptr %43, align 8, !tbaa !5
  %468 = getelementptr inbounds %class.throatNE, ptr %467, i32 0, i32 9
  %469 = getelementptr inbounds %class.var3, ptr %468, i32 0, i32 1
  %470 = load double, ptr %469, align 8, !tbaa !69
  %471 = fadd double %470, %466
  store double %471, ptr %469, align 8, !tbaa !69
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #9
  br label %472

472:                                              ; preds = %452, %378
  %473 = load i32, ptr %29, align 4, !tbaa !9
  %474 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 1
  %475 = load i32, ptr %474, align 8, !tbaa !29
  %476 = icmp sge i32 %473, %475
  br i1 %476, label %477, label %486

477:                                              ; preds = %472
  %478 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %479 = load i32, ptr %29, align 4, !tbaa !9
  %480 = sext i32 %479 to i64
  %481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %478, i64 noundef %480) #9
  %482 = load ptr, ptr %481, align 8, !tbaa !5
  %483 = getelementptr inbounds %class.poreNE, ptr %482, i32 0, i32 0
  %484 = load i32, ptr %483, align 8, !tbaa !53
  %485 = add nsw i32 %484, 1
  store i32 %485, ptr %483, align 8, !tbaa !53
  br label %486

486:                                              ; preds = %477, %472
  %487 = load i32, ptr %30, align 4, !tbaa !9
  %488 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 1
  %489 = load i32, ptr %488, align 8, !tbaa !29
  %490 = icmp sge i32 %487, %489
  br i1 %490, label %491, label %500

491:                                              ; preds = %486
  %492 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %493 = load i32, ptr %30, align 4, !tbaa !9
  %494 = sext i32 %493 to i64
  %495 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %492, i64 noundef %494) #9
  %496 = load ptr, ptr %495, align 8, !tbaa !5
  %497 = getelementptr inbounds %class.poreNE, ptr %496, i32 0, i32 0
  %498 = load i32, ptr %497, align 8, !tbaa !53
  %499 = add nsw i32 %498, 1
  store i32 %499, ptr %497, align 8, !tbaa !53
  br label %500

500:                                              ; preds = %491, %486
  br label %501

501:                                              ; preds = %500, %365
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %502

502:                                              ; preds = %501, %354
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %503

503:                                              ; preds = %502
  %504 = load i32, ptr %28, align 4, !tbaa !9
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr %28, align 4, !tbaa !9
  br label %346, !llvm.loop !70

506:                                              ; preds = %353
  br label %507

507:                                              ; preds = %506
  %508 = load i32, ptr %27, align 4, !tbaa !9
  %509 = add nsw i32 %508, 1
  store i32 %509, ptr %27, align 4, !tbaa !9
  br label %337, !llvm.loop !71

510:                                              ; preds = %344
  br label %511

511:                                              ; preds = %510
  %512 = load i32, ptr %26, align 4, !tbaa !9
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr %26, align 4, !tbaa !9
  br label %328, !llvm.loop !72

514:                                              ; preds = %335
  %515 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %516 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %515) #9
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %516)
  %518 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %517, ptr noundef @.str.18)
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %518)
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  store i32 0, ptr %44, align 4, !tbaa !9
  br label %520

520:                                              ; preds = %703, %514
  %521 = load i32, ptr %44, align 4, !tbaa !9
  %522 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %523 = getelementptr inbounds i8, ptr %522, i64 8
  %524 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %523)
  %525 = sub nsw i32 %524, 1
  %526 = icmp slt i32 %521, %525
  br i1 %526, label %528, label %527

527:                                              ; preds = %520
  store i32 20, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %706

528:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  store i32 1, ptr %45, align 4, !tbaa !9
  br label %529

529:                                              ; preds = %699, %528
  %530 = load i32, ptr %45, align 4, !tbaa !9
  %531 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %532 = getelementptr inbounds i8, ptr %531, i64 8
  %533 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %532)
  %534 = sub nsw i32 %533, 1
  %535 = icmp slt i32 %530, %534
  br i1 %535, label %537, label %536

536:                                              ; preds = %529
  store i32 23, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %702

537:                                              ; preds = %529
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  store i32 1, ptr %46, align 4, !tbaa !9
  br label %538

538:                                              ; preds = %695, %537
  %539 = load i32, ptr %46, align 4, !tbaa !9
  %540 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %541 = getelementptr inbounds i8, ptr %540, i64 8
  %542 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %541)
  %543 = sub nsw i32 %542, 1
  %544 = icmp slt i32 %539, %543
  br i1 %544, label %546, label %545

545:                                              ; preds = %538
  store i32 26, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %698

546:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  %547 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %548 = getelementptr inbounds i8, ptr %547, i64 8
  %549 = load i32, ptr %46, align 4, !tbaa !9
  %550 = load i32, ptr %45, align 4, !tbaa !9
  %551 = load i32, ptr %44, align 4, !tbaa !9
  %552 = sext i32 %551 to i64
  %553 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %548, i32 noundef %549, i32 noundef %550, i64 noundef %552)
  %554 = load i32, ptr %553, align 4, !tbaa !9
  store i32 %554, ptr %47, align 4, !tbaa !9
  %555 = load i32, ptr %47, align 4, !tbaa !9
  %556 = icmp sge i32 %555, 0
  br i1 %556, label %557, label %694

557:                                              ; preds = %546
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %558 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %559 = getelementptr inbounds i8, ptr %558, i64 8
  %560 = load i32, ptr %46, align 4, !tbaa !9
  %561 = load i32, ptr %45, align 4, !tbaa !9
  %562 = load i32, ptr %44, align 4, !tbaa !9
  %563 = add nsw i32 %562, 1
  %564 = sext i32 %563 to i64
  %565 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %559, i32 noundef %560, i32 noundef %561, i64 noundef %564)
  %566 = load i32, ptr %565, align 4, !tbaa !9
  store i32 %566, ptr %48, align 4, !tbaa !9
  %567 = load i32, ptr %47, align 4, !tbaa !9
  %568 = load i32, ptr %48, align 4, !tbaa !9
  %569 = icmp ne i32 %567, %568
  br i1 %569, label %570, label %693

570:                                              ; preds = %557
  %571 = load i32, ptr %48, align 4, !tbaa !9
  %572 = icmp sge i32 %571, 0
  br i1 %572, label %573, label %664

573:                                              ; preds = %570
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #9
  %574 = load i32, ptr %48, align 4, !tbaa !9
  %575 = load i32, ptr %47, align 4, !tbaa !9
  %576 = icmp sgt i32 %574, %575
  %577 = zext i1 %576 to i8
  store i8 %577, ptr %49, align 1, !tbaa !11
  %578 = load i8, ptr %49, align 1, !tbaa !11, !range !13, !noundef !14
  %579 = trunc i8 %578 to i1
  br i1 %579, label %584, label %580

580:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %581 = load i32, ptr %47, align 4, !tbaa !9
  store i32 %581, ptr %50, align 4, !tbaa !9
  %582 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %582, ptr %47, align 4, !tbaa !9
  %583 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %583, ptr %48, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %584

584:                                              ; preds = %580, %573
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %585 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %586 = load i32, ptr %47, align 4, !tbaa !9
  %587 = sext i32 %586 to i64
  %588 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %585, i64 noundef %587) #9
  %589 = load ptr, ptr %588, align 8, !tbaa !5
  store ptr %589, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %590 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %591 = load i32, ptr %48, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %590, i64 noundef %592) #9
  %594 = load ptr, ptr %593, align 8, !tbaa !5
  store ptr %594, ptr %52, align 8, !tbaa !5
  %595 = load ptr, ptr %51, align 8, !tbaa !5
  %596 = icmp ne ptr %595, null
  br i1 %596, label %602, label %597

597:                                              ; preds = %584
  %598 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
  %599 = load i32, ptr %47, align 4, !tbaa !9
  %600 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %598, i32 noundef %599)
  %601 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %600, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %602

602:                                              ; preds = %597, %584
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %603 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %604 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %603) #9
  %605 = trunc i64 %604 to i32
  store i32 %605, ptr %53, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #9
  %606 = load ptr, ptr %52, align 8, !tbaa !5
  %607 = getelementptr inbounds %class.poreNE, ptr %606, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %55, ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 4 dereferenceable(4) %53)
  %608 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %607, ptr noundef nonnull align 4 dereferenceable(8) %55)
  store { ptr, i8 } %608, ptr %56, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %54, ptr align 8 %56, i64 9, i1 false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  %609 = getelementptr inbounds %"struct.std::pair", ptr %54, i32 0, i32 1
  %610 = load i8, ptr %609, align 8, !tbaa !15, !range !13, !noundef !14
  %611 = trunc i8 %610 to i1
  br i1 %611, label %612, label %644

612:                                              ; preds = %602
  %613 = getelementptr inbounds %"struct.std::pair", ptr %54, i32 0, i32 1
  %614 = load i8, ptr %613, align 8, !tbaa !15, !range !13, !noundef !14
  %615 = trunc i8 %614 to i1
  %616 = zext i1 %615 to i32
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #9
  %617 = load ptr, ptr %51, align 8, !tbaa !5
  %618 = getelementptr inbounds %class.poreNE, ptr %617, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef nonnull align 4 dereferenceable(4) %53)
  %619 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %618, ptr noundef nonnull align 4 dereferenceable(8) %58)
  store { ptr, i8 } %619, ptr %59, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %57, ptr align 8 %59, i64 9, i1 false)
  %620 = getelementptr inbounds %"struct.std::pair", ptr %57, i32 0, i32 1
  %621 = load i8, ptr %620, align 8, !tbaa !15, !range !13, !noundef !14
  %622 = trunc i8 %621 to i1
  %623 = zext i1 %622 to i32
  %624 = icmp ne i32 %616, %623
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #9
  br i1 %624, label %625, label %633

625:                                              ; preds = %612
  %626 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.16)
  %627 = load i32, ptr %47, align 4, !tbaa !9
  %628 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %626, i32 noundef %627)
  %629 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %628, ptr noundef @.str.17)
  %630 = load i32, ptr %48, align 4, !tbaa !9
  %631 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %629, i32 noundef %630)
  %632 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %631, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %633

633:                                              ; preds = %625, %612
  %634 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  %635 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 96) #10
  %636 = load i32, ptr %53, align 4, !tbaa !9
  %637 = load i32, ptr %47, align 4, !tbaa !9
  %638 = load i32, ptr %48, align 4, !tbaa !9
  invoke void @_ZN8throatNEC2Eiii(ptr noundef nonnull align 8 dereferenceable(96) %635, i32 noundef %636, i32 noundef %637, i32 noundef %638)
          to label %639 unwind label %640

639:                                              ; preds = %633
  store ptr %635, ptr %60, align 8, !tbaa !5
  call void @_ZNSt6vectorIP8throatNESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %634, ptr noundef nonnull align 8 dereferenceable(8) %60)
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  br label %644

640:                                              ; preds = %633
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %23, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %24, align 4
  call void @_ZdlPvm(ptr noundef %635, i64 noundef 96) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1395

644:                                              ; preds = %639, %602
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %645 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %646 = getelementptr inbounds %"struct.std::pair", ptr %54, i32 0, i32 0
  %647 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %646) #9
  %648 = getelementptr inbounds %"struct.std::pair.66", ptr %647, i32 0, i32 1
  %649 = load i32, ptr %648, align 4, !tbaa !18
  %650 = sext i32 %649 to i64
  %651 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %645, i64 noundef %650) #9
  %652 = load ptr, ptr %651, align 8, !tbaa !5
  store ptr %652, ptr %61, align 8, !tbaa !5
  %653 = load i8, ptr %49, align 1, !tbaa !11, !range !13, !noundef !14
  %654 = trunc i8 %653 to i1
  %655 = zext i1 %654 to i32
  %656 = mul nsw i32 2, %655
  %657 = sub nsw i32 %656, 1
  %658 = sitofp i32 %657 to double
  %659 = load ptr, ptr %61, align 8, !tbaa !5
  %660 = getelementptr inbounds %class.throatNE, ptr %659, i32 0, i32 9
  %661 = getelementptr inbounds %class.var3, ptr %660, i32 0, i32 2
  %662 = load double, ptr %661, align 8, !tbaa !73
  %663 = fadd double %662, %658
  store double %663, ptr %661, align 8, !tbaa !73
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #9
  br label %664

664:                                              ; preds = %644, %570
  %665 = load i32, ptr %47, align 4, !tbaa !9
  %666 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 1
  %667 = load i32, ptr %666, align 8, !tbaa !29
  %668 = icmp sge i32 %665, %667
  br i1 %668, label %669, label %678

669:                                              ; preds = %664
  %670 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %671 = load i32, ptr %47, align 4, !tbaa !9
  %672 = sext i32 %671 to i64
  %673 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %670, i64 noundef %672) #9
  %674 = load ptr, ptr %673, align 8, !tbaa !5
  %675 = getelementptr inbounds %class.poreNE, ptr %674, i32 0, i32 0
  %676 = load i32, ptr %675, align 8, !tbaa !53
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr %675, align 8, !tbaa !53
  br label %678

678:                                              ; preds = %669, %664
  %679 = load i32, ptr %48, align 4, !tbaa !9
  %680 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 1
  %681 = load i32, ptr %680, align 8, !tbaa !29
  %682 = icmp sge i32 %679, %681
  br i1 %682, label %683, label %692

683:                                              ; preds = %678
  %684 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %685 = load i32, ptr %48, align 4, !tbaa !9
  %686 = sext i32 %685 to i64
  %687 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %684, i64 noundef %686) #9
  %688 = load ptr, ptr %687, align 8, !tbaa !5
  %689 = getelementptr inbounds %class.poreNE, ptr %688, i32 0, i32 0
  %690 = load i32, ptr %689, align 8, !tbaa !53
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr %689, align 8, !tbaa !53
  br label %692

692:                                              ; preds = %683, %678
  br label %693

693:                                              ; preds = %692, %557
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %694

694:                                              ; preds = %693, %546
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %695

695:                                              ; preds = %694
  %696 = load i32, ptr %46, align 4, !tbaa !9
  %697 = add nsw i32 %696, 1
  store i32 %697, ptr %46, align 4, !tbaa !9
  br label %538, !llvm.loop !74

698:                                              ; preds = %545
  br label %699

699:                                              ; preds = %698
  %700 = load i32, ptr %45, align 4, !tbaa !9
  %701 = add nsw i32 %700, 1
  store i32 %701, ptr %45, align 4, !tbaa !9
  br label %529, !llvm.loop !75

702:                                              ; preds = %536
  br label %703

703:                                              ; preds = %702
  %704 = load i32, ptr %44, align 4, !tbaa !9
  %705 = add nsw i32 %704, 1
  store i32 %705, ptr %44, align 4, !tbaa !9
  br label %520, !llvm.loop !76

706:                                              ; preds = %527
  %707 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %708 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %707) #9
  %709 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %708)
  %710 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %709, ptr noundef @.str.9)
  %711 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %710)
  %712 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  %713 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %714 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %713) #9
  %715 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %712, i64 noundef %714)
  %716 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %715, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %717 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %718 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %717) #9
  %719 = trunc i64 %718 to i32
  %720 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 11
  store i32 %719, ptr %720, align 8, !tbaa !77
  %721 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %722 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %721) #9
  %723 = trunc i64 %722 to i32
  %724 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 12
  store i32 %723, ptr %724, align 4, !tbaa !78
  %725 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 11
  %726 = load i32, ptr %725, align 8, !tbaa !77
  %727 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 12
  %728 = load i32, ptr %727, align 4, !tbaa !78
  %729 = add nsw i32 %726, %728
  %730 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 13
  store i32 %729, ptr %730, align 8, !tbaa !79
  %731 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.20)
  %732 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 13
  %733 = load i32, ptr %732, align 8, !tbaa !79
  %734 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %731, i32 noundef %733)
  %735 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %734, ptr noundef @.str.21)
  %736 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %737 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %736) #9
  %738 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %735, i64 noundef %737)
  %739 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %738, ptr noundef @.str.22)
  %740 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %741 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %740) #9
  %742 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %739, i64 noundef %741)
  %743 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %742, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %744 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 10
  %745 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %746 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %745) #9
  %747 = mul i64 %746, 5
  call void @_ZNSt6vectorIP10medialBallSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %744, i64 noundef %747)
  %748 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.23)
  %749 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  %750 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.24)
  %751 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %752 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  store ptr %752, ptr %62, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %753 = load ptr, ptr %62, align 8, !tbaa !5
  %754 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %753) #9
  %755 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %63, i32 0, i32 0
  store ptr %754, ptr %755, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %756 = load ptr, ptr %62, align 8, !tbaa !5
  %757 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %756) #9
  %758 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %64, i32 0, i32 0
  store ptr %757, ptr %758, align 8
  br label %759

759:                                              ; preds = %807, %706
  %760 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP8throatNESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  br i1 %760, label %762, label %761

761:                                              ; preds = %759
  store i32 29, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  br label %809

762:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %763 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #9
  %764 = load ptr, ptr %763, align 8, !tbaa !5
  store ptr %764, ptr %65, align 8, !tbaa !5
  %765 = load ptr, ptr %65, align 8, !tbaa !5
  %766 = getelementptr inbounds %class.throatNE, ptr %765, i32 0, i32 7
  %767 = load ptr, ptr %65, align 8, !tbaa !5
  %768 = getelementptr inbounds %class.throatNE, ptr %767, i32 0, i32 9
  %769 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %768, i64 noundef 0)
  %770 = load double, ptr %769, align 8, !tbaa !80
  %771 = call noundef double @_ZSt3absd(double noundef %770)
  %772 = load ptr, ptr %65, align 8, !tbaa !5
  %773 = getelementptr inbounds %class.throatNE, ptr %772, i32 0, i32 9
  %774 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %773, i64 noundef 1)
  %775 = load double, ptr %774, align 8, !tbaa !80
  %776 = call noundef double @_ZSt3absd(double noundef %775)
  %777 = fadd double %771, %776
  %778 = load ptr, ptr %65, align 8, !tbaa !5
  %779 = getelementptr inbounds %class.throatNE, ptr %778, i32 0, i32 9
  %780 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %779, i64 noundef 2)
  %781 = load double, ptr %780, align 8, !tbaa !80
  %782 = call noundef double @_ZSt3absd(double noundef %781)
  %783 = fadd double %777, %782
  %784 = fadd double %783, 1.000000e+00
  %785 = fptoui double %784 to i64
  call void @_ZNSt6vectorIP5voxelSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %766, i64 noundef %785)
  %786 = load ptr, ptr %65, align 8, !tbaa !5
  %787 = getelementptr inbounds %class.throatNE, ptr %786, i32 0, i32 8
  %788 = load ptr, ptr %65, align 8, !tbaa !5
  %789 = getelementptr inbounds %class.throatNE, ptr %788, i32 0, i32 9
  %790 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %789, i64 noundef 0)
  %791 = load double, ptr %790, align 8, !tbaa !80
  %792 = call noundef double @_ZSt3absd(double noundef %791)
  %793 = load ptr, ptr %65, align 8, !tbaa !5
  %794 = getelementptr inbounds %class.throatNE, ptr %793, i32 0, i32 9
  %795 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %794, i64 noundef 1)
  %796 = load double, ptr %795, align 8, !tbaa !80
  %797 = call noundef double @_ZSt3absd(double noundef %796)
  %798 = fadd double %792, %797
  %799 = load ptr, ptr %65, align 8, !tbaa !5
  %800 = getelementptr inbounds %class.throatNE, ptr %799, i32 0, i32 9
  %801 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %800, i64 noundef 2)
  %802 = load double, ptr %801, align 8, !tbaa !80
  %803 = call noundef double @_ZSt3absd(double noundef %802)
  %804 = fadd double %798, %803
  %805 = fadd double %804, 1.000000e+00
  %806 = fptoui double %805 to i64
  call void @_ZNSt6vectorIP5voxelSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %787, i64 noundef %806)
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %807

807:                                              ; preds = %762
  %808 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #9
  br label %759

809:                                              ; preds = %761
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  store i32 0, ptr %66, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %810

810:                                              ; preds = %1090, %809
  %811 = load i32, ptr %67, align 4, !tbaa !9
  %812 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %813 = getelementptr inbounds i8, ptr %812, i64 8
  %814 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %813)
  %815 = sub nsw i32 %814, 1
  %816 = icmp slt i32 %811, %815
  br i1 %816, label %818, label %817

817:                                              ; preds = %810
  store i32 31, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %1093

818:                                              ; preds = %810
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  store i32 1, ptr %68, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %819 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %820 = getelementptr inbounds i8, ptr %819, i64 8
  %821 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %820)
  %822 = sub nsw i32 %821, 1
  store i32 %822, ptr %69, align 4, !tbaa !9
  br label %823

823:                                              ; preds = %1086, %818
  %824 = load i32, ptr %68, align 4, !tbaa !9
  %825 = load i32, ptr %69, align 4, !tbaa !9
  %826 = icmp slt i32 %824, %825
  br i1 %826, label %828, label %827

827:                                              ; preds = %823
  store i32 34, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %1089

828:                                              ; preds = %823
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  store i32 1, ptr %70, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %829 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %830 = getelementptr inbounds i8, ptr %829, i64 8
  %831 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %830)
  %832 = sub nsw i32 %831, 1
  store i32 %832, ptr %71, align 4, !tbaa !9
  br label %833

833:                                              ; preds = %1082, %828
  %834 = load i32, ptr %70, align 4, !tbaa !9
  %835 = load i32, ptr %71, align 4, !tbaa !9
  %836 = icmp slt i32 %834, %835
  br i1 %836, label %838, label %837

837:                                              ; preds = %833
  store i32 37, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %1085

838:                                              ; preds = %833
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %839 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %840 = getelementptr inbounds i8, ptr %839, i64 8
  %841 = load i32, ptr %70, align 4, !tbaa !9
  %842 = load i32, ptr %68, align 4, !tbaa !9
  %843 = load i32, ptr %67, align 4, !tbaa !9
  %844 = sext i32 %843 to i64
  %845 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %840, i32 noundef %841, i32 noundef %842, i64 noundef %844)
  %846 = load i32, ptr %845, align 4, !tbaa !9
  store i32 %846, ptr %72, align 4, !tbaa !9
  %847 = load i32, ptr %72, align 4, !tbaa !9
  %848 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 1
  %849 = load i32, ptr %848, align 8, !tbaa !29
  %850 = icmp sge i32 %847, %849
  br i1 %850, label %851, label %1081

851:                                              ; preds = %838
  call void @llvm.lifetime.start.p0(i64 48, ptr %73) #9
  call void @_ZNSt3setIiSt4lessIiESaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %73) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %852 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %853 = getelementptr inbounds i8, ptr %852, i64 8
  %854 = load i32, ptr %70, align 4, !tbaa !9
  %855 = sub nsw i32 %854, 1
  %856 = load i32, ptr %68, align 4, !tbaa !9
  %857 = load i32, ptr %67, align 4, !tbaa !9
  %858 = sext i32 %857 to i64
  %859 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %853, i32 noundef %855, i32 noundef %856, i64 noundef %858)
          to label %860 unwind label %875

860:                                              ; preds = %851
  %861 = load i32, ptr %859, align 4, !tbaa !9
  store i32 %861, ptr %74, align 4, !tbaa !9
  %862 = load i32, ptr %72, align 4, !tbaa !9
  %863 = load i32, ptr %74, align 4, !tbaa !9
  %864 = icmp ne i32 %862, %863
  br i1 %864, label %865, label %879

865:                                              ; preds = %860
  %866 = load i32, ptr %74, align 4, !tbaa !9
  %867 = icmp sge i32 %866, 0
  br i1 %867, label %868, label %879

868:                                              ; preds = %865
  %869 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %73, ptr noundef nonnull align 4 dereferenceable(4) %74)
          to label %870 unwind label %875

870:                                              ; preds = %868
  %871 = getelementptr inbounds { ptr, i8 }, ptr %75, i32 0, i32 0
  %872 = extractvalue { ptr, i8 } %869, 0
  store ptr %872, ptr %871, align 8
  %873 = getelementptr inbounds { ptr, i8 }, ptr %75, i32 0, i32 1
  %874 = extractvalue { ptr, i8 } %869, 1
  store i8 %874, ptr %873, align 8
  br label %879

875:                                              ; preds = %992, %975, %968, %951, %944, %927, %920, %903, %896, %879, %868, %851
  %876 = landingpad { ptr, i32 }
          cleanup
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %23, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %24, align 4
  br label %1080

879:                                              ; preds = %870, %865, %860
  %880 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %881 = getelementptr inbounds i8, ptr %880, i64 8
  %882 = load i32, ptr %70, align 4, !tbaa !9
  %883 = add nsw i32 %882, 1
  %884 = load i32, ptr %68, align 4, !tbaa !9
  %885 = load i32, ptr %67, align 4, !tbaa !9
  %886 = sext i32 %885 to i64
  %887 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %881, i32 noundef %883, i32 noundef %884, i64 noundef %886)
          to label %888 unwind label %875

888:                                              ; preds = %879
  %889 = load i32, ptr %887, align 4, !tbaa !9
  store i32 %889, ptr %74, align 4, !tbaa !9
  %890 = load i32, ptr %72, align 4, !tbaa !9
  %891 = load i32, ptr %74, align 4, !tbaa !9
  %892 = icmp ne i32 %890, %891
  br i1 %892, label %893, label %903

893:                                              ; preds = %888
  %894 = load i32, ptr %74, align 4, !tbaa !9
  %895 = icmp sge i32 %894, 0
  br i1 %895, label %896, label %903

896:                                              ; preds = %893
  %897 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %73, ptr noundef nonnull align 4 dereferenceable(4) %74)
          to label %898 unwind label %875

898:                                              ; preds = %896
  %899 = getelementptr inbounds { ptr, i8 }, ptr %76, i32 0, i32 0
  %900 = extractvalue { ptr, i8 } %897, 0
  store ptr %900, ptr %899, align 8
  %901 = getelementptr inbounds { ptr, i8 }, ptr %76, i32 0, i32 1
  %902 = extractvalue { ptr, i8 } %897, 1
  store i8 %902, ptr %901, align 8
  br label %903

903:                                              ; preds = %898, %893, %888
  %904 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %905 = getelementptr inbounds i8, ptr %904, i64 8
  %906 = load i32, ptr %70, align 4, !tbaa !9
  %907 = load i32, ptr %68, align 4, !tbaa !9
  %908 = sub nsw i32 %907, 1
  %909 = load i32, ptr %67, align 4, !tbaa !9
  %910 = sext i32 %909 to i64
  %911 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %905, i32 noundef %906, i32 noundef %908, i64 noundef %910)
          to label %912 unwind label %875

912:                                              ; preds = %903
  %913 = load i32, ptr %911, align 4, !tbaa !9
  store i32 %913, ptr %74, align 4, !tbaa !9
  %914 = load i32, ptr %72, align 4, !tbaa !9
  %915 = load i32, ptr %74, align 4, !tbaa !9
  %916 = icmp ne i32 %914, %915
  br i1 %916, label %917, label %927

917:                                              ; preds = %912
  %918 = load i32, ptr %74, align 4, !tbaa !9
  %919 = icmp sge i32 %918, 0
  br i1 %919, label %920, label %927

920:                                              ; preds = %917
  %921 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %73, ptr noundef nonnull align 4 dereferenceable(4) %74)
          to label %922 unwind label %875

922:                                              ; preds = %920
  %923 = getelementptr inbounds { ptr, i8 }, ptr %77, i32 0, i32 0
  %924 = extractvalue { ptr, i8 } %921, 0
  store ptr %924, ptr %923, align 8
  %925 = getelementptr inbounds { ptr, i8 }, ptr %77, i32 0, i32 1
  %926 = extractvalue { ptr, i8 } %921, 1
  store i8 %926, ptr %925, align 8
  br label %927

927:                                              ; preds = %922, %917, %912
  %928 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %929 = getelementptr inbounds i8, ptr %928, i64 8
  %930 = load i32, ptr %70, align 4, !tbaa !9
  %931 = load i32, ptr %68, align 4, !tbaa !9
  %932 = add nsw i32 %931, 1
  %933 = load i32, ptr %67, align 4, !tbaa !9
  %934 = sext i32 %933 to i64
  %935 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %929, i32 noundef %930, i32 noundef %932, i64 noundef %934)
          to label %936 unwind label %875

936:                                              ; preds = %927
  %937 = load i32, ptr %935, align 4, !tbaa !9
  store i32 %937, ptr %74, align 4, !tbaa !9
  %938 = load i32, ptr %72, align 4, !tbaa !9
  %939 = load i32, ptr %74, align 4, !tbaa !9
  %940 = icmp ne i32 %938, %939
  br i1 %940, label %941, label %951

941:                                              ; preds = %936
  %942 = load i32, ptr %74, align 4, !tbaa !9
  %943 = icmp sge i32 %942, 0
  br i1 %943, label %944, label %951

944:                                              ; preds = %941
  %945 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %73, ptr noundef nonnull align 4 dereferenceable(4) %74)
          to label %946 unwind label %875

946:                                              ; preds = %944
  %947 = getelementptr inbounds { ptr, i8 }, ptr %78, i32 0, i32 0
  %948 = extractvalue { ptr, i8 } %945, 0
  store ptr %948, ptr %947, align 8
  %949 = getelementptr inbounds { ptr, i8 }, ptr %78, i32 0, i32 1
  %950 = extractvalue { ptr, i8 } %945, 1
  store i8 %950, ptr %949, align 8
  br label %951

951:                                              ; preds = %946, %941, %936
  %952 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %953 = getelementptr inbounds i8, ptr %952, i64 8
  %954 = load i32, ptr %70, align 4, !tbaa !9
  %955 = load i32, ptr %68, align 4, !tbaa !9
  %956 = load i32, ptr %67, align 4, !tbaa !9
  %957 = sub nsw i32 %956, 1
  %958 = sext i32 %957 to i64
  %959 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %953, i32 noundef %954, i32 noundef %955, i64 noundef %958)
          to label %960 unwind label %875

960:                                              ; preds = %951
  %961 = load i32, ptr %959, align 4, !tbaa !9
  store i32 %961, ptr %74, align 4, !tbaa !9
  %962 = load i32, ptr %72, align 4, !tbaa !9
  %963 = load i32, ptr %74, align 4, !tbaa !9
  %964 = icmp ne i32 %962, %963
  br i1 %964, label %965, label %975

965:                                              ; preds = %960
  %966 = load i32, ptr %74, align 4, !tbaa !9
  %967 = icmp sge i32 %966, 0
  br i1 %967, label %968, label %975

968:                                              ; preds = %965
  %969 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %73, ptr noundef nonnull align 4 dereferenceable(4) %74)
          to label %970 unwind label %875

970:                                              ; preds = %968
  %971 = getelementptr inbounds { ptr, i8 }, ptr %79, i32 0, i32 0
  %972 = extractvalue { ptr, i8 } %969, 0
  store ptr %972, ptr %971, align 8
  %973 = getelementptr inbounds { ptr, i8 }, ptr %79, i32 0, i32 1
  %974 = extractvalue { ptr, i8 } %969, 1
  store i8 %974, ptr %973, align 8
  br label %975

975:                                              ; preds = %970, %965, %960
  %976 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %977 = getelementptr inbounds i8, ptr %976, i64 8
  %978 = load i32, ptr %70, align 4, !tbaa !9
  %979 = load i32, ptr %68, align 4, !tbaa !9
  %980 = load i32, ptr %67, align 4, !tbaa !9
  %981 = add nsw i32 %980, 1
  %982 = sext i32 %981 to i64
  %983 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %977, i32 noundef %978, i32 noundef %979, i64 noundef %982)
          to label %984 unwind label %875

984:                                              ; preds = %975
  %985 = load i32, ptr %983, align 4, !tbaa !9
  store i32 %985, ptr %74, align 4, !tbaa !9
  %986 = load i32, ptr %72, align 4, !tbaa !9
  %987 = load i32, ptr %74, align 4, !tbaa !9
  %988 = icmp ne i32 %986, %987
  br i1 %988, label %989, label %999

989:                                              ; preds = %984
  %990 = load i32, ptr %74, align 4, !tbaa !9
  %991 = icmp sge i32 %990, 0
  br i1 %991, label %992, label %999

992:                                              ; preds = %989
  %993 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %73, ptr noundef nonnull align 4 dereferenceable(4) %74)
          to label %994 unwind label %875

994:                                              ; preds = %992
  %995 = getelementptr inbounds { ptr, i8 }, ptr %80, i32 0, i32 0
  %996 = extractvalue { ptr, i8 } %993, 0
  store ptr %996, ptr %995, align 8
  %997 = getelementptr inbounds { ptr, i8 }, ptr %80, i32 0, i32 1
  %998 = extractvalue { ptr, i8 } %993, 1
  store i8 %998, ptr %997, align 8
  br label %999

999:                                              ; preds = %994, %989, %984
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  store ptr %73, ptr %81, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  %1000 = load ptr, ptr %81, align 8, !tbaa !5
  %1001 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %1000) #9
  %1002 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %82, i32 0, i32 0
  store ptr %1001, ptr %1002, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  %1003 = load ptr, ptr %81, align 8, !tbaa !5
  %1004 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1003) #9
  %1005 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %83, i32 0, i32 0
  store ptr %1004, ptr %1005, align 8
  br label %1006

1006:                                             ; preds = %1070, %999
  %1007 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 8 dereferenceable(8) %83) #9
  br i1 %1007, label %1009, label %1008

1008:                                             ; preds = %1006
  store i32 40, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  br label %1073

1009:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  %1010 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIiEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  %1011 = load i32, ptr %1010, align 4, !tbaa !9
  store i32 %1011, ptr %84, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  %1012 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 7
  %1013 = load i32, ptr %72, align 4, !tbaa !9
  %1014 = sext i32 %1013 to i64
  %1015 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1012, i64 noundef %1014) #9
  %1016 = load ptr, ptr %1015, align 8, !tbaa !5
  store ptr %1016, ptr %85, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #9
  %1017 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  %1018 = load ptr, ptr %85, align 8, !tbaa !5
  %1019 = getelementptr inbounds %class.poreNE, ptr %1018, i32 0, i32 2
  %1020 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEEixERS3_(ptr noundef nonnull align 8 dereferenceable(48) %1019, ptr noundef nonnull align 4 dereferenceable(4) %84)
          to label %1021 unwind label %1043

1021:                                             ; preds = %1009
  %1022 = load i32, ptr %1020, align 4, !tbaa !9
  %1023 = sext i32 %1022 to i64
  %1024 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1017, i64 noundef %1023) #9
  %1025 = load ptr, ptr %1024, align 8, !tbaa !5
  store ptr %1025, ptr %86, align 8, !tbaa !5
  %1026 = load i32, ptr %72, align 4, !tbaa !9
  %1027 = load i32, ptr %84, align 4, !tbaa !9
  %1028 = icmp sgt i32 %1026, %1027
  br i1 %1028, label %1029, label %1051

1029:                                             ; preds = %1021
  %1030 = load ptr, ptr %86, align 8, !tbaa !5
  %1031 = getelementptr inbounds %class.throatNE, ptr %1030, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  %1032 = load ptr, ptr %4, align 8, !tbaa !5
  %1033 = load ptr, ptr %1032, align 8, !tbaa !5
  %1034 = load i32, ptr %70, align 4, !tbaa !9
  %1035 = sub nsw i32 %1034, 1
  %1036 = load i32, ptr %68, align 4, !tbaa !9
  %1037 = sub nsw i32 %1036, 1
  %1038 = load i32, ptr %67, align 4, !tbaa !9
  %1039 = sub nsw i32 %1038, 1
  %1040 = invoke noundef ptr @_ZN13medialSurface3vxlEiii(ptr noundef nonnull align 8 dereferenceable(252) %1033, i32 noundef %1035, i32 noundef %1037, i32 noundef %1039)
          to label %1041 unwind label %1047

1041:                                             ; preds = %1029
  store ptr %1040, ptr %87, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP5voxelSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1031, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %1042 unwind label %1047

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

1043:                                             ; preds = %1009
  %1044 = landingpad { ptr, i32 }
          cleanup
  %1045 = extractvalue { ptr, i32 } %1044, 0
  store ptr %1045, ptr %23, align 8
  %1046 = extractvalue { ptr, i32 } %1044, 1
  store i32 %1046, ptr %24, align 4
  br label %1072

1047:                                             ; preds = %1041, %1029
  %1048 = landingpad { ptr, i32 }
          cleanup
  %1049 = extractvalue { ptr, i32 } %1048, 0
  store ptr %1049, ptr %23, align 8
  %1050 = extractvalue { ptr, i32 } %1048, 1
  store i32 %1050, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  br label %1072

1051:                                             ; preds = %1021
  %1052 = load ptr, ptr %86, align 8, !tbaa !5
  %1053 = getelementptr inbounds %class.throatNE, ptr %1052, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  %1054 = load ptr, ptr %4, align 8, !tbaa !5
  %1055 = load ptr, ptr %1054, align 8, !tbaa !5
  %1056 = load i32, ptr %70, align 4, !tbaa !9
  %1057 = sub nsw i32 %1056, 1
  %1058 = load i32, ptr %68, align 4, !tbaa !9
  %1059 = sub nsw i32 %1058, 1
  %1060 = load i32, ptr %67, align 4, !tbaa !9
  %1061 = sub nsw i32 %1060, 1
  %1062 = invoke noundef ptr @_ZN13medialSurface3vxlEiii(ptr noundef nonnull align 8 dereferenceable(252) %1055, i32 noundef %1057, i32 noundef %1059, i32 noundef %1061)
          to label %1063 unwind label %1065

1063:                                             ; preds = %1051
  store ptr %1062, ptr %88, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP5voxelSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1053, ptr noundef nonnull align 8 dereferenceable(8) %88)
          to label %1064 unwind label %1065

1064:                                             ; preds = %1063
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %1069

1065:                                             ; preds = %1063, %1051
  %1066 = landingpad { ptr, i32 }
          cleanup
  %1067 = extractvalue { ptr, i32 } %1066, 0
  store ptr %1067, ptr %23, align 8
  %1068 = extractvalue { ptr, i32 } %1066, 1
  store i32 %1068, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %1072

1069:                                             ; preds = %1064, %1042
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %1070

1070:                                             ; preds = %1069
  %1071 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIiEppEv(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  br label %1006

1072:                                             ; preds = %1065, %1047, %1043
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  br label %1080

1073:                                             ; preds = %1008
  %1074 = call noundef i64 @_ZNKSt3setIiSt4lessIiESaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %73) #9
  %1075 = icmp ugt i64 %1074, 1
  br i1 %1075, label %1076, label %1079

1076:                                             ; preds = %1073
  %1077 = load i32, ptr %66, align 4, !tbaa !9
  %1078 = add nsw i32 %1077, 1
  store i32 %1078, ptr %66, align 4, !tbaa !9
  br label %1079

1079:                                             ; preds = %1076, %1073
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  call void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %73) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %73) #9
  br label %1081

1080:                                             ; preds = %1072, %875
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  call void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %73) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %1395

1081:                                             ; preds = %1079, %838
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %1082

1082:                                             ; preds = %1081
  %1083 = load i32, ptr %70, align 4, !tbaa !9
  %1084 = add nsw i32 %1083, 1
  store i32 %1084, ptr %70, align 4, !tbaa !9
  br label %833, !llvm.loop !81

1085:                                             ; preds = %837
  br label %1086

1086:                                             ; preds = %1085
  %1087 = load i32, ptr %68, align 4, !tbaa !9
  %1088 = add nsw i32 %1087, 1
  store i32 %1088, ptr %68, align 4, !tbaa !9
  br label %823, !llvm.loop !82

1089:                                             ; preds = %827
  br label %1090

1090:                                             ; preds = %1089
  %1091 = load i32, ptr %67, align 4, !tbaa !9
  %1092 = add nsw i32 %1091, 1
  store i32 %1092, ptr %67, align 4, !tbaa !9
  br label %810, !llvm.loop !83

1093:                                             ; preds = %817
  %1094 = load i32, ptr %66, align 4, !tbaa !9
  %1095 = icmp sgt i32 %1094, 0
  br i1 %1095, label %1096, label %1102

1096:                                             ; preds = %1093
  %1097 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.25)
  %1098 = load i32, ptr %66, align 4, !tbaa !9
  %1099 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1097, i32 noundef %1098)
  %1100 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1099, ptr noundef @.str.26)
  %1101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1100, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1102

1102:                                             ; preds = %1096, %1093
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #9
  %1103 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  store ptr %1103, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #9
  %1104 = load ptr, ptr %89, align 8, !tbaa !5
  %1105 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1104) #9
  %1106 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %90, i32 0, i32 0
  store ptr %1105, ptr %1106, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  %1107 = load ptr, ptr %89, align 8, !tbaa !5
  %1108 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1107) #9
  %1109 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %91, i32 0, i32 0
  store ptr %1108, ptr %1109, align 8
  br label %1110

1110:                                             ; preds = %1161, %1102
  %1111 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP8throatNESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull align 8 dereferenceable(8) %91) #9
  br i1 %1111, label %1113, label %1112

1112:                                             ; preds = %1110
  store i32 42, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  br label %1163

1113:                                             ; preds = %1110
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #9
  %1114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %90) #9
  %1115 = load ptr, ptr %1114, align 8, !tbaa !5
  store ptr %1115, ptr %92, align 8, !tbaa !5
  %1116 = load ptr, ptr %92, align 8, !tbaa !5
  %1117 = getelementptr inbounds %class.throatNE, ptr %1116, i32 0, i32 7
  %1118 = call noundef zeroext i1 @_ZNKSt6vectorIP5voxelSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %1117) #9
  br i1 %1118, label %1123, label %1119

1119:                                             ; preds = %1113
  %1120 = load ptr, ptr %92, align 8, !tbaa !5
  %1121 = getelementptr inbounds %class.throatNE, ptr %1120, i32 0, i32 7
  %1122 = call noundef zeroext i1 @_ZNKSt6vectorIP5voxelSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %1121) #9
  br i1 %1122, label %1123, label %1136

1123:                                             ; preds = %1119, %1113
  %1124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.27)
  %1125 = load ptr, ptr %92, align 8, !tbaa !5
  %1126 = getelementptr inbounds %class.throatNE, ptr %1125, i32 0, i32 7
  %1127 = call noundef i64 @_ZNKSt6vectorIP5voxelSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1126) #9
  %1128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1124, i64 noundef %1127)
  %1129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1128, ptr noundef @.str.17)
  %1130 = load ptr, ptr %92, align 8, !tbaa !5
  %1131 = getelementptr inbounds %class.throatNE, ptr %1130, i32 0, i32 8
  %1132 = call noundef i64 @_ZNKSt6vectorIP5voxelSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1131) #9
  %1133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1129, i64 noundef %1132)
  %1134 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1133, ptr noundef @.str.28)
  %1135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %1134)
  br label %1136

1136:                                             ; preds = %1123, %1119
  %1137 = load ptr, ptr %92, align 8, !tbaa !5
  %1138 = getelementptr inbounds %class.throatNE, ptr %1137, i32 0, i32 7
  %1139 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1138) #9
  %1140 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %93, i32 0, i32 0
  store ptr %1139, ptr %1140, align 8
  %1141 = load ptr, ptr %92, align 8, !tbaa !5
  %1142 = getelementptr inbounds %class.throatNE, ptr %1141, i32 0, i32 7
  %1143 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1142) #9
  %1144 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %94, i32 0, i32 0
  store ptr %1143, ptr %1144, align 8
  %1145 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %93, i32 0, i32 0
  %1146 = load ptr, ptr %1145, align 8
  %1147 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %94, i32 0, i32 0
  %1148 = load ptr, ptr %1147, align 8
  call void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS3_SaIS3_EEEE16metaballcomparerEvT_SA_T0_(ptr %1146, ptr %1148)
  %1149 = load ptr, ptr %92, align 8, !tbaa !5
  %1150 = getelementptr inbounds %class.throatNE, ptr %1149, i32 0, i32 8
  %1151 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1150) #9
  %1152 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %96, i32 0, i32 0
  store ptr %1151, ptr %1152, align 8
  %1153 = load ptr, ptr %92, align 8, !tbaa !5
  %1154 = getelementptr inbounds %class.throatNE, ptr %1153, i32 0, i32 8
  %1155 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1154) #9
  %1156 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %97, i32 0, i32 0
  store ptr %1155, ptr %1156, align 8
  %1157 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %96, i32 0, i32 0
  %1158 = load ptr, ptr %1157, align 8
  %1159 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %97, i32 0, i32 0
  %1160 = load ptr, ptr %1159, align 8
  call void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS3_SaIS3_EEEE16metaballcomparerEvT_SA_T0_(ptr %1158, ptr %1160)
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  br label %1161

1161:                                             ; preds = %1136
  %1162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %90) #9
  br label %1110

1163:                                             ; preds = %1112
  %1164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.29)
  %1165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #9
  %1166 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 8
  store ptr %1166, ptr %99, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #9
  %1167 = load ptr, ptr %99, align 8, !tbaa !5
  %1168 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1167) #9
  %1169 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %100, i32 0, i32 0
  store ptr %1168, ptr %1169, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #9
  %1170 = load ptr, ptr %99, align 8, !tbaa !5
  %1171 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1170) #9
  %1172 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %101, i32 0, i32 0
  store ptr %1171, ptr %1172, align 8
  br label %1173

1173:                                             ; preds = %1389, %1163
  %1174 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP8throatNESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(8) %101) #9
  br i1 %1174, label %1176, label %1175

1175:                                             ; preds = %1173
  store i32 44, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  br label %1392

1176:                                             ; preds = %1173
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  %1177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %100) #9
  %1178 = load ptr, ptr %1177, align 8, !tbaa !5
  store ptr %1178, ptr %102, align 8, !tbaa !5
  %1179 = load ptr, ptr %102, align 8, !tbaa !5
  %1180 = getelementptr inbounds %class.throatNE, ptr %1179, i32 0, i32 7
  %1181 = call noundef i64 @_ZNKSt6vectorIP5voxelSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1180) #9
  %1182 = icmp ugt i64 %1181, 0
  br i1 %1182, label %1183, label %1280

1183:                                             ; preds = %1176
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #9
  %1184 = load ptr, ptr %102, align 8, !tbaa !5
  %1185 = getelementptr inbounds %class.throatNE, ptr %1184, i32 0, i32 7
  %1186 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1185) #9
  %1187 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %104, i32 0, i32 0
  store ptr %1186, ptr %1187, align 8
  %1188 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %104) #9
  %1189 = load ptr, ptr %1188, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  store ptr %1189, ptr %103, align 8, !tbaa !5
  %1190 = load ptr, ptr %103, align 8, !tbaa !5
  %1191 = getelementptr inbounds %class.voxel, ptr %1190, i32 0, i32 0
  %1192 = load ptr, ptr %1191, align 8, !tbaa !84
  %1193 = icmp ne ptr %1192, null
  br i1 %1193, label %1194, label %1261

1194:                                             ; preds = %1183
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #9
  %1195 = load ptr, ptr %102, align 8, !tbaa !5
  %1196 = getelementptr inbounds %class.throatNE, ptr %1195, i32 0, i32 7
  %1197 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1196) #9
  %1198 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %106, i32 0, i32 0
  store ptr %1197, ptr %1198, align 8
  %1199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %106) #9
  %1200 = load ptr, ptr %1199, align 8, !tbaa !5
  %1201 = getelementptr inbounds %class.voxel, ptr %1200, i32 0, i32 0
  %1202 = load ptr, ptr %1201, align 8, !tbaa !84
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #9
  store ptr %1202, ptr %105, align 8, !tbaa !5
  %1203 = load ptr, ptr %105, align 8, !tbaa !5
  %1204 = getelementptr inbounds %class.medialBall, ptr %1203, i32 0, i32 4
  store i16 5, ptr %1204, align 4, !tbaa !87
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #9
  %1205 = load ptr, ptr %105, align 8, !tbaa !5
  %1206 = call noundef ptr @_ZNK10medialBall11mastrSphereEv(ptr noundef nonnull align 8 dereferenceable(64) %1205)
  store ptr %1206, ptr %107, align 8, !tbaa !5
  %1207 = load ptr, ptr %107, align 8, !tbaa !5
  %1208 = icmp ne ptr %1207, null
  br i1 %1208, label %1209, label %1260

1209:                                             ; preds = %1194
  %1210 = load ptr, ptr %107, align 8, !tbaa !5
  %1211 = load ptr, ptr %105, align 8, !tbaa !5
  %1212 = icmp ne ptr %1210, %1211
  br i1 %1212, label %1213, label %1260

1213:                                             ; preds = %1209
  %1214 = load ptr, ptr %102, align 8, !tbaa !5
  %1215 = getelementptr inbounds %class.throatNE, ptr %1214, i32 0, i32 2
  %1216 = load i32, ptr %1215, align 8, !tbaa !89
  %1217 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %1218 = getelementptr inbounds i8, ptr %1217, i64 8
  %1219 = load ptr, ptr %107, align 8, !tbaa !5
  %1220 = getelementptr inbounds %class.medialBall, ptr %1219, i32 0, i32 1
  %1221 = load float, ptr %1220, align 8, !tbaa !90
  %1222 = fadd float %1221, 1.000000e+00
  %1223 = fptosi float %1222 to i32
  %1224 = load ptr, ptr %107, align 8, !tbaa !5
  %1225 = getelementptr inbounds %class.medialBall, ptr %1224, i32 0, i32 2
  %1226 = load float, ptr %1225, align 4, !tbaa !91
  %1227 = fadd float %1226, 1.000000e+00
  %1228 = fptosi float %1227 to i32
  %1229 = load ptr, ptr %107, align 8, !tbaa !5
  %1230 = getelementptr inbounds %class.medialBall, ptr %1229, i32 0, i32 3
  %1231 = load float, ptr %1230, align 8, !tbaa !92
  %1232 = fadd float %1231, 1.000000e+00
  %1233 = fptoui float %1232 to i64
  %1234 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %1218, i32 noundef %1223, i32 noundef %1228, i64 noundef %1233)
  %1235 = load i32, ptr %1234, align 4, !tbaa !9
  %1236 = icmp ne i32 %1216, %1235
  br i1 %1236, label %1237, label %1260

1237:                                             ; preds = %1213
  %1238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.30)
  %1239 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %1240 = getelementptr inbounds i8, ptr %1239, i64 8
  %1241 = load ptr, ptr %107, align 8, !tbaa !5
  %1242 = getelementptr inbounds %class.medialBall, ptr %1241, i32 0, i32 1
  %1243 = load float, ptr %1242, align 8, !tbaa !90
  %1244 = fadd float %1243, 1.000000e+00
  %1245 = fptosi float %1244 to i32
  %1246 = load ptr, ptr %107, align 8, !tbaa !5
  %1247 = getelementptr inbounds %class.medialBall, ptr %1246, i32 0, i32 2
  %1248 = load float, ptr %1247, align 4, !tbaa !91
  %1249 = fadd float %1248, 1.000000e+00
  %1250 = fptosi float %1249 to i32
  %1251 = load ptr, ptr %107, align 8, !tbaa !5
  %1252 = getelementptr inbounds %class.medialBall, ptr %1251, i32 0, i32 3
  %1253 = load float, ptr %1252, align 8, !tbaa !92
  %1254 = fadd float %1253, 1.000000e+00
  %1255 = fptoui float %1254 to i64
  %1256 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %1240, i32 noundef %1245, i32 noundef %1250, i64 noundef %1255)
  %1257 = load i32, ptr %1256, align 4, !tbaa !9
  %1258 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1238, i32 noundef %1257)
  %1259 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1258, ptr noundef @.str.31)
  br label %1260

1260:                                             ; preds = %1237, %1213, %1209, %1194
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  br label %1279

1261:                                             ; preds = %1183
  %1262 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #10
  %1263 = load ptr, ptr %103, align 8, !tbaa !5
  invoke void @_ZN10medialBallC2EP5voxels(ptr noundef nonnull align 8 dereferenceable(64) %1262, ptr noundef %1263, i16 noundef signext 15)
          to label %1264 unwind label %1275

1264:                                             ; preds = %1261
  %1265 = load ptr, ptr %103, align 8, !tbaa !5
  %1266 = getelementptr inbounds %class.voxel, ptr %1265, i32 0, i32 0
  store ptr %1262, ptr %1266, align 8, !tbaa !84
  %1267 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 10
  %1268 = load ptr, ptr %103, align 8, !tbaa !5
  %1269 = getelementptr inbounds %class.voxel, ptr %1268, i32 0, i32 0
  call void @_ZNSt6vectorIP10medialBallSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1267, ptr noundef nonnull align 8 dereferenceable(8) %1269)
  %1270 = load ptr, ptr %4, align 8, !tbaa !5
  %1271 = load ptr, ptr %1270, align 8, !tbaa !5
  %1272 = load ptr, ptr %103, align 8, !tbaa !5
  %1273 = getelementptr inbounds %class.voxel, ptr %1272, i32 0, i32 0
  %1274 = load ptr, ptr %1273, align 8, !tbaa !84
  call void @_ZN13medialSurface10moveUphillEP10medialBall(ptr noundef nonnull align 8 dereferenceable(252) %1271, ptr noundef %1274)
  br label %1279

1275:                                             ; preds = %1261
  %1276 = landingpad { ptr, i32 }
          cleanup
  %1277 = extractvalue { ptr, i32 } %1276, 0
  store ptr %1277, ptr %23, align 8
  %1278 = extractvalue { ptr, i32 } %1276, 1
  store i32 %1278, ptr %24, align 4
  call void @_ZdlPvm(ptr noundef %1262, i64 noundef 64) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  br label %1391

1279:                                             ; preds = %1264, %1260
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  br label %1280

1280:                                             ; preds = %1279, %1176
  %1281 = load ptr, ptr %102, align 8, !tbaa !5
  %1282 = getelementptr inbounds %class.throatNE, ptr %1281, i32 0, i32 8
  %1283 = call noundef zeroext i1 @_ZNKSt6vectorIP5voxelSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %1282) #9
  br i1 %1283, label %1388, label %1284

1284:                                             ; preds = %1280
  %1285 = load ptr, ptr %102, align 8, !tbaa !5
  %1286 = getelementptr inbounds %class.throatNE, ptr %1285, i32 0, i32 8
  %1287 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1286) #9
  %1288 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %108, i32 0, i32 0
  store ptr %1287, ptr %1288, align 8
  %1289 = load ptr, ptr %102, align 8, !tbaa !5
  %1290 = getelementptr inbounds %class.throatNE, ptr %1289, i32 0, i32 8
  %1291 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1290) #9
  %1292 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %109, i32 0, i32 0
  store ptr %1291, ptr %1292, align 8
  %1293 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %108, i32 0, i32 0
  %1294 = load ptr, ptr %1293, align 8
  %1295 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %109, i32 0, i32 0
  %1296 = load ptr, ptr %1295, align 8
  call void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS3_SaIS3_EEEE16metaballcomparerEvT_SA_T0_(ptr %1294, ptr %1296)
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #9
  %1297 = load ptr, ptr %102, align 8, !tbaa !5
  %1298 = getelementptr inbounds %class.throatNE, ptr %1297, i32 0, i32 8
  %1299 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1298) #9
  %1300 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.76", ptr %112, i32 0, i32 0
  store ptr %1299, ptr %1300, align 8
  %1301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %112) #9
  %1302 = load ptr, ptr %1301, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  store ptr %1302, ptr %111, align 8, !tbaa !5
  %1303 = load ptr, ptr %111, align 8, !tbaa !5
  %1304 = getelementptr inbounds %class.voxel, ptr %1303, i32 0, i32 0
  %1305 = load ptr, ptr %1304, align 8, !tbaa !84
  %1306 = icmp ne ptr %1305, null
  br i1 %1306, label %1307, label %1369

1307:                                             ; preds = %1284
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #9
  %1308 = load ptr, ptr %111, align 8, !tbaa !5
  %1309 = getelementptr inbounds %class.voxel, ptr %1308, i32 0, i32 0
  %1310 = load ptr, ptr %1309, align 8, !tbaa !84
  store ptr %1310, ptr %113, align 8, !tbaa !5
  %1311 = load ptr, ptr %113, align 8, !tbaa !5
  %1312 = getelementptr inbounds %class.medialBall, ptr %1311, i32 0, i32 4
  store i16 6, ptr %1312, align 4, !tbaa !87
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #9
  %1313 = load ptr, ptr %113, align 8, !tbaa !5
  %1314 = call noundef ptr @_ZNK10medialBall11mastrSphereEv(ptr noundef nonnull align 8 dereferenceable(64) %1313)
  store ptr %1314, ptr %114, align 8, !tbaa !5
  %1315 = load ptr, ptr %114, align 8, !tbaa !5
  %1316 = icmp ne ptr %1315, null
  br i1 %1316, label %1317, label %1368

1317:                                             ; preds = %1307
  %1318 = load ptr, ptr %114, align 8, !tbaa !5
  %1319 = load ptr, ptr %113, align 8, !tbaa !5
  %1320 = icmp ne ptr %1318, %1319
  br i1 %1320, label %1321, label %1368

1321:                                             ; preds = %1317
  %1322 = load ptr, ptr %102, align 8, !tbaa !5
  %1323 = getelementptr inbounds %class.throatNE, ptr %1322, i32 0, i32 1
  %1324 = load i32, ptr %1323, align 4, !tbaa !93
  %1325 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %1326 = getelementptr inbounds i8, ptr %1325, i64 8
  %1327 = load ptr, ptr %114, align 8, !tbaa !5
  %1328 = getelementptr inbounds %class.medialBall, ptr %1327, i32 0, i32 1
  %1329 = load float, ptr %1328, align 8, !tbaa !90
  %1330 = fadd float %1329, 1.000000e+00
  %1331 = fptosi float %1330 to i32
  %1332 = load ptr, ptr %114, align 8, !tbaa !5
  %1333 = getelementptr inbounds %class.medialBall, ptr %1332, i32 0, i32 2
  %1334 = load float, ptr %1333, align 4, !tbaa !91
  %1335 = fadd float %1334, 1.000000e+00
  %1336 = fptosi float %1335 to i32
  %1337 = load ptr, ptr %114, align 8, !tbaa !5
  %1338 = getelementptr inbounds %class.medialBall, ptr %1337, i32 0, i32 3
  %1339 = load float, ptr %1338, align 8, !tbaa !92
  %1340 = fadd float %1339, 1.000000e+00
  %1341 = fptoui float %1340 to i64
  %1342 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %1326, i32 noundef %1331, i32 noundef %1336, i64 noundef %1341)
  %1343 = load i32, ptr %1342, align 4, !tbaa !9
  %1344 = icmp ne i32 %1324, %1343
  br i1 %1344, label %1345, label %1368

1345:                                             ; preds = %1321
  %1346 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.32)
  %1347 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 6
  %1348 = getelementptr inbounds i8, ptr %1347, i64 8
  %1349 = load ptr, ptr %114, align 8, !tbaa !5
  %1350 = getelementptr inbounds %class.medialBall, ptr %1349, i32 0, i32 1
  %1351 = load float, ptr %1350, align 8, !tbaa !90
  %1352 = fadd float %1351, 1.000000e+00
  %1353 = fptosi float %1352 to i32
  %1354 = load ptr, ptr %114, align 8, !tbaa !5
  %1355 = getelementptr inbounds %class.medialBall, ptr %1354, i32 0, i32 2
  %1356 = load float, ptr %1355, align 4, !tbaa !91
  %1357 = fadd float %1356, 1.000000e+00
  %1358 = fptosi float %1357 to i32
  %1359 = load ptr, ptr %114, align 8, !tbaa !5
  %1360 = getelementptr inbounds %class.medialBall, ptr %1359, i32 0, i32 3
  %1361 = load float, ptr %1360, align 8, !tbaa !92
  %1362 = fadd float %1361, 1.000000e+00
  %1363 = fptoui float %1362 to i64
  %1364 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %1348, i32 noundef %1353, i32 noundef %1358, i64 noundef %1363)
  %1365 = load i32, ptr %1364, align 4, !tbaa !9
  %1366 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1346, i32 noundef %1365)
  %1367 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1366, ptr noundef @.str.31)
  br label %1368

1368:                                             ; preds = %1345, %1321, %1317, %1307
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #9
  br label %1387

1369:                                             ; preds = %1284
  %1370 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 64) #10
  %1371 = load ptr, ptr %111, align 8, !tbaa !5
  invoke void @_ZN10medialBallC2EP5voxels(ptr noundef nonnull align 8 dereferenceable(64) %1370, ptr noundef %1371, i16 noundef signext 16)
          to label %1372 unwind label %1383

1372:                                             ; preds = %1369
  %1373 = load ptr, ptr %111, align 8, !tbaa !5
  %1374 = getelementptr inbounds %class.voxel, ptr %1373, i32 0, i32 0
  store ptr %1370, ptr %1374, align 8, !tbaa !84
  %1375 = getelementptr inbounds %class.blockNetwork, ptr %115, i32 0, i32 10
  %1376 = load ptr, ptr %111, align 8, !tbaa !5
  %1377 = getelementptr inbounds %class.voxel, ptr %1376, i32 0, i32 0
  call void @_ZNSt6vectorIP10medialBallSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1375, ptr noundef nonnull align 8 dereferenceable(8) %1377)
  %1378 = load ptr, ptr %4, align 8, !tbaa !5
  %1379 = load ptr, ptr %1378, align 8, !tbaa !5
  %1380 = load ptr, ptr %111, align 8, !tbaa !5
  %1381 = getelementptr inbounds %class.voxel, ptr %1380, i32 0, i32 0
  %1382 = load ptr, ptr %1381, align 8, !tbaa !84
  call void @_ZN13medialSurface10moveUphillEP10medialBall(ptr noundef nonnull align 8 dereferenceable(252) %1379, ptr noundef %1382)
  br label %1387

1383:                                             ; preds = %1369
  %1384 = landingpad { ptr, i32 }
          cleanup
  %1385 = extractvalue { ptr, i32 } %1384, 0
  store ptr %1385, ptr %23, align 8
  %1386 = extractvalue { ptr, i32 } %1384, 1
  store i32 %1386, ptr %24, align 4
  call void @_ZdlPvm(ptr noundef %1370, i64 noundef 64) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  br label %1391

1387:                                             ; preds = %1372, %1368
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  br label %1388

1388:                                             ; preds = %1387, %1280
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  br label %1389

1389:                                             ; preds = %1388
  %1390 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %100) #9
  br label %1173

1391:                                             ; preds = %1383, %1275
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  br label %1395

1392:                                             ; preds = %1175
  %1393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.33)
  %1394 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1393, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  ret void

1395:                                             ; preds = %1391, %1080, %640, %448, %242
  %1396 = load ptr, ptr %23, align 8
  %1397 = load i32, ptr %24, align 4
  %1398 = insertvalue { ptr, i32 } poison, ptr %1396, 0
  %1399 = insertvalue { ptr, i32 } %1398, i32 %1397, 1
  resume { ptr, i32 } %1399
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56)) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56)) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56)) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(8)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #6 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8throatNEC2Eiii(ptr noundef nonnull align 8 dereferenceable(96), i32 noundef, i32 noundef, i32 noundef) unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorIP5voxelSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #6 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS3_SaIS3_EEEE16metaballcomparerEvT_SA_T0_(ptr, ptr) #3

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

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

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

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

declare void @_ZN13medialSurface10moveUphillEP10medialBall(ptr noundef nonnull align 8 dereferenceable(252), ptr noundef) #7

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !12, i64 8}
!16 = !{!"_ZTSSt4pairISt17_Rb_tree_iteratorIS_IKiiEEbE", !17, i64 0, !12, i64 8}
!17 = !{!"_ZTSSt17_Rb_tree_iteratorISt4pairIKiiEE", !6, i64 0}
!18 = !{!19, !10, i64 4}
!19 = !{!"_ZTSSt4pairIKiiE", !10, i64 0, !10, i64 4}
!20 = !{!21, !28, i64 72}
!21 = !{!"_ZTS8throatNE", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !22, i64 20, !22, i64 22, !23, i64 24, !23, i64 48, !27, i64 72}
!22 = !{!"short", !7, i64 0}
!23 = !{!"_ZTSSt6vectorIP5voxelSaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIP5voxelSaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIP5voxelSaIS1_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIP5voxelSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTS4var3IdE", !28, i64 0, !28, i64 8, !28, i64 16}
!28 = !{!"double", !7, i64 0}
!29 = !{!30, !10, i64 8}
!30 = !{!"_ZTS12blockNetwork", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !6, i64 24, !31, i64 32, !32, i64 224, !41, i64 336, !45, i64 360, !49, i64 384, !49, i64 408, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444}
!31 = !{!"_ZTSSt5arrayI5voxelLm8EE", !7, i64 0}
!32 = !{!"_ZTS11voxelImageTIiE", !33, i64 0, !34, i64 8, !27, i64 64, !27, i64 88}
!33 = !{!"_ZTS15voxelImageTBase"}
!34 = !{!"_ZTS10voxelFieldIiE", !35, i64 8, !36, i64 16, !37, i64 32}
!35 = !{!"long long", !7, i64 0}
!36 = !{!"_ZTS4var3IiE", !10, i64 0, !10, i64 4, !10, i64 8}
!37 = !{!"_ZTSSt6vectorIiSaIiEE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!"_ZTSSt6vectorIP6poreNESaIS1_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIP6poreNESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIP6poreNESaIS1_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIP6poreNESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!45 = !{!"_ZTSSt6vectorIP8throatNESaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseIP8throatNESaIS1_EE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseIP8throatNESaIS1_EE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIP8throatNESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!49 = !{!"_ZTSSt6vectorIP10medialBallSaIS1_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIP10medialBallSaIS1_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIP10medialBallSaIS1_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIP10medialBallSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!54, !10, i64 0}
!54 = !{!"_ZTS6poreNE", !10, i64 0, !10, i64 4, !55, i64 8, !6, i64 56}
!55 = !{!"_ZTSSt3mapIiiSt4lessIiESaISt4pairIKiiEEE", !56, i64 0}
!56 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE", !57, i64 0}
!57 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !58, i64 0, !60, i64 8}
!58 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !59, i64 0}
!59 = !{!"_ZTSSt4lessIiE"}
!60 = !{!"_ZTSSt15_Rb_tree_header", !61, i64 0, !63, i64 32}
!61 = !{!"_ZTSSt18_Rb_tree_node_base", !62, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!62 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!63 = !{!"long", !7, i64 0}
!64 = !{!54, !10, i64 4}
!65 = distinct !{!65, !66}
!66 = !{!"llvm.loop.mustprogress"}
!67 = distinct !{!67, !66}
!68 = distinct !{!68, !66}
!69 = !{!21, !28, i64 80}
!70 = distinct !{!70, !66}
!71 = distinct !{!71, !66}
!72 = distinct !{!72, !66}
!73 = !{!21, !28, i64 88}
!74 = distinct !{!74, !66}
!75 = distinct !{!75, !66}
!76 = distinct !{!76, !66}
!77 = !{!30, !10, i64 432}
!78 = !{!30, !10, i64 436}
!79 = !{!30, !10, i64 440}
!80 = !{!28, !28, i64 0}
!81 = distinct !{!81, !66}
!82 = distinct !{!82, !66}
!83 = distinct !{!83, !66}
!84 = !{!85, !6, i64 0}
!85 = !{!"_ZTS5voxel", !6, i64 0, !22, i64 8, !22, i64 10, !22, i64 12, !86, i64 16}
!86 = !{!"float", !7, i64 0}
!87 = !{!88, !22, i64 20}
!88 = !{!"_ZTS10medialBall", !6, i64 0, !86, i64 8, !86, i64 12, !86, i64 16, !22, i64 20, !86, i64 24, !22, i64 28, !22, i64 30, !22, i64 32, !22, i64 34, !22, i64 36, !6, i64 40, !6, i64 48, !6, i64 56}
!89 = !{!21, !10, i64 8}
!90 = !{!88, !86, i64 8}
!91 = !{!88, !86, i64 12}
!92 = !{!88, !86, i64 16}
!93 = !{!21, !10, i64 4}


; 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 }
%"struct.std::pair" = type <{ %"struct.std::_Rb_tree_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair.59" = type { i32, i32 }
%"class.__gnu_cxx::__normal_iterator.68" = type { ptr }
%"class.std::set" = type { %"class.std::_Rb_tree.69" }
%"class.std::_Rb_tree.69" = type { %"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, int, std::_Identity<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::_Rb_tree_const_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.76" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [2 x i8], align 1

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN10medialBallC2EP5voxels(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i16 noundef signext) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef, i64 noundef) local_unnamed_addr #5 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN13medialSurface3vxlEiii(ptr noundef nonnull align 8 dereferenceable(252), i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN12blockNetwork16createNewThroatsERP13medialSurface(ptr noundef nonnull align 8 dereferenceable(448) %0, ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %1) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"struct.std::pair", align 8
  %7 = alloca %"struct.std::pair.59", align 4
  %8 = alloca %"struct.std::pair.59", align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %"struct.std::pair", align 8
  %14 = alloca %"struct.std::pair.59", align 4
  %15 = alloca %"struct.std::pair.59", align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %"struct.std::pair", align 8
  %21 = alloca %"struct.std::pair.59", align 4
  %22 = alloca %"struct.std::pair.59", align 4
  %23 = alloca ptr, align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %26 = alloca %"class.std::set", align 8
  %27 = alloca i32, align 4
  %28 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %29 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.76", align 8
  %40 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.13)
  %41 = getelementptr inbounds i8, ptr %0, i64 360
  %42 = tail call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %43 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %40, i64 noundef %42)
  %44 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull @.str.14)
  %45 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  %46 = getelementptr inbounds i8, ptr %0, i64 232
  %47 = tail call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %48 = icmp sgt i32 %47, 1
  br i1 %48, label %.preheader304.lr.ph, label %._crit_edge325

.preheader304.lr.ph:                              ; preds = %2
  %49 = getelementptr inbounds i8, ptr %0, i64 336
  %.sroa.2210.0..sroa_idx = getelementptr inbounds i8, ptr %6, i64 8
  %50 = getelementptr inbounds i8, ptr %0, i64 8
  br label %.preheader304

.preheader304:                                    ; preds = %.preheader304.lr.ph, %._crit_edge323
  %.0324 = phi i32 [ 0, %.preheader304.lr.ph ], [ %53, %._crit_edge323 ]
  %51 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %52 = icmp sgt i32 %51, 2
  %53 = add nuw nsw i32 %.0324, 1
  br i1 %52, label %.preheader303, label %._crit_edge323

._crit_edge325:                                   ; preds = %._crit_edge323, %2
  %54 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %55 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %54)
  %56 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull @.str.18)
  %57 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
  %58 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %59 = icmp sgt i32 %58, 1
  br i1 %59, label %.preheader302.lr.ph, label %._crit_edge332

.preheader302.lr.ph:                              ; preds = %._crit_edge325
  %60 = getelementptr inbounds i8, ptr %0, i64 336
  %.sroa.2178.0..sroa_idx = getelementptr inbounds i8, ptr %13, i64 8
  %61 = getelementptr inbounds i8, ptr %0, i64 8
  br label %.preheader302

.preheader303:                                    ; preds = %.preheader304, %._crit_edge
  %indvars.iv = phi i64 [ %indvars.iv.next, %._crit_edge ], [ 1, %.preheader304 ]
  %62 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %63 = icmp sgt i32 %62, 2
  br i1 %63, label %.lr.ph, label %._crit_edge

._crit_edge323:                                   ; preds = %._crit_edge, %.preheader304
  %64 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %65 = add nsw i32 %64, -1
  %66 = icmp slt i32 %53, %65
  br i1 %66, label %.preheader304, label %._crit_edge325, !llvm.loop !5

._crit_edge:                                      ; preds = %164, %.preheader303
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %67 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %68 = add nsw i32 %67, -1
  %69 = sext i32 %68 to i64
  %70 = icmp slt i64 %indvars.iv.next, %69
  br i1 %70, label %.preheader303, label %._crit_edge323, !llvm.loop !7

.lr.ph:                                           ; preds = %.preheader303, %164
  %.0235321 = phi i32 [ %165, %164 ], [ 1, %.preheader303 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #8
  %71 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0324, i32 noundef %.0235321, i64 noundef %indvars.iv)
  %72 = load i32, ptr %71, align 4, !tbaa !8
  store i32 %72, ptr %3, align 4, !tbaa !8
  %73 = icmp sgt i32 %72, -1
  br i1 %73, label %74, label %164

74:                                               ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #8
  %75 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %53, i32 noundef %.0235321, i64 noundef %indvars.iv)
  %76 = load i32, ptr %75, align 4, !tbaa !8
  store i32 %76, ptr %4, align 4, !tbaa !8
  %77 = load i32, ptr %3, align 4, !tbaa !8
  %.not290 = icmp eq i32 %77, %76
  br i1 %.not290, label %153, label %78

78:                                               ; preds = %74
  %79 = icmp sgt i32 %76, -1
  br i1 %79, label %80, label %135

80:                                               ; preds = %78
  %81 = icmp sgt i32 %76, %77
  br i1 %81, label %83, label %82

82:                                               ; preds = %80
  store i32 %76, ptr %3, align 4, !tbaa !8
  store i32 %77, ptr %4, align 4, !tbaa !8
  br label %83

83:                                               ; preds = %82, %80
  %84 = phi i32 [ %76, %82 ], [ %77, %80 ]
  %85 = sext i32 %84 to i64
  %86 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %85) #8
  %87 = load ptr, ptr %86, align 8, !tbaa !12
  %88 = load i32, ptr %4, align 4, !tbaa !8
  %89 = sext i32 %88 to i64
  %90 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %89) #8
  %91 = load ptr, ptr %90, align 8, !tbaa !12
  %.not291 = icmp eq ptr %87, null
  br i1 %.not291, label %92, label %97

92:                                               ; preds = %83
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.15)
  %94 = load i32, ptr %3, align 4, !tbaa !8
  %95 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %93, i32 noundef %94)
  %96 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %97

97:                                               ; preds = %92, %83
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #8
  %98 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %99 = trunc i64 %98 to i32
  store i32 %99, ptr %5, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #8
  %100 = getelementptr inbounds i8, ptr %91, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #8
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %5)
  %101 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %100, ptr noundef nonnull align 4 dereferenceable(8) %7)
  %.fca.0.extract207 = extractvalue { ptr, i8 } %101, 0
  %.fca.1.extract208 = extractvalue { ptr, i8 } %101, 1
  store ptr %.fca.0.extract207, ptr %6, align 8
  store i8 %.fca.1.extract208, ptr %.sroa.2210.0..sroa_idx, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  %102 = trunc nuw i8 %.fca.1.extract208 to i1
  br i1 %102, label %103, label %123

103:                                              ; preds = %97
  %104 = getelementptr inbounds i8, ptr %87, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #8
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5)
  %105 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %104, ptr noundef nonnull align 4 dereferenceable(8) %8)
  %.fca.1.extract201 = extractvalue { ptr, i8 } %105, 1
  %106 = and i8 %.fca.1.extract201, 1
  %.not292.not = icmp eq i8 %106, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #8
  br i1 %.not292.not, label %107, label %115

107:                                              ; preds = %103
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.16)
  %109 = load i32, ptr %3, align 4, !tbaa !8
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %108, i32 noundef %109)
  %111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull @.str.17)
  %112 = load i32, ptr %4, align 4, !tbaa !8
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %111, i32 noundef %112)
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %115

115:                                              ; preds = %107, %103
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #8
  %116 = call noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #9
  %117 = load i32, ptr %5, align 4, !tbaa !8
  %118 = load i32, ptr %3, align 4, !tbaa !8
  %119 = load i32, ptr %4, align 4, !tbaa !8
  invoke void @_ZN8throatNEC2Eiii(ptr noundef nonnull align 8 dereferenceable(96) %116, i32 noundef %117, i32 noundef %118, i32 noundef %119)
          to label %120 unwind label %121

120:                                              ; preds = %115
  store ptr %116, ptr %9, align 8, !tbaa !12
  call void @_ZNSt6vectorIP8throatNESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr noundef nonnull align 8 dereferenceable(8) %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  br label %123

121:                                              ; preds = %115
  %122 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %116, i64 noundef 96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #8
  br label %708

123:                                              ; preds = %120, %97
  %124 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  %125 = getelementptr inbounds i8, ptr %124, i64 4
  %126 = load i32, ptr %125, align 4, !tbaa !14
  %127 = sext i32 %126 to i64
  %128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %127) #8
  %129 = load ptr, ptr %128, align 8, !tbaa !12
  %130 = select i1 %81, i32 1, i32 -1
  %131 = sitofp i32 %130 to double
  %132 = getelementptr inbounds i8, ptr %129, i64 72
  %133 = load double, ptr %132, align 8, !tbaa !16
  %134 = fadd double %133, %131
  store double %134, ptr %132, align 8, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #8
  %.pre = load i32, ptr %3, align 4, !tbaa !8
  br label %135

135:                                              ; preds = %123, %78
  %136 = phi i32 [ %.pre, %123 ], [ %77, %78 ]
  %137 = load i32, ptr %50, align 8, !tbaa !25
  %.not295 = icmp slt i32 %136, %137
  br i1 %.not295, label %144, label %138

138:                                              ; preds = %135
  %139 = sext i32 %136 to i64
  %140 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %139) #8
  %141 = load ptr, ptr %140, align 8, !tbaa !12
  %142 = load i32, ptr %141, align 8, !tbaa !49
  %143 = add nsw i32 %142, 1
  store i32 %143, ptr %141, align 8, !tbaa !49
  %.pre383 = load i32, ptr %50, align 8, !tbaa !25
  br label %144

144:                                              ; preds = %138, %135
  %145 = phi i32 [ %.pre383, %138 ], [ %137, %135 ]
  %146 = load i32, ptr %4, align 4, !tbaa !8
  %.not296 = icmp slt i32 %146, %145
  br i1 %.not296, label %153, label %147

147:                                              ; preds = %144
  %148 = sext i32 %146 to i64
  %149 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %148) #8
  %150 = load ptr, ptr %149, align 8, !tbaa !12
  %151 = load i32, ptr %150, align 8, !tbaa !49
  %152 = add nsw i32 %151, 1
  store i32 %152, ptr %150, align 8, !tbaa !49
  br label %153

153:                                              ; preds = %144, %147, %74
  %154 = load i32, ptr %3, align 4, !tbaa !8
  %155 = load i32, ptr %50, align 8, !tbaa !25
  %.not297 = icmp slt i32 %154, %155
  br i1 %.not297, label %163, label %156

156:                                              ; preds = %153
  %157 = sext i32 %154 to i64
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %157) #8
  %159 = load ptr, ptr %158, align 8, !tbaa !12
  %160 = getelementptr inbounds i8, ptr %159, i64 4
  %161 = load i32, ptr %160, align 4, !tbaa !60
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr %160, align 4, !tbaa !60
  br label %163

163:                                              ; preds = %156, %153
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #8
  br label %164

164:                                              ; preds = %163, %.lr.ph
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #8
  %165 = add nuw nsw i32 %.0235321, 1
  %166 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %167 = add nsw i32 %166, -1
  %168 = icmp slt i32 %165, %167
  br i1 %168, label %.lr.ph, label %._crit_edge, !llvm.loop !61

.preheader302:                                    ; preds = %.preheader302.lr.ph, %._crit_edge330
  %.0240331 = phi i32 [ 0, %.preheader302.lr.ph ], [ %171, %._crit_edge330 ]
  %169 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %170 = icmp sgt i32 %169, 2
  %171 = add nuw nsw i32 %.0240331, 1
  br i1 %170, label %.preheader301, label %._crit_edge330

._crit_edge332:                                   ; preds = %._crit_edge330, %._crit_edge325
  %172 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %172)
  %174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %173, ptr noundef nonnull @.str.18)
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %174)
  %176 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %177 = icmp sgt i32 %176, 1
  br i1 %177, label %.preheader300.lr.ph, label %._crit_edge339

.preheader300.lr.ph:                              ; preds = %._crit_edge332
  %178 = getelementptr inbounds i8, ptr %0, i64 336
  %.sroa.2148.0..sroa_idx = getelementptr inbounds i8, ptr %20, i64 8
  %179 = getelementptr inbounds i8, ptr %0, i64 8
  br label %.preheader300

.preheader301:                                    ; preds = %.preheader302, %._crit_edge328
  %indvars.iv373 = phi i64 [ %indvars.iv.next374, %._crit_edge328 ], [ 1, %.preheader302 ]
  %180 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %181 = icmp sgt i32 %180, 2
  br i1 %181, label %.lr.ph327, label %._crit_edge328

._crit_edge330:                                   ; preds = %._crit_edge328, %.preheader302
  %182 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %183 = add nsw i32 %182, -1
  %184 = icmp slt i32 %171, %183
  br i1 %184, label %.preheader302, label %._crit_edge332, !llvm.loop !62

._crit_edge328:                                   ; preds = %272, %.preheader301
  %indvars.iv.next374 = add nuw nsw i64 %indvars.iv373, 1
  %185 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %186 = add nsw i32 %185, -1
  %187 = sext i32 %186 to i64
  %188 = icmp slt i64 %indvars.iv.next374, %187
  br i1 %188, label %.preheader301, label %._crit_edge330, !llvm.loop !63

.lr.ph327:                                        ; preds = %.preheader301, %272
  %.0242326 = phi i32 [ %273, %272 ], [ 1, %.preheader301 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8
  %189 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0242326, i32 noundef %.0240331, i64 noundef %indvars.iv373)
  %190 = load i32, ptr %189, align 4, !tbaa !8
  store i32 %190, ptr %10, align 4, !tbaa !8
  %191 = icmp sgt i32 %190, -1
  br i1 %191, label %192, label %272

192:                                              ; preds = %.lr.ph327
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  %193 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0242326, i32 noundef %171, i64 noundef %indvars.iv373)
  %194 = load i32, ptr %193, align 4, !tbaa !8
  store i32 %194, ptr %11, align 4, !tbaa !8
  %195 = load i32, ptr %10, align 4, !tbaa !8
  %.not285 = icmp eq i32 %195, %194
  br i1 %.not285, label %271, label %196

196:                                              ; preds = %192
  %197 = icmp sgt i32 %194, -1
  br i1 %197, label %198, label %253

198:                                              ; preds = %196
  %199 = icmp sgt i32 %194, %195
  br i1 %199, label %201, label %200

200:                                              ; preds = %198
  store i32 %194, ptr %10, align 4, !tbaa !8
  store i32 %195, ptr %11, align 4, !tbaa !8
  br label %201

201:                                              ; preds = %200, %198
  %202 = phi i32 [ %194, %200 ], [ %195, %198 ]
  %203 = sext i32 %202 to i64
  %204 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %203) #8
  %205 = load ptr, ptr %204, align 8, !tbaa !12
  %206 = load i32, ptr %11, align 4, !tbaa !8
  %207 = sext i32 %206 to i64
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %207) #8
  %209 = load ptr, ptr %208, align 8, !tbaa !12
  %.not286 = icmp eq ptr %205, null
  br i1 %.not286, label %210, label %215

210:                                              ; preds = %201
  %211 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.15)
  %212 = load i32, ptr %10, align 4, !tbaa !8
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %211, i32 noundef %212)
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %213, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %215

215:                                              ; preds = %210, %201
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #8
  %216 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %217 = trunc i64 %216 to i32
  store i32 %217, ptr %12, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #8
  %218 = getelementptr inbounds i8, ptr %209, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %12)
  %219 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %218, ptr noundef nonnull align 4 dereferenceable(8) %14)
  %.fca.0.extract175 = extractvalue { ptr, i8 } %219, 0
  %.fca.1.extract176 = extractvalue { ptr, i8 } %219, 1
  store ptr %.fca.0.extract175, ptr %13, align 8
  store i8 %.fca.1.extract176, ptr %.sroa.2178.0..sroa_idx, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  %220 = trunc nuw i8 %.fca.1.extract176 to i1
  br i1 %220, label %221, label %241

221:                                              ; preds = %215
  %222 = getelementptr inbounds i8, ptr %205, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12)
  %223 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %222, ptr noundef nonnull align 4 dereferenceable(8) %15)
  %.fca.1.extract169 = extractvalue { ptr, i8 } %223, 1
  %224 = and i8 %.fca.1.extract169, 1
  %.not287.not = icmp eq i8 %224, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br i1 %.not287.not, label %225, label %233

225:                                              ; preds = %221
  %226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.16)
  %227 = load i32, ptr %10, align 4, !tbaa !8
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %226, i32 noundef %227)
  %229 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef nonnull @.str.17)
  %230 = load i32, ptr %11, align 4, !tbaa !8
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %229, i32 noundef %230)
  %232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %233

233:                                              ; preds = %225, %221
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  %234 = call noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #9
  %235 = load i32, ptr %12, align 4, !tbaa !8
  %236 = load i32, ptr %10, align 4, !tbaa !8
  %237 = load i32, ptr %11, align 4, !tbaa !8
  invoke void @_ZN8throatNEC2Eiii(ptr noundef nonnull align 8 dereferenceable(96) %234, i32 noundef %235, i32 noundef %236, i32 noundef %237)
          to label %238 unwind label %239

238:                                              ; preds = %233
  store ptr %234, ptr %16, align 8, !tbaa !12
  call void @_ZNSt6vectorIP8throatNESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr noundef nonnull align 8 dereferenceable(8) %16)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  br label %241

239:                                              ; preds = %233
  %240 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %234, i64 noundef 96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  br label %708

241:                                              ; preds = %238, %215
  %242 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  %243 = getelementptr inbounds i8, ptr %242, i64 4
  %244 = load i32, ptr %243, align 4, !tbaa !14
  %245 = sext i32 %244 to i64
  %246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %245) #8
  %247 = load ptr, ptr %246, align 8, !tbaa !12
  %248 = select i1 %199, i32 1, i32 -1
  %249 = sitofp i32 %248 to double
  %250 = getelementptr inbounds i8, ptr %247, i64 80
  %251 = load double, ptr %250, align 8, !tbaa !64
  %252 = fadd double %251, %249
  store double %252, ptr %250, align 8, !tbaa !64
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  %.pre384 = load i32, ptr %10, align 4, !tbaa !8
  br label %253

253:                                              ; preds = %241, %196
  %254 = phi i32 [ %.pre384, %241 ], [ %195, %196 ]
  %255 = load i32, ptr %61, align 8, !tbaa !25
  %.not288 = icmp slt i32 %254, %255
  br i1 %.not288, label %262, label %256

256:                                              ; preds = %253
  %257 = sext i32 %254 to i64
  %258 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %257) #8
  %259 = load ptr, ptr %258, align 8, !tbaa !12
  %260 = load i32, ptr %259, align 8, !tbaa !49
  %261 = add nsw i32 %260, 1
  store i32 %261, ptr %259, align 8, !tbaa !49
  %.pre385 = load i32, ptr %61, align 8, !tbaa !25
  br label %262

262:                                              ; preds = %256, %253
  %263 = phi i32 [ %.pre385, %256 ], [ %255, %253 ]
  %264 = load i32, ptr %11, align 4, !tbaa !8
  %.not289 = icmp slt i32 %264, %263
  br i1 %.not289, label %271, label %265

265:                                              ; preds = %262
  %266 = sext i32 %264 to i64
  %267 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef %266) #8
  %268 = load ptr, ptr %267, align 8, !tbaa !12
  %269 = load i32, ptr %268, align 8, !tbaa !49
  %270 = add nsw i32 %269, 1
  store i32 %270, ptr %268, align 8, !tbaa !49
  br label %271

271:                                              ; preds = %262, %265, %192
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  br label %272

272:                                              ; preds = %271, %.lr.ph327
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  %273 = add nuw nsw i32 %.0242326, 1
  %274 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %275 = add nsw i32 %274, -1
  %276 = icmp slt i32 %273, %275
  br i1 %276, label %.lr.ph327, label %._crit_edge328, !llvm.loop !65

.preheader300:                                    ; preds = %.preheader300.lr.ph, %._crit_edge337
  %indvars.iv376 = phi i64 [ 0, %.preheader300.lr.ph ], [ %279, %._crit_edge337 ]
  %277 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %278 = icmp sgt i32 %277, 2
  %279 = add nuw nsw i64 %indvars.iv376, 1
  br i1 %278, label %.preheader, label %._crit_edge337

._crit_edge339:                                   ; preds = %._crit_edge337, %._crit_edge332
  %280 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef %280)
  %282 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef nonnull @.str.9)
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %282)
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
  %285 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %284, i64 noundef %285)
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %288 = getelementptr inbounds i8, ptr %0, i64 336
  %289 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %288) #8
  %290 = trunc i64 %289 to i32
  %291 = getelementptr inbounds i8, ptr %0, i64 432
  store i32 %290, ptr %291, align 8, !tbaa !66
  %292 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %293 = trunc i64 %292 to i32
  %294 = getelementptr inbounds i8, ptr %0, i64 436
  store i32 %293, ptr %294, align 4, !tbaa !67
  %295 = load i32, ptr %291, align 8, !tbaa !66
  %296 = add nsw i32 %295, %293
  %297 = getelementptr inbounds i8, ptr %0, i64 440
  store i32 %296, ptr %297, align 8, !tbaa !68
  %298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.20)
  %299 = load i32, ptr %297, align 8, !tbaa !68
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %298, i32 noundef %299)
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull @.str.21)
  %302 = call noundef i64 @_ZNKSt6vectorIP6poreNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %288) #8
  %303 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %301, i64 noundef %302)
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull @.str.22)
  %305 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %304, i64 noundef %305)
  %307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %308 = getelementptr inbounds i8, ptr %0, i64 408
  %309 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %310 = mul i64 %309, 5
  call void @_ZNSt6vectorIP10medialBallSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %308, i64 noundef %310)
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.23)
  %312 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.24)
  %314 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  %315 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  store ptr %315, ptr %24, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  %316 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  store ptr %316, ptr %25, align 8
  %317 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP8throatNESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br i1 %317, label %.lr.ph341, label %._crit_edge342

.preheader:                                       ; preds = %.preheader300, %._crit_edge335
  %.0244336 = phi i32 [ %324, %._crit_edge335 ], [ 1, %.preheader300 ]
  %318 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %319 = icmp sgt i32 %318, 2
  br i1 %319, label %.lr.ph334, label %._crit_edge335

._crit_edge337:                                   ; preds = %._crit_edge335, %.preheader300
  %320 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %321 = add nsw i32 %320, -1
  %322 = sext i32 %321 to i64
  %323 = icmp slt i64 %279, %322
  br i1 %323, label %.preheader300, label %._crit_edge339, !llvm.loop !69

._crit_edge335:                                   ; preds = %411, %.preheader
  %324 = add nuw nsw i32 %.0244336, 1
  %325 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %326 = add nsw i32 %325, -1
  %327 = icmp slt i32 %324, %326
  br i1 %327, label %.preheader, label %._crit_edge337, !llvm.loop !70

.lr.ph334:                                        ; preds = %.preheader, %411
  %.0245333 = phi i32 [ %412, %411 ], [ 1, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #8
  %328 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0245333, i32 noundef %.0244336, i64 noundef %indvars.iv376)
  %329 = load i32, ptr %328, align 4, !tbaa !8
  store i32 %329, ptr %17, align 4, !tbaa !8
  %330 = icmp sgt i32 %329, -1
  br i1 %330, label %331, label %411

331:                                              ; preds = %.lr.ph334
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #8
  %332 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0245333, i32 noundef %.0244336, i64 noundef %279)
  %333 = load i32, ptr %332, align 4, !tbaa !8
  store i32 %333, ptr %18, align 4, !tbaa !8
  %334 = load i32, ptr %17, align 4, !tbaa !8
  %.not280 = icmp eq i32 %334, %333
  br i1 %.not280, label %410, label %335

335:                                              ; preds = %331
  %336 = icmp sgt i32 %333, -1
  br i1 %336, label %337, label %392

337:                                              ; preds = %335
  %338 = icmp sgt i32 %333, %334
  br i1 %338, label %340, label %339

339:                                              ; preds = %337
  store i32 %333, ptr %17, align 4, !tbaa !8
  store i32 %334, ptr %18, align 4, !tbaa !8
  br label %340

340:                                              ; preds = %339, %337
  %341 = phi i32 [ %333, %339 ], [ %334, %337 ]
  %342 = sext i32 %341 to i64
  %343 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %342) #8
  %344 = load ptr, ptr %343, align 8, !tbaa !12
  %345 = load i32, ptr %18, align 4, !tbaa !8
  %346 = sext i32 %345 to i64
  %347 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %346) #8
  %348 = load ptr, ptr %347, align 8, !tbaa !12
  %.not281 = icmp eq ptr %344, null
  br i1 %.not281, label %349, label %354

349:                                              ; preds = %340
  %350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.15)
  %351 = load i32, ptr %17, align 4, !tbaa !8
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %350, i32 noundef %351)
  %353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %352, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %354

354:                                              ; preds = %349, %340
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #8
  %355 = call noundef i64 @_ZNKSt6vectorIP8throatNESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  %356 = trunc i64 %355 to i32
  store i32 %356, ptr %19, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #8
  %357 = getelementptr inbounds i8, ptr %348, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 4 dereferenceable(4) %19)
  %358 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %357, ptr noundef nonnull align 4 dereferenceable(8) %21)
  %.fca.0.extract145 = extractvalue { ptr, i8 } %358, 0
  %.fca.1.extract146 = extractvalue { ptr, i8 } %358, 1
  store ptr %.fca.0.extract145, ptr %20, align 8
  store i8 %.fca.1.extract146, ptr %.sroa.2148.0..sroa_idx, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  %359 = trunc nuw i8 %.fca.1.extract146 to i1
  br i1 %359, label %360, label %380

360:                                              ; preds = %354
  %361 = getelementptr inbounds i8, ptr %344, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  call void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8) %22, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %19)
  %362 = call { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48) %361, ptr noundef nonnull align 4 dereferenceable(8) %22)
  %.fca.1.extract = extractvalue { ptr, i8 } %362, 1
  %363 = and i8 %.fca.1.extract, 1
  %.not282.not = icmp eq i8 %363, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  br i1 %.not282.not, label %364, label %372

364:                                              ; preds = %360
  %365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.16)
  %366 = load i32, ptr %17, align 4, !tbaa !8
  %367 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %365, i32 noundef %366)
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %367, ptr noundef nonnull @.str.17)
  %369 = load i32, ptr %18, align 4, !tbaa !8
  %370 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %368, i32 noundef %369)
  %371 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %370, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %372

372:                                              ; preds = %364, %360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  %373 = call noalias noundef nonnull dereferenceable(96) ptr @_Znwm(i64 noundef 96) #9
  %374 = load i32, ptr %19, align 4, !tbaa !8
  %375 = load i32, ptr %17, align 4, !tbaa !8
  %376 = load i32, ptr %18, align 4, !tbaa !8
  invoke void @_ZN8throatNEC2Eiii(ptr noundef nonnull align 8 dereferenceable(96) %373, i32 noundef %374, i32 noundef %375, i32 noundef %376)
          to label %377 unwind label %378

377:                                              ; preds = %372
  store ptr %373, ptr %23, align 8, !tbaa !12
  call void @_ZNSt6vectorIP8throatNESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr noundef nonnull align 8 dereferenceable(8) %23)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  br label %380

378:                                              ; preds = %372
  %379 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %373, i64 noundef 96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #8
  br label %708

380:                                              ; preds = %377, %354
  %381 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKiiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #8
  %382 = getelementptr inbounds i8, ptr %381, i64 4
  %383 = load i32, ptr %382, align 4, !tbaa !14
  %384 = sext i32 %383 to i64
  %385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %384) #8
  %386 = load ptr, ptr %385, align 8, !tbaa !12
  %387 = select i1 %338, i32 1, i32 -1
  %388 = sitofp i32 %387 to double
  %389 = getelementptr inbounds i8, ptr %386, i64 88
  %390 = load double, ptr %389, align 8, !tbaa !71
  %391 = fadd double %390, %388
  store double %391, ptr %389, align 8, !tbaa !71
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  %.pre386 = load i32, ptr %17, align 4, !tbaa !8
  br label %392

392:                                              ; preds = %380, %335
  %393 = phi i32 [ %.pre386, %380 ], [ %334, %335 ]
  %394 = load i32, ptr %179, align 8, !tbaa !25
  %.not283 = icmp slt i32 %393, %394
  br i1 %.not283, label %401, label %395

395:                                              ; preds = %392
  %396 = sext i32 %393 to i64
  %397 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %396) #8
  %398 = load ptr, ptr %397, align 8, !tbaa !12
  %399 = load i32, ptr %398, align 8, !tbaa !49
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr %398, align 8, !tbaa !49
  %.pre387 = load i32, ptr %179, align 8, !tbaa !25
  br label %401

401:                                              ; preds = %395, %392
  %402 = phi i32 [ %.pre387, %395 ], [ %394, %392 ]
  %403 = load i32, ptr %18, align 4, !tbaa !8
  %.not284 = icmp slt i32 %403, %402
  br i1 %.not284, label %410, label %404

404:                                              ; preds = %401
  %405 = sext i32 %403 to i64
  %406 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %405) #8
  %407 = load ptr, ptr %406, align 8, !tbaa !12
  %408 = load i32, ptr %407, align 8, !tbaa !49
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr %407, align 8, !tbaa !49
  br label %410

410:                                              ; preds = %401, %404, %331
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  br label %411

411:                                              ; preds = %410, %.lr.ph334
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #8
  %412 = add nuw nsw i32 %.0245333, 1
  %413 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %414 = add nsw i32 %413, -1
  %415 = icmp slt i32 %412, %414
  br i1 %415, label %.lr.ph334, label %._crit_edge335, !llvm.loop !72

._crit_edge342:                                   ; preds = %.lr.ph341, %._crit_edge339
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  %416 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %417 = icmp sgt i32 %416, 2
  br i1 %417, label %.lr.ph361, label %._crit_edge362.thread

.lr.ph361:                                        ; preds = %._crit_edge342
  %418 = getelementptr inbounds i8, ptr %0, i64 8
  br label %453

.lr.ph341:                                        ; preds = %._crit_edge339, %.lr.ph341
  %419 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  %420 = load ptr, ptr %419, align 8, !tbaa !12
  %421 = getelementptr inbounds i8, ptr %420, i64 24
  %422 = getelementptr inbounds i8, ptr %420, i64 72
  %423 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef 0)
  %424 = load double, ptr %423, align 8, !tbaa !73
  %425 = call noundef double @_ZSt3absd(double noundef %424)
  %426 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef 1)
  %427 = load double, ptr %426, align 8, !tbaa !73
  %428 = call noundef double @_ZSt3absd(double noundef %427)
  %429 = fadd double %425, %428
  %430 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef 2)
  %431 = load double, ptr %430, align 8, !tbaa !73
  %432 = call noundef double @_ZSt3absd(double noundef %431)
  %433 = fadd double %429, %432
  %434 = fadd double %433, 1.000000e+00
  %435 = fptoui double %434 to i64
  call void @_ZNSt6vectorIP5voxelSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %421, i64 noundef %435)
  %436 = getelementptr inbounds i8, ptr %420, i64 48
  %437 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef 0)
  %438 = load double, ptr %437, align 8, !tbaa !73
  %439 = call noundef double @_ZSt3absd(double noundef %438)
  %440 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef 1)
  %441 = load double, ptr %440, align 8, !tbaa !73
  %442 = call noundef double @_ZSt3absd(double noundef %441)
  %443 = fadd double %439, %442
  %444 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN4var3IdEixEl(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef 2)
  %445 = load double, ptr %444, align 8, !tbaa !73
  %446 = call noundef double @_ZSt3absd(double noundef %445)
  %447 = fadd double %443, %446
  %448 = fadd double %447, 1.000000e+00
  %449 = fptoui double %448 to i64
  call void @_ZNSt6vectorIP5voxelSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %436, i64 noundef %449)
  %450 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  %451 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP8throatNESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br i1 %451, label %.lr.ph341, label %._crit_edge342

._crit_edge362:                                   ; preds = %._crit_edge356
  %452 = icmp sgt i32 %.1247.lcssa, 0
  br i1 %452, label %565, label %._crit_edge362.thread

453:                                              ; preds = %.lr.ph361, %._crit_edge356
  %indvars.iv380 = phi i64 [ 1, %.lr.ph361 ], [ %indvars.iv.next381.pre-phi, %._crit_edge356 ]
  %.0246359 = phi i32 [ 0, %.lr.ph361 ], [ %.1247.lcssa, %._crit_edge356 ]
  %454 = call noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %455 = add i32 %454, -1
  %456 = icmp sgt i32 %454, 2
  br i1 %456, label %.lr.ph355, label %.._crit_edge356_crit_edge

.._crit_edge356_crit_edge:                        ; preds = %453
  %.pre397 = add nuw nsw i64 %indvars.iv380, 1
  br label %._crit_edge356

.lr.ph355:                                        ; preds = %453
  %457 = add nsw i64 %indvars.iv380, -1
  %458 = add nuw nsw i64 %indvars.iv380, 1
  %459 = trunc nuw nsw i64 %457 to i32
  %460 = trunc nuw nsw i64 %457 to i32
  br label %465

._crit_edge356:                                   ; preds = %._crit_edge350, %.._crit_edge356_crit_edge
  %indvars.iv.next381.pre-phi = phi i64 [ %.pre397, %.._crit_edge356_crit_edge ], [ %458, %._crit_edge350 ]
  %.1247.lcssa = phi i32 [ %.0246359, %.._crit_edge356_crit_edge ], [ %.2248.lcssa, %._crit_edge350 ]
  %461 = call noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %462 = add nsw i32 %461, -1
  %463 = sext i32 %462 to i64
  %464 = icmp slt i64 %indvars.iv.next381.pre-phi, %463
  br i1 %464, label %453, label %._crit_edge362, !llvm.loop !74

465:                                              ; preds = %.lr.ph355, %._crit_edge350
  %.1247353 = phi i32 [ %.0246359, %.lr.ph355 ], [ %.2248.lcssa, %._crit_edge350 ]
  %.0250352 = phi i32 [ 1, %.lr.ph355 ], [ %.pre-phi396, %._crit_edge350 ]
  %466 = call noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56) %46)
  %467 = add i32 %466, -1
  %468 = icmp sgt i32 %466, 2
  br i1 %468, label %.lr.ph349, label %.._crit_edge350_crit_edge

.._crit_edge350_crit_edge:                        ; preds = %465
  %.pre395 = add nuw nsw i32 %.0250352, 1
  br label %._crit_edge350

.lr.ph349:                                        ; preds = %465
  %469 = add nsw i32 %.0250352, -1
  %470 = add nuw nsw i32 %.0250352, 1
  br label %471

._crit_edge350:                                   ; preds = %564, %.._crit_edge350_crit_edge
  %.pre-phi396 = phi i32 [ %.pre395, %.._crit_edge350_crit_edge ], [ %470, %564 ]
  %.2248.lcssa = phi i32 [ %.1247353, %.._crit_edge350_crit_edge ], [ %.4, %564 ]
  %exitcond379.not = icmp eq i32 %.pre-phi396, %455
  br i1 %exitcond379.not, label %._crit_edge356, label %465, !llvm.loop !75

471:                                              ; preds = %.lr.ph349, %564
  %.2248347 = phi i32 [ %.1247353, %.lr.ph349 ], [ %.4, %564 ]
  %.0251346 = phi i32 [ 1, %.lr.ph349 ], [ %.pre-phi394, %564 ]
  %472 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0251346, i32 noundef %.0250352, i64 noundef %indvars.iv380)
  %473 = load i32, ptr %472, align 4, !tbaa !8
  %474 = load i32, ptr %418, align 8, !tbaa !25
  %.not277 = icmp slt i32 %473, %474
  br i1 %.not277, label %._crit_edge388, label %475

._crit_edge388:                                   ; preds = %471
  %.pre393 = add nuw nsw i32 %.0251346, 1
  br label %564

475:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %26) #8
  call void @_ZNSt3setIiSt4lessIiESaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #8
  %476 = add nsw i32 %.0251346, -1
  %477 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %476, i32 noundef %.0250352, i64 noundef %indvars.iv380)
  %478 = load i32, ptr %477, align 4, !tbaa !8
  store i32 %478, ptr %27, align 4, !tbaa !8
  %479 = icmp ne i32 %473, %478
  %480 = icmp sgt i32 %478, -1
  %or.cond = and i1 %479, %480
  br i1 %or.cond, label %481, label %485

481:                                              ; preds = %475
  %482 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %485 unwind label %483

483:                                              ; preds = %519, %512, %505, %498, %491, %481
  %484 = landingpad { ptr, i32 }
          cleanup
  br label %563

485:                                              ; preds = %481, %475
  %486 = add nuw nsw i32 %.0251346, 1
  %487 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %486, i32 noundef %.0250352, i64 noundef %indvars.iv380)
  %488 = load i32, ptr %487, align 4, !tbaa !8
  store i32 %488, ptr %27, align 4, !tbaa !8
  %489 = icmp ne i32 %473, %488
  %490 = icmp sgt i32 %488, -1
  %or.cond3 = and i1 %489, %490
  br i1 %or.cond3, label %491, label %493

491:                                              ; preds = %485
  %492 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %493 unwind label %483

493:                                              ; preds = %491, %485
  %494 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0251346, i32 noundef %469, i64 noundef %indvars.iv380)
  %495 = load i32, ptr %494, align 4, !tbaa !8
  store i32 %495, ptr %27, align 4, !tbaa !8
  %496 = icmp ne i32 %473, %495
  %497 = icmp sgt i32 %495, -1
  %or.cond5 = and i1 %496, %497
  br i1 %or.cond5, label %498, label %500

498:                                              ; preds = %493
  %499 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %500 unwind label %483

500:                                              ; preds = %498, %493
  %501 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0251346, i32 noundef %470, i64 noundef %indvars.iv380)
  %502 = load i32, ptr %501, align 4, !tbaa !8
  store i32 %502, ptr %27, align 4, !tbaa !8
  %503 = icmp ne i32 %473, %502
  %504 = icmp sgt i32 %502, -1
  %or.cond7 = and i1 %503, %504
  br i1 %or.cond7, label %505, label %507

505:                                              ; preds = %500
  %506 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %507 unwind label %483

507:                                              ; preds = %505, %500
  %508 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0251346, i32 noundef %.0250352, i64 noundef %457)
  %509 = load i32, ptr %508, align 4, !tbaa !8
  store i32 %509, ptr %27, align 4, !tbaa !8
  %510 = icmp ne i32 %473, %509
  %511 = icmp sgt i32 %509, -1
  %or.cond9 = and i1 %510, %511
  br i1 %or.cond9, label %512, label %514

512:                                              ; preds = %507
  %513 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %514 unwind label %483

514:                                              ; preds = %512, %507
  %515 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %.0251346, i32 noundef %.0250352, i64 noundef %458)
  %516 = load i32, ptr %515, align 4, !tbaa !8
  store i32 %516, ptr %27, align 4, !tbaa !8
  %517 = icmp ne i32 %473, %516
  %518 = icmp sgt i32 %516, -1
  %or.cond11 = and i1 %517, %518
  br i1 %or.cond11, label %519, label %521

519:                                              ; preds = %514
  %520 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %521 unwind label %483

521:                                              ; preds = %519, %514
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  %522 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  store ptr %522, ptr %28, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #8
  %523 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  store ptr %523, ptr %29, align 8
  %524 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  br i1 %524, label %.lr.ph344, label %._crit_edge345

.lr.ph344:                                        ; preds = %521
  %525 = sext i32 %473 to i64
  br label %529

._crit_edge345:                                   ; preds = %559, %521
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  %526 = call noundef i64 @_ZNKSt3setIiSt4lessIiESaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  %527 = icmp ugt i64 %526, 1
  %528 = zext i1 %527 to i32
  %spec.select = add nsw i32 %.2248347, %528
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #8
  call void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %26) #8
  br label %564

529:                                              ; preds = %.lr.ph344, %559
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #8
  %530 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIiEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %531 = load i32, ptr %530, align 4, !tbaa !8
  store i32 %531, ptr %30, align 4, !tbaa !8
  %532 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6poreNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %288, i64 noundef %525) #8
  %533 = load ptr, ptr %532, align 8, !tbaa !12
  %534 = getelementptr inbounds i8, ptr %533, i64 8
  %535 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEEixERS3_(ptr noundef nonnull align 8 dereferenceable(48) %534, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %536 unwind label %548

536:                                              ; preds = %529
  %537 = load i32, ptr %535, align 4, !tbaa !8
  %538 = sext i32 %537 to i64
  %539 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP8throatNESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef %538) #8
  %540 = load ptr, ptr %539, align 8, !tbaa !12
  %541 = load i32, ptr %30, align 4, !tbaa !8
  %542 = icmp sgt i32 %473, %541
  br i1 %542, label %543, label %552

543:                                              ; preds = %536
  %544 = getelementptr inbounds i8, ptr %540, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #8
  %545 = load ptr, ptr %1, align 8, !tbaa !12
  %546 = call noundef ptr @_ZN13medialSurface3vxlEiii(ptr noundef nonnull align 8 dereferenceable(252) %545, i32 noundef %476, i32 noundef %469, i32 noundef %460)
  store ptr %546, ptr %31, align 8, !tbaa !12
  invoke void @_ZNSt6vectorIP5voxelSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %544, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %547 unwind label %550

547:                                              ; preds = %543
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  br label %559

548:                                              ; preds = %529
  %549 = landingpad { ptr, i32 }
          cleanup
  br label %562

550:                                              ; preds = %543
  %551 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  br label %562

552:                                              ; preds = %536
  %553 = getelementptr inbounds i8, ptr %540, i64 48
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #8
  %554 = load ptr, ptr %1, align 8, !tbaa !12
  %555 = call noundef ptr @_ZN13medialSurface3vxlEiii(ptr noundef nonnull align 8 dereferenceable(252) %554, i32 noundef %476, i32 noundef %469, i32 noundef %459)
  store ptr %555, ptr %32, align 8, !tbaa !12
  invoke void @_ZNSt6vectorIP5voxelSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %553, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %556 unwind label %557

556:                                              ; preds = %552
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  br label %559

557:                                              ; preds = %552
  %558 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  br label %562

559:                                              ; preds = %556, %547
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #8
  %560 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIiEppEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %561 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  br i1 %561, label %529, label %._crit_edge345

562:                                              ; preds = %557, %550, %548
  %.pn = phi { ptr, i32 } [ %551, %550 ], [ %558, %557 ], [ %549, %548 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  br label %563

563:                                              ; preds = %562, %483
  %.pn.pn = phi { ptr, i32 } [ %.pn, %562 ], [ %484, %483 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #8
  call void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %26) #8
  br label %708

564:                                              ; preds = %._crit_edge388, %._crit_edge345
  %.pre-phi394 = phi i32 [ %.pre393, %._crit_edge388 ], [ %486, %._crit_edge345 ]
  %.4 = phi i32 [ %.2248347, %._crit_edge388 ], [ %spec.select, %._crit_edge345 ]
  %exitcond.not = icmp eq i32 %.pre-phi394, %467
  br i1 %exitcond.not, label %._crit_edge350, label %471, !llvm.loop !76

565:                                              ; preds = %._crit_edge362
  %566 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.25)
  %567 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %566, i32 noundef %.1247.lcssa)
  %568 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %567, ptr noundef nonnull @.str.26)
  %569 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %568, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %._crit_edge362.thread

._crit_edge362.thread:                            ; preds = %._crit_edge342, %565, %._crit_edge362
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #8
  %570 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  store ptr %570, ptr %33, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #8
  %571 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  store ptr %571, ptr %34, align 8
  %572 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP8throatNESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br i1 %572, label %.lr.ph365, label %._crit_edge366

._crit_edge366:                                   ; preds = %594, %._crit_edge362.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  %573 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.29)
  %574 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #8
  %575 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  store ptr %575, ptr %35, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  %576 = call ptr @_ZNSt6vectorIP8throatNESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  store ptr %576, ptr %36, align 8
  %577 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP8throatNESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  br i1 %577, label %.lr.ph368, label %._crit_edge369

.lr.ph365:                                        ; preds = %._crit_edge362.thread, %594
  %578 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  %579 = load ptr, ptr %578, align 8, !tbaa !12
  %580 = getelementptr inbounds i8, ptr %579, i64 24
  %581 = call noundef zeroext i1 @_ZNKSt6vectorIP5voxelSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #8
  br i1 %581, label %584, label %582

582:                                              ; preds = %.lr.ph365
  %583 = call noundef zeroext i1 @_ZNKSt6vectorIP5voxelSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #8
  br i1 %583, label %584, label %594

584:                                              ; preds = %582, %.lr.ph365
  %585 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.27)
  %586 = call noundef i64 @_ZNKSt6vectorIP5voxelSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #8
  %587 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %585, i64 noundef %586)
  %588 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %587, ptr noundef nonnull @.str.17)
  %589 = getelementptr inbounds i8, ptr %579, i64 48
  %590 = call noundef i64 @_ZNKSt6vectorIP5voxelSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %589) #8
  %591 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %588, i64 noundef %590)
  %592 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %591, ptr noundef nonnull @.str.28)
  %593 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %592)
  br label %594

594:                                              ; preds = %584, %582
  %595 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #8
  %596 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #8
  call void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS3_SaIS3_EEEE16metaballcomparerEvT_SA_T0_(ptr %595, ptr %596)
  %597 = getelementptr inbounds i8, ptr %579, i64 48
  %598 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %597) #8
  %599 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %597) #8
  call void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS3_SaIS3_EEEE16metaballcomparerEvT_SA_T0_(ptr %598, ptr %599)
  %600 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  %601 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP8throatNESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br i1 %601, label %.lr.ph365, label %._crit_edge366

._crit_edge369:                                   ; preds = %705, %._crit_edge366
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  %602 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.33)
  %603 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %602, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  ret void

.lr.ph368:                                        ; preds = %._crit_edge366, %705
  %604 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  %605 = load ptr, ptr %604, align 8, !tbaa !12
  %606 = getelementptr inbounds i8, ptr %605, i64 24
  %607 = call noundef i64 @_ZNKSt6vectorIP5voxelSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %606) #8
  %.not = icmp eq i64 %607, 0
  br i1 %.not, label %656, label %608

608:                                              ; preds = %.lr.ph368
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  %609 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %606) #8
  store ptr %609, ptr %37, align 8
  %610 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  %611 = load ptr, ptr %610, align 8, !tbaa !12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  %612 = load ptr, ptr %611, align 8, !tbaa !77
  %.not269 = icmp eq ptr %612, null
  br i1 %.not269, label %652, label %613

613:                                              ; preds = %608
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #8
  %614 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %606) #8
  store ptr %614, ptr %38, align 8
  %615 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #8
  %616 = load ptr, ptr %615, align 8, !tbaa !12
  %617 = load ptr, ptr %616, align 8, !tbaa !77
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  %618 = getelementptr inbounds i8, ptr %617, i64 20
  store i16 5, ptr %618, align 4, !tbaa !80
  %619 = call noundef ptr @_ZNK10medialBall11mastrSphereEv(ptr noundef nonnull align 8 dereferenceable(64) %617)
  %.not270 = icmp eq ptr %619, null
  %.not271 = icmp eq ptr %619, %617
  %or.cond298 = or i1 %.not270, %.not271
  br i1 %or.cond298, label %656, label %620

620:                                              ; preds = %613
  %621 = getelementptr inbounds i8, ptr %605, i64 8
  %622 = load i32, ptr %621, align 8, !tbaa !82
  %623 = getelementptr inbounds i8, ptr %619, i64 8
  %624 = load float, ptr %623, align 8, !tbaa !83
  %625 = fadd float %624, 1.000000e+00
  %626 = fptosi float %625 to i32
  %627 = getelementptr inbounds i8, ptr %619, i64 12
  %628 = load float, ptr %627, align 4, !tbaa !84
  %629 = fadd float %628, 1.000000e+00
  %630 = fptosi float %629 to i32
  %631 = getelementptr inbounds i8, ptr %619, i64 16
  %632 = load float, ptr %631, align 8, !tbaa !85
  %633 = fadd float %632, 1.000000e+00
  %634 = fptoui float %633 to i64
  %635 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %626, i32 noundef %630, i64 noundef %634)
  %636 = load i32, ptr %635, align 4, !tbaa !8
  %.not272 = icmp eq i32 %622, %636
  br i1 %.not272, label %656, label %637

637:                                              ; preds = %620
  %638 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.30)
  %639 = load float, ptr %623, align 8, !tbaa !83
  %640 = fadd float %639, 1.000000e+00
  %641 = fptosi float %640 to i32
  %642 = load float, ptr %627, align 4, !tbaa !84
  %643 = fadd float %642, 1.000000e+00
  %644 = fptosi float %643 to i32
  %645 = load float, ptr %631, align 8, !tbaa !85
  %646 = fadd float %645, 1.000000e+00
  %647 = fptoui float %646 to i64
  %648 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %641, i32 noundef %644, i64 noundef %647)
  %649 = load i32, ptr %648, align 4, !tbaa !8
  %650 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %638, i32 noundef %649)
  %651 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %650, ptr noundef nonnull @.str.31)
  br label %656

652:                                              ; preds = %608
  %653 = call noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #9
  call void @_ZN10medialBallC2EP5voxels(ptr noundef nonnull align 8 dereferenceable(64) %653, ptr noundef nonnull %611, i16 noundef signext 15)
  store ptr %653, ptr %611, align 8, !tbaa !77
  call void @_ZNSt6vectorIP10medialBallSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %308, ptr noundef nonnull align 8 dereferenceable(8) %611)
  %654 = load ptr, ptr %1, align 8, !tbaa !12
  %655 = load ptr, ptr %611, align 8, !tbaa !77
  call void @_ZN13medialSurface10moveUphillEP10medialBall(ptr noundef nonnull align 8 dereferenceable(252) %654, ptr noundef %655)
  br label %656

656:                                              ; preds = %652, %637, %620, %613, %.lr.ph368
  %657 = getelementptr inbounds i8, ptr %605, i64 48
  %658 = call noundef zeroext i1 @_ZNKSt6vectorIP5voxelSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %657) #8
  br i1 %658, label %705, label %659

659:                                              ; preds = %656
  %660 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %657) #8
  %661 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %657) #8
  call void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS3_SaIS3_EEEE16metaballcomparerEvT_SA_T0_(ptr %660, ptr %661)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #8
  %662 = call ptr @_ZNSt6vectorIP5voxelSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %657) #8
  store ptr %662, ptr %39, align 8
  %663 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  %664 = load ptr, ptr %663, align 8, !tbaa !12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  %665 = load ptr, ptr %664, align 8, !tbaa !77
  %.not273 = icmp eq ptr %665, null
  br i1 %.not273, label %701, label %666

666:                                              ; preds = %659
  %667 = getelementptr inbounds i8, ptr %665, i64 20
  store i16 6, ptr %667, align 4, !tbaa !80
  %668 = call noundef ptr @_ZNK10medialBall11mastrSphereEv(ptr noundef nonnull align 8 dereferenceable(64) %665)
  %.not274 = icmp eq ptr %668, null
  %.not275 = icmp eq ptr %668, %665
  %or.cond299 = or i1 %.not274, %.not275
  br i1 %or.cond299, label %705, label %669

669:                                              ; preds = %666
  %670 = getelementptr inbounds i8, ptr %605, i64 4
  %671 = load i32, ptr %670, align 4, !tbaa !86
  %672 = getelementptr inbounds i8, ptr %668, i64 8
  %673 = load float, ptr %672, align 8, !tbaa !83
  %674 = fadd float %673, 1.000000e+00
  %675 = fptosi float %674 to i32
  %676 = getelementptr inbounds i8, ptr %668, i64 12
  %677 = load float, ptr %676, align 4, !tbaa !84
  %678 = fadd float %677, 1.000000e+00
  %679 = fptosi float %678 to i32
  %680 = getelementptr inbounds i8, ptr %668, i64 16
  %681 = load float, ptr %680, align 8, !tbaa !85
  %682 = fadd float %681, 1.000000e+00
  %683 = fptoui float %682 to i64
  %684 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %675, i32 noundef %679, i64 noundef %683)
  %685 = load i32, ptr %684, align 4, !tbaa !8
  %.not276 = icmp eq i32 %671, %685
  br i1 %.not276, label %705, label %686

686:                                              ; preds = %669
  %687 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.32)
  %688 = load float, ptr %672, align 8, !tbaa !83
  %689 = fadd float %688, 1.000000e+00
  %690 = fptosi float %689 to i32
  %691 = load float, ptr %676, align 4, !tbaa !84
  %692 = fadd float %691, 1.000000e+00
  %693 = fptosi float %692 to i32
  %694 = load float, ptr %680, align 8, !tbaa !85
  %695 = fadd float %694, 1.000000e+00
  %696 = fptoui float %695 to i64
  %697 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10voxelFieldIiEclEiim(ptr noundef nonnull align 8 dereferenceable(56) %46, i32 noundef %690, i32 noundef %693, i64 noundef %696)
  %698 = load i32, ptr %697, align 4, !tbaa !8
  %699 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %687, i32 noundef %698)
  %700 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %699, ptr noundef nonnull @.str.31)
  br label %705

701:                                              ; preds = %659
  %702 = call noalias noundef nonnull dereferenceable(64) ptr @_Znwm(i64 noundef 64) #9
  call void @_ZN10medialBallC2EP5voxels(ptr noundef nonnull align 8 dereferenceable(64) %702, ptr noundef nonnull %664, i16 noundef signext 16)
  store ptr %702, ptr %664, align 8, !tbaa !77
  call void @_ZNSt6vectorIP10medialBallSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %308, ptr noundef nonnull align 8 dereferenceable(8) %664)
  %703 = load ptr, ptr %1, align 8, !tbaa !12
  %704 = load ptr, ptr %664, align 8, !tbaa !77
  call void @_ZN13medialSurface10moveUphillEP10medialBall(ptr noundef nonnull align 8 dereferenceable(252) %703, ptr noundef %704)
  br label %705

705:                                              ; preds = %701, %686, %669, %666, %656
  %706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPP8throatNESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  %707 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP8throatNESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  br i1 %707, label %.lr.ph368, label %._crit_edge369

708:                                              ; preds = %563, %378, %239, %121
  %.pn293 = phi { ptr, i32 } [ %122, %121 ], [ %240, %239 ], [ %379, %378 ], [ %.pn.pn, %563 ]
  resume { ptr, i32 } %.pn293
}

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10voxelFieldIiE2nxEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10voxelFieldIiE2nzEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10voxelFieldIiE2nyEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIiiSt4lessIiESaISt4pairIKiiEEE6insertIS2_IiiEEENSt9enable_ifIXsr16is_constructibleIS4_T_EE5valueES2_ISt17_Rb_tree_iteratorIS4_EbEE4typeEOSA_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIiiEC2IRiS2_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS4_S5_EEEbE4typeELb1EEEOS4_OS5_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8throatNEC2Eiii(ptr noundef nonnull align 8 dereferenceable(96), i32 noundef, i32 noundef, i32 noundef) unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorIP5voxelSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPP5voxelSt6vectorIS3_SaIS3_EEEE16metaballcomparerEvT_SA_T0_(ptr, ptr) local_unnamed_addr #3

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

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

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

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

declare void @_ZN13medialSurface10moveUphillEP10medialBall(ptr noundef nonnull align 8 dereferenceable(252), ptr noundef) local_unnamed_addr #6

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nobuiltin allocsize(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 = { nobuiltin 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 #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress 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 #5 = { 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { builtin 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 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = distinct !{!7, !6}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!13, !13, i64 0}
!13 = !{!"any pointer", !10, i64 0}
!14 = !{!15, !9, i64 4}
!15 = !{!"_ZTSSt4pairIKiiE", !9, i64 0, !9, i64 4}
!16 = !{!17, !24, i64 72}
!17 = !{!"_ZTS8throatNE", !9, i64 0, !9, i64 4, !9, i64 8, !9, i64 12, !9, i64 16, !18, i64 20, !18, i64 22, !19, i64 24, !19, i64 48, !23, i64 72}
!18 = !{!"short", !10, i64 0}
!19 = !{!"_ZTSSt6vectorIP5voxelSaIS1_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIP5voxelSaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIP5voxelSaIS1_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIP5voxelSaIS1_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!23 = !{!"_ZTS4var3IdE", !24, i64 0, !24, i64 8, !24, i64 16}
!24 = !{!"double", !10, i64 0}
!25 = !{!26, !9, i64 8}
!26 = !{!"_ZTS12blockNetwork", !13, i64 0, !9, i64 8, !9, i64 12, !9, i64 16, !13, i64 24, !27, i64 32, !28, i64 224, !37, i64 336, !41, i64 360, !45, i64 384, !45, i64 408, !9, i64 432, !9, i64 436, !9, i64 440, !9, i64 444}
!27 = !{!"_ZTSSt5arrayI5voxelLm8EE", !10, i64 0}
!28 = !{!"_ZTS11voxelImageTIiE", !29, i64 0, !30, i64 8, !23, i64 64, !23, i64 88}
!29 = !{!"_ZTS15voxelImageTBase"}
!30 = !{!"_ZTS10voxelFieldIiE", !31, i64 8, !32, i64 16, !33, i64 32}
!31 = !{!"long long", !10, i64 0}
!32 = !{!"_ZTS4var3IiE", !9, i64 0, !9, i64 4, !9, i64 8}
!33 = !{!"_ZTSSt6vectorIiSaIiEE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!37 = !{!"_ZTSSt6vectorIP6poreNESaIS1_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseIP6poreNESaIS1_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIP6poreNESaIS1_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIP6poreNESaIS1_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!41 = !{!"_ZTSSt6vectorIP8throatNESaIS1_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIP8throatNESaIS1_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIP8throatNESaIS1_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIP8throatNESaIS1_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!45 = !{!"_ZTSSt6vectorIP10medialBallSaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseIP10medialBallSaIS1_EE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseIP10medialBallSaIS1_EE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIP10medialBallSaIS1_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!49 = !{!50, !9, i64 0}
!50 = !{!"_ZTS6poreNE", !9, i64 0, !9, i64 4, !51, i64 8, !13, i64 56}
!51 = !{!"_ZTSSt3mapIiiSt4lessIiESaISt4pairIKiiEEE", !52, i64 0}
!52 = !{!"_ZTSSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE", !53, i64 0}
!53 = !{!"_ZTSNSt8_Rb_treeIiSt4pairIKiiESt10_Select1stIS2_ESt4lessIiESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !54, i64 0, !56, i64 8}
!54 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIiEE", !55, i64 0}
!55 = !{!"_ZTSSt4lessIiE"}
!56 = !{!"_ZTSSt15_Rb_tree_header", !57, i64 0, !59, i64 32}
!57 = !{!"_ZTSSt18_Rb_tree_node_base", !58, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!58 = !{!"_ZTSSt14_Rb_tree_color", !10, i64 0}
!59 = !{!"long", !10, i64 0}
!60 = !{!50, !9, i64 4}
!61 = distinct !{!61, !6}
!62 = distinct !{!62, !6}
!63 = distinct !{!63, !6}
!64 = !{!17, !24, i64 80}
!65 = distinct !{!65, !6}
!66 = !{!26, !9, i64 432}
!67 = !{!26, !9, i64 436}
!68 = !{!26, !9, i64 440}
!69 = distinct !{!69, !6}
!70 = distinct !{!70, !6}
!71 = !{!17, !24, i64 88}
!72 = distinct !{!72, !6}
!73 = !{!24, !24, i64 0}
!74 = distinct !{!74, !6}
!75 = distinct !{!75, !6}
!76 = distinct !{!76, !6}
!77 = !{!78, !13, i64 0}
!78 = !{!"_ZTS5voxel", !13, i64 0, !18, i64 8, !18, i64 10, !18, i64 12, !79, i64 16}
!79 = !{!"float", !10, i64 0}
!80 = !{!81, !18, i64 20}
!81 = !{!"_ZTS10medialBall", !13, i64 0, !79, i64 8, !79, i64 12, !79, i64 16, !18, i64 20, !79, i64 24, !18, i64 28, !18, i64 30, !18, i64 32, !18, i64 34, !18, i64 36, !13, i64 40, !13, i64 48, !13, i64 56}
!82 = !{!17, !9, i64 8}
!83 = !{!81, !79, i64 8}
!84 = !{!81, !79, i64 12}
!85 = !{!81, !79, i64 16}
!86 = !{!17, !9, i64 4}


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