; LLVM IR from atlantis13579/Riemann :: Src/CollisionPrimitive (AxisAlignedBox3)

; 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.Maths::TVector3" = type { float, float, float }
%"class.Riemann::AxisAlignedBox3" = type { %"class.Maths::TVector3", %"class.Maths::TVector3" }

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

; 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 nounwind uwtable
declare dso_local void @_ZN5Maths8TVector3IfEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12), float noundef, float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind noalias writable sret(%"class.Maths::TVector3") align 4, ptr noundef nonnull align 4 dereferenceable(12)) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7Riemann15AxisAlignedBox37GetMeshERSt6vectorIN5Maths8TVector3IfEESaIS4_EERS1_ItSaItEES7_(ptr noundef nonnull align 4 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3) #3 align 2 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca [2 x %"class.Maths::TVector3"], align 16
  %10 = alloca %"class.Maths::TVector3", align 4
  %11 = alloca %"class.Maths::TVector3", align 4
  %12 = alloca %"class.Maths::TVector3", align 4
  %13 = alloca %"class.Maths::TVector3", align 4
  %14 = alloca %"class.Maths::TVector3", align 4
  %15 = alloca %"class.Maths::TVector3", align 4
  %16 = alloca %"class.Maths::TVector3", align 4
  %17 = alloca %"class.Maths::TVector3", align 4
  %18 = alloca %"class.Maths::TVector3", align 4
  %19 = alloca %"class.Maths::TVector3", align 4
  %20 = alloca %"class.Maths::TVector3", align 4
  %21 = alloca %"class.Maths::TVector3", align 4
  %22 = alloca %"class.Maths::TVector3", align 4
  %23 = alloca %"class.Maths::TVector3", align 4
  %24 = alloca %"class.Maths::TVector3", align 4
  %25 = alloca %"class.Maths::TVector3", align 4
  %26 = alloca %"class.Maths::TVector3", align 4
  %27 = alloca %"class.Maths::TVector3", align 4
  %28 = alloca %"class.Maths::TVector3", align 4
  %29 = alloca %"class.Maths::TVector3", align 4
  %30 = alloca %"class.Maths::TVector3", align 4
  %31 = alloca %"class.Maths::TVector3", align 4
  %32 = alloca %"class.Maths::TVector3", align 4
  %33 = alloca %"class.Maths::TVector3", align 4
  %34 = alloca %"class.Maths::TVector3", align 4
  %35 = alloca %"class.Maths::TVector3", align 4
  %36 = alloca %"class.Maths::TVector3", align 4
  %37 = alloca %"class.Maths::TVector3", align 4
  %38 = alloca %"class.Maths::TVector3", align 4
  %39 = alloca %"class.Maths::TVector3", align 4
  %40 = alloca %"class.Maths::TVector3", align 4
  %41 = alloca %"class.Maths::TVector3", align 4
  %42 = alloca %"class.Maths::TVector3", align 4
  %43 = alloca %"class.Maths::TVector3", align 4
  %44 = alloca %"class.Maths::TVector3", align 4
  %45 = alloca %"class.Maths::TVector3", align 4
  %46 = alloca %"class.Maths::TVector3", align 4
  %47 = alloca %"class.Maths::TVector3", align 4
  %48 = alloca %"class.Maths::TVector3", align 4
  %49 = alloca %"class.Maths::TVector3", align 4
  %50 = alloca %"class.Maths::TVector3", align 4
  %51 = alloca %"class.Maths::TVector3", align 4
  %52 = alloca %"class.Maths::TVector3", align 4
  %53 = alloca %"class.Maths::TVector3", align 4
  %54 = alloca %"class.Maths::TVector3", align 4
  %55 = alloca %"class.Maths::TVector3", align 4
  %56 = alloca %"class.Maths::TVector3", align 4
  %57 = alloca %"class.Maths::TVector3", align 4
  %58 = alloca %"class.Maths::TVector3", align 4
  %59 = alloca %"class.Maths::TVector3", align 4
  %60 = alloca %"class.Maths::TVector3", align 4
  %61 = alloca %"class.Maths::TVector3", align 4
  %62 = alloca %"class.Maths::TVector3", align 4
  %63 = alloca %"class.Maths::TVector3", align 4
  %64 = alloca %"class.Maths::TVector3", align 4
  %65 = alloca %"class.Maths::TVector3", align 4
  %66 = alloca %"class.Maths::TVector3", align 4
  %67 = alloca %"class.Maths::TVector3", align 4
  %68 = alloca %"class.Maths::TVector3", align 4
  %69 = alloca %"class.Maths::TVector3", align 4
  %70 = alloca %"class.Maths::TVector3", align 4
  %71 = alloca %"class.Maths::TVector3", align 4
  %72 = alloca %"class.Maths::TVector3", align 4
  %73 = alloca %"class.Maths::TVector3", align 4
  %74 = alloca %"class.Maths::TVector3", align 4
  %75 = alloca %"class.Maths::TVector3", align 4
  %76 = alloca %"class.Maths::TVector3", align 4
  %77 = alloca %"class.Maths::TVector3", align 4
  %78 = alloca %"class.Maths::TVector3", align 4
  %79 = alloca %"class.Maths::TVector3", align 4
  %80 = alloca %"class.Maths::TVector3", align 4
  %81 = alloca %"class.Maths::TVector3", align 4
  %82 = alloca %"class.Maths::TVector3", align 4
  %83 = alloca %"class.Maths::TVector3", align 4
  %84 = alloca %"class.Maths::TVector3", align 4
  %85 = alloca %"class.Maths::TVector3", align 4
  %86 = alloca %"class.Maths::TVector3", align 4
  %87 = alloca %"class.Maths::TVector3", align 4
  %88 = alloca %"class.Maths::TVector3", align 4
  %89 = alloca %"class.Maths::TVector3", align 4
  %90 = alloca %"class.Maths::TVector3", align 4
  %91 = alloca %"class.Maths::TVector3", align 4
  %92 = alloca %"class.Maths::TVector3", align 4
  %93 = alloca %"class.Maths::TVector3", align 4
  %94 = alloca %"class.Maths::TVector3", align 4
  %95 = alloca %"class.Maths::TVector3", align 4
  %96 = alloca %"class.Maths::TVector3", align 4
  %97 = alloca %"class.Maths::TVector3", align 4
  %98 = alloca %"class.Maths::TVector3", align 4
  %99 = alloca %"class.Maths::TVector3", align 4
  %100 = alloca %"class.Maths::TVector3", align 4
  %101 = alloca %"class.Maths::TVector3", align 4
  %102 = alloca %"class.Maths::TVector3", align 4
  %103 = alloca %"class.Maths::TVector3", align 4
  %104 = alloca %"class.Maths::TVector3", align 4
  %105 = alloca %"class.Maths::TVector3", align 4
  %106 = alloca %"class.Maths::TVector3", align 4
  %107 = alloca %"class.Maths::TVector3", align 4
  %108 = alloca %"class.Maths::TVector3", align 4
  %109 = alloca %"class.Maths::TVector3", align 4
  %110 = alloca %"class.Maths::TVector3", align 4
  %111 = alloca %"class.Maths::TVector3", align 4
  %112 = alloca %"class.Maths::TVector3", align 4
  %113 = alloca %"class.Maths::TVector3", align 4
  %114 = alloca %"class.Maths::TVector3", align 4
  %115 = alloca %"class.Maths::TVector3", align 4
  %116 = alloca %"class.Maths::TVector3", align 4
  %117 = alloca %"class.Maths::TVector3", align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %118 = load ptr, ptr %5, align 8
  %119 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %119, i64 noundef 36)
  %120 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZNSt6vectorItSaItEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %120, i64 noundef 36)
  %121 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %121, i64 noundef 36)
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #5
  %122 = getelementptr inbounds %"class.Riemann::AxisAlignedBox3", ptr %118, i32 0, i32 0
  call void @_ZN5Maths8TVector3IfEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %9, ptr noundef nonnull align 4 dereferenceable(12) %122)
  %123 = getelementptr inbounds %"class.Maths::TVector3", ptr %9, i64 1
  %124 = getelementptr inbounds %"class.Riemann::AxisAlignedBox3", ptr %118, i32 0, i32 1
  call void @_ZN5Maths8TVector3IfEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %123, ptr noundef nonnull align 4 dereferenceable(12) %124)
  call void @llvm.lifetime.start.p0(i64 12, ptr %10) #5
  %125 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %126 = getelementptr inbounds %"class.Maths::TVector3", ptr %125, i32 0, i32 0
  %127 = load float, ptr %126, align 16, !tbaa !9
  %128 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %129 = getelementptr inbounds %"class.Maths::TVector3", ptr %128, i32 0, i32 1
  %130 = load float, ptr %129, align 4, !tbaa !12
  %131 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %132 = getelementptr inbounds %"class.Maths::TVector3", ptr %131, i32 0, i32 2
  %133 = load float, ptr %132, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %10, float noundef %127, float noundef %130, float noundef %133)
  %134 = load ptr, ptr %6, align 8, !tbaa !5
  %135 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %134, i64 noundef 0) #5
  %136 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %135, ptr noundef nonnull align 4 dereferenceable(12) %10)
  call void @llvm.lifetime.end.p0(i64 12, ptr %10) #5
  %137 = load ptr, ptr %7, align 8, !tbaa !5
  %138 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %137, i64 noundef 0) #5
  store i16 0, ptr %138, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %12) #5
  br i1 true, label %139, label %140

139:                                              ; preds = %4
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %12)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %11, ptr noundef nonnull align 4 dereferenceable(12) %12)
  br label %141

140:                                              ; preds = %4
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %11)
  br label %141

141:                                              ; preds = %140, %139
  %142 = load ptr, ptr %8, align 8, !tbaa !5
  %143 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %142, i64 noundef 0) #5
  %144 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %143, ptr noundef nonnull align 4 dereferenceable(12) %11)
  call void @llvm.lifetime.end.p0(i64 12, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %13) #5
  %145 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %146 = getelementptr inbounds %"class.Maths::TVector3", ptr %145, i32 0, i32 0
  %147 = load float, ptr %146, align 16, !tbaa !9
  %148 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %149 = getelementptr inbounds %"class.Maths::TVector3", ptr %148, i32 0, i32 1
  %150 = load float, ptr %149, align 4, !tbaa !12
  %151 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %152 = getelementptr inbounds %"class.Maths::TVector3", ptr %151, i32 0, i32 2
  %153 = load float, ptr %152, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %13, float noundef %147, float noundef %150, float noundef %153)
  %154 = load ptr, ptr %6, align 8, !tbaa !5
  %155 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %154, i64 noundef 12) #5
  %156 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %155, ptr noundef nonnull align 4 dereferenceable(12) %13)
  call void @llvm.lifetime.end.p0(i64 12, ptr %13) #5
  %157 = load ptr, ptr %7, align 8, !tbaa !5
  %158 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %157, i64 noundef 12) #5
  store i16 12, ptr %158, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %15) #5
  br i1 true, label %159, label %160

159:                                              ; preds = %141
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %15)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %14, ptr noundef nonnull align 4 dereferenceable(12) %15)
  br label %161

160:                                              ; preds = %141
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %14)
  br label %161

161:                                              ; preds = %160, %159
  %162 = load ptr, ptr %8, align 8, !tbaa !5
  %163 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef 12) #5
  %164 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %163, ptr noundef nonnull align 4 dereferenceable(12) %14)
  call void @llvm.lifetime.end.p0(i64 12, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %16) #5
  %165 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %166 = getelementptr inbounds %"class.Maths::TVector3", ptr %165, i32 0, i32 0
  %167 = load float, ptr %166, align 16, !tbaa !9
  %168 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %169 = getelementptr inbounds %"class.Maths::TVector3", ptr %168, i32 0, i32 1
  %170 = load float, ptr %169, align 4, !tbaa !12
  %171 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %172 = getelementptr inbounds %"class.Maths::TVector3", ptr %171, i32 0, i32 2
  %173 = load float, ptr %172, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %16, float noundef %167, float noundef %170, float noundef %173)
  %174 = load ptr, ptr %6, align 8, !tbaa !5
  %175 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %174, i64 noundef 24) #5
  %176 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %175, ptr noundef nonnull align 4 dereferenceable(12) %16)
  call void @llvm.lifetime.end.p0(i64 12, ptr %16) #5
  %177 = load ptr, ptr %7, align 8, !tbaa !5
  %178 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %177, i64 noundef 24) #5
  store i16 24, ptr %178, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %18) #5
  br i1 true, label %179, label %180

179:                                              ; preds = %161
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %18)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %17, ptr noundef nonnull align 4 dereferenceable(12) %18)
  br label %181

180:                                              ; preds = %161
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %17)
  br label %181

181:                                              ; preds = %180, %179
  %182 = load ptr, ptr %8, align 8, !tbaa !5
  %183 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef 24) #5
  %184 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %183, ptr noundef nonnull align 4 dereferenceable(12) %17)
  call void @llvm.lifetime.end.p0(i64 12, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %19) #5
  %185 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %186 = getelementptr inbounds %"class.Maths::TVector3", ptr %185, i32 0, i32 0
  %187 = load float, ptr %186, align 4, !tbaa !9
  %188 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %189 = getelementptr inbounds %"class.Maths::TVector3", ptr %188, i32 0, i32 1
  %190 = load float, ptr %189, align 4, !tbaa !12
  %191 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %192 = getelementptr inbounds %"class.Maths::TVector3", ptr %191, i32 0, i32 2
  %193 = load float, ptr %192, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %19, float noundef %187, float noundef %190, float noundef %193)
  %194 = load ptr, ptr %6, align 8, !tbaa !5
  %195 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %194, i64 noundef 1) #5
  %196 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %195, ptr noundef nonnull align 4 dereferenceable(12) %19)
  call void @llvm.lifetime.end.p0(i64 12, ptr %19) #5
  %197 = load ptr, ptr %7, align 8, !tbaa !5
  %198 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %197, i64 noundef 1) #5
  store i16 1, ptr %198, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %21) #5
  br i1 true, label %199, label %200

199:                                              ; preds = %181
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %21)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %20, ptr noundef nonnull align 4 dereferenceable(12) %21)
  br label %201

200:                                              ; preds = %181
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %20)
  br label %201

201:                                              ; preds = %200, %199
  %202 = load ptr, ptr %8, align 8, !tbaa !5
  %203 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %202, i64 noundef 1) #5
  %204 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %203, ptr noundef nonnull align 4 dereferenceable(12) %20)
  call void @llvm.lifetime.end.p0(i64 12, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %22) #5
  %205 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %206 = getelementptr inbounds %"class.Maths::TVector3", ptr %205, i32 0, i32 0
  %207 = load float, ptr %206, align 16, !tbaa !9
  %208 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %209 = getelementptr inbounds %"class.Maths::TVector3", ptr %208, i32 0, i32 1
  %210 = load float, ptr %209, align 4, !tbaa !12
  %211 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %212 = getelementptr inbounds %"class.Maths::TVector3", ptr %211, i32 0, i32 2
  %213 = load float, ptr %212, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %22, float noundef %207, float noundef %210, float noundef %213)
  %214 = load ptr, ptr %6, align 8, !tbaa !5
  %215 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %214, i64 noundef 13) #5
  %216 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %215, ptr noundef nonnull align 4 dereferenceable(12) %22)
  call void @llvm.lifetime.end.p0(i64 12, ptr %22) #5
  %217 = load ptr, ptr %7, align 8, !tbaa !5
  %218 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef 13) #5
  store i16 13, ptr %218, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %24) #5
  br i1 true, label %219, label %220

219:                                              ; preds = %201
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %24)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %23, ptr noundef nonnull align 4 dereferenceable(12) %24)
  br label %221

220:                                              ; preds = %201
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %23)
  br label %221

221:                                              ; preds = %220, %219
  %222 = load ptr, ptr %8, align 8, !tbaa !5
  %223 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %222, i64 noundef 13) #5
  %224 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %223, ptr noundef nonnull align 4 dereferenceable(12) %23)
  call void @llvm.lifetime.end.p0(i64 12, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %25) #5
  %225 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %226 = getelementptr inbounds %"class.Maths::TVector3", ptr %225, i32 0, i32 0
  %227 = load float, ptr %226, align 16, !tbaa !9
  %228 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %229 = getelementptr inbounds %"class.Maths::TVector3", ptr %228, i32 0, i32 1
  %230 = load float, ptr %229, align 4, !tbaa !12
  %231 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %232 = getelementptr inbounds %"class.Maths::TVector3", ptr %231, i32 0, i32 2
  %233 = load float, ptr %232, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %25, float noundef %227, float noundef %230, float noundef %233)
  %234 = load ptr, ptr %6, align 8, !tbaa !5
  %235 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %234, i64 noundef 25) #5
  %236 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %235, ptr noundef nonnull align 4 dereferenceable(12) %25)
  call void @llvm.lifetime.end.p0(i64 12, ptr %25) #5
  %237 = load ptr, ptr %7, align 8, !tbaa !5
  %238 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %237, i64 noundef 25) #5
  store i16 25, ptr %238, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %27) #5
  br i1 true, label %239, label %240

239:                                              ; preds = %221
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %27)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %26, ptr noundef nonnull align 4 dereferenceable(12) %27)
  br label %241

240:                                              ; preds = %221
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %26)
  br label %241

241:                                              ; preds = %240, %239
  %242 = load ptr, ptr %8, align 8, !tbaa !5
  %243 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %242, i64 noundef 25) #5
  %244 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %243, ptr noundef nonnull align 4 dereferenceable(12) %26)
  call void @llvm.lifetime.end.p0(i64 12, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %28) #5
  %245 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %246 = getelementptr inbounds %"class.Maths::TVector3", ptr %245, i32 0, i32 0
  %247 = load float, ptr %246, align 16, !tbaa !9
  %248 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %249 = getelementptr inbounds %"class.Maths::TVector3", ptr %248, i32 0, i32 1
  %250 = load float, ptr %249, align 4, !tbaa !12
  %251 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %252 = getelementptr inbounds %"class.Maths::TVector3", ptr %251, i32 0, i32 2
  %253 = load float, ptr %252, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %28, float noundef %247, float noundef %250, float noundef %253)
  %254 = load ptr, ptr %6, align 8, !tbaa !5
  %255 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %254, i64 noundef 2) #5
  %256 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %255, ptr noundef nonnull align 4 dereferenceable(12) %28)
  call void @llvm.lifetime.end.p0(i64 12, ptr %28) #5
  %257 = load ptr, ptr %7, align 8, !tbaa !5
  %258 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %257, i64 noundef 2) #5
  store i16 2, ptr %258, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %30) #5
  br i1 true, label %259, label %260

259:                                              ; preds = %241
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %30)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %29, ptr noundef nonnull align 4 dereferenceable(12) %30)
  br label %261

260:                                              ; preds = %241
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %29)
  br label %261

261:                                              ; preds = %260, %259
  %262 = load ptr, ptr %8, align 8, !tbaa !5
  %263 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %262, i64 noundef 2) #5
  %264 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %263, ptr noundef nonnull align 4 dereferenceable(12) %29)
  call void @llvm.lifetime.end.p0(i64 12, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %31) #5
  %265 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %266 = getelementptr inbounds %"class.Maths::TVector3", ptr %265, i32 0, i32 0
  %267 = load float, ptr %266, align 4, !tbaa !9
  %268 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %269 = getelementptr inbounds %"class.Maths::TVector3", ptr %268, i32 0, i32 1
  %270 = load float, ptr %269, align 4, !tbaa !12
  %271 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %272 = getelementptr inbounds %"class.Maths::TVector3", ptr %271, i32 0, i32 2
  %273 = load float, ptr %272, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %31, float noundef %267, float noundef %270, float noundef %273)
  %274 = load ptr, ptr %6, align 8, !tbaa !5
  %275 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %274, i64 noundef 14) #5
  %276 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %275, ptr noundef nonnull align 4 dereferenceable(12) %31)
  call void @llvm.lifetime.end.p0(i64 12, ptr %31) #5
  %277 = load ptr, ptr %7, align 8, !tbaa !5
  %278 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %277, i64 noundef 14) #5
  store i16 14, ptr %278, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %33) #5
  br i1 true, label %279, label %280

279:                                              ; preds = %261
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %33)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %32, ptr noundef nonnull align 4 dereferenceable(12) %33)
  br label %281

280:                                              ; preds = %261
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %32)
  br label %281

281:                                              ; preds = %280, %279
  %282 = load ptr, ptr %8, align 8, !tbaa !5
  %283 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %282, i64 noundef 14) #5
  %284 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %283, ptr noundef nonnull align 4 dereferenceable(12) %32)
  call void @llvm.lifetime.end.p0(i64 12, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %34) #5
  %285 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %286 = getelementptr inbounds %"class.Maths::TVector3", ptr %285, i32 0, i32 0
  %287 = load float, ptr %286, align 16, !tbaa !9
  %288 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %289 = getelementptr inbounds %"class.Maths::TVector3", ptr %288, i32 0, i32 1
  %290 = load float, ptr %289, align 4, !tbaa !12
  %291 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %292 = getelementptr inbounds %"class.Maths::TVector3", ptr %291, i32 0, i32 2
  %293 = load float, ptr %292, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %34, float noundef %287, float noundef %290, float noundef %293)
  %294 = load ptr, ptr %6, align 8, !tbaa !5
  %295 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %294, i64 noundef 26) #5
  %296 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %295, ptr noundef nonnull align 4 dereferenceable(12) %34)
  call void @llvm.lifetime.end.p0(i64 12, ptr %34) #5
  %297 = load ptr, ptr %7, align 8, !tbaa !5
  %298 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %297, i64 noundef 26) #5
  store i16 26, ptr %298, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %36) #5
  br i1 true, label %299, label %300

299:                                              ; preds = %281
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %36)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %35, ptr noundef nonnull align 4 dereferenceable(12) %36)
  br label %301

300:                                              ; preds = %281
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %35)
  br label %301

301:                                              ; preds = %300, %299
  %302 = load ptr, ptr %8, align 8, !tbaa !5
  %303 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %302, i64 noundef 26) #5
  %304 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %303, ptr noundef nonnull align 4 dereferenceable(12) %35)
  call void @llvm.lifetime.end.p0(i64 12, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %37) #5
  %305 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %306 = getelementptr inbounds %"class.Maths::TVector3", ptr %305, i32 0, i32 0
  %307 = load float, ptr %306, align 4, !tbaa !9
  %308 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %309 = getelementptr inbounds %"class.Maths::TVector3", ptr %308, i32 0, i32 1
  %310 = load float, ptr %309, align 4, !tbaa !12
  %311 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %312 = getelementptr inbounds %"class.Maths::TVector3", ptr %311, i32 0, i32 2
  %313 = load float, ptr %312, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %37, float noundef %307, float noundef %310, float noundef %313)
  %314 = load ptr, ptr %6, align 8, !tbaa !5
  %315 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %314, i64 noundef 3) #5
  %316 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %315, ptr noundef nonnull align 4 dereferenceable(12) %37)
  call void @llvm.lifetime.end.p0(i64 12, ptr %37) #5
  %317 = load ptr, ptr %7, align 8, !tbaa !5
  %318 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %317, i64 noundef 3) #5
  store i16 3, ptr %318, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %39) #5
  br i1 true, label %319, label %320

319:                                              ; preds = %301
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %39)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %38, ptr noundef nonnull align 4 dereferenceable(12) %39)
  br label %321

320:                                              ; preds = %301
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %38)
  br label %321

321:                                              ; preds = %320, %319
  %322 = load ptr, ptr %8, align 8, !tbaa !5
  %323 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %322, i64 noundef 3) #5
  %324 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %323, ptr noundef nonnull align 4 dereferenceable(12) %38)
  call void @llvm.lifetime.end.p0(i64 12, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %40) #5
  %325 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %326 = getelementptr inbounds %"class.Maths::TVector3", ptr %325, i32 0, i32 0
  %327 = load float, ptr %326, align 16, !tbaa !9
  %328 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %329 = getelementptr inbounds %"class.Maths::TVector3", ptr %328, i32 0, i32 1
  %330 = load float, ptr %329, align 4, !tbaa !12
  %331 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %332 = getelementptr inbounds %"class.Maths::TVector3", ptr %331, i32 0, i32 2
  %333 = load float, ptr %332, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %40, float noundef %327, float noundef %330, float noundef %333)
  %334 = load ptr, ptr %6, align 8, !tbaa !5
  %335 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %334, i64 noundef 15) #5
  %336 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %335, ptr noundef nonnull align 4 dereferenceable(12) %40)
  call void @llvm.lifetime.end.p0(i64 12, ptr %40) #5
  %337 = load ptr, ptr %7, align 8, !tbaa !5
  %338 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %337, i64 noundef 15) #5
  store i16 15, ptr %338, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %42) #5
  br i1 true, label %339, label %340

339:                                              ; preds = %321
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %42)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %41, ptr noundef nonnull align 4 dereferenceable(12) %42)
  br label %341

340:                                              ; preds = %321
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %41)
  br label %341

341:                                              ; preds = %340, %339
  %342 = load ptr, ptr %8, align 8, !tbaa !5
  %343 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %342, i64 noundef 15) #5
  %344 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %343, ptr noundef nonnull align 4 dereferenceable(12) %41)
  call void @llvm.lifetime.end.p0(i64 12, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %43) #5
  %345 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %346 = getelementptr inbounds %"class.Maths::TVector3", ptr %345, i32 0, i32 0
  %347 = load float, ptr %346, align 16, !tbaa !9
  %348 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %349 = getelementptr inbounds %"class.Maths::TVector3", ptr %348, i32 0, i32 1
  %350 = load float, ptr %349, align 4, !tbaa !12
  %351 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %352 = getelementptr inbounds %"class.Maths::TVector3", ptr %351, i32 0, i32 2
  %353 = load float, ptr %352, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %43, float noundef %347, float noundef %350, float noundef %353)
  %354 = load ptr, ptr %6, align 8, !tbaa !5
  %355 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %354, i64 noundef 27) #5
  %356 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %355, ptr noundef nonnull align 4 dereferenceable(12) %43)
  call void @llvm.lifetime.end.p0(i64 12, ptr %43) #5
  %357 = load ptr, ptr %7, align 8, !tbaa !5
  %358 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %357, i64 noundef 27) #5
  store i16 27, ptr %358, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %45) #5
  br i1 true, label %359, label %360

359:                                              ; preds = %341
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %45)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %44, ptr noundef nonnull align 4 dereferenceable(12) %45)
  br label %361

360:                                              ; preds = %341
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %44)
  br label %361

361:                                              ; preds = %360, %359
  %362 = load ptr, ptr %8, align 8, !tbaa !5
  %363 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %362, i64 noundef 27) #5
  %364 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %363, ptr noundef nonnull align 4 dereferenceable(12) %44)
  call void @llvm.lifetime.end.p0(i64 12, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %46) #5
  %365 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %366 = getelementptr inbounds %"class.Maths::TVector3", ptr %365, i32 0, i32 0
  %367 = load float, ptr %366, align 16, !tbaa !9
  %368 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %369 = getelementptr inbounds %"class.Maths::TVector3", ptr %368, i32 0, i32 1
  %370 = load float, ptr %369, align 4, !tbaa !12
  %371 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %372 = getelementptr inbounds %"class.Maths::TVector3", ptr %371, i32 0, i32 2
  %373 = load float, ptr %372, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %46, float noundef %367, float noundef %370, float noundef %373)
  %374 = load ptr, ptr %6, align 8, !tbaa !5
  %375 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %374, i64 noundef 4) #5
  %376 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %375, ptr noundef nonnull align 4 dereferenceable(12) %46)
  call void @llvm.lifetime.end.p0(i64 12, ptr %46) #5
  %377 = load ptr, ptr %7, align 8, !tbaa !5
  %378 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %377, i64 noundef 4) #5
  store i16 4, ptr %378, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %48) #5
  br i1 true, label %379, label %380

379:                                              ; preds = %361
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %48)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %47, ptr noundef nonnull align 4 dereferenceable(12) %48)
  br label %381

380:                                              ; preds = %361
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %47)
  br label %381

381:                                              ; preds = %380, %379
  %382 = load ptr, ptr %8, align 8, !tbaa !5
  %383 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %382, i64 noundef 4) #5
  %384 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %383, ptr noundef nonnull align 4 dereferenceable(12) %47)
  call void @llvm.lifetime.end.p0(i64 12, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %49) #5
  %385 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %386 = getelementptr inbounds %"class.Maths::TVector3", ptr %385, i32 0, i32 0
  %387 = load float, ptr %386, align 4, !tbaa !9
  %388 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %389 = getelementptr inbounds %"class.Maths::TVector3", ptr %388, i32 0, i32 1
  %390 = load float, ptr %389, align 4, !tbaa !12
  %391 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %392 = getelementptr inbounds %"class.Maths::TVector3", ptr %391, i32 0, i32 2
  %393 = load float, ptr %392, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %49, float noundef %387, float noundef %390, float noundef %393)
  %394 = load ptr, ptr %6, align 8, !tbaa !5
  %395 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %394, i64 noundef 16) #5
  %396 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %395, ptr noundef nonnull align 4 dereferenceable(12) %49)
  call void @llvm.lifetime.end.p0(i64 12, ptr %49) #5
  %397 = load ptr, ptr %7, align 8, !tbaa !5
  %398 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %397, i64 noundef 16) #5
  store i16 16, ptr %398, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %51) #5
  br i1 true, label %399, label %400

399:                                              ; preds = %381
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %51)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %50, ptr noundef nonnull align 4 dereferenceable(12) %51)
  br label %401

400:                                              ; preds = %381
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %50)
  br label %401

401:                                              ; preds = %400, %399
  %402 = load ptr, ptr %8, align 8, !tbaa !5
  %403 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %402, i64 noundef 16) #5
  %404 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %403, ptr noundef nonnull align 4 dereferenceable(12) %50)
  call void @llvm.lifetime.end.p0(i64 12, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %52) #5
  %405 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %406 = getelementptr inbounds %"class.Maths::TVector3", ptr %405, i32 0, i32 0
  %407 = load float, ptr %406, align 16, !tbaa !9
  %408 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %409 = getelementptr inbounds %"class.Maths::TVector3", ptr %408, i32 0, i32 1
  %410 = load float, ptr %409, align 4, !tbaa !12
  %411 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %412 = getelementptr inbounds %"class.Maths::TVector3", ptr %411, i32 0, i32 2
  %413 = load float, ptr %412, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %52, float noundef %407, float noundef %410, float noundef %413)
  %414 = load ptr, ptr %6, align 8, !tbaa !5
  %415 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %414, i64 noundef 28) #5
  %416 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %415, ptr noundef nonnull align 4 dereferenceable(12) %52)
  call void @llvm.lifetime.end.p0(i64 12, ptr %52) #5
  %417 = load ptr, ptr %7, align 8, !tbaa !5
  %418 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %417, i64 noundef 28) #5
  store i16 28, ptr %418, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %54) #5
  br i1 true, label %419, label %420

419:                                              ; preds = %401
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %54)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %53, ptr noundef nonnull align 4 dereferenceable(12) %54)
  br label %421

420:                                              ; preds = %401
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %53)
  br label %421

421:                                              ; preds = %420, %419
  %422 = load ptr, ptr %8, align 8, !tbaa !5
  %423 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %422, i64 noundef 28) #5
  %424 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %423, ptr noundef nonnull align 4 dereferenceable(12) %53)
  call void @llvm.lifetime.end.p0(i64 12, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %55) #5
  %425 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %426 = getelementptr inbounds %"class.Maths::TVector3", ptr %425, i32 0, i32 0
  %427 = load float, ptr %426, align 4, !tbaa !9
  %428 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %429 = getelementptr inbounds %"class.Maths::TVector3", ptr %428, i32 0, i32 1
  %430 = load float, ptr %429, align 4, !tbaa !12
  %431 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %432 = getelementptr inbounds %"class.Maths::TVector3", ptr %431, i32 0, i32 2
  %433 = load float, ptr %432, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %55, float noundef %427, float noundef %430, float noundef %433)
  %434 = load ptr, ptr %6, align 8, !tbaa !5
  %435 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %434, i64 noundef 5) #5
  %436 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %435, ptr noundef nonnull align 4 dereferenceable(12) %55)
  call void @llvm.lifetime.end.p0(i64 12, ptr %55) #5
  %437 = load ptr, ptr %7, align 8, !tbaa !5
  %438 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %437, i64 noundef 5) #5
  store i16 5, ptr %438, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %57) #5
  br i1 true, label %439, label %440

439:                                              ; preds = %421
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %57)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %56, ptr noundef nonnull align 4 dereferenceable(12) %57)
  br label %441

440:                                              ; preds = %421
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %56)
  br label %441

441:                                              ; preds = %440, %439
  %442 = load ptr, ptr %8, align 8, !tbaa !5
  %443 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %442, i64 noundef 5) #5
  %444 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %443, ptr noundef nonnull align 4 dereferenceable(12) %56)
  call void @llvm.lifetime.end.p0(i64 12, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %58) #5
  %445 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %446 = getelementptr inbounds %"class.Maths::TVector3", ptr %445, i32 0, i32 0
  %447 = load float, ptr %446, align 4, !tbaa !9
  %448 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %449 = getelementptr inbounds %"class.Maths::TVector3", ptr %448, i32 0, i32 1
  %450 = load float, ptr %449, align 4, !tbaa !12
  %451 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %452 = getelementptr inbounds %"class.Maths::TVector3", ptr %451, i32 0, i32 2
  %453 = load float, ptr %452, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %58, float noundef %447, float noundef %450, float noundef %453)
  %454 = load ptr, ptr %6, align 8, !tbaa !5
  %455 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %454, i64 noundef 17) #5
  %456 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %455, ptr noundef nonnull align 4 dereferenceable(12) %58)
  call void @llvm.lifetime.end.p0(i64 12, ptr %58) #5
  %457 = load ptr, ptr %7, align 8, !tbaa !5
  %458 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %457, i64 noundef 17) #5
  store i16 17, ptr %458, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %60) #5
  br i1 true, label %459, label %460

459:                                              ; preds = %441
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %60)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %59, ptr noundef nonnull align 4 dereferenceable(12) %60)
  br label %461

460:                                              ; preds = %441
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %59)
  br label %461

461:                                              ; preds = %460, %459
  %462 = load ptr, ptr %8, align 8, !tbaa !5
  %463 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %462, i64 noundef 17) #5
  %464 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %463, ptr noundef nonnull align 4 dereferenceable(12) %59)
  call void @llvm.lifetime.end.p0(i64 12, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %61) #5
  %465 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %466 = getelementptr inbounds %"class.Maths::TVector3", ptr %465, i32 0, i32 0
  %467 = load float, ptr %466, align 16, !tbaa !9
  %468 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %469 = getelementptr inbounds %"class.Maths::TVector3", ptr %468, i32 0, i32 1
  %470 = load float, ptr %469, align 4, !tbaa !12
  %471 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %472 = getelementptr inbounds %"class.Maths::TVector3", ptr %471, i32 0, i32 2
  %473 = load float, ptr %472, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %61, float noundef %467, float noundef %470, float noundef %473)
  %474 = load ptr, ptr %6, align 8, !tbaa !5
  %475 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %474, i64 noundef 29) #5
  %476 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %475, ptr noundef nonnull align 4 dereferenceable(12) %61)
  call void @llvm.lifetime.end.p0(i64 12, ptr %61) #5
  %477 = load ptr, ptr %7, align 8, !tbaa !5
  %478 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %477, i64 noundef 29) #5
  store i16 29, ptr %478, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %63) #5
  br i1 true, label %479, label %480

479:                                              ; preds = %461
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %63)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %62, ptr noundef nonnull align 4 dereferenceable(12) %63)
  br label %481

480:                                              ; preds = %461
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %62)
  br label %481

481:                                              ; preds = %480, %479
  %482 = load ptr, ptr %8, align 8, !tbaa !5
  %483 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %482, i64 noundef 29) #5
  %484 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %483, ptr noundef nonnull align 4 dereferenceable(12) %62)
  call void @llvm.lifetime.end.p0(i64 12, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %64) #5
  %485 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %486 = getelementptr inbounds %"class.Maths::TVector3", ptr %485, i32 0, i32 0
  %487 = load float, ptr %486, align 16, !tbaa !9
  %488 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %489 = getelementptr inbounds %"class.Maths::TVector3", ptr %488, i32 0, i32 1
  %490 = load float, ptr %489, align 4, !tbaa !12
  %491 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %492 = getelementptr inbounds %"class.Maths::TVector3", ptr %491, i32 0, i32 2
  %493 = load float, ptr %492, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %64, float noundef %487, float noundef %490, float noundef %493)
  %494 = load ptr, ptr %6, align 8, !tbaa !5
  %495 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %494, i64 noundef 6) #5
  %496 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %495, ptr noundef nonnull align 4 dereferenceable(12) %64)
  call void @llvm.lifetime.end.p0(i64 12, ptr %64) #5
  %497 = load ptr, ptr %7, align 8, !tbaa !5
  %498 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %497, i64 noundef 6) #5
  store i16 6, ptr %498, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %66) #5
  br i1 false, label %499, label %500

499:                                              ; preds = %481
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %66)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %65, ptr noundef nonnull align 4 dereferenceable(12) %66)
  br label %501

500:                                              ; preds = %481
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %65)
  br label %501

501:                                              ; preds = %500, %499
  %502 = load ptr, ptr %8, align 8, !tbaa !5
  %503 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %502, i64 noundef 6) #5
  %504 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %503, ptr noundef nonnull align 4 dereferenceable(12) %65)
  call void @llvm.lifetime.end.p0(i64 12, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %67) #5
  %505 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %506 = getelementptr inbounds %"class.Maths::TVector3", ptr %505, i32 0, i32 0
  %507 = load float, ptr %506, align 16, !tbaa !9
  %508 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %509 = getelementptr inbounds %"class.Maths::TVector3", ptr %508, i32 0, i32 1
  %510 = load float, ptr %509, align 4, !tbaa !12
  %511 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %512 = getelementptr inbounds %"class.Maths::TVector3", ptr %511, i32 0, i32 2
  %513 = load float, ptr %512, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %67, float noundef %507, float noundef %510, float noundef %513)
  %514 = load ptr, ptr %6, align 8, !tbaa !5
  %515 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %514, i64 noundef 18) #5
  %516 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %515, ptr noundef nonnull align 4 dereferenceable(12) %67)
  call void @llvm.lifetime.end.p0(i64 12, ptr %67) #5
  %517 = load ptr, ptr %7, align 8, !tbaa !5
  %518 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %517, i64 noundef 18) #5
  store i16 18, ptr %518, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %69) #5
  br i1 false, label %519, label %520

519:                                              ; preds = %501
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %69)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %68, ptr noundef nonnull align 4 dereferenceable(12) %69)
  br label %521

520:                                              ; preds = %501
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %68)
  br label %521

521:                                              ; preds = %520, %519
  %522 = load ptr, ptr %8, align 8, !tbaa !5
  %523 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %522, i64 noundef 18) #5
  %524 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %523, ptr noundef nonnull align 4 dereferenceable(12) %68)
  call void @llvm.lifetime.end.p0(i64 12, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %70) #5
  %525 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %526 = getelementptr inbounds %"class.Maths::TVector3", ptr %525, i32 0, i32 0
  %527 = load float, ptr %526, align 4, !tbaa !9
  %528 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %529 = getelementptr inbounds %"class.Maths::TVector3", ptr %528, i32 0, i32 1
  %530 = load float, ptr %529, align 4, !tbaa !12
  %531 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %532 = getelementptr inbounds %"class.Maths::TVector3", ptr %531, i32 0, i32 2
  %533 = load float, ptr %532, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %70, float noundef %527, float noundef %530, float noundef %533)
  %534 = load ptr, ptr %6, align 8, !tbaa !5
  %535 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %534, i64 noundef 30) #5
  %536 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %535, ptr noundef nonnull align 4 dereferenceable(12) %70)
  call void @llvm.lifetime.end.p0(i64 12, ptr %70) #5
  %537 = load ptr, ptr %7, align 8, !tbaa !5
  %538 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %537, i64 noundef 30) #5
  store i16 30, ptr %538, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %72) #5
  br i1 false, label %539, label %540

539:                                              ; preds = %521
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %72)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %71, ptr noundef nonnull align 4 dereferenceable(12) %72)
  br label %541

540:                                              ; preds = %521
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %71)
  br label %541

541:                                              ; preds = %540, %539
  %542 = load ptr, ptr %8, align 8, !tbaa !5
  %543 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %542, i64 noundef 30) #5
  %544 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %543, ptr noundef nonnull align 4 dereferenceable(12) %71)
  call void @llvm.lifetime.end.p0(i64 12, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %73) #5
  %545 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %546 = getelementptr inbounds %"class.Maths::TVector3", ptr %545, i32 0, i32 0
  %547 = load float, ptr %546, align 4, !tbaa !9
  %548 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %549 = getelementptr inbounds %"class.Maths::TVector3", ptr %548, i32 0, i32 1
  %550 = load float, ptr %549, align 4, !tbaa !12
  %551 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %552 = getelementptr inbounds %"class.Maths::TVector3", ptr %551, i32 0, i32 2
  %553 = load float, ptr %552, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %73, float noundef %547, float noundef %550, float noundef %553)
  %554 = load ptr, ptr %6, align 8, !tbaa !5
  %555 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %554, i64 noundef 7) #5
  %556 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %555, ptr noundef nonnull align 4 dereferenceable(12) %73)
  call void @llvm.lifetime.end.p0(i64 12, ptr %73) #5
  %557 = load ptr, ptr %7, align 8, !tbaa !5
  %558 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %557, i64 noundef 7) #5
  store i16 7, ptr %558, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %75) #5
  br i1 false, label %559, label %560

559:                                              ; preds = %541
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %75)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %74, ptr noundef nonnull align 4 dereferenceable(12) %75)
  br label %561

560:                                              ; preds = %541
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %74)
  br label %561

561:                                              ; preds = %560, %559
  %562 = load ptr, ptr %8, align 8, !tbaa !5
  %563 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %562, i64 noundef 7) #5
  %564 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %563, ptr noundef nonnull align 4 dereferenceable(12) %74)
  call void @llvm.lifetime.end.p0(i64 12, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %76) #5
  %565 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %566 = getelementptr inbounds %"class.Maths::TVector3", ptr %565, i32 0, i32 0
  %567 = load float, ptr %566, align 16, !tbaa !9
  %568 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %569 = getelementptr inbounds %"class.Maths::TVector3", ptr %568, i32 0, i32 1
  %570 = load float, ptr %569, align 4, !tbaa !12
  %571 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %572 = getelementptr inbounds %"class.Maths::TVector3", ptr %571, i32 0, i32 2
  %573 = load float, ptr %572, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %76, float noundef %567, float noundef %570, float noundef %573)
  %574 = load ptr, ptr %6, align 8, !tbaa !5
  %575 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %574, i64 noundef 19) #5
  %576 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %575, ptr noundef nonnull align 4 dereferenceable(12) %76)
  call void @llvm.lifetime.end.p0(i64 12, ptr %76) #5
  %577 = load ptr, ptr %7, align 8, !tbaa !5
  %578 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %577, i64 noundef 19) #5
  store i16 19, ptr %578, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %78) #5
  br i1 false, label %579, label %580

579:                                              ; preds = %561
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %78)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %77, ptr noundef nonnull align 4 dereferenceable(12) %78)
  br label %581

580:                                              ; preds = %561
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %77)
  br label %581

581:                                              ; preds = %580, %579
  %582 = load ptr, ptr %8, align 8, !tbaa !5
  %583 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %582, i64 noundef 19) #5
  %584 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %583, ptr noundef nonnull align 4 dereferenceable(12) %77)
  call void @llvm.lifetime.end.p0(i64 12, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %79) #5
  %585 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %586 = getelementptr inbounds %"class.Maths::TVector3", ptr %585, i32 0, i32 0
  %587 = load float, ptr %586, align 4, !tbaa !9
  %588 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %589 = getelementptr inbounds %"class.Maths::TVector3", ptr %588, i32 0, i32 1
  %590 = load float, ptr %589, align 4, !tbaa !12
  %591 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %592 = getelementptr inbounds %"class.Maths::TVector3", ptr %591, i32 0, i32 2
  %593 = load float, ptr %592, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %79, float noundef %587, float noundef %590, float noundef %593)
  %594 = load ptr, ptr %6, align 8, !tbaa !5
  %595 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %594, i64 noundef 31) #5
  %596 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %595, ptr noundef nonnull align 4 dereferenceable(12) %79)
  call void @llvm.lifetime.end.p0(i64 12, ptr %79) #5
  %597 = load ptr, ptr %7, align 8, !tbaa !5
  %598 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %597, i64 noundef 31) #5
  store i16 31, ptr %598, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %81) #5
  br i1 false, label %599, label %600

599:                                              ; preds = %581
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %81)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %80, ptr noundef nonnull align 4 dereferenceable(12) %81)
  br label %601

600:                                              ; preds = %581
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %80)
  br label %601

601:                                              ; preds = %600, %599
  %602 = load ptr, ptr %8, align 8, !tbaa !5
  %603 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %602, i64 noundef 31) #5
  %604 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %603, ptr noundef nonnull align 4 dereferenceable(12) %80)
  call void @llvm.lifetime.end.p0(i64 12, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %82) #5
  %605 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %606 = getelementptr inbounds %"class.Maths::TVector3", ptr %605, i32 0, i32 0
  %607 = load float, ptr %606, align 16, !tbaa !9
  %608 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %609 = getelementptr inbounds %"class.Maths::TVector3", ptr %608, i32 0, i32 1
  %610 = load float, ptr %609, align 4, !tbaa !12
  %611 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %612 = getelementptr inbounds %"class.Maths::TVector3", ptr %611, i32 0, i32 2
  %613 = load float, ptr %612, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %82, float noundef %607, float noundef %610, float noundef %613)
  %614 = load ptr, ptr %6, align 8, !tbaa !5
  %615 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %614, i64 noundef 8) #5
  %616 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %615, ptr noundef nonnull align 4 dereferenceable(12) %82)
  call void @llvm.lifetime.end.p0(i64 12, ptr %82) #5
  %617 = load ptr, ptr %7, align 8, !tbaa !5
  %618 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %617, i64 noundef 8) #5
  store i16 8, ptr %618, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %84) #5
  br i1 false, label %619, label %620

619:                                              ; preds = %601
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %84)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %83, ptr noundef nonnull align 4 dereferenceable(12) %84)
  br label %621

620:                                              ; preds = %601
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %83)
  br label %621

621:                                              ; preds = %620, %619
  %622 = load ptr, ptr %8, align 8, !tbaa !5
  %623 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %622, i64 noundef 8) #5
  %624 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %623, ptr noundef nonnull align 4 dereferenceable(12) %83)
  call void @llvm.lifetime.end.p0(i64 12, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %85) #5
  %625 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %626 = getelementptr inbounds %"class.Maths::TVector3", ptr %625, i32 0, i32 0
  %627 = load float, ptr %626, align 4, !tbaa !9
  %628 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %629 = getelementptr inbounds %"class.Maths::TVector3", ptr %628, i32 0, i32 1
  %630 = load float, ptr %629, align 4, !tbaa !12
  %631 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %632 = getelementptr inbounds %"class.Maths::TVector3", ptr %631, i32 0, i32 2
  %633 = load float, ptr %632, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %85, float noundef %627, float noundef %630, float noundef %633)
  %634 = load ptr, ptr %6, align 8, !tbaa !5
  %635 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %634, i64 noundef 20) #5
  %636 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %635, ptr noundef nonnull align 4 dereferenceable(12) %85)
  call void @llvm.lifetime.end.p0(i64 12, ptr %85) #5
  %637 = load ptr, ptr %7, align 8, !tbaa !5
  %638 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %637, i64 noundef 20) #5
  store i16 20, ptr %638, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %87) #5
  br i1 false, label %639, label %640

639:                                              ; preds = %621
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %87)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %86, ptr noundef nonnull align 4 dereferenceable(12) %87)
  br label %641

640:                                              ; preds = %621
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %86)
  br label %641

641:                                              ; preds = %640, %639
  %642 = load ptr, ptr %8, align 8, !tbaa !5
  %643 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %642, i64 noundef 20) #5
  %644 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %643, ptr noundef nonnull align 4 dereferenceable(12) %86)
  call void @llvm.lifetime.end.p0(i64 12, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %88) #5
  %645 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %646 = getelementptr inbounds %"class.Maths::TVector3", ptr %645, i32 0, i32 0
  %647 = load float, ptr %646, align 4, !tbaa !9
  %648 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %649 = getelementptr inbounds %"class.Maths::TVector3", ptr %648, i32 0, i32 1
  %650 = load float, ptr %649, align 4, !tbaa !12
  %651 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %652 = getelementptr inbounds %"class.Maths::TVector3", ptr %651, i32 0, i32 2
  %653 = load float, ptr %652, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %88, float noundef %647, float noundef %650, float noundef %653)
  %654 = load ptr, ptr %6, align 8, !tbaa !5
  %655 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %654, i64 noundef 32) #5
  %656 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %655, ptr noundef nonnull align 4 dereferenceable(12) %88)
  call void @llvm.lifetime.end.p0(i64 12, ptr %88) #5
  %657 = load ptr, ptr %7, align 8, !tbaa !5
  %658 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %657, i64 noundef 32) #5
  store i16 32, ptr %658, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %90) #5
  br i1 false, label %659, label %660

659:                                              ; preds = %641
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %90)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %89, ptr noundef nonnull align 4 dereferenceable(12) %90)
  br label %661

660:                                              ; preds = %641
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %89)
  br label %661

661:                                              ; preds = %660, %659
  %662 = load ptr, ptr %8, align 8, !tbaa !5
  %663 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %662, i64 noundef 32) #5
  %664 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %663, ptr noundef nonnull align 4 dereferenceable(12) %89)
  call void @llvm.lifetime.end.p0(i64 12, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %91) #5
  %665 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %666 = getelementptr inbounds %"class.Maths::TVector3", ptr %665, i32 0, i32 0
  %667 = load float, ptr %666, align 4, !tbaa !9
  %668 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %669 = getelementptr inbounds %"class.Maths::TVector3", ptr %668, i32 0, i32 1
  %670 = load float, ptr %669, align 4, !tbaa !12
  %671 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %672 = getelementptr inbounds %"class.Maths::TVector3", ptr %671, i32 0, i32 2
  %673 = load float, ptr %672, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %91, float noundef %667, float noundef %670, float noundef %673)
  %674 = load ptr, ptr %6, align 8, !tbaa !5
  %675 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %674, i64 noundef 9) #5
  %676 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %675, ptr noundef nonnull align 4 dereferenceable(12) %91)
  call void @llvm.lifetime.end.p0(i64 12, ptr %91) #5
  %677 = load ptr, ptr %7, align 8, !tbaa !5
  %678 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %677, i64 noundef 9) #5
  store i16 9, ptr %678, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %93) #5
  br i1 false, label %679, label %680

679:                                              ; preds = %661
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %93)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %92, ptr noundef nonnull align 4 dereferenceable(12) %93)
  br label %681

680:                                              ; preds = %661
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %92)
  br label %681

681:                                              ; preds = %680, %679
  %682 = load ptr, ptr %8, align 8, !tbaa !5
  %683 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %682, i64 noundef 9) #5
  %684 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %683, ptr noundef nonnull align 4 dereferenceable(12) %92)
  call void @llvm.lifetime.end.p0(i64 12, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %94) #5
  %685 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %686 = getelementptr inbounds %"class.Maths::TVector3", ptr %685, i32 0, i32 0
  %687 = load float, ptr %686, align 16, !tbaa !9
  %688 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %689 = getelementptr inbounds %"class.Maths::TVector3", ptr %688, i32 0, i32 1
  %690 = load float, ptr %689, align 4, !tbaa !12
  %691 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %692 = getelementptr inbounds %"class.Maths::TVector3", ptr %691, i32 0, i32 2
  %693 = load float, ptr %692, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %94, float noundef %687, float noundef %690, float noundef %693)
  %694 = load ptr, ptr %6, align 8, !tbaa !5
  %695 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %694, i64 noundef 21) #5
  %696 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %695, ptr noundef nonnull align 4 dereferenceable(12) %94)
  call void @llvm.lifetime.end.p0(i64 12, ptr %94) #5
  %697 = load ptr, ptr %7, align 8, !tbaa !5
  %698 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %697, i64 noundef 21) #5
  store i16 21, ptr %698, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %96) #5
  br i1 false, label %699, label %700

699:                                              ; preds = %681
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %96)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %95, ptr noundef nonnull align 4 dereferenceable(12) %96)
  br label %701

700:                                              ; preds = %681
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %95)
  br label %701

701:                                              ; preds = %700, %699
  %702 = load ptr, ptr %8, align 8, !tbaa !5
  %703 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %702, i64 noundef 21) #5
  %704 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %703, ptr noundef nonnull align 4 dereferenceable(12) %95)
  call void @llvm.lifetime.end.p0(i64 12, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %97) #5
  %705 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %706 = getelementptr inbounds %"class.Maths::TVector3", ptr %705, i32 0, i32 0
  %707 = load float, ptr %706, align 4, !tbaa !9
  %708 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %709 = getelementptr inbounds %"class.Maths::TVector3", ptr %708, i32 0, i32 1
  %710 = load float, ptr %709, align 4, !tbaa !12
  %711 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %712 = getelementptr inbounds %"class.Maths::TVector3", ptr %711, i32 0, i32 2
  %713 = load float, ptr %712, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %97, float noundef %707, float noundef %710, float noundef %713)
  %714 = load ptr, ptr %6, align 8, !tbaa !5
  %715 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %714, i64 noundef 33) #5
  %716 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %715, ptr noundef nonnull align 4 dereferenceable(12) %97)
  call void @llvm.lifetime.end.p0(i64 12, ptr %97) #5
  %717 = load ptr, ptr %7, align 8, !tbaa !5
  %718 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %717, i64 noundef 33) #5
  store i16 33, ptr %718, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %98) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %99) #5
  br i1 false, label %719, label %720

719:                                              ; preds = %701
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %99)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %98, ptr noundef nonnull align 4 dereferenceable(12) %99)
  br label %721

720:                                              ; preds = %701
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %98)
  br label %721

721:                                              ; preds = %720, %719
  %722 = load ptr, ptr %8, align 8, !tbaa !5
  %723 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %722, i64 noundef 33) #5
  %724 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %723, ptr noundef nonnull align 4 dereferenceable(12) %98)
  call void @llvm.lifetime.end.p0(i64 12, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %98) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %100) #5
  %725 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %726 = getelementptr inbounds %"class.Maths::TVector3", ptr %725, i32 0, i32 0
  %727 = load float, ptr %726, align 16, !tbaa !9
  %728 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %729 = getelementptr inbounds %"class.Maths::TVector3", ptr %728, i32 0, i32 1
  %730 = load float, ptr %729, align 4, !tbaa !12
  %731 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %732 = getelementptr inbounds %"class.Maths::TVector3", ptr %731, i32 0, i32 2
  %733 = load float, ptr %732, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %100, float noundef %727, float noundef %730, float noundef %733)
  %734 = load ptr, ptr %6, align 8, !tbaa !5
  %735 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %734, i64 noundef 10) #5
  %736 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %735, ptr noundef nonnull align 4 dereferenceable(12) %100)
  call void @llvm.lifetime.end.p0(i64 12, ptr %100) #5
  %737 = load ptr, ptr %7, align 8, !tbaa !5
  %738 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %737, i64 noundef 10) #5
  store i16 10, ptr %738, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %101) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %102) #5
  br i1 false, label %739, label %740

739:                                              ; preds = %721
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %102)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %101, ptr noundef nonnull align 4 dereferenceable(12) %102)
  br label %741

740:                                              ; preds = %721
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %101)
  br label %741

741:                                              ; preds = %740, %739
  %742 = load ptr, ptr %8, align 8, !tbaa !5
  %743 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %742, i64 noundef 10) #5
  %744 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %743, ptr noundef nonnull align 4 dereferenceable(12) %101)
  call void @llvm.lifetime.end.p0(i64 12, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %101) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %103) #5
  %745 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %746 = getelementptr inbounds %"class.Maths::TVector3", ptr %745, i32 0, i32 0
  %747 = load float, ptr %746, align 4, !tbaa !9
  %748 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %749 = getelementptr inbounds %"class.Maths::TVector3", ptr %748, i32 0, i32 1
  %750 = load float, ptr %749, align 4, !tbaa !12
  %751 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %752 = getelementptr inbounds %"class.Maths::TVector3", ptr %751, i32 0, i32 2
  %753 = load float, ptr %752, align 8, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %103, float noundef %747, float noundef %750, float noundef %753)
  %754 = load ptr, ptr %6, align 8, !tbaa !5
  %755 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %754, i64 noundef 22) #5
  %756 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %755, ptr noundef nonnull align 4 dereferenceable(12) %103)
  call void @llvm.lifetime.end.p0(i64 12, ptr %103) #5
  %757 = load ptr, ptr %7, align 8, !tbaa !5
  %758 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %757, i64 noundef 22) #5
  store i16 22, ptr %758, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %104) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %105) #5
  br i1 false, label %759, label %760

759:                                              ; preds = %741
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %105)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %104, ptr noundef nonnull align 4 dereferenceable(12) %105)
  br label %761

760:                                              ; preds = %741
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %104)
  br label %761

761:                                              ; preds = %760, %759
  %762 = load ptr, ptr %8, align 8, !tbaa !5
  %763 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %762, i64 noundef 22) #5
  %764 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %763, ptr noundef nonnull align 4 dereferenceable(12) %104)
  call void @llvm.lifetime.end.p0(i64 12, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %104) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %106) #5
  %765 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %766 = getelementptr inbounds %"class.Maths::TVector3", ptr %765, i32 0, i32 0
  %767 = load float, ptr %766, align 4, !tbaa !9
  %768 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 0
  %769 = getelementptr inbounds %"class.Maths::TVector3", ptr %768, i32 0, i32 1
  %770 = load float, ptr %769, align 4, !tbaa !12
  %771 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %772 = getelementptr inbounds %"class.Maths::TVector3", ptr %771, i32 0, i32 2
  %773 = load float, ptr %772, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %106, float noundef %767, float noundef %770, float noundef %773)
  %774 = load ptr, ptr %6, align 8, !tbaa !5
  %775 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %774, i64 noundef 34) #5
  %776 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %775, ptr noundef nonnull align 4 dereferenceable(12) %106)
  call void @llvm.lifetime.end.p0(i64 12, ptr %106) #5
  %777 = load ptr, ptr %7, align 8, !tbaa !5
  %778 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %777, i64 noundef 34) #5
  store i16 34, ptr %778, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %107) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %108) #5
  br i1 false, label %779, label %780

779:                                              ; preds = %761
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %108)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %107, ptr noundef nonnull align 4 dereferenceable(12) %108)
  br label %781

780:                                              ; preds = %761
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %107)
  br label %781

781:                                              ; preds = %780, %779
  %782 = load ptr, ptr %8, align 8, !tbaa !5
  %783 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %782, i64 noundef 34) #5
  %784 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %783, ptr noundef nonnull align 4 dereferenceable(12) %107)
  call void @llvm.lifetime.end.p0(i64 12, ptr %108) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %107) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %109) #5
  %785 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %786 = getelementptr inbounds %"class.Maths::TVector3", ptr %785, i32 0, i32 0
  %787 = load float, ptr %786, align 4, !tbaa !9
  %788 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %789 = getelementptr inbounds %"class.Maths::TVector3", ptr %788, i32 0, i32 1
  %790 = load float, ptr %789, align 4, !tbaa !12
  %791 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %792 = getelementptr inbounds %"class.Maths::TVector3", ptr %791, i32 0, i32 2
  %793 = load float, ptr %792, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %109, float noundef %787, float noundef %790, float noundef %793)
  %794 = load ptr, ptr %6, align 8, !tbaa !5
  %795 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %794, i64 noundef 11) #5
  %796 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %795, ptr noundef nonnull align 4 dereferenceable(12) %109)
  call void @llvm.lifetime.end.p0(i64 12, ptr %109) #5
  %797 = load ptr, ptr %7, align 8, !tbaa !5
  %798 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %797, i64 noundef 11) #5
  store i16 11, ptr %798, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %110) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %111) #5
  br i1 false, label %799, label %800

799:                                              ; preds = %781
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %111)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %110, ptr noundef nonnull align 4 dereferenceable(12) %111)
  br label %801

800:                                              ; preds = %781
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %110)
  br label %801

801:                                              ; preds = %800, %799
  %802 = load ptr, ptr %8, align 8, !tbaa !5
  %803 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %802, i64 noundef 11) #5
  %804 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %803, ptr noundef nonnull align 4 dereferenceable(12) %110)
  call void @llvm.lifetime.end.p0(i64 12, ptr %111) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %110) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %112) #5
  %805 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %806 = getelementptr inbounds %"class.Maths::TVector3", ptr %805, i32 0, i32 0
  %807 = load float, ptr %806, align 4, !tbaa !9
  %808 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %809 = getelementptr inbounds %"class.Maths::TVector3", ptr %808, i32 0, i32 1
  %810 = load float, ptr %809, align 4, !tbaa !12
  %811 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %812 = getelementptr inbounds %"class.Maths::TVector3", ptr %811, i32 0, i32 2
  %813 = load float, ptr %812, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %112, float noundef %807, float noundef %810, float noundef %813)
  %814 = load ptr, ptr %6, align 8, !tbaa !5
  %815 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %814, i64 noundef 23) #5
  %816 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %815, ptr noundef nonnull align 4 dereferenceable(12) %112)
  call void @llvm.lifetime.end.p0(i64 12, ptr %112) #5
  %817 = load ptr, ptr %7, align 8, !tbaa !5
  %818 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %817, i64 noundef 23) #5
  store i16 23, ptr %818, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %113) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %114) #5
  br i1 false, label %819, label %820

819:                                              ; preds = %801
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %114)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %113, ptr noundef nonnull align 4 dereferenceable(12) %114)
  br label %821

820:                                              ; preds = %801
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %113)
  br label %821

821:                                              ; preds = %820, %819
  %822 = load ptr, ptr %8, align 8, !tbaa !5
  %823 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %822, i64 noundef 23) #5
  %824 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %823, ptr noundef nonnull align 4 dereferenceable(12) %113)
  call void @llvm.lifetime.end.p0(i64 12, ptr %114) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %113) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %115) #5
  %825 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %826 = getelementptr inbounds %"class.Maths::TVector3", ptr %825, i32 0, i32 0
  %827 = load float, ptr %826, align 4, !tbaa !9
  %828 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %829 = getelementptr inbounds %"class.Maths::TVector3", ptr %828, i32 0, i32 1
  %830 = load float, ptr %829, align 4, !tbaa !12
  %831 = getelementptr inbounds [2 x %"class.Maths::TVector3"], ptr %9, i64 0, i64 1
  %832 = getelementptr inbounds %"class.Maths::TVector3", ptr %831, i32 0, i32 2
  %833 = load float, ptr %832, align 4, !tbaa !13
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %115, float noundef %827, float noundef %830, float noundef %833)
  %834 = load ptr, ptr %6, align 8, !tbaa !5
  %835 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %834, i64 noundef 35) #5
  %836 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %835, ptr noundef nonnull align 4 dereferenceable(12) %115)
  call void @llvm.lifetime.end.p0(i64 12, ptr %115) #5
  %837 = load ptr, ptr %7, align 8, !tbaa !5
  %838 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %837, i64 noundef 35) #5
  store i16 35, ptr %838, align 2, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 12, ptr %116) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr %117) #5
  br i1 false, label %839, label %840

839:                                              ; preds = %821
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %117)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %116, ptr noundef nonnull align 4 dereferenceable(12) %117)
  br label %841

840:                                              ; preds = %821
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind writable sret(%"class.Maths::TVector3") align 4 %116)
  br label %841

841:                                              ; preds = %840, %839
  %842 = load ptr, ptr %8, align 8, !tbaa !5
  %843 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %842, i64 noundef 35) #5
  %844 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %843, ptr noundef nonnull align 4 dereferenceable(12) %116)
  call void @llvm.lifetime.end.p0(i64 12, ptr %117) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %116) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #5
  ret void
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind noalias writable sret(%"class.Maths::TVector3") align 4) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind noalias writable sret(%"class.Maths::TVector3") align 4) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind noalias writable sret(%"class.Maths::TVector3") align 4) #3 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSN5Maths8TVector3IfEE", !11, i64 0, !11, i64 4, !11, i64 8}
!11 = !{!"float", !7, i64 0}
!12 = !{!10, !11, i64 4}
!13 = !{!10, !11, i64 8}
!14 = !{!15, !15, i64 0}
!15 = !{!"short", !7, i64 0}


; 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.Maths::TVector3" = type { float, float, float }

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

; 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 nounwind uwtable
declare dso_local void @_ZN5Maths8TVector3IfEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12), float noundef, float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind noalias writable sret(%"class.Maths::TVector3") align 4, ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7Riemann15AxisAlignedBox37GetMeshERSt6vectorIN5Maths8TVector3IfEESaIS4_EERS1_ItSaItEES7_(ptr noundef nonnull align 4 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %3) local_unnamed_addr #3 align 2 {
  %5 = alloca [2 x %"class.Maths::TVector3"], align 16
  %6 = alloca %"class.Maths::TVector3", align 4
  %7 = alloca %"class.Maths::TVector3", align 4
  %8 = alloca %"class.Maths::TVector3", align 4
  %9 = alloca %"class.Maths::TVector3", align 4
  %10 = alloca %"class.Maths::TVector3", align 4
  %11 = alloca %"class.Maths::TVector3", align 4
  %12 = alloca %"class.Maths::TVector3", align 4
  %13 = alloca %"class.Maths::TVector3", align 4
  %14 = alloca %"class.Maths::TVector3", align 4
  %15 = alloca %"class.Maths::TVector3", align 4
  %16 = alloca %"class.Maths::TVector3", align 4
  %17 = alloca %"class.Maths::TVector3", align 4
  %18 = alloca %"class.Maths::TVector3", align 4
  %19 = alloca %"class.Maths::TVector3", align 4
  %20 = alloca %"class.Maths::TVector3", align 4
  %21 = alloca %"class.Maths::TVector3", align 4
  %22 = alloca %"class.Maths::TVector3", align 4
  %23 = alloca %"class.Maths::TVector3", align 4
  %24 = alloca %"class.Maths::TVector3", align 4
  %25 = alloca %"class.Maths::TVector3", align 4
  %26 = alloca %"class.Maths::TVector3", align 4
  %27 = alloca %"class.Maths::TVector3", align 4
  %28 = alloca %"class.Maths::TVector3", align 4
  %29 = alloca %"class.Maths::TVector3", align 4
  %30 = alloca %"class.Maths::TVector3", align 4
  %31 = alloca %"class.Maths::TVector3", align 4
  %32 = alloca %"class.Maths::TVector3", align 4
  %33 = alloca %"class.Maths::TVector3", align 4
  %34 = alloca %"class.Maths::TVector3", align 4
  %35 = alloca %"class.Maths::TVector3", align 4
  %36 = alloca %"class.Maths::TVector3", align 4
  %37 = alloca %"class.Maths::TVector3", align 4
  %38 = alloca %"class.Maths::TVector3", align 4
  %39 = alloca %"class.Maths::TVector3", align 4
  %40 = alloca %"class.Maths::TVector3", align 4
  %41 = alloca %"class.Maths::TVector3", align 4
  %42 = alloca %"class.Maths::TVector3", align 4
  %43 = alloca %"class.Maths::TVector3", align 4
  %44 = alloca %"class.Maths::TVector3", align 4
  %45 = alloca %"class.Maths::TVector3", align 4
  %46 = alloca %"class.Maths::TVector3", align 4
  %47 = alloca %"class.Maths::TVector3", align 4
  %48 = alloca %"class.Maths::TVector3", align 4
  %49 = alloca %"class.Maths::TVector3", align 4
  %50 = alloca %"class.Maths::TVector3", align 4
  %51 = alloca %"class.Maths::TVector3", align 4
  %52 = alloca %"class.Maths::TVector3", align 4
  %53 = alloca %"class.Maths::TVector3", align 4
  %54 = alloca %"class.Maths::TVector3", align 4
  %55 = alloca %"class.Maths::TVector3", align 4
  %56 = alloca %"class.Maths::TVector3", align 4
  %57 = alloca %"class.Maths::TVector3", align 4
  %58 = alloca %"class.Maths::TVector3", align 4
  %59 = alloca %"class.Maths::TVector3", align 4
  %60 = alloca %"class.Maths::TVector3", align 4
  %61 = alloca %"class.Maths::TVector3", align 4
  %62 = alloca %"class.Maths::TVector3", align 4
  %63 = alloca %"class.Maths::TVector3", align 4
  %64 = alloca %"class.Maths::TVector3", align 4
  %65 = alloca %"class.Maths::TVector3", align 4
  %66 = alloca %"class.Maths::TVector3", align 4
  %67 = alloca %"class.Maths::TVector3", align 4
  %68 = alloca %"class.Maths::TVector3", align 4
  %69 = alloca %"class.Maths::TVector3", align 4
  %70 = alloca %"class.Maths::TVector3", align 4
  %71 = alloca %"class.Maths::TVector3", align 4
  %72 = alloca %"class.Maths::TVector3", align 4
  %73 = alloca %"class.Maths::TVector3", align 4
  %74 = alloca %"class.Maths::TVector3", align 4
  %75 = alloca %"class.Maths::TVector3", align 4
  %76 = alloca %"class.Maths::TVector3", align 4
  %77 = alloca %"class.Maths::TVector3", align 4
  %78 = alloca %"class.Maths::TVector3", align 4
  %79 = alloca %"class.Maths::TVector3", align 4
  %80 = alloca %"class.Maths::TVector3", align 4
  %81 = alloca %"class.Maths::TVector3", align 4
  %82 = alloca %"class.Maths::TVector3", align 4
  %83 = alloca %"class.Maths::TVector3", align 4
  %84 = alloca %"class.Maths::TVector3", align 4
  %85 = alloca %"class.Maths::TVector3", align 4
  %86 = alloca %"class.Maths::TVector3", align 4
  %87 = alloca %"class.Maths::TVector3", align 4
  %88 = alloca %"class.Maths::TVector3", align 4
  %89 = alloca %"class.Maths::TVector3", align 4
  %90 = alloca %"class.Maths::TVector3", align 4
  %91 = alloca %"class.Maths::TVector3", align 4
  %92 = alloca %"class.Maths::TVector3", align 4
  %93 = alloca %"class.Maths::TVector3", align 4
  %94 = alloca %"class.Maths::TVector3", align 4
  %95 = alloca %"class.Maths::TVector3", align 4
  tail call void @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 36)
  tail call void @_ZNSt6vectorItSaItEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 36)
  tail call void @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 36)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #5
  call void @_ZN5Maths8TVector3IfEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %5, ptr noundef nonnull align 4 dereferenceable(12) %0)
  %96 = getelementptr inbounds i8, ptr %5, i64 12
  %97 = getelementptr inbounds i8, ptr %0, i64 12
  call void @_ZN5Maths8TVector3IfEC2ERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %96, ptr noundef nonnull align 4 dereferenceable(12) %97)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %6) #5
  %98 = load float, ptr %5, align 16, !tbaa !5
  %99 = getelementptr inbounds i8, ptr %5, i64 4
  %100 = load float, ptr %99, align 4, !tbaa !10
  %101 = getelementptr inbounds i8, ptr %5, i64 8
  %102 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %6, float noundef %98, float noundef %100, float noundef %102)
  %103 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 0) #5
  %104 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %103, ptr noundef nonnull align 4 dereferenceable(12) %6)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %6) #5
  %105 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 0) #5
  store i16 0, ptr %105, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %8) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %8)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %7, ptr noundef nonnull align 4 dereferenceable(12) %8)
  %106 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 0) #5
  %107 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %106, ptr noundef nonnull align 4 dereferenceable(12) %7)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %9) #5
  %108 = load float, ptr %5, align 16, !tbaa !5
  %109 = load float, ptr %99, align 4, !tbaa !10
  %110 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %9, float noundef %108, float noundef %109, float noundef %110)
  %111 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 12) #5
  %112 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %111, ptr noundef nonnull align 4 dereferenceable(12) %9)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %9) #5
  %113 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 12) #5
  store i16 12, ptr %113, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %11) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %11)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %10, ptr noundef nonnull align 4 dereferenceable(12) %11)
  %114 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 12) #5
  %115 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %114, ptr noundef nonnull align 4 dereferenceable(12) %10)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) #5
  %116 = load float, ptr %5, align 16, !tbaa !5
  %117 = load float, ptr %99, align 4, !tbaa !10
  %118 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %12, float noundef %116, float noundef %117, float noundef %118)
  %119 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 24) #5
  %120 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %119, ptr noundef nonnull align 4 dereferenceable(12) %12)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #5
  %121 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 24) #5
  store i16 24, ptr %121, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %14) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %14)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %13, ptr noundef nonnull align 4 dereferenceable(12) %14)
  %122 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 24) #5
  %123 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %122, ptr noundef nonnull align 4 dereferenceable(12) %13)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %15) #5
  %124 = load float, ptr %96, align 4, !tbaa !5
  %125 = load float, ptr %99, align 4, !tbaa !10
  %126 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %15, float noundef %124, float noundef %125, float noundef %126)
  %127 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 1) #5
  %128 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %127, ptr noundef nonnull align 4 dereferenceable(12) %15)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %15) #5
  %129 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 1) #5
  store i16 1, ptr %129, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %17) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %17)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %16, ptr noundef nonnull align 4 dereferenceable(12) %17)
  %130 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 1) #5
  %131 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %130, ptr noundef nonnull align 4 dereferenceable(12) %16)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %18) #5
  %132 = load float, ptr %5, align 16, !tbaa !5
  %133 = load float, ptr %99, align 4, !tbaa !10
  %134 = getelementptr inbounds i8, ptr %5, i64 20
  %135 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %18, float noundef %132, float noundef %133, float noundef %135)
  %136 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 13) #5
  %137 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %136, ptr noundef nonnull align 4 dereferenceable(12) %18)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %18) #5
  %138 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 13) #5
  store i16 13, ptr %138, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %20) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %20)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %19, ptr noundef nonnull align 4 dereferenceable(12) %20)
  %139 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 13) #5
  %140 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %139, ptr noundef nonnull align 4 dereferenceable(12) %19)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %21) #5
  %141 = load float, ptr %5, align 16, !tbaa !5
  %142 = getelementptr inbounds i8, ptr %5, i64 16
  %143 = load float, ptr %142, align 16, !tbaa !10
  %144 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %21, float noundef %141, float noundef %143, float noundef %144)
  %145 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 25) #5
  %146 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %145, ptr noundef nonnull align 4 dereferenceable(12) %21)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %21) #5
  %147 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 25) #5
  store i16 25, ptr %147, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %23) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %23)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %22, ptr noundef nonnull align 4 dereferenceable(12) %23)
  %148 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 25) #5
  %149 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %148, ptr noundef nonnull align 4 dereferenceable(12) %22)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %24) #5
  %150 = load float, ptr %5, align 16, !tbaa !5
  %151 = load float, ptr %142, align 16, !tbaa !10
  %152 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %24, float noundef %150, float noundef %151, float noundef %152)
  %153 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 2) #5
  %154 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %153, ptr noundef nonnull align 4 dereferenceable(12) %24)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %24) #5
  %155 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 2) #5
  store i16 2, ptr %155, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %26) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %26)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %25, ptr noundef nonnull align 4 dereferenceable(12) %26)
  %156 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 2) #5
  %157 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %156, ptr noundef nonnull align 4 dereferenceable(12) %25)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %27) #5
  %158 = load float, ptr %96, align 4, !tbaa !5
  %159 = load float, ptr %99, align 4, !tbaa !10
  %160 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %27, float noundef %158, float noundef %159, float noundef %160)
  %161 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 14) #5
  %162 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %161, ptr noundef nonnull align 4 dereferenceable(12) %27)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %27) #5
  %163 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 14) #5
  store i16 14, ptr %163, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %29) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %29)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %28, ptr noundef nonnull align 4 dereferenceable(12) %29)
  %164 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 14) #5
  %165 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %164, ptr noundef nonnull align 4 dereferenceable(12) %28)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %30) #5
  %166 = load float, ptr %5, align 16, !tbaa !5
  %167 = load float, ptr %99, align 4, !tbaa !10
  %168 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %30, float noundef %166, float noundef %167, float noundef %168)
  %169 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 26) #5
  %170 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %169, ptr noundef nonnull align 4 dereferenceable(12) %30)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %30) #5
  %171 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 26) #5
  store i16 26, ptr %171, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %32) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %32)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %31, ptr noundef nonnull align 4 dereferenceable(12) %32)
  %172 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 26) #5
  %173 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %172, ptr noundef nonnull align 4 dereferenceable(12) %31)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %33) #5
  %174 = load float, ptr %96, align 4, !tbaa !5
  %175 = load float, ptr %99, align 4, !tbaa !10
  %176 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %33, float noundef %174, float noundef %175, float noundef %176)
  %177 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 3) #5
  %178 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %177, ptr noundef nonnull align 4 dereferenceable(12) %33)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %33) #5
  %179 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 3) #5
  store i16 3, ptr %179, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %35) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %35)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %34, ptr noundef nonnull align 4 dereferenceable(12) %35)
  %180 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 3) #5
  %181 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %180, ptr noundef nonnull align 4 dereferenceable(12) %34)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %36) #5
  %182 = load float, ptr %5, align 16, !tbaa !5
  %183 = load float, ptr %99, align 4, !tbaa !10
  %184 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %36, float noundef %182, float noundef %183, float noundef %184)
  %185 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 15) #5
  %186 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %185, ptr noundef nonnull align 4 dereferenceable(12) %36)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %36) #5
  %187 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 15) #5
  store i16 15, ptr %187, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %38) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %38)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %37, ptr noundef nonnull align 4 dereferenceable(12) %38)
  %188 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 15) #5
  %189 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %188, ptr noundef nonnull align 4 dereferenceable(12) %37)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %39) #5
  %190 = load float, ptr %5, align 16, !tbaa !5
  %191 = load float, ptr %142, align 16, !tbaa !10
  %192 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %39, float noundef %190, float noundef %191, float noundef %192)
  %193 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 27) #5
  %194 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %193, ptr noundef nonnull align 4 dereferenceable(12) %39)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %39) #5
  %195 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 27) #5
  store i16 27, ptr %195, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %41) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %41)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %40, ptr noundef nonnull align 4 dereferenceable(12) %41)
  %196 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 27) #5
  %197 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %196, ptr noundef nonnull align 4 dereferenceable(12) %40)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %42) #5
  %198 = load float, ptr %5, align 16, !tbaa !5
  %199 = load float, ptr %142, align 16, !tbaa !10
  %200 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %42, float noundef %198, float noundef %199, float noundef %200)
  %201 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 4) #5
  %202 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %201, ptr noundef nonnull align 4 dereferenceable(12) %42)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %42) #5
  %203 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 4) #5
  store i16 4, ptr %203, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %44) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %44)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %43, ptr noundef nonnull align 4 dereferenceable(12) %44)
  %204 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 4) #5
  %205 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %204, ptr noundef nonnull align 4 dereferenceable(12) %43)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %45) #5
  %206 = load float, ptr %96, align 4, !tbaa !5
  %207 = load float, ptr %99, align 4, !tbaa !10
  %208 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %45, float noundef %206, float noundef %207, float noundef %208)
  %209 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 16) #5
  %210 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %209, ptr noundef nonnull align 4 dereferenceable(12) %45)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %45) #5
  %211 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 16) #5
  store i16 16, ptr %211, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %46) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %47) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %47)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %46, ptr noundef nonnull align 4 dereferenceable(12) %47)
  %212 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 16) #5
  %213 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %212, ptr noundef nonnull align 4 dereferenceable(12) %46)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %46) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %48) #5
  %214 = load float, ptr %5, align 16, !tbaa !5
  %215 = load float, ptr %99, align 4, !tbaa !10
  %216 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %48, float noundef %214, float noundef %215, float noundef %216)
  %217 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 28) #5
  %218 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %217, ptr noundef nonnull align 4 dereferenceable(12) %48)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %48) #5
  %219 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 28) #5
  store i16 28, ptr %219, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %49) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %50) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %50)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %49, ptr noundef nonnull align 4 dereferenceable(12) %50)
  %220 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 28) #5
  %221 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %220, ptr noundef nonnull align 4 dereferenceable(12) %49)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %50) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %49) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %51) #5
  %222 = load float, ptr %96, align 4, !tbaa !5
  %223 = load float, ptr %142, align 16, !tbaa !10
  %224 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %51, float noundef %222, float noundef %223, float noundef %224)
  %225 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 5) #5
  %226 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %225, ptr noundef nonnull align 4 dereferenceable(12) %51)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %51) #5
  %227 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 5) #5
  store i16 5, ptr %227, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %52) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %53) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %53)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %52, ptr noundef nonnull align 4 dereferenceable(12) %53)
  %228 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 5) #5
  %229 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %228, ptr noundef nonnull align 4 dereferenceable(12) %52)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %53) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %52) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %54) #5
  %230 = load float, ptr %96, align 4, !tbaa !5
  %231 = load float, ptr %99, align 4, !tbaa !10
  %232 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %54, float noundef %230, float noundef %231, float noundef %232)
  %233 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 17) #5
  %234 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %233, ptr noundef nonnull align 4 dereferenceable(12) %54)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %54) #5
  %235 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 17) #5
  store i16 17, ptr %235, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %55) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %56) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %56)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %55, ptr noundef nonnull align 4 dereferenceable(12) %56)
  %236 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 17) #5
  %237 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %236, ptr noundef nonnull align 4 dereferenceable(12) %55)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %56) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %55) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %57) #5
  %238 = load float, ptr %5, align 16, !tbaa !5
  %239 = load float, ptr %142, align 16, !tbaa !10
  %240 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %57, float noundef %238, float noundef %239, float noundef %240)
  %241 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 29) #5
  %242 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %241, ptr noundef nonnull align 4 dereferenceable(12) %57)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %57) #5
  %243 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 29) #5
  store i16 29, ptr %243, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %58) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %59) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %59)
  call void @_ZNK5Maths8TVector3IfEngEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %58, ptr noundef nonnull align 4 dereferenceable(12) %59)
  %244 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 29) #5
  %245 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %244, ptr noundef nonnull align 4 dereferenceable(12) %58)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %59) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %58) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %60) #5
  %246 = load float, ptr %5, align 16, !tbaa !5
  %247 = load float, ptr %99, align 4, !tbaa !10
  %248 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %60, float noundef %246, float noundef %247, float noundef %248)
  %249 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 6) #5
  %250 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %249, ptr noundef nonnull align 4 dereferenceable(12) %60)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %60) #5
  %251 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 6) #5
  store i16 6, ptr %251, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %61) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %61)
  %252 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 6) #5
  %253 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %252, ptr noundef nonnull align 4 dereferenceable(12) %61)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %61) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %62) #5
  %254 = load float, ptr %5, align 16, !tbaa !5
  %255 = load float, ptr %142, align 16, !tbaa !10
  %256 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %62, float noundef %254, float noundef %255, float noundef %256)
  %257 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 18) #5
  %258 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %257, ptr noundef nonnull align 4 dereferenceable(12) %62)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %62) #5
  %259 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 18) #5
  store i16 18, ptr %259, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %63) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %63)
  %260 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 18) #5
  %261 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %260, ptr noundef nonnull align 4 dereferenceable(12) %63)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %63) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %64) #5
  %262 = load float, ptr %96, align 4, !tbaa !5
  %263 = load float, ptr %99, align 4, !tbaa !10
  %264 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %64, float noundef %262, float noundef %263, float noundef %264)
  %265 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 30) #5
  %266 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %265, ptr noundef nonnull align 4 dereferenceable(12) %64)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %64) #5
  %267 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 30) #5
  store i16 30, ptr %267, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %65) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %65)
  %268 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 30) #5
  %269 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %268, ptr noundef nonnull align 4 dereferenceable(12) %65)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %65) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %66) #5
  %270 = load float, ptr %96, align 4, !tbaa !5
  %271 = load float, ptr %99, align 4, !tbaa !10
  %272 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %66, float noundef %270, float noundef %271, float noundef %272)
  %273 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 7) #5
  %274 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %273, ptr noundef nonnull align 4 dereferenceable(12) %66)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %66) #5
  %275 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 7) #5
  store i16 7, ptr %275, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %67) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %67)
  %276 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 7) #5
  %277 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %276, ptr noundef nonnull align 4 dereferenceable(12) %67)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %67) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %68) #5
  %278 = load float, ptr %5, align 16, !tbaa !5
  %279 = load float, ptr %142, align 16, !tbaa !10
  %280 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %68, float noundef %278, float noundef %279, float noundef %280)
  %281 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 19) #5
  %282 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %281, ptr noundef nonnull align 4 dereferenceable(12) %68)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %68) #5
  %283 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 19) #5
  store i16 19, ptr %283, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %69) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %69)
  %284 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 19) #5
  %285 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %284, ptr noundef nonnull align 4 dereferenceable(12) %69)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %69) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %70) #5
  %286 = load float, ptr %96, align 4, !tbaa !5
  %287 = load float, ptr %142, align 16, !tbaa !10
  %288 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %70, float noundef %286, float noundef %287, float noundef %288)
  %289 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 31) #5
  %290 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %289, ptr noundef nonnull align 4 dereferenceable(12) %70)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %70) #5
  %291 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 31) #5
  store i16 31, ptr %291, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %71) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %71)
  %292 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 31) #5
  %293 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %292, ptr noundef nonnull align 4 dereferenceable(12) %71)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %71) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %72) #5
  %294 = load float, ptr %5, align 16, !tbaa !5
  %295 = load float, ptr %142, align 16, !tbaa !10
  %296 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %72, float noundef %294, float noundef %295, float noundef %296)
  %297 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 8) #5
  %298 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %297, ptr noundef nonnull align 4 dereferenceable(12) %72)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %72) #5
  %299 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 8) #5
  store i16 8, ptr %299, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %73) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %73)
  %300 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 8) #5
  %301 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %300, ptr noundef nonnull align 4 dereferenceable(12) %73)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %73) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %74) #5
  %302 = load float, ptr %96, align 4, !tbaa !5
  %303 = load float, ptr %142, align 16, !tbaa !10
  %304 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %74, float noundef %302, float noundef %303, float noundef %304)
  %305 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 20) #5
  %306 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %305, ptr noundef nonnull align 4 dereferenceable(12) %74)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %74) #5
  %307 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 20) #5
  store i16 20, ptr %307, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %75) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %75)
  %308 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 20) #5
  %309 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %308, ptr noundef nonnull align 4 dereferenceable(12) %75)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %75) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %76) #5
  %310 = load float, ptr %96, align 4, !tbaa !5
  %311 = load float, ptr %99, align 4, !tbaa !10
  %312 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %76, float noundef %310, float noundef %311, float noundef %312)
  %313 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 32) #5
  %314 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %313, ptr noundef nonnull align 4 dereferenceable(12) %76)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %76) #5
  %315 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 32) #5
  store i16 32, ptr %315, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %77) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %77)
  %316 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 32) #5
  %317 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %316, ptr noundef nonnull align 4 dereferenceable(12) %77)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %77) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %78) #5
  %318 = load float, ptr %96, align 4, !tbaa !5
  %319 = load float, ptr %99, align 4, !tbaa !10
  %320 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %78, float noundef %318, float noundef %319, float noundef %320)
  %321 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 9) #5
  %322 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %321, ptr noundef nonnull align 4 dereferenceable(12) %78)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %78) #5
  %323 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 9) #5
  store i16 9, ptr %323, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %79) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %79)
  %324 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 9) #5
  %325 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %324, ptr noundef nonnull align 4 dereferenceable(12) %79)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %79) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %80) #5
  %326 = load float, ptr %5, align 16, !tbaa !5
  %327 = load float, ptr %142, align 16, !tbaa !10
  %328 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %80, float noundef %326, float noundef %327, float noundef %328)
  %329 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 21) #5
  %330 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %329, ptr noundef nonnull align 4 dereferenceable(12) %80)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %80) #5
  %331 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 21) #5
  store i16 21, ptr %331, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %81) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %81)
  %332 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 21) #5
  %333 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %332, ptr noundef nonnull align 4 dereferenceable(12) %81)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %81) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %82) #5
  %334 = load float, ptr %96, align 4, !tbaa !5
  %335 = load float, ptr %142, align 16, !tbaa !10
  %336 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %82, float noundef %334, float noundef %335, float noundef %336)
  %337 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 33) #5
  %338 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %337, ptr noundef nonnull align 4 dereferenceable(12) %82)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %82) #5
  %339 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 33) #5
  store i16 33, ptr %339, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %83) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %83)
  %340 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 33) #5
  %341 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %340, ptr noundef nonnull align 4 dereferenceable(12) %83)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %83) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %84) #5
  %342 = load float, ptr %5, align 16, !tbaa !5
  %343 = load float, ptr %142, align 16, !tbaa !10
  %344 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %84, float noundef %342, float noundef %343, float noundef %344)
  %345 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 10) #5
  %346 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %345, ptr noundef nonnull align 4 dereferenceable(12) %84)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %84) #5
  %347 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 10) #5
  store i16 10, ptr %347, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %85) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %85)
  %348 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 10) #5
  %349 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %348, ptr noundef nonnull align 4 dereferenceable(12) %85)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %85) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %86) #5
  %350 = load float, ptr %96, align 4, !tbaa !5
  %351 = load float, ptr %142, align 16, !tbaa !10
  %352 = load float, ptr %101, align 8, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %86, float noundef %350, float noundef %351, float noundef %352)
  %353 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 22) #5
  %354 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %353, ptr noundef nonnull align 4 dereferenceable(12) %86)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %86) #5
  %355 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 22) #5
  store i16 22, ptr %355, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %87) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %87)
  %356 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 22) #5
  %357 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %356, ptr noundef nonnull align 4 dereferenceable(12) %87)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %87) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %88) #5
  %358 = load float, ptr %96, align 4, !tbaa !5
  %359 = load float, ptr %99, align 4, !tbaa !10
  %360 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %88, float noundef %358, float noundef %359, float noundef %360)
  %361 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 34) #5
  %362 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %361, ptr noundef nonnull align 4 dereferenceable(12) %88)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %88) #5
  %363 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 34) #5
  store i16 34, ptr %363, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %89) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %89)
  %364 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 34) #5
  %365 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %364, ptr noundef nonnull align 4 dereferenceable(12) %89)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %89) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %90) #5
  %366 = load float, ptr %96, align 4, !tbaa !5
  %367 = load float, ptr %142, align 16, !tbaa !10
  %368 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %90, float noundef %366, float noundef %367, float noundef %368)
  %369 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 11) #5
  %370 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %369, ptr noundef nonnull align 4 dereferenceable(12) %90)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %90) #5
  %371 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 11) #5
  store i16 11, ptr %371, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %91) #5
  call void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %91)
  %372 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 11) #5
  %373 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %372, ptr noundef nonnull align 4 dereferenceable(12) %91)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %91) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %92) #5
  %374 = load float, ptr %96, align 4, !tbaa !5
  %375 = load float, ptr %142, align 16, !tbaa !10
  %376 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %92, float noundef %374, float noundef %375, float noundef %376)
  %377 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 23) #5
  %378 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %377, ptr noundef nonnull align 4 dereferenceable(12) %92)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %92) #5
  %379 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 23) #5
  store i16 23, ptr %379, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %93) #5
  call void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %93)
  %380 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 23) #5
  %381 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %380, ptr noundef nonnull align 4 dereferenceable(12) %93)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %93) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %94) #5
  %382 = load float, ptr %96, align 4, !tbaa !5
  %383 = load float, ptr %142, align 16, !tbaa !10
  %384 = load float, ptr %134, align 4, !tbaa !11
  call void @_ZN5Maths8TVector3IfEC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %94, float noundef %382, float noundef %383, float noundef %384)
  %385 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 35) #5
  %386 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %385, ptr noundef nonnull align 4 dereferenceable(12) %94)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %94) #5
  %387 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZNSt6vectorItSaItEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 35) #5
  store i16 35, ptr %387, align 2, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %95) #5
  call void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind nonnull writable sret(%"class.Maths::TVector3") align 4 %95)
  %388 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNSt6vectorIN5Maths8TVector3IfEESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 35) #5
  %389 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN5Maths8TVector3IfEaSERKS1_(ptr noundef nonnull align 4 dereferenceable(12) %388, ptr noundef nonnull align 4 dereferenceable(12) %95)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %95) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #5
  ret void
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Maths8TVector3IfE5UnitZEv(ptr dead_on_unwind noalias writable sret(%"class.Maths::TVector3") align 4) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Maths8TVector3IfE5UnitYEv(ptr dead_on_unwind noalias writable sret(%"class.Maths::TVector3") align 4) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Maths8TVector3IfE5UnitXEv(ptr dead_on_unwind noalias writable sret(%"class.Maths::TVector3") align 4) local_unnamed_addr #3 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN5Maths8TVector3IfEE", !7, i64 0, !7, i64 4, !7, i64 8}
!7 = !{!"float", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!6, !7, i64 4}
!11 = !{!6, !7, i64 8}
!12 = !{!13, !13, i64 0}
!13 = !{!"short", !8, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass