; LLVM IR from jrouwe/JoltPhysics :: Samples (SamplesApp)

; 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"

%struct.TestCategory = type { ptr, ptr, i64 }
%struct.DisableCustomMemoryHook = type { i8 }
%"class.std::basic_string_view" = type { i64, ptr }
%"class.std::function.16" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { ptr }
%class.anon.18 = type { ptr }
%class.anon.19 = type { ptr }
%class.anon.20 = type { ptr }
%class.anon.21 = type { ptr }
%class.anon.22 = type { ptr }
%class.anon.23 = type { ptr }
%class.anon.24 = type { ptr }
%class.anon.25 = type { ptr }
%class.anon.26 = type { ptr }
%class.anon.27 = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, JPH::STLAllocator<char>>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, JPH::STLAllocator<char>>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"class.JPH::Array.28" = type { i64, i64, ptr }
%class.SamplesApp = type <{ %class.Application, i32, float, i32, [4 x i8], ptr, ptr, ptr, %class.BPLayerInterfaceImpl, %class.ObjectVsBroadPhaseLayerFilterImpl, %class.ObjectLayerPairFilterImpl, ptr, ptr, %"struct.JPH::PhysicsSettings", [4 x i8], %"class.JPH::UnorderedMap", ptr, ptr, ptr, i32, i8, [3 x i8], float, i8, i8, i8, i8, %"class.JPH::Array", i32, i32, i32, i32, i8, [15 x i8], %"class.JPH::Vec3", i8, i8, i8, i8, float, i8, i8, i8, i8, i32, i8, [3 x i8], i32, float, i8, [3 x i8], float, float, i8, [7 x i8], %"class.JPH::Vec3", i8, [7 x i8], ptr, %"class.JPH::BodyID", [4 x i8], %"class.JPH::Ref", i32, float, float, i32, %"class.std::chrono::duration.3", [8 x i8] }>
%class.Application = type { ptr, [8 x i8], %struct.CameraState, %struct.CameraState, ptr, ptr, ptr, %"class.JPH::RefConst", ptr, ptr, ptr, ptr, %"class.std::__cxx11::basic_string", %"class.std::chrono::time_point", i8, i8, i8, i8, float, float, float, float, i32 }
%struct.CameraState = type <{ %"class.JPH::Vec3", %"class.JPH::Vec3", %"class.JPH::Vec3", float, [12 x i8] }>
%"class.JPH::RefConst" = type { ptr }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%class.BPLayerInterfaceImpl = type <{ %"class.JPH::BroadPhaseLayerInterface", [2 x %"class.JPH::BroadPhaseLayer"], [6 x i8] }>
%"class.JPH::BroadPhaseLayerInterface" = type { ptr }
%"class.JPH::BroadPhaseLayer" = type { i8 }
%class.ObjectVsBroadPhaseLayerFilterImpl = type { %"class.JPH::ObjectVsBroadPhaseLayerFilter" }
%"class.JPH::ObjectVsBroadPhaseLayerFilter" = type { ptr }
%class.ObjectLayerPairFilterImpl = type { %"class.JPH::ObjectLayerPairFilter" }
%"class.JPH::ObjectLayerPairFilter" = type { ptr }
%"struct.JPH::PhysicsSettings" = type <{ i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, i32, i32, float, float, float, i8, i8, i8, i8, i8, i8, i8, i8 }>
%"class.JPH::UnorderedMap" = type { %"class.JPH::HashTable.base", [4 x i8] }
%"class.JPH::HashTable.base" = type <{ ptr, ptr, i32, i32, i32 }>
%"class.JPH::Array" = type { i64, i64, ptr }
%"class.JPH::Vec3" = type { %union.anon }
%union.anon = type { <4 x float> }
%"class.JPH::BodyID" = type { i32 }
%"class.JPH::Ref" = type { ptr }
%"class.std::chrono::duration.3" = type { i64 }
%struct.TestNameAndRTTI = type { ptr, ptr }

@.str.128 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZTV10SamplesApp = external dso_local unnamed_addr constant { [8 x ptr] }, align 8
@.str.129 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZL14sAllCategories = external hidden global [12 x %struct.TestCategory], align 16

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

declare i32 @__gxx_personality_v0(...)

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

declare noundef ptr @_Z13GetRTTIOfTypeP13CreateRigTest(ptr noundef) #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10SamplesAppC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEE(ptr noundef nonnull align 16 dereferenceable(712) %0, ptr noundef nonnull align 8 dereferenceable(32) %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca %struct.DisableCustomMemoryHook, align 1
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::basic_string_view", align 8
  %11 = alloca %"class.std::function.16", align 8
  %12 = alloca %class.anon, align 8
  %13 = alloca %"class.std::basic_string_view", align 8
  %14 = alloca %"class.std::function.16", align 8
  %15 = alloca %class.anon.18, align 8
  %16 = alloca %"class.std::basic_string_view", align 8
  %17 = alloca %"class.std::function.16", align 8
  %18 = alloca %class.anon.19, align 8
  %19 = alloca %"class.std::basic_string_view", align 8
  %20 = alloca %"class.std::function.16", align 8
  %21 = alloca %class.anon.20, align 8
  %22 = alloca %"class.std::basic_string_view", align 8
  %23 = alloca %"class.std::function.16", align 8
  %24 = alloca %class.anon.21, align 8
  %25 = alloca %"class.std::basic_string_view", align 8
  %26 = alloca %"class.std::function.16", align 8
  %27 = alloca %class.anon.22, align 8
  %28 = alloca %"class.std::basic_string_view", align 8
  %29 = alloca %"class.std::function.16", align 8
  %30 = alloca %class.anon.23, align 8
  %31 = alloca %"class.std::basic_string_view", align 8
  %32 = alloca %"class.std::function.16", align 8
  %33 = alloca %class.anon.24, align 8
  %34 = alloca %"class.std::basic_string_view", align 8
  %35 = alloca %"class.std::function.16", align 8
  %36 = alloca %class.anon.25, align 8
  %37 = alloca %"class.std::basic_string_view", align 8
  %38 = alloca %"class.std::function.16", align 8
  %39 = alloca %class.anon.26, align 8
  %40 = alloca %"class.std::basic_string_view", align 8
  %41 = alloca %"class.std::function.16", align 8
  %42 = alloca %class.anon.27, align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::basic_string_view", align 8
  %45 = alloca %"class.JPH::Array.28", align 8
  %46 = alloca %"class.std::basic_string_view", align 8
  %47 = alloca %"class.std::basic_string_view", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::basic_string_view", align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %59 = load ptr, ptr %3, align 8
  %60 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN11ApplicationC2EPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEE(ptr noundef nonnull align 16 dereferenceable(272) %59, ptr noundef @.str.128, ptr noundef nonnull align 8 dereferenceable(32) %60)
  store ptr getelementptr inbounds inrange(-16, 48) ({ [8 x ptr] }, ptr @_ZTV10SamplesApp, i32 0, i32 0, i32 2), ptr %59, align 16, !tbaa !9
  %61 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 1
  %62 = call noundef i32 @_ZNSt6thread20hardware_concurrencyEv() #9
  store i32 %62, ptr %61, align 16, !tbaa !11
  %63 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 2
  store float 6.000000e+01, ptr %63, align 4, !tbaa !46
  %64 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 3
  store i32 1, ptr %64, align 8, !tbaa !47
  %65 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 5
  store ptr null, ptr %65, align 16, !tbaa !48
  %66 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 6
  store ptr null, ptr %66, align 8, !tbaa !49
  %67 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 7
  store ptr null, ptr %67, align 16, !tbaa !50
  %68 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 8
  invoke void @_ZN20BPLayerInterfaceImplC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68)
          to label %69 unwind label %259

69:                                               ; preds = %2
  %70 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 9
  call void @_ZN33ObjectVsBroadPhaseLayerFilterImplC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #9
  %71 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 10
  call void @_ZN25ObjectLayerPairFilterImplC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #9
  %72 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 11
  store ptr null, ptr %72, align 8, !tbaa !51
  %73 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 12
  store ptr null, ptr %73, align 16, !tbaa !52
  %74 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 13
  invoke void @_ZN3JPH15PhysicsSettingsC2Ev(ptr noundef nonnull align 4 dereferenceable(83) %74)
          to label %75 unwind label %263

75:                                               ; preds = %69
  %76 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 15
  call void @_ZN3JPH12UnorderedMapINS_8RefConstINS_5ShapeEEENS_3RefINS_13DebugRenderer8GeometryEEENS_4HashIS3_EESt8equal_toIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %76) #9
  %77 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 16
  store ptr null, ptr %77, align 16, !tbaa !53
  %78 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 17
  store ptr null, ptr %78, align 8, !tbaa !54
  %79 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 18
  store ptr null, ptr %79, align 16, !tbaa !55
  %80 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 19
  store i32 0, ptr %80, align 8, !tbaa !56
  %81 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 20
  store i8 0, ptr %81, align 4, !tbaa !57
  %82 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 22
  store float -1.000000e+00, ptr %82, align 16, !tbaa !58
  %83 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 23
  store i8 0, ptr %83, align 4, !tbaa !59
  %84 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 24
  store i8 0, ptr %84, align 1, !tbaa !60
  %85 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 25
  store i8 0, ptr %85, align 2, !tbaa !61
  %86 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 26
  store i8 0, ptr %86, align 1, !tbaa !62
  %87 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 27
  call void @_ZN3JPH5ArrayIN10SamplesApp13PlayBackFrameENS_12STLAllocatorIS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %87) #9
  %88 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 28
  store i32 5, ptr %88, align 16, !tbaa !63
  %89 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 29
  store i32 -1, ptr %89, align 4, !tbaa !64
  %90 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 30
  store i32 0, ptr %90, align 8, !tbaa !65
  %91 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 31
  store i32 0, ptr %91, align 4, !tbaa !66
  %92 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 32
  store i8 0, ptr %92, align 16, !tbaa !67
  %93 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 34
  %94 = invoke { double, double } @_ZN3JPH4Vec34sOneEv()
          to label %95 unwind label %267

95:                                               ; preds = %75
  %96 = getelementptr inbounds %"class.JPH::Vec3", ptr %93, i32 0, i32 0
  %97 = getelementptr inbounds %union.anon, ptr %96, i32 0, i32 0
  %98 = getelementptr inbounds { double, double }, ptr %97, i32 0, i32 0
  %99 = extractvalue { double, double } %94, 0
  store double %99, ptr %98, align 16
  %100 = getelementptr inbounds { double, double }, ptr %97, i32 0, i32 1
  %101 = extractvalue { double, double } %94, 1
  store double %101, ptr %100, align 8
  %102 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 35
  store i8 1, ptr %102, align 16, !tbaa !68
  %103 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 36
  store i8 1, ptr %103, align 1, !tbaa !69
  %104 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 37
  store i8 0, ptr %104, align 2, !tbaa !70
  %105 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 38
  store i8 1, ptr %105, align 1, !tbaa !71
  %106 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 39
  store float 0.000000e+00, ptr %106, align 4, !tbaa !72
  %107 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 40
  store i8 1, ptr %107, align 8, !tbaa !73
  %108 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 41
  store i8 1, ptr %108, align 1, !tbaa !74
  %109 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 42
  store i8 0, ptr %109, align 2, !tbaa !75
  %110 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 43
  store i8 0, ptr %110, align 1, !tbaa !76
  %111 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 44
  store i32 10, ptr %111, align 4, !tbaa !77
  %112 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 45
  store i8 0, ptr %112, align 16, !tbaa !78
  %113 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 47
  store i32 0, ptr %113, align 4, !tbaa !79
  %114 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 48
  store float 2.000000e+01, ptr %114, align 8, !tbaa !80
  %115 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 49
  store i8 0, ptr %115, align 4, !tbaa !81
  %116 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 51
  store float 0x3FC99999A0000000, ptr %116, align 16, !tbaa !82
  %117 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 52
  store float 0.000000e+00, ptr %117, align 4, !tbaa !83
  %118 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 53
  store i8 0, ptr %118, align 8, !tbaa !84
  %119 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 55
  %120 = invoke { double, double } @_ZN3JPH4Vec34sOneEv()
          to label %121 unwind label %267

121:                                              ; preds = %95
  %122 = getelementptr inbounds %"class.JPH::Vec3", ptr %119, i32 0, i32 0
  %123 = getelementptr inbounds %union.anon, ptr %122, i32 0, i32 0
  %124 = getelementptr inbounds { double, double }, ptr %123, i32 0, i32 0
  %125 = extractvalue { double, double } %120, 0
  store double %125, ptr %124, align 16
  %126 = getelementptr inbounds { double, double }, ptr %123, i32 0, i32 1
  %127 = extractvalue { double, double } %120, 1
  store double %127, ptr %126, align 8
  %128 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 56
  store i8 0, ptr %128, align 16, !tbaa !85
  %129 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 58
  store ptr null, ptr %129, align 8, !tbaa !86
  %130 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 59
  invoke void @_ZN3JPH6BodyIDC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %130)
          to label %131 unwind label %267

131:                                              ; preds = %121
  %132 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 61
  invoke void @_ZN3JPH3RefINS_10ConstraintEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132)
          to label %133 unwind label %267

133:                                              ; preds = %131
  %134 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 62
  store i32 -1, ptr %134, align 16, !tbaa !87
  %135 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 63
  store float 0.000000e+00, ptr %135, align 4, !tbaa !88
  %136 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 65
  store i32 0, ptr %136, align 4, !tbaa !89
  %137 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 66
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  store i32 0, ptr %7, align 4, !tbaa !90
  invoke void @_ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %138 unwind label %271

138:                                              ; preds = %133
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  %139 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 2
  %140 = load float, ptr %139, align 4, !tbaa !46
  invoke void @_ZN11Application18SetRenderFrequencyEf(ptr noundef nonnull align 16 dereferenceable(272) %59, float noundef %140)
          to label %141 unwind label %275

141:                                              ; preds = %138
  %142 = invoke noundef ptr @_ZN3JPH17TempAllocatorImplnwEm(i64 noundef 32)
          to label %143 unwind label %275

143:                                              ; preds = %141
  invoke void @_ZN3JPH17TempAllocatorImplC2Em(ptr noundef nonnull align 8 dereferenceable(32) %142, i64 noundef 33554432)
          to label %144 unwind label %279

144:                                              ; preds = %143
  %145 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 5
  store ptr %142, ptr %145, align 16, !tbaa !48
  %146 = invoke noundef ptr @_ZN3JPH19JobSystemThreadPoolnwEmSt11align_val_t(i64 noundef 8768, i64 noundef 64)
          to label %147 unwind label %275

147:                                              ; preds = %144
  %148 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 1
  %149 = load i32, ptr %148, align 16, !tbaa !11
  %150 = sub nsw i32 %149, 1
  invoke void @_ZN3JPH19JobSystemThreadPoolC1Ejji(ptr noundef nonnull align 64 dereferenceable(8768) %146, i32 noundef 2048, i32 noundef 8, i32 noundef %150)
          to label %151 unwind label %283

151:                                              ; preds = %147
  %152 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 6
  store ptr %146, ptr %152, align 8, !tbaa !49
  %153 = invoke noundef ptr @_ZN3JPH23JobSystemSingleThreadednwEmSt11align_val_t(i64 noundef 256, i64 noundef 64)
          to label %154 unwind label %275

154:                                              ; preds = %151
  invoke void @_ZN3JPH23JobSystemSingleThreadedC2Ej(ptr noundef nonnull align 64 dereferenceable(256) %153, i32 noundef 2048)
          to label %155 unwind label %287

155:                                              ; preds = %154
  %156 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 7
  store ptr %153, ptr %156, align 16, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #9
  invoke void @_ZN23DisableCustomMemoryHookC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %157 unwind label %291

157:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %158 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %159 = load ptr, ptr %158, align 8, !tbaa !91
  %160 = invoke noundef ptr @_ZN7DebugUI10CreateMenuEv(ptr noundef nonnull align 8 dereferenceable(24) %159)
          to label %161 unwind label %295

161:                                              ; preds = %157
  store ptr %160, ptr %9, align 8, !tbaa !5
  %162 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %163 = load ptr, ptr %162, align 8, !tbaa !91
  %164 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef @.str.129) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %165 = getelementptr inbounds %class.anon, ptr %12, i32 0, i32 0
  store ptr %59, ptr %165, align 8, !tbaa !92
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #9
  %166 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %163, ptr noundef %164, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %11)
          to label %167 unwind label %299

167:                                              ; preds = %161
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #9
  %168 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %169 = load ptr, ptr %168, align 8, !tbaa !91
  %170 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef @.str.130) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %171 = getelementptr inbounds %class.anon.18, ptr %15, i32 0, i32 0
  store ptr %59, ptr %171, align 8, !tbaa !94
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #9
  %172 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %169, ptr noundef %170, ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef %14)
          to label %173 unwind label %303

173:                                              ; preds = %167
  %174 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 18
  store ptr %172, ptr %174, align 16, !tbaa !55
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #9
  %175 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %176 = load ptr, ptr %175, align 8, !tbaa !91
  %177 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef @.str.131) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %178 = getelementptr inbounds %class.anon.19, ptr %18, i32 0, i32 0
  store ptr %59, ptr %178, align 8, !tbaa !96
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  %179 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %176, ptr noundef %177, ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef %17)
          to label %180 unwind label %307

180:                                              ; preds = %173
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #9
  %181 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %182 = load ptr, ptr %181, align 8, !tbaa !91
  %183 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef @.str.132) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %184 = getelementptr inbounds %class.anon.20, ptr %21, i32 0, i32 0
  store ptr %59, ptr %184, align 8, !tbaa !98
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  %185 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %182, ptr noundef %183, ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef %20)
          to label %186 unwind label %311

186:                                              ; preds = %180
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #9
  %187 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %188 = load ptr, ptr %187, align 8, !tbaa !91
  %189 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef @.str.133) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %190 = getelementptr inbounds %class.anon.21, ptr %24, i32 0, i32 0
  store ptr %59, ptr %190, align 8, !tbaa !100
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #9
  %191 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %188, ptr noundef %189, ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef %23)
          to label %192 unwind label %315

192:                                              ; preds = %186
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #9
  %193 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %194 = load ptr, ptr %193, align 8, !tbaa !91
  %195 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef @.str.134) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %196 = getelementptr inbounds %class.anon.22, ptr %27, i32 0, i32 0
  store ptr %59, ptr %196, align 8, !tbaa !102
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  %197 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %194, ptr noundef %195, ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef %26)
          to label %198 unwind label %319

198:                                              ; preds = %192
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #9
  %199 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %200 = load ptr, ptr %199, align 8, !tbaa !91
  %201 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef @.str.135) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %202 = getelementptr inbounds %class.anon.23, ptr %30, i32 0, i32 0
  store ptr %59, ptr %202, align 8, !tbaa !104
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  %203 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %200, ptr noundef %201, ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef %29)
          to label %204 unwind label %323

204:                                              ; preds = %198
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #9
  %205 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %206 = load ptr, ptr %205, align 8, !tbaa !91
  %207 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef @.str.136) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %208 = getelementptr inbounds %class.anon.24, ptr %33, i32 0, i32 0
  store ptr %59, ptr %208, align 8, !tbaa !106
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  %209 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %206, ptr noundef %207, ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef %32)
          to label %210 unwind label %327

210:                                              ; preds = %204
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #9
  %211 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %212 = load ptr, ptr %211, align 8, !tbaa !91
  %213 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef @.str.137) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %214 = getelementptr inbounds %class.anon.25, ptr %36, i32 0, i32 0
  store ptr %59, ptr %214, align 8, !tbaa !108
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #9
  %215 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %212, ptr noundef %213, ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef %35)
          to label %216 unwind label %331

216:                                              ; preds = %210
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #9
  %217 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %218 = load ptr, ptr %217, align 8, !tbaa !91
  %219 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef @.str.138) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %220 = getelementptr inbounds %class.anon.26, ptr %39, i32 0, i32 0
  store ptr %59, ptr %220, align 8, !tbaa !110
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  %221 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %218, ptr noundef %219, ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef %38)
          to label %222 unwind label %335

222:                                              ; preds = %216
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #9
  %223 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %224 = load ptr, ptr %223, align 8, !tbaa !91
  %225 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef @.str.139) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %226 = getelementptr inbounds %class.anon.27, ptr %42, i32 0, i32 0
  store ptr %59, ptr %226, align 8, !tbaa !112
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #9
  %227 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %224, ptr noundef %225, ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef %41)
          to label %228 unwind label %339

228:                                              ; preds = %222
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #9
  %229 = getelementptr inbounds %class.Application, ptr %59, i32 0, i32 11
  %230 = load ptr, ptr %229, align 8, !tbaa !91
  %231 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN7DebugUI8ShowMenuEP9UIElement(ptr noundef nonnull align 8 dereferenceable(24) %230, ptr noundef %231)
          to label %232 unwind label %295

232:                                              ; preds = %228
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @_ZN23DisableCustomMemoryHookD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #9
  %233 = load ptr, ptr %4, align 8, !tbaa !5
  %234 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %233) #9
  %235 = getelementptr inbounds { i64, ptr }, ptr %44, i32 0, i32 0
  %236 = extractvalue { i64, ptr } %234, 0
  store i64 %236, ptr %235, align 8
  %237 = getelementptr inbounds { i64, ptr }, ptr %44, i32 0, i32 1
  %238 = extractvalue { i64, ptr } %234, 1
  store ptr %238, ptr %237, align 8
  invoke void @_ZN3JPH7ToLowerB5cxx11ERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %239 unwind label %345

239:                                              ; preds = %232
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %45) #9
  call void @_ZN3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #9
  %240 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  %241 = getelementptr inbounds { i64, ptr }, ptr %46, i32 0, i32 0
  %242 = extractvalue { i64, ptr } %240, 0
  store i64 %242, ptr %241, align 8
  %243 = getelementptr inbounds { i64, ptr }, ptr %46, i32 0, i32 1
  %244 = extractvalue { i64, ptr } %240, 1
  store ptr %244, ptr %243, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #9
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef @.str.140) #9
  invoke void @_ZN3JPH14StringToVectorERKSt17basic_string_viewIcSt11char_traitsIcEERNS_5ArrayINSt7__cxx1112basic_stringIcS2_NS_12STLAllocatorIcEEEENS9_ISB_EEEES5_b(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 8 dereferenceable(16) %47, i1 noundef zeroext true)
          to label %245 unwind label %349

245:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #9
  %246 = invoke noundef i64 @_ZNK3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %247 unwind label %353

247:                                              ; preds = %245
  %248 = icmp eq i64 %246, 2
  br i1 %248, label %249, label %428

249:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #9
  %250 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef 1)
          to label %251 unwind label %357

251:                                              ; preds = %249
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %250)
          to label %252 unwind label %357

252:                                              ; preds = %251
  %253 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.141)
          to label %254 unwind label %361

254:                                              ; preds = %252
  br i1 %253, label %255, label %365

255:                                              ; preds = %254
  %256 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 26
  store i8 1, ptr %256, align 1, !tbaa !62
  %257 = getelementptr inbounds %class.SamplesApp, ptr %59, i32 0, i32 23
  store i8 1, ptr %257, align 4, !tbaa !59
  invoke void @_ZN10SamplesApp11RunAllTestsEv(ptr noundef nonnull align 16 dereferenceable(712) %59)
          to label %258 unwind label %361

258:                                              ; preds = %255
  br label %425

259:                                              ; preds = %2
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %5, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %6, align 4
  br label %438

263:                                              ; preds = %69
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %5, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %6, align 4
  br label %437

267:                                              ; preds = %131, %121, %95, %75
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %5, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %6, align 4
  br label %436

271:                                              ; preds = %133
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %5, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %435

275:                                              ; preds = %151, %144, %141, %138
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %5, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %6, align 4
  br label %435

279:                                              ; preds = %143
  %280 = landingpad { ptr, i32 }
          cleanup
  %281 = extractvalue { ptr, i32 } %280, 0
  store ptr %281, ptr %5, align 8
  %282 = extractvalue { ptr, i32 } %280, 1
  store i32 %282, ptr %6, align 4
  call void @_ZN3JPH17TempAllocatorImpldlEPv(ptr noundef %142) #9
  br label %435

283:                                              ; preds = %147
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %5, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %6, align 4
  call void @_ZN3JPH19JobSystemThreadPooldlEPvSt11align_val_t(ptr noundef %146, i64 noundef 64) #9
  br label %435

287:                                              ; preds = %154
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %5, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %6, align 4
  call void @_ZN3JPH23JobSystemSingleThreadeddlEPvSt11align_val_t(ptr noundef %153, i64 noundef 64) #9
  br label %435

291:                                              ; preds = %155
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %5, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %6, align 4
  br label %344

295:                                              ; preds = %228, %157
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %5, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %6, align 4
  br label %343

299:                                              ; preds = %161
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %5, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #9
  br label %343

303:                                              ; preds = %167
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %5, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #9
  br label %343

307:                                              ; preds = %173
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %5, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #9
  br label %343

311:                                              ; preds = %180
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %5, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #9
  br label %343

315:                                              ; preds = %186
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %5, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #9
  br label %343

319:                                              ; preds = %192
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %5, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #9
  br label %343

323:                                              ; preds = %198
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %5, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #9
  br label %343

327:                                              ; preds = %204
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %5, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #9
  br label %343

331:                                              ; preds = %210
  %332 = landingpad { ptr, i32 }
          cleanup
  %333 = extractvalue { ptr, i32 } %332, 0
  store ptr %333, ptr %5, align 8
  %334 = extractvalue { ptr, i32 } %332, 1
  store i32 %334, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #9
  br label %343

335:                                              ; preds = %216
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %5, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #9
  br label %343

339:                                              ; preds = %222
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %5, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %6, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #9
  br label %343

343:                                              ; preds = %339, %335, %331, %327, %323, %319, %315, %311, %307, %303, %299, %295
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @_ZN23DisableCustomMemoryHookD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  br label %344

344:                                              ; preds = %343, %291
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #9
  br label %435

345:                                              ; preds = %232
  %346 = landingpad { ptr, i32 }
          cleanup
  %347 = extractvalue { ptr, i32 } %346, 0
  store ptr %347, ptr %5, align 8
  %348 = extractvalue { ptr, i32 } %346, 1
  store i32 %348, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #9
  br label %434

349:                                              ; preds = %239
  %350 = landingpad { ptr, i32 }
          cleanup
  %351 = extractvalue { ptr, i32 } %350, 0
  store ptr %351, ptr %5, align 8
  %352 = extractvalue { ptr, i32 } %350, 1
  store i32 %352, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #9
  br label %433

353:                                              ; preds = %430, %428, %245
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %5, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %6, align 4
  br label %433

357:                                              ; preds = %251, %249
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %5, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %6, align 4
  br label %427

361:                                              ; preds = %255, %252
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %5, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %6, align 4
  br label %426

365:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %366 = invoke noundef ptr @_Z13GetRTTIOfTypeP13CreateRigTest(ptr noundef null)
          to label %367 unwind label %373

367:                                              ; preds = %365
  store ptr %366, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  store ptr @_ZL14sAllCategories, ptr %50, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  store ptr @_ZL14sAllCategories, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  store ptr getelementptr inbounds (%struct.TestCategory, ptr @_ZL14sAllCategories, i64 12), ptr %52, align 8, !tbaa !5
  br label %368

368:                                              ; preds = %418, %367
  %369 = load ptr, ptr %51, align 8, !tbaa !5
  %370 = load ptr, ptr %52, align 8, !tbaa !5
  %371 = icmp ne ptr %369, %370
  br i1 %371, label %377, label %372

372:                                              ; preds = %368
  store i32 2, ptr %53, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %421

373:                                              ; preds = %421, %365
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %5, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %6, align 4
  br label %424

377:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %378 = load ptr, ptr %51, align 8, !tbaa !5
  store ptr %378, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  store i32 0, ptr %55, align 4, !tbaa !90
  br label %379

379:                                              ; preds = %413, %377
  %380 = load i32, ptr %55, align 4, !tbaa !90
  %381 = zext i32 %380 to i64
  %382 = load ptr, ptr %54, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.TestCategory, ptr %382, i32 0, i32 2
  %384 = load i64, ptr %383, align 8, !tbaa !114
  %385 = icmp ult i64 %381, %384
  br i1 %385, label %387, label %386

386:                                              ; preds = %379
  store i32 4, ptr %53, align 4
  br label %416

387:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %388 = load ptr, ptr %54, align 8, !tbaa !5
  %389 = getelementptr inbounds %struct.TestCategory, ptr %388, i32 0, i32 1
  %390 = load ptr, ptr %389, align 8, !tbaa !116
  %391 = load i32, ptr %55, align 4, !tbaa !90
  %392 = zext i32 %391 to i64
  %393 = getelementptr inbounds %struct.TestNameAndRTTI, ptr %390, i64 %392
  store ptr %393, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #9
  %394 = load ptr, ptr %56, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.TestNameAndRTTI, ptr %394, i32 0, i32 1
  %396 = load ptr, ptr %395, align 8, !tbaa !117
  %397 = invoke noundef ptr @_ZNK3JPH4RTTI7GetNameEv(ptr noundef nonnull align 8 dereferenceable(104) %396)
          to label %398 unwind label %405

398:                                              ; preds = %387
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef %397) #9
  invoke void @_ZN3JPH7ToLowerB5cxx11ERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(16) %58)
          to label %399 unwind label %405

399:                                              ; preds = %398
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #9
  %400 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESC_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br i1 %400, label %401, label %409

401:                                              ; preds = %399
  %402 = load ptr, ptr %56, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.TestNameAndRTTI, ptr %402, i32 0, i32 1
  %404 = load ptr, ptr %403, align 8, !tbaa !117
  store ptr %404, ptr %49, align 8, !tbaa !5
  store i32 4, ptr %53, align 4
  br label %410

405:                                              ; preds = %398, %387
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %5, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %424

409:                                              ; preds = %399
  store i32 0, ptr %53, align 4
  br label %410

410:                                              ; preds = %409, %401
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  %411 = load i32, ptr %53, align 4
  switch i32 %411, label %416 [
    i32 0, label %412
  ]

412:                                              ; preds = %410
  br label %413

413:                                              ; preds = %412
  %414 = load i32, ptr %55, align 4, !tbaa !90
  %415 = add i32 %414, 1
  store i32 %415, ptr %55, align 4, !tbaa !90
  br label %379, !llvm.loop !119

416:                                              ; preds = %410, %386
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %417

417:                                              ; preds = %416
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  br label %418

418:                                              ; preds = %417
  %419 = load ptr, ptr %51, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.TestCategory, ptr %419, i32 1
  store ptr %420, ptr %51, align 8, !tbaa !5
  br label %368

421:                                              ; preds = %372
  %422 = load ptr, ptr %49, align 8, !tbaa !5
  invoke void @_ZN10SamplesApp9StartTestEPKN3JPH4RTTIE(ptr noundef nonnull align 16 dereferenceable(712) %59, ptr noundef %422)
          to label %423 unwind label %373

423:                                              ; preds = %421
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %425

424:                                              ; preds = %405, %373
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %426

425:                                              ; preds = %423, %258
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  br label %432

426:                                              ; preds = %424, %361
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %427

427:                                              ; preds = %426, %357
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  br label %433

428:                                              ; preds = %247
  %429 = invoke noundef ptr @_Z13GetRTTIOfTypeP13CreateRigTest(ptr noundef null)
          to label %430 unwind label %353

430:                                              ; preds = %428
  invoke void @_ZN10SamplesApp9StartTestEPKN3JPH4RTTIE(ptr noundef nonnull align 16 dereferenceable(712) %59, ptr noundef %429)
          to label %431 unwind label %353

431:                                              ; preds = %430
  br label %432

432:                                              ; preds = %431, %425
  call void @_ZN3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #9
  ret void

433:                                              ; preds = %427, %353, %349
  call void @_ZN3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %434

434:                                              ; preds = %433, %345
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #9
  br label %435

435:                                              ; preds = %434, %344, %287, %283, %279, %275, %271
  call void @_ZN3JPH3RefINS_10ConstraintEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %132) #9
  br label %436

436:                                              ; preds = %435, %267
  call void @_ZN3JPH5ArrayIN10SamplesApp13PlayBackFrameENS_12STLAllocatorIS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %87) #9
  call void @_ZN3JPH9HashTableINS_8RefConstINS_5ShapeEEESt4pairIS3_NS_3RefINS_13DebugRenderer8GeometryEEEENS_18UnorderedMapDetailIS3_S8_EENS_4HashIS3_EESt8equal_toIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %76) #9
  br label %437

437:                                              ; preds = %436, %263
  call void @_ZN3JPH21ObjectLayerPairFilterD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71) #9
  call void @_ZN3JPH29ObjectVsBroadPhaseLayerFilterD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %70) #9
  call void @_ZN3JPH24BroadPhaseLayerInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %68) #9
  br label %438

438:                                              ; preds = %437, %259
  call void @_ZN11ApplicationD2Ev(ptr noundef nonnull align 16 dereferenceable(272) %59) #9
  br label %439

439:                                              ; preds = %438
  %440 = load ptr, ptr %5, align 8
  %441 = load i32, ptr %6, align 4
  %442 = insertvalue { ptr, i32 } poison, ptr %440, 0
  %443 = insertvalue { ptr, i32 } %442, i32 %441, 1
  resume { ptr, i32 } %443
}

declare void @_ZN11ApplicationC2EPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEE(ptr noundef nonnull align 16 dereferenceable(272), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

; Function Attrs: nounwind
declare noundef i32 @_ZNSt6thread20hardware_concurrencyEv() #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3JPH15PhysicsSettingsC2Ev(ptr noundef nonnull align 4 dereferenceable(83)) unnamed_addr #6 align 2

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Vec34sOneEv() #7 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11Application18SetRenderFrequencyEf(ptr noundef nonnull align 16 dereferenceable(272), float noundef) #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH17TempAllocatorImplnwEm(i64 noundef) #7 align 2

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH17TempAllocatorImpldlEPv(ptr noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH19JobSystemThreadPoolnwEmSt11align_val_t(i64 noundef, i64 noundef) #7 align 2

declare void @_ZN3JPH19JobSystemThreadPoolC1Ejji(ptr noundef nonnull align 64 dereferenceable(8768), i32 noundef, i32 noundef, i32 noundef) unnamed_addr #1

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH19JobSystemThreadPooldlEPvSt11align_val_t(ptr noundef, i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH23JobSystemSingleThreadednwEmSt11align_val_t(i64 noundef, i64 noundef) #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH23JobSystemSingleThreadedC2Ej(ptr noundef nonnull align 64 dereferenceable(256), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH23JobSystemSingleThreadeddlEPvSt11align_val_t(ptr noundef, i64 noundef) #8 align 2

declare void @_ZN23DisableCustomMemoryHookC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1

declare noundef ptr @_ZN7DebugUI10CreateMenuEv(ptr noundef nonnull align 8 dereferenceable(24)) #1

declare noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

declare void @_ZN7DebugUI8ShowMenuEP9UIElement(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) #1

; Function Attrs: nounwind
declare void @_ZN23DisableCustomMemoryHookD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3

declare void @_ZN3JPH7ToLowerB5cxx11ERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

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

declare void @_ZN3JPH14StringToVectorERKSt17basic_string_viewIcSt11char_traitsIcEERNS_5ArrayINSt7__cxx1112basic_stringIcS2_NS_12STLAllocatorIcEEEENS9_ISB_EEEES5_b(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SamplesApp11RunAllTestsEv(ptr noundef nonnull align 16 dereferenceable(712)) #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SamplesApp9StartTestEPKN3JPH4RTTIE(ptr noundef nonnull align 16 dereferenceable(712), ptr noundef) #2 align 2

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare void @_ZN11ApplicationD2Ev(ptr noundef nonnull align 16 dereferenceable(272)) unnamed_addr #3

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !24, i64 272}
!12 = !{!"_ZTS10SamplesApp", !13, i64 0, !24, i64 272, !16, i64 276, !24, i64 280, !6, i64 288, !6, i64 296, !6, i64 304, !25, i64 312, !27, i64 328, !29, i64 336, !6, i64 344, !6, i64 352, !31, i64 360, !32, i64 448, !6, i64 480, !6, i64 488, !6, i64 496, !24, i64 504, !23, i64 508, !16, i64 512, !23, i64 516, !23, i64 517, !23, i64 518, !23, i64 519, !34, i64 520, !35, i64 544, !24, i64 548, !36, i64 552, !37, i64 556, !23, i64 560, !15, i64 576, !38, i64 592, !38, i64 593, !39, i64 594, !40, i64 595, !16, i64 596, !23, i64 600, !23, i64 601, !23, i64 602, !23, i64 603, !24, i64 604, !23, i64 608, !41, i64 612, !16, i64 616, !42, i64 620, !16, i64 624, !16, i64 628, !23, i64 632, !15, i64 640, !23, i64 656, !6, i64 664, !43, i64 672, !44, i64 680, !24, i64 688, !16, i64 692, !16, i64 696, !24, i64 700, !45, i64 704}
!13 = !{!"_ZTS11Application", !14, i64 16, !14, i64 80, !6, i64 144, !6, i64 152, !6, i64 160, !17, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !18, i64 208, !21, i64 240, !23, i64 248, !23, i64 249, !23, i64 250, !23, i64 251, !16, i64 252, !16, i64 256, !16, i64 260, !16, i64 264, !24, i64 268}
!14 = !{!"_ZTS11CameraState", !15, i64 0, !15, i64 16, !15, i64 32, !16, i64 48}
!15 = !{!"_ZTSN3JPH4Vec3E", !7, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!"_ZTSN3JPH8RefConstI4FontEE", !6, i64 0}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEE", !19, i64 0, !20, i64 8, !7, i64 16}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEE12_Alloc_hiderE", !6, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"_ZTSNSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEEE", !22, i64 0}
!22 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE", !20, i64 0}
!23 = !{!"bool", !7, i64 0}
!24 = !{!"int", !7, i64 0}
!25 = !{!"_ZTS20BPLayerInterfaceImpl", !26, i64 0, !7, i64 8}
!26 = !{!"_ZTSN3JPH24BroadPhaseLayerInterfaceE"}
!27 = !{!"_ZTS33ObjectVsBroadPhaseLayerFilterImpl", !28, i64 0}
!28 = !{!"_ZTSN3JPH29ObjectVsBroadPhaseLayerFilterE"}
!29 = !{!"_ZTS25ObjectLayerPairFilterImpl", !30, i64 0}
!30 = !{!"_ZTSN3JPH21ObjectLayerPairFilterE"}
!31 = !{!"_ZTSN3JPH15PhysicsSettingsE", !24, i64 0, !24, i64 4, !24, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !16, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !24, i64 56, !24, i64 60, !16, i64 64, !16, i64 68, !16, i64 72, !23, i64 76, !23, i64 77, !23, i64 78, !23, i64 79, !23, i64 80, !23, i64 81, !23, i64 82}
!32 = !{!"_ZTSN3JPH12UnorderedMapINS_8RefConstINS_5ShapeEEENS_3RefINS_13DebugRenderer8GeometryEEENS_4HashIS3_EESt8equal_toIS3_EEE", !33, i64 0}
!33 = !{!"_ZTSN3JPH9HashTableINS_8RefConstINS_5ShapeEEESt4pairIS3_NS_3RefINS_13DebugRenderer8GeometryEEEENS_18UnorderedMapDetailIS3_S8_EENS_4HashIS3_EESt8equal_toIS3_EEE", !6, i64 0, !6, i64 8, !24, i64 16, !24, i64 20, !24, i64 24}
!34 = !{!"_ZTSN3JPH5ArrayIN10SamplesApp13PlayBackFrameENS_12STLAllocatorIS2_EEEE", !20, i64 0, !20, i64 8, !6, i64 16}
!35 = !{!"_ZTSN10SamplesApp13EPlaybackModeE", !7, i64 0}
!36 = !{!"_ZTSN10SamplesApp10EProbeModeE", !7, i64 0}
!37 = !{!"_ZTSN10SamplesApp11EProbeShapeE", !7, i64 0}
!38 = !{!"_ZTSN3JPH13EBackFaceModeE", !7, i64 0}
!39 = !{!"_ZTSN3JPH15EActiveEdgeModeE", !7, i64 0}
!40 = !{!"_ZTSN3JPH17ECollectFacesModeE", !7, i64 0}
!41 = !{!"_ZTSN10SamplesApp17EShootObjectShapeE", !7, i64 0}
!42 = !{!"_ZTSN3JPH14EMotionQualityE", !7, i64 0}
!43 = !{!"_ZTSN3JPH6BodyIDE", !24, i64 0}
!44 = !{!"_ZTSN3JPH3RefINS_10ConstraintEEE", !6, i64 0}
!45 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEE", !20, i64 0}
!46 = !{!12, !16, i64 276}
!47 = !{!12, !24, i64 280}
!48 = !{!12, !6, i64 288}
!49 = !{!12, !6, i64 296}
!50 = !{!12, !6, i64 304}
!51 = !{!12, !6, i64 344}
!52 = !{!12, !6, i64 352}
!53 = !{!12, !6, i64 480}
!54 = !{!12, !6, i64 488}
!55 = !{!12, !6, i64 496}
!56 = !{!12, !24, i64 504}
!57 = !{!12, !23, i64 508}
!58 = !{!12, !16, i64 512}
!59 = !{!12, !23, i64 516}
!60 = !{!12, !23, i64 517}
!61 = !{!12, !23, i64 518}
!62 = !{!12, !23, i64 519}
!63 = !{!12, !35, i64 544}
!64 = !{!12, !24, i64 548}
!65 = !{!12, !36, i64 552}
!66 = !{!12, !37, i64 556}
!67 = !{!12, !23, i64 560}
!68 = !{!12, !38, i64 592}
!69 = !{!12, !38, i64 593}
!70 = !{!12, !39, i64 594}
!71 = !{!12, !40, i64 595}
!72 = !{!12, !16, i64 596}
!73 = !{!12, !23, i64 600}
!74 = !{!12, !23, i64 601}
!75 = !{!12, !23, i64 602}
!76 = !{!12, !23, i64 603}
!77 = !{!12, !24, i64 604}
!78 = !{!12, !23, i64 608}
!79 = !{!12, !41, i64 612}
!80 = !{!12, !16, i64 616}
!81 = !{!12, !42, i64 620}
!82 = !{!12, !16, i64 624}
!83 = !{!12, !16, i64 628}
!84 = !{!12, !23, i64 632}
!85 = !{!12, !23, i64 656}
!86 = !{!12, !6, i64 664}
!87 = !{!12, !24, i64 688}
!88 = !{!12, !16, i64 692}
!89 = !{!12, !24, i64 700}
!90 = !{!24, !24, i64 0}
!91 = !{!13, !6, i64 200}
!92 = !{!93, !6, i64 0}
!93 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_0", !6, i64 0}
!94 = !{!95, !6, i64 0}
!95 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_1", !6, i64 0}
!96 = !{!97, !6, i64 0}
!97 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_2", !6, i64 0}
!98 = !{!99, !6, i64 0}
!99 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_3", !6, i64 0}
!100 = !{!101, !6, i64 0}
!101 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_4", !6, i64 0}
!102 = !{!103, !6, i64 0}
!103 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_5", !6, i64 0}
!104 = !{!105, !6, i64 0}
!105 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_6", !6, i64 0}
!106 = !{!107, !6, i64 0}
!107 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_7", !6, i64 0}
!108 = !{!109, !6, i64 0}
!109 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_8", !6, i64 0}
!110 = !{!111, !6, i64 0}
!111 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_9", !6, i64 0}
!112 = !{!113, !6, i64 0}
!113 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE4$_10", !6, i64 0}
!114 = !{!115, !20, i64 16}
!115 = !{!"_ZTS12TestCategory", !6, i64 0, !6, i64 8, !20, i64 16}
!116 = !{!115, !6, i64 8}
!117 = !{!118, !6, i64 8}
!118 = !{!"_ZTS15TestNameAndRTTI", !6, i64 0, !6, i64 8}
!119 = distinct !{!119, !120}
!120 = !{!"llvm.loop.mustprogress"}


; 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"

%struct.TestCategory = type { ptr, ptr, i64 }
%struct.DisableCustomMemoryHook = type { i8 }
%"class.std::basic_string_view" = type { i64, ptr }
%"class.std::function.16" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { ptr }
%class.anon.18 = type { ptr }
%class.anon.19 = type { ptr }
%class.anon.20 = type { ptr }
%class.anon.21 = type { ptr }
%class.anon.22 = type { ptr }
%class.anon.23 = type { ptr }
%class.anon.24 = type { ptr }
%class.anon.25 = type { ptr }
%class.anon.26 = type { ptr }
%class.anon.27 = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, JPH::STLAllocator<char>>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, JPH::STLAllocator<char>>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"class.JPH::Array.28" = type { i64, i64, ptr }
%struct.TestNameAndRTTI = type { ptr, ptr }

@.str.128 = external hidden unnamed_addr constant [21 x i8], align 1
@_ZTV10SamplesApp = external dso_local unnamed_addr constant { [8 x ptr] }, align 8
@.str.129 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZL14sAllCategories = external hidden local_unnamed_addr global [12 x %struct.TestCategory], align 16

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

declare i32 @__gxx_personality_v0(...)

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

declare noundef ptr @_Z13GetRTTIOfTypeP13CreateRigTest(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10SamplesAppC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEE(ptr noundef nonnull align 16 dereferenceable(712) %0, ptr noundef nonnull align 8 dereferenceable(32) %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca %struct.DisableCustomMemoryHook, align 1
  %5 = alloca %"class.std::basic_string_view", align 8
  %6 = alloca %"class.std::function.16", align 8
  %7 = alloca %class.anon, align 8
  %8 = alloca %"class.std::basic_string_view", align 8
  %9 = alloca %"class.std::function.16", align 8
  %10 = alloca %class.anon.18, align 8
  %11 = alloca %"class.std::basic_string_view", align 8
  %12 = alloca %"class.std::function.16", align 8
  %13 = alloca %class.anon.19, align 8
  %14 = alloca %"class.std::basic_string_view", align 8
  %15 = alloca %"class.std::function.16", align 8
  %16 = alloca %class.anon.20, align 8
  %17 = alloca %"class.std::basic_string_view", align 8
  %18 = alloca %"class.std::function.16", align 8
  %19 = alloca %class.anon.21, align 8
  %20 = alloca %"class.std::basic_string_view", align 8
  %21 = alloca %"class.std::function.16", align 8
  %22 = alloca %class.anon.22, align 8
  %23 = alloca %"class.std::basic_string_view", align 8
  %24 = alloca %"class.std::function.16", align 8
  %25 = alloca %class.anon.23, align 8
  %26 = alloca %"class.std::basic_string_view", align 8
  %27 = alloca %"class.std::function.16", align 8
  %28 = alloca %class.anon.24, align 8
  %29 = alloca %"class.std::basic_string_view", align 8
  %30 = alloca %"class.std::function.16", align 8
  %31 = alloca %class.anon.25, align 8
  %32 = alloca %"class.std::basic_string_view", align 8
  %33 = alloca %"class.std::function.16", align 8
  %34 = alloca %class.anon.26, align 8
  %35 = alloca %"class.std::basic_string_view", align 8
  %36 = alloca %"class.std::function.16", align 8
  %37 = alloca %class.anon.27, align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::basic_string_view", align 8
  %40 = alloca %"class.JPH::Array.28", align 8
  %41 = alloca %"class.std::basic_string_view", align 8
  %42 = alloca %"class.std::basic_string_view", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::basic_string_view", align 8
  tail call void @_ZN11ApplicationC2EPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEE(ptr noundef nonnull align 16 dereferenceable(272) %0, ptr noundef nonnull @.str.128, ptr noundef nonnull align 8 dereferenceable(32) %1)
  store ptr getelementptr inbounds inrange(-16, 48) (i8, ptr @_ZTV10SamplesApp, i64 16), ptr %0, align 16, !tbaa !5
  %46 = getelementptr inbounds i8, ptr %0, i64 272
  %47 = tail call noundef i32 @_ZNSt6thread20hardware_concurrencyEv() #10
  store i32 %47, ptr %46, align 16, !tbaa !8
  %48 = getelementptr inbounds i8, ptr %0, i64 276
  store float 6.000000e+01, ptr %48, align 4, !tbaa !45
  %49 = getelementptr inbounds i8, ptr %0, i64 280
  store i32 1, ptr %49, align 8, !tbaa !46
  %50 = getelementptr inbounds i8, ptr %0, i64 288
  %51 = getelementptr inbounds i8, ptr %0, i64 296
  %52 = getelementptr inbounds i8, ptr %0, i64 304
  %53 = getelementptr inbounds i8, ptr %0, i64 312
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %50, i8 0, i64 24, i1 false)
  tail call void @_ZN20BPLayerInterfaceImplC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53)
  %54 = getelementptr inbounds i8, ptr %0, i64 328
  tail call void @_ZN33ObjectVsBroadPhaseLayerFilterImplC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #10
  %55 = getelementptr inbounds i8, ptr %0, i64 336
  tail call void @_ZN25ObjectLayerPairFilterImplC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  %56 = getelementptr inbounds i8, ptr %0, i64 344
  %57 = getelementptr inbounds i8, ptr %0, i64 360
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %56, i8 0, i64 16, i1 false)
  invoke void @_ZN3JPH15PhysicsSettingsC2Ev(ptr noundef nonnull align 4 dereferenceable(83) %57)
          to label %58 unwind label %169

58:                                               ; preds = %2
  %59 = getelementptr inbounds i8, ptr %0, i64 448
  tail call void @_ZN3JPH12UnorderedMapINS_8RefConstINS_5ShapeEEENS_3RefINS_13DebugRenderer8GeometryEEENS_4HashIS3_EESt8equal_toIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %59) #10
  %60 = getelementptr inbounds i8, ptr %0, i64 480
  %61 = getelementptr inbounds i8, ptr %0, i64 496
  %62 = getelementptr inbounds i8, ptr %0, i64 512
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(29) %60, i8 0, i64 29, i1 false)
  store float -1.000000e+00, ptr %62, align 16, !tbaa !47
  %63 = getelementptr inbounds i8, ptr %0, i64 516
  %64 = getelementptr inbounds i8, ptr %0, i64 519
  %65 = getelementptr inbounds i8, ptr %0, i64 520
  store i32 0, ptr %63, align 4
  tail call void @_ZN3JPH5ArrayIN10SamplesApp13PlayBackFrameENS_12STLAllocatorIS2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #10
  %66 = getelementptr inbounds i8, ptr %0, i64 544
  store i32 5, ptr %66, align 16, !tbaa !48
  %67 = getelementptr inbounds i8, ptr %0, i64 548
  store i32 -1, ptr %67, align 4, !tbaa !49
  %68 = getelementptr inbounds i8, ptr %0, i64 552
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %68, i8 0, i64 9, i1 false)
  %69 = invoke { double, double } @_ZN3JPH4Vec34sOneEv()
          to label %70 unwind label %171

70:                                               ; preds = %58
  %71 = getelementptr inbounds i8, ptr %0, i64 576
  %72 = extractvalue { double, double } %69, 0
  store double %72, ptr %71, align 16
  %73 = getelementptr inbounds i8, ptr %0, i64 584
  %74 = extractvalue { double, double } %69, 1
  store double %74, ptr %73, align 8
  %75 = getelementptr inbounds i8, ptr %0, i64 592
  store <4 x i8> <i8 1, i8 1, i8 0, i8 1>, ptr %75, align 16, !tbaa !50
  %76 = getelementptr inbounds i8, ptr %0, i64 596
  store float 0.000000e+00, ptr %76, align 4, !tbaa !51
  %77 = getelementptr inbounds i8, ptr %0, i64 600
  store <4 x i8> <i8 1, i8 1, i8 0, i8 0>, ptr %77, align 8, !tbaa !52
  %78 = getelementptr inbounds i8, ptr %0, i64 604
  store i32 10, ptr %78, align 4, !tbaa !53
  %79 = getelementptr inbounds i8, ptr %0, i64 608
  store i8 0, ptr %79, align 16, !tbaa !54
  %80 = getelementptr inbounds i8, ptr %0, i64 612
  store i32 0, ptr %80, align 4, !tbaa !55
  %81 = getelementptr inbounds i8, ptr %0, i64 616
  store float 2.000000e+01, ptr %81, align 8, !tbaa !56
  %82 = getelementptr inbounds i8, ptr %0, i64 620
  store i8 0, ptr %82, align 4, !tbaa !57
  %83 = getelementptr inbounds i8, ptr %0, i64 624
  store <2 x float> <float 0x3FC99999A0000000, float 0.000000e+00>, ptr %83, align 16, !tbaa !58
  %84 = getelementptr inbounds i8, ptr %0, i64 632
  store i8 0, ptr %84, align 8, !tbaa !59
  %85 = invoke { double, double } @_ZN3JPH4Vec34sOneEv()
          to label %86 unwind label %171

86:                                               ; preds = %70
  %87 = getelementptr inbounds i8, ptr %0, i64 640
  %88 = extractvalue { double, double } %85, 0
  store double %88, ptr %87, align 16
  %89 = getelementptr inbounds i8, ptr %0, i64 648
  %90 = extractvalue { double, double } %85, 1
  store double %90, ptr %89, align 8
  %91 = getelementptr inbounds i8, ptr %0, i64 656
  store i8 0, ptr %91, align 16, !tbaa !60
  %92 = getelementptr inbounds i8, ptr %0, i64 664
  store ptr null, ptr %92, align 8, !tbaa !61
  %93 = getelementptr inbounds i8, ptr %0, i64 672
  tail call void @_ZN3JPH6BodyIDC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %93)
  %94 = getelementptr inbounds i8, ptr %0, i64 680
  tail call void @_ZN3JPH3RefINS_10ConstraintEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94)
  %95 = getelementptr inbounds i8, ptr %0, i64 688
  store i32 -1, ptr %95, align 16, !tbaa !62
  %96 = getelementptr inbounds i8, ptr %0, i64 692
  store float 0.000000e+00, ptr %96, align 4, !tbaa !63
  %97 = getelementptr inbounds i8, ptr %0, i64 700
  store i32 0, ptr %97, align 4, !tbaa !64
  %98 = getelementptr inbounds i8, ptr %0, i64 704
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #10
  store i32 0, ptr %3, align 4, !tbaa !65
  call void @_ZNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEC2IivEERKT_(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 4 dereferenceable(4) %3)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #10
  %99 = load float, ptr %48, align 4, !tbaa !45
  call void @_ZN11Application18SetRenderFrequencyEf(ptr noundef nonnull align 16 dereferenceable(272) %0, float noundef %99)
  %100 = invoke noundef ptr @_ZN3JPH17TempAllocatorImplnwEm(i64 noundef 32)
          to label %101 unwind label %173

101:                                              ; preds = %86
  invoke void @_ZN3JPH17TempAllocatorImplC2Em(ptr noundef nonnull align 8 dereferenceable(32) %100, i64 noundef 33554432)
          to label %102 unwind label %175

102:                                              ; preds = %101
  store ptr %100, ptr %50, align 16, !tbaa !66
  %103 = invoke noundef ptr @_ZN3JPH19JobSystemThreadPoolnwEmSt11align_val_t(i64 noundef 8768, i64 noundef 64)
          to label %104 unwind label %173

104:                                              ; preds = %102
  %105 = load i32, ptr %46, align 16, !tbaa !8
  %106 = add nsw i32 %105, -1
  invoke void @_ZN3JPH19JobSystemThreadPoolC1Ejji(ptr noundef nonnull align 64 dereferenceable(8768) %103, i32 noundef 2048, i32 noundef 8, i32 noundef %106)
          to label %107 unwind label %177

107:                                              ; preds = %104
  store ptr %103, ptr %51, align 8, !tbaa !67
  %108 = invoke noundef ptr @_ZN3JPH23JobSystemSingleThreadednwEmSt11align_val_t(i64 noundef 256, i64 noundef 64)
          to label %109 unwind label %173

109:                                              ; preds = %107
  invoke void @_ZN3JPH23JobSystemSingleThreadedC2Ej(ptr noundef nonnull align 64 dereferenceable(256) %108, i32 noundef 2048)
          to label %110 unwind label %179

110:                                              ; preds = %109
  store ptr %108, ptr %52, align 16, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #10
  invoke void @_ZN23DisableCustomMemoryHookC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %111 unwind label %181

111:                                              ; preds = %110
  %112 = getelementptr inbounds i8, ptr %0, i64 200
  %113 = load ptr, ptr %112, align 8, !tbaa !69
  %114 = invoke noundef ptr @_ZN7DebugUI10CreateMenuEv(ptr noundef nonnull align 8 dereferenceable(24) %113)
          to label %115 unwind label %183

115:                                              ; preds = %111
  %116 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef @.str.129) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  store ptr %0, ptr %7, align 8, !tbaa !70
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  %117 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %116, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %6)
          to label %118 unwind label %185

118:                                              ; preds = %115
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #10
  %119 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef @.str.130) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  store ptr %0, ptr %10, align 8, !tbaa !72
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  %120 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %119, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull %9)
          to label %121 unwind label %187

121:                                              ; preds = %118
  store ptr %120, ptr %61, align 16, !tbaa !74
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #10
  %122 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef @.str.131) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  store ptr %0, ptr %13, align 8, !tbaa !75
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  %123 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %122, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull %12)
          to label %124 unwind label %189

124:                                              ; preds = %121
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #10
  %125 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef @.str.132) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #10
  store ptr %0, ptr %16, align 8, !tbaa !77
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #10
  %126 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull %15)
          to label %127 unwind label %191

127:                                              ; preds = %124
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #10
  %128 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef @.str.133) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #10
  store ptr %0, ptr %19, align 8, !tbaa !79
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #10
  %129 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull %18)
          to label %130 unwind label %193

130:                                              ; preds = %127
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #10
  %131 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef @.str.134) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #10
  store ptr %0, ptr %22, align 8, !tbaa !81
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #10
  %132 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %131, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull %21)
          to label %133 unwind label %195

133:                                              ; preds = %130
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #10
  %134 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef @.str.135) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #10
  store ptr %0, ptr %25, align 8, !tbaa !83
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #10
  %135 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %134, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull %24)
          to label %136 unwind label %197

136:                                              ; preds = %133
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #10
  %137 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef @.str.136) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #10
  store ptr %0, ptr %28, align 8, !tbaa !85
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  %138 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %137, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull %27)
          to label %139 unwind label %199

139:                                              ; preds = %136
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  %140 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef @.str.137) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #10
  store ptr %0, ptr %31, align 8, !tbaa !87
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  %141 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %140, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull %30)
          to label %142 unwind label %201

142:                                              ; preds = %139
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #10
  %143 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef @.str.138) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #10
  store ptr %0, ptr %34, align 8, !tbaa !89
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  %144 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %143, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull %33)
          to label %145 unwind label %203

145:                                              ; preds = %142
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #10
  %146 = load ptr, ptr %112, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef @.str.139) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #10
  store ptr %0, ptr %37, align 8, !tbaa !91
  call void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #10
  %147 = invoke noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24) %146, ptr noundef %114, ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull %36)
          to label %148 unwind label %205

148:                                              ; preds = %145
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #10
  %149 = load ptr, ptr %112, align 8, !tbaa !69
  invoke void @_ZN7DebugUI8ShowMenuEP9UIElement(ptr noundef nonnull align 8 dereferenceable(24) %149, ptr noundef %114)
          to label %150 unwind label %183

150:                                              ; preds = %148
  call void @_ZN23DisableCustomMemoryHookD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #10
  %151 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #10
  %152 = extractvalue { i64, ptr } %151, 0
  store i64 %152, ptr %39, align 8
  %153 = getelementptr inbounds i8, ptr %39, i64 8
  %154 = extractvalue { i64, ptr } %151, 1
  store ptr %154, ptr %153, align 8
  invoke void @_ZN3JPH7ToLowerB5cxx11ERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(16) %39)
          to label %155 unwind label %209

155:                                              ; preds = %150
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %40) #10
  call void @_ZN3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #10
  %156 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  %157 = extractvalue { i64, ptr } %156, 0
  store i64 %157, ptr %41, align 8
  %158 = getelementptr inbounds i8, ptr %41, i64 8
  %159 = extractvalue { i64, ptr } %156, 1
  store ptr %159, ptr %158, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef @.str.140) #10
  invoke void @_ZN3JPH14StringToVectorERKSt17basic_string_viewIcSt11char_traitsIcEERNS_5ArrayINSt7__cxx1112basic_stringIcS2_NS_12STLAllocatorIcEEEENS9_ISB_EEEES5_b(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef nonnull align 8 dereferenceable(16) %42, i1 noundef zeroext true)
          to label %160 unwind label %211

160:                                              ; preds = %155
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #10
  %161 = call noundef i64 @_ZNK3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %40)
  %162 = icmp eq i64 %161, 2
  br i1 %162, label %163, label %246

163:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #10
  %164 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef 1)
          to label %165 unwind label %215

165:                                              ; preds = %163
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %164)
          to label %166 unwind label %215

166:                                              ; preds = %165
  %167 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.141)
  br i1 %167, label %168, label %219

168:                                              ; preds = %166
  store i8 1, ptr %64, align 1, !tbaa !93
  store i8 1, ptr %63, align 4, !tbaa !94
  invoke void @_ZN10SamplesApp11RunAllTestsEv(ptr noundef nonnull align 16 dereferenceable(712) %0)
          to label %243 unwind label %217

169:                                              ; preds = %2
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %254

171:                                              ; preds = %70, %58
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %253

173:                                              ; preds = %107, %102, %86
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %252

175:                                              ; preds = %101
  %176 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH17TempAllocatorImpldlEPv(ptr noundef %100) #10
  br label %252

177:                                              ; preds = %104
  %178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH19JobSystemThreadPooldlEPvSt11align_val_t(ptr noundef %103, i64 noundef 64) #10
  br label %252

179:                                              ; preds = %109
  %180 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3JPH23JobSystemSingleThreadeddlEPvSt11align_val_t(ptr noundef %108, i64 noundef 64) #10
  br label %252

181:                                              ; preds = %110
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %208

183:                                              ; preds = %148, %111
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %207

185:                                              ; preds = %115
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #10
  br label %207

187:                                              ; preds = %118
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #10
  br label %207

189:                                              ; preds = %121
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #10
  br label %207

191:                                              ; preds = %124
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #10
  br label %207

193:                                              ; preds = %127
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #10
  br label %207

195:                                              ; preds = %130
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #10
  br label %207

197:                                              ; preds = %133
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #10
  br label %207

199:                                              ; preds = %136
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  br label %207

201:                                              ; preds = %139
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #10
  br label %207

203:                                              ; preds = %142
  %204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #10
  br label %207

205:                                              ; preds = %145
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #10
  br label %207

207:                                              ; preds = %205, %203, %201, %199, %197, %195, %193, %191, %189, %187, %185, %183
  %.pn = phi { ptr, i32 } [ %184, %183 ], [ %206, %205 ], [ %204, %203 ], [ %202, %201 ], [ %200, %199 ], [ %198, %197 ], [ %196, %195 ], [ %194, %193 ], [ %192, %191 ], [ %190, %189 ], [ %188, %187 ], [ %186, %185 ]
  call void @_ZN23DisableCustomMemoryHookD1Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #10
  br label %208

208:                                              ; preds = %207, %181
  %.pn.pn = phi { ptr, i32 } [ %.pn, %207 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  br label %252

209:                                              ; preds = %150
  %210 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #10
  br label %251

211:                                              ; preds = %155
  %212 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #10
  br label %250

213:                                              ; preds = %248, %246
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %250

215:                                              ; preds = %165, %163
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %245

217:                                              ; preds = %168
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %244

219:                                              ; preds = %166
  %220 = invoke noundef ptr @_Z13GetRTTIOfTypeP13CreateRigTest(ptr noundef null)
          to label %.preheader unwind label %225

.preheader:                                       ; preds = %219, %.loopexit
  %.04165 = phi ptr [ %.344, %.loopexit ], [ %220, %219 ]
  %.045.idx64 = phi i64 [ %.045.add, %.loopexit ], [ 0, %219 ]
  %.045.ptr66 = getelementptr inbounds i8, ptr @_ZL14sAllCategories, i64 %.045.idx64
  %221 = getelementptr inbounds i8, ptr %.045.ptr66, i64 16
  %222 = load i64, ptr %221, align 8, !tbaa !95
  %.not67 = icmp eq i64 %222, 0
  br i1 %.not67, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader
  %223 = getelementptr inbounds i8, ptr %.045.ptr66, i64 8
  br label %227

224:                                              ; preds = %.loopexit
  invoke void @_ZN10SamplesApp9StartTestEPKN3JPH4RTTIE(ptr noundef nonnull align 16 dereferenceable(712) %0, ptr noundef %.344)
          to label %243 unwind label %225

225:                                              ; preds = %224, %219
  %226 = landingpad { ptr, i32 }
          cleanup
  br label %244

227:                                              ; preds = %.lr.ph, %238
  %228 = phi i64 [ 0, %.lr.ph ], [ %240, %238 ]
  %.02963 = phi i32 [ 0, %.lr.ph ], [ %239, %238 ]
  %229 = load ptr, ptr %223, align 8, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #10
  %230 = getelementptr inbounds %struct.TestNameAndRTTI, ptr %229, i64 %228, i32 1
  %231 = load ptr, ptr %230, align 8, !tbaa !98
  %232 = call noundef ptr @_ZNK3JPH4RTTI7GetNameEv(ptr noundef nonnull align 8 dereferenceable(104) %231)
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef %232) #10
  invoke void @_ZN3JPH7ToLowerB5cxx11ERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(16) %45)
          to label %233 unwind label %236

233:                                              ; preds = %227
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #10
  %234 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESC_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  br i1 %234, label %.thread, label %238

.thread:                                          ; preds = %233
  %235 = load ptr, ptr %230, align 8, !tbaa !98
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  br label %.loopexit

236:                                              ; preds = %227
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  br label %244

238:                                              ; preds = %233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  %239 = add i32 %.02963, 1
  %240 = zext i32 %239 to i64
  %241 = load i64, ptr %221, align 8, !tbaa !95
  %242 = icmp ugt i64 %241, %240
  br i1 %242, label %227, label %.loopexit, !llvm.loop !100

.loopexit:                                        ; preds = %238, %.preheader, %.thread
  %.344 = phi ptr [ %235, %.thread ], [ %.04165, %.preheader ], [ %.04165, %238 ]
  %.045.add = add nuw nsw i64 %.045.idx64, 24
  %.not = icmp eq i64 %.045.add, 288
  br i1 %.not, label %224, label %.preheader

243:                                              ; preds = %224, %168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #10
  br label %249

244:                                              ; preds = %225, %236, %217
  %.pn51 = phi { ptr, i32 } [ %218, %217 ], [ %237, %236 ], [ %226, %225 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  br label %245

245:                                              ; preds = %244, %215
  %.pn51.pn = phi { ptr, i32 } [ %.pn51, %244 ], [ %216, %215 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #10
  br label %250

246:                                              ; preds = %160
  %247 = invoke noundef ptr @_Z13GetRTTIOfTypeP13CreateRigTest(ptr noundef null)
          to label %248 unwind label %213

248:                                              ; preds = %246
  invoke void @_ZN10SamplesApp9StartTestEPKN3JPH4RTTIE(ptr noundef nonnull align 16 dereferenceable(712) %0, ptr noundef %247)
          to label %249 unwind label %213

249:                                              ; preds = %248, %243
  call void @_ZN3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #10
  ret void

250:                                              ; preds = %245, %213, %211
  %.pn51.pn.pn = phi { ptr, i32 } [ %.pn51.pn, %245 ], [ %214, %213 ], [ %212, %211 ]
  call void @_ZN3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %40) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #10
  br label %251

251:                                              ; preds = %250, %209
  %.pn51.pn.pn.pn = phi { ptr, i32 } [ %.pn51.pn.pn, %250 ], [ %210, %209 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #10
  br label %252

252:                                              ; preds = %251, %208, %179, %177, %175, %173
  %.pn51.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn51.pn.pn.pn, %251 ], [ %.pn.pn, %208 ], [ %180, %179 ], [ %174, %173 ], [ %178, %177 ], [ %176, %175 ]
  call void @_ZN3JPH3RefINS_10ConstraintEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %94) #10
  br label %253

253:                                              ; preds = %252, %171
  %.pn51.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn51.pn.pn.pn.pn, %252 ], [ %172, %171 ]
  call void @_ZN3JPH5ArrayIN10SamplesApp13PlayBackFrameENS_12STLAllocatorIS2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #10
  call void @_ZN3JPH9HashTableINS_8RefConstINS_5ShapeEEESt4pairIS3_NS_3RefINS_13DebugRenderer8GeometryEEEENS_18UnorderedMapDetailIS3_S8_EENS_4HashIS3_EESt8equal_toIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(28) %59) #10
  br label %254

254:                                              ; preds = %253, %169
  %.pn51.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn51.pn.pn.pn.pn.pn, %253 ], [ %170, %169 ]
  call void @_ZN3JPH21ObjectLayerPairFilterD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  call void @_ZN3JPH29ObjectVsBroadPhaseLayerFilterD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #10
  call void @_ZN3JPH24BroadPhaseLayerInterfaceD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #10
  call void @_ZN11ApplicationD2Ev(ptr noundef nonnull align 16 dereferenceable(272) %0) #10
  resume { ptr, i32 } %.pn51.pn.pn.pn.pn.pn.pn
}

declare void @_ZN11ApplicationC2EPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEE(ptr noundef nonnull align 16 dereferenceable(272), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1

; Function Attrs: nounwind
declare noundef i32 @_ZNSt6thread20hardware_concurrencyEv() local_unnamed_addr #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3JPH15PhysicsSettingsC2Ev(ptr noundef nonnull align 4 dereferenceable(83)) unnamed_addr #6 align 2

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local { double, double } @_ZN3JPH4Vec34sOneEv() local_unnamed_addr #7 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11Application18SetRenderFrequencyEf(ptr noundef nonnull align 16 dereferenceable(272), float noundef) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH17TempAllocatorImplnwEm(i64 noundef) local_unnamed_addr #7 align 2

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH17TempAllocatorImpldlEPv(ptr noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH19JobSystemThreadPoolnwEmSt11align_val_t(i64 noundef, i64 noundef) local_unnamed_addr #7 align 2

declare void @_ZN3JPH19JobSystemThreadPoolC1Ejji(ptr noundef nonnull align 64 dereferenceable(8768), i32 noundef, i32 noundef, i32 noundef) unnamed_addr #1

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH19JobSystemThreadPooldlEPvSt11align_val_t(ptr noundef, i64 noundef) local_unnamed_addr #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef ptr @_ZN3JPH23JobSystemSingleThreadednwEmSt11align_val_t(i64 noundef, i64 noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3JPH23JobSystemSingleThreadedC2Ej(ptr noundef nonnull align 64 dereferenceable(256), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local void @_ZN3JPH23JobSystemSingleThreadeddlEPvSt11align_val_t(ptr noundef, i64 noundef) local_unnamed_addr #8 align 2

declare void @_ZN23DisableCustomMemoryHookC1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1

declare noundef ptr @_ZN7DebugUI10CreateMenuEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1

declare noundef ptr @_ZN7DebugUI16CreateTextButtonEP9UIElementRKSt17basic_string_viewIcSt11char_traitsIcEESt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4 align 2

declare void @_ZN7DebugUI8ShowMenuEP9UIElement(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind
declare void @_ZN23DisableCustomMemoryHookD1Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3

declare void @_ZN3JPH7ToLowerB5cxx11ERKSt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1

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

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

declare void @_ZN3JPH14StringToVectorERKSt17basic_string_viewIcSt11char_traitsIcEERNS_5ArrayINSt7__cxx1112basic_stringIcS2_NS_12STLAllocatorIcEEEENS9_ISB_EEEES5_b(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) local_unnamed_addr #1

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3JPH5ArrayINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_12STLAllocatorIcEEEENS5_IS7_EEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SamplesApp11RunAllTestsEv(ptr noundef nonnull align 16 dereferenceable(712)) local_unnamed_addr #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SamplesApp9StartTestEPKN3JPH4RTTIE(ptr noundef nonnull align 16 dereferenceable(712), ptr noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare void @_ZN11ApplicationD2Ev(ptr noundef nonnull align 16 dereferenceable(272)) unnamed_addr #3

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { alwaysinline 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 #8 = { alwaysinline mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { 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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !23, i64 272}
!9 = !{!"_ZTS10SamplesApp", !10, i64 0, !23, i64 272, !14, i64 276, !23, i64 280, !15, i64 288, !15, i64 296, !15, i64 304, !24, i64 312, !26, i64 328, !28, i64 336, !15, i64 344, !15, i64 352, !30, i64 360, !31, i64 448, !15, i64 480, !15, i64 488, !15, i64 496, !23, i64 504, !22, i64 508, !14, i64 512, !22, i64 516, !22, i64 517, !22, i64 518, !22, i64 519, !33, i64 520, !34, i64 544, !23, i64 548, !35, i64 552, !36, i64 556, !22, i64 560, !12, i64 576, !37, i64 592, !37, i64 593, !38, i64 594, !39, i64 595, !14, i64 596, !22, i64 600, !22, i64 601, !22, i64 602, !22, i64 603, !23, i64 604, !22, i64 608, !40, i64 612, !14, i64 616, !41, i64 620, !14, i64 624, !14, i64 628, !22, i64 632, !12, i64 640, !22, i64 656, !15, i64 664, !42, i64 672, !43, i64 680, !23, i64 688, !14, i64 692, !14, i64 696, !23, i64 700, !44, i64 704}
!10 = !{!"_ZTS11Application", !11, i64 16, !11, i64 80, !15, i64 144, !15, i64 152, !15, i64 160, !16, i64 168, !15, i64 176, !15, i64 184, !15, i64 192, !15, i64 200, !17, i64 208, !20, i64 240, !22, i64 248, !22, i64 249, !22, i64 250, !22, i64 251, !14, i64 252, !14, i64 256, !14, i64 260, !14, i64 264, !23, i64 268}
!11 = !{!"_ZTS11CameraState", !12, i64 0, !12, i64 16, !12, i64 32, !14, i64 48}
!12 = !{!"_ZTSN3JPH4Vec3E", !13, i64 0}
!13 = !{!"omnipotent char", !7, i64 0}
!14 = !{!"float", !13, i64 0}
!15 = !{!"any pointer", !13, i64 0}
!16 = !{!"_ZTSN3JPH8RefConstI4FontEE", !15, i64 0}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEE", !18, i64 0, !19, i64 8, !13, i64 16}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEE12_Alloc_hiderE", !15, i64 0}
!19 = !{!"long", !13, i64 0}
!20 = !{!"_ZTSNSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEEE", !21, i64 0}
!21 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE", !19, i64 0}
!22 = !{!"bool", !13, i64 0}
!23 = !{!"int", !13, i64 0}
!24 = !{!"_ZTS20BPLayerInterfaceImpl", !25, i64 0, !13, i64 8}
!25 = !{!"_ZTSN3JPH24BroadPhaseLayerInterfaceE"}
!26 = !{!"_ZTS33ObjectVsBroadPhaseLayerFilterImpl", !27, i64 0}
!27 = !{!"_ZTSN3JPH29ObjectVsBroadPhaseLayerFilterE"}
!28 = !{!"_ZTS25ObjectLayerPairFilterImpl", !29, i64 0}
!29 = !{!"_ZTSN3JPH21ObjectLayerPairFilterE"}
!30 = !{!"_ZTSN3JPH15PhysicsSettingsE", !23, i64 0, !23, i64 4, !23, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !14, i64 36, !14, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !23, i64 56, !23, i64 60, !14, i64 64, !14, i64 68, !14, i64 72, !22, i64 76, !22, i64 77, !22, i64 78, !22, i64 79, !22, i64 80, !22, i64 81, !22, i64 82}
!31 = !{!"_ZTSN3JPH12UnorderedMapINS_8RefConstINS_5ShapeEEENS_3RefINS_13DebugRenderer8GeometryEEENS_4HashIS3_EESt8equal_toIS3_EEE", !32, i64 0}
!32 = !{!"_ZTSN3JPH9HashTableINS_8RefConstINS_5ShapeEEESt4pairIS3_NS_3RefINS_13DebugRenderer8GeometryEEEENS_18UnorderedMapDetailIS3_S8_EENS_4HashIS3_EESt8equal_toIS3_EEE", !15, i64 0, !15, i64 8, !23, i64 16, !23, i64 20, !23, i64 24}
!33 = !{!"_ZTSN3JPH5ArrayIN10SamplesApp13PlayBackFrameENS_12STLAllocatorIS2_EEEE", !19, i64 0, !19, i64 8, !15, i64 16}
!34 = !{!"_ZTSN10SamplesApp13EPlaybackModeE", !13, i64 0}
!35 = !{!"_ZTSN10SamplesApp10EProbeModeE", !13, i64 0}
!36 = !{!"_ZTSN10SamplesApp11EProbeShapeE", !13, i64 0}
!37 = !{!"_ZTSN3JPH13EBackFaceModeE", !13, i64 0}
!38 = !{!"_ZTSN3JPH15EActiveEdgeModeE", !13, i64 0}
!39 = !{!"_ZTSN3JPH17ECollectFacesModeE", !13, i64 0}
!40 = !{!"_ZTSN10SamplesApp17EShootObjectShapeE", !13, i64 0}
!41 = !{!"_ZTSN3JPH14EMotionQualityE", !13, i64 0}
!42 = !{!"_ZTSN3JPH6BodyIDE", !23, i64 0}
!43 = !{!"_ZTSN3JPH3RefINS_10ConstraintEEE", !15, i64 0}
!44 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000EEEE", !19, i64 0}
!45 = !{!9, !14, i64 276}
!46 = !{!9, !23, i64 280}
!47 = !{!9, !14, i64 512}
!48 = !{!9, !34, i64 544}
!49 = !{!9, !23, i64 548}
!50 = !{!13, !13, i64 0}
!51 = !{!9, !14, i64 596}
!52 = !{!22, !22, i64 0}
!53 = !{!9, !23, i64 604}
!54 = !{!9, !22, i64 608}
!55 = !{!9, !40, i64 612}
!56 = !{!9, !14, i64 616}
!57 = !{!9, !41, i64 620}
!58 = !{!14, !14, i64 0}
!59 = !{!9, !22, i64 632}
!60 = !{!9, !22, i64 656}
!61 = !{!9, !15, i64 664}
!62 = !{!9, !23, i64 688}
!63 = !{!9, !14, i64 692}
!64 = !{!9, !23, i64 700}
!65 = !{!23, !23, i64 0}
!66 = !{!9, !15, i64 288}
!67 = !{!9, !15, i64 296}
!68 = !{!9, !15, i64 304}
!69 = !{!10, !15, i64 200}
!70 = !{!71, !15, i64 0}
!71 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_0", !15, i64 0}
!72 = !{!73, !15, i64 0}
!73 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_1", !15, i64 0}
!74 = !{!9, !15, i64 496}
!75 = !{!76, !15, i64 0}
!76 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_2", !15, i64 0}
!77 = !{!78, !15, i64 0}
!78 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_3", !15, i64 0}
!79 = !{!80, !15, i64 0}
!80 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_4", !15, i64 0}
!81 = !{!82, !15, i64 0}
!82 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_5", !15, i64 0}
!83 = !{!84, !15, i64 0}
!84 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_6", !15, i64 0}
!85 = !{!86, !15, i64 0}
!86 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_7", !15, i64 0}
!87 = !{!88, !15, i64 0}
!88 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_8", !15, i64 0}
!89 = !{!90, !15, i64 0}
!90 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE3$_9", !15, i64 0}
!91 = !{!92, !15, i64 0}
!92 = !{!"_ZTSZN10SamplesAppC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcEN3JPH12STLAllocatorIcEEEEE4$_10", !15, i64 0}
!93 = !{!9, !22, i64 519}
!94 = !{!9, !22, i64 516}
!95 = !{!96, !19, i64 16}
!96 = !{!"_ZTS12TestCategory", !15, i64 0, !15, i64 8, !19, i64 16}
!97 = !{!96, !15, i64 8}
!98 = !{!99, !15, i64 8}
!99 = !{!"_ZTS15TestNameAndRTTI", !15, i64 0, !15, i64 8}
!100 = distinct !{!100, !101}
!101 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass