; LLVM IR from Razakhel/RaZ :: src/RaZ/Render/Overlay.ll (ZNK3Raz13OverlayWindow6renderEv)

; 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.ImVec2 = type { float, float }
%"class.__gnu_cxx::__normal_iterator.191" = type { ptr }
%struct.ImVec4 = type { float, float, float, float }
%"class.Raz::Color" = type { %"class.Raz::Vector.16" }
%"class.Raz::Vector.16" = type { %"struct.std::array.17" }
%"struct.std::array.17" = type { [3 x float] }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.__gnu_cxx::__normal_iterator.192" = type { ptr }
%"class.Raz::OverlayWindow" = type { %"class.std::__cxx11::basic_string", %"class.Raz::Vector", %"class.Raz::Vector", i8, %"class.std::vector.11" }
%"class.Raz::Vector" = type { %"struct.std::array" }
%"struct.std::array" = type { [2 x float] }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<std::unique_ptr<Raz::OverlayElement>, std::allocator<std::unique_ptr<Raz::OverlayElement>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<Raz::OverlayElement>, std::allocator<std::unique_ptr<Raz::OverlayElement>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<Raz::OverlayElement>, std::allocator<std::unique_ptr<Raz::OverlayElement>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<Raz::OverlayElement>, std::allocator<std::unique_ptr<Raz::OverlayElement>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Raz::OverlayElement" = type <{ ptr, %"class.std::__cxx11::basic_string", i8, [7 x i8] }>
%"class.Raz::OverlayColoredLabel" = type { %"class.Raz::OverlayElement.base", %"class.Raz::Color", float, [4 x i8] }
%"class.Raz::OverlayElement.base" = type <{ ptr, %"class.std::__cxx11::basic_string", i8 }>
%"class.Raz::OverlayButton" = type { %"class.Raz::OverlayElement.base", %"class.std::function.62" }
%"class.std::function.62" = 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.Raz::OverlayCheckbox" = type <{ %"class.Raz::OverlayElement.base", [7 x i8], %"class.std::function.62", %"class.std::function.62", i8, [7 x i8] }>
%"class.Raz::OverlaySlider" = type <{ %"class.Raz::OverlayElement.base", [7 x i8], %"class.std::function.80", float, float, float, [4 x i8] }>
%"class.std::function.80" = type { %"class.std::_Function_base", ptr }
%"class.Raz::OverlayTextbox" = type { %"class.Raz::OverlayElement.base", %"class.std::__cxx11::basic_string", %"class.std::function.18" }
%"class.std::function.18" = type { %"class.std::_Function_base", ptr }
%"class.Raz::OverlayTextArea" = type <{ %"class.Raz::OverlayElement.base", [7 x i8], %"class.std::__cxx11::basic_string", %"class.std::function.18", float, [4 x i8] }>
%"class.Raz::OverlayListBox" = type { %"class.Raz::OverlayElement.base", %"class.std::vector.107", %"class.std::function.112", i64 }
%"class.std::vector.107" = type { %"struct.std::_Vector_base.108" }
%"struct.std::_Vector_base.108" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function.112" = type { %"class.std::_Function_base", ptr }
%"class.Raz::OverlayDropdown" = type { %"class.Raz::OverlayElement.base", %"class.std::vector.107", %"class.std::function.112", i64 }
%"class.Raz::OverlayColorPicker" = type <{ %"class.Raz::OverlayElement.base", [7 x i8], %"class.std::function.132", %"struct.std::array.17", [4 x i8] }>
%"class.std::function.132" = type { %"class.std::_Function_base", ptr }
%"class.Raz::OverlayTexture" = type { %"class.Raz::OverlayElement.base", i32, float, float }
%"class.Raz::OverlayProgressBar" = type <{ %"class.Raz::OverlayElement.base", [3 x i8], i32, i32, i32, i8, [7 x i8] }>
%"class.Raz::OverlayPlot" = type { %"class.Raz::OverlayElement.base", %"class.std::vector.20", i64, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", float, float, i8, float }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::unique_ptr<Raz::OverlayPlotEntry>, std::allocator<std::unique_ptr<Raz::OverlayPlotEntry>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<Raz::OverlayPlotEntry>, std::allocator<std::unique_ptr<Raz::OverlayPlotEntry>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<Raz::OverlayPlotEntry>, std::allocator<std::unique_ptr<Raz::OverlayPlotEntry>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<Raz::OverlayPlotEntry>, std::allocator<std::unique_ptr<Raz::OverlayPlotEntry>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Raz::OverlayPlotEntry" = type { %"class.std::__cxx11::basic_string", i32, %"class.std::vector.33" }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [22 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [20 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, i32, i32, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], [512 x float], [512 x float], [20 x float], [20 x float], float, i16, %struct.ImVector }
%struct.ImVector = type { i32, i32, ptr }

@.str.8 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@__PRETTY_FUNCTION__._ZNK3Raz13OverlayWindow6renderEv = external hidden unnamed_addr constant [40 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

declare noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv() #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK3Raz13OverlayWindow6renderEv(ptr noundef nonnull align 8 dereferenceable(80) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %struct.ImVec2, align 4
  %4 = alloca %struct.ImVec2, align 4
  %5 = alloca %struct.ImVec2, align 4
  %6 = alloca ptr, align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.191", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.191", align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %struct.ImVec4, align 4
  %14 = alloca ptr, align 8
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i8, align 1
  %18 = alloca ptr, align 8
  %19 = alloca float, align 4
  %20 = alloca float, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca ptr, align 8
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca i64, align 8
  %29 = alloca i8, align 1
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i64, align 8
  %33 = alloca i8, align 1
  %34 = alloca %struct.ImVec2, align 4
  %35 = alloca ptr, align 8
  %36 = alloca %"class.Raz::Color", align 4
  %37 = alloca ptr, align 8
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca %struct.ImVec2, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImVec2, align 4
  %46 = alloca %struct.ImVec4, align 4
  %47 = alloca %struct.ImVec4, align 4
  %48 = alloca ptr, align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca i1, align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca i1, align 1
  %54 = alloca i1, align 1
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i1, align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca i1, align 1
  %60 = alloca i1, align 1
  %61 = alloca %struct.ImVec2, align 4
  %62 = alloca ptr, align 8
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca ptr, align 8
  %65 = alloca %"class.__gnu_cxx::__normal_iterator.192", align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator.192", align 8
  %67 = alloca ptr, align 8
  %68 = alloca %struct.ImVec4, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %69 = load ptr, ptr %2, align 8
  %70 = getelementptr inbounds %"class.Raz::OverlayWindow", ptr %69, i32 0, i32 3
  %71 = load i8, ptr %70, align 8, !tbaa !9, !range !21, !noundef !22
  %72 = trunc i8 %71 to i1
  br i1 %72, label %74, label %73

73:                                               ; preds = %1
  br label %659

74:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #9
  %75 = getelementptr inbounds %"class.Raz::OverlayWindow", ptr %69, i32 0, i32 1
  %76 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1xEv(ptr noundef nonnull align 4 dereferenceable(8) %75) #9
  %77 = load float, ptr %76, align 4, !tbaa !23
  %78 = getelementptr inbounds %"class.Raz::OverlayWindow", ptr %69, i32 0, i32 1
  %79 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1yEv(ptr noundef nonnull align 4 dereferenceable(8) %78) #9
  %80 = load float, ptr %79, align 4, !tbaa !23
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %3, float noundef %77, float noundef %80)
  call void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8) %3, i32 noundef 2)
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %81 = getelementptr inbounds %"class.Raz::OverlayWindow", ptr %69, i32 0, i32 2
  %82 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1xEv(ptr noundef nonnull align 4 dereferenceable(8) %81) #9
  %83 = load float, ptr %82, align 4, !tbaa !23
  %84 = getelementptr inbounds %"class.Raz::OverlayWindow", ptr %69, i32 0, i32 2
  %85 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1yEv(ptr noundef nonnull align 4 dereferenceable(8) %84) #9
  %86 = load float, ptr %85, align 4, !tbaa !23
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef %83, float noundef %86)
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8) %4, i32 noundef 2, ptr noundef nonnull align 4 dereferenceable(8) %5)
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  %87 = getelementptr inbounds %"class.Raz::OverlayWindow", ptr %69, i32 0, i32 0
  %88 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  %89 = getelementptr inbounds %"class.Raz::OverlayWindow", ptr %69, i32 0, i32 1
  %90 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1xEv(ptr noundef nonnull align 4 dereferenceable(8) %89) #9
  %91 = load float, ptr %90, align 4, !tbaa !23
  %92 = fcmp olt float %91, 0.000000e+00
  br i1 %92, label %93, label %98

93:                                               ; preds = %74
  %94 = getelementptr inbounds %"class.Raz::OverlayWindow", ptr %69, i32 0, i32 1
  %95 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1yEv(ptr noundef nonnull align 4 dereferenceable(8) %94) #9
  %96 = load float, ptr %95, align 4, !tbaa !23
  %97 = fcmp olt float %96, 0.000000e+00
  br label %98

98:                                               ; preds = %93, %74
  %99 = phi i1 [ false, %74 ], [ %97, %93 ]
  %100 = zext i1 %99 to i64
  %101 = select i1 %99, i32 64, i32 0
  %102 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef %88, ptr noundef null, i32 noundef %101)
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #9
  %103 = getelementptr inbounds %"class.Raz::OverlayWindow", ptr %69, i32 0, i32 4
  store ptr %103, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  %104 = load ptr, ptr %6, align 8, !tbaa !5
  %105 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %104) #9
  %106 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.191", ptr %7, i32 0, i32 0
  store ptr %105, ptr %106, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  %107 = load ptr, ptr %6, align 8, !tbaa !5
  %108 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #9
  %109 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.191", ptr %8, i32 0, i32 0
  store ptr %108, ptr %109, align 8
  br label %110

110:                                              ; preds = %656, %98
  %111 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  br i1 %111, label %113, label %112

112:                                              ; preds = %110
  store i32 2, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  br label %658

113:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  store ptr %114, ptr %10, align 8, !tbaa !5
  %115 = load ptr, ptr %10, align 8, !tbaa !5
  %116 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %115) #9
  %117 = call noundef zeroext i1 @_ZNK3Raz14OverlayElement9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(41) %116) #9
  br i1 %117, label %119, label %118

118:                                              ; preds = %113
  store i32 3, ptr %9, align 4
  br label %653

119:                                              ; preds = %113
  %120 = load ptr, ptr %10, align 8, !tbaa !5
  %121 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %120) #9
  %122 = load ptr, ptr %121, align 8, !tbaa !25
  %123 = getelementptr inbounds ptr, ptr %122, i64 0
  %124 = load ptr, ptr %123, align 8
  %125 = call noundef i32 %124(ptr noundef nonnull align 8 dereferenceable(41) %121)
  switch i32 %125, label %651 [
    i32 0, label %126
    i32 1, label %131
    i32 2, label %153
    i32 3, label %164
    i32 4, label %200
    i32 5, label %225
    i32 6, label %240
    i32 7, label %258
    i32 8, label %321
    i32 9, label %383
    i32 10, label %409
    i32 11, label %455
    i32 12, label %544
    i32 13, label %631
    i32 14, label %632
    i32 15, label %642
  ]

126:                                              ; preds = %119
  call void @_ZN5ImGui15PushTextWrapPosEf(float noundef 0.000000e+00)
  %127 = load ptr, ptr %10, align 8, !tbaa !5
  %128 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %127) #9
  %129 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %128, i32 0, i32 1
  %130 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %129) #9
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef %130, ptr noundef null)
  call void @_ZN5ImGui14PopTextWrapPosEv()
  br label %652

131:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  %132 = load ptr, ptr %10, align 8, !tbaa !5
  %133 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %132) #9
  store ptr %133, ptr %11, align 8, !tbaa !5
  call void @_ZN5ImGui15PushTextWrapPosEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %134 = load ptr, ptr %11, align 8, !tbaa !5
  %135 = getelementptr inbounds %"class.Raz::OverlayColoredLabel", ptr %134, i32 0, i32 1
  %136 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNK3Raz5ColorcvRKNS_6VectorIfLm3EEEEv(ptr noundef nonnull align 4 dereferenceable(12) %135) #9
  store ptr %136, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #9
  %137 = load ptr, ptr %12, align 8, !tbaa !5
  %138 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm3EE1xEv(ptr noundef nonnull align 4 dereferenceable(12) %137) #9
  %139 = load float, ptr %138, align 4, !tbaa !23
  %140 = load ptr, ptr %12, align 8, !tbaa !5
  %141 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm3EE1yEv(ptr noundef nonnull align 4 dereferenceable(12) %140) #9
  %142 = load float, ptr %141, align 4, !tbaa !23
  %143 = load ptr, ptr %12, align 8, !tbaa !5
  %144 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm3EE1zEv(ptr noundef nonnull align 4 dereferenceable(12) %143) #9
  %145 = load float, ptr %144, align 4, !tbaa !23
  %146 = load ptr, ptr %11, align 8, !tbaa !5
  %147 = getelementptr inbounds %"class.Raz::OverlayColoredLabel", ptr %146, i32 0, i32 2
  %148 = load float, ptr %147, align 8, !tbaa !27
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %139, float noundef %142, float noundef %145, float noundef %148)
  %149 = load ptr, ptr %10, align 8, !tbaa !5
  %150 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %149) #9
  %151 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %150, i32 0, i32 1
  %152 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  call void (ptr, ptr, ...) @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16) %13, ptr noundef @.str.13, ptr noundef %152)
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #9
  call void @_ZN5ImGui14PopTextWrapPosEv()
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  br label %652

153:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %154 = load ptr, ptr %10, align 8, !tbaa !5
  %155 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %154) #9
  store ptr %155, ptr %14, align 8, !tbaa !5
  %156 = load ptr, ptr %14, align 8, !tbaa !5
  %157 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %156, i32 0, i32 1
  %158 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %157) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %159 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %158, ptr noundef nonnull align 4 dereferenceable(8) %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  br i1 %159, label %160, label %163

160:                                              ; preds = %153
  %161 = load ptr, ptr %14, align 8, !tbaa !5
  %162 = getelementptr inbounds %"class.Raz::OverlayButton", ptr %161, i32 0, i32 1
  call void @_ZNKSt8functionIFvvEEclEv(ptr noundef nonnull align 8 dereferenceable(32) %162)
  br label %163

163:                                              ; preds = %160, %153
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %652

164:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %165 = load ptr, ptr %10, align 8, !tbaa !5
  %166 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %165) #9
  store ptr %166, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #9
  %167 = load ptr, ptr %16, align 8, !tbaa !5
  %168 = getelementptr inbounds %"class.Raz::OverlayCheckbox", ptr %167, i32 0, i32 4
  %169 = load i8, ptr %168, align 8, !tbaa !33, !range !21, !noundef !22
  %170 = trunc i8 %169 to i1
  %171 = zext i1 %170 to i8
  store i8 %171, ptr %17, align 1, !tbaa !37
  %172 = load ptr, ptr %16, align 8, !tbaa !5
  %173 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %172, i32 0, i32 1
  %174 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %173) #9
  %175 = load ptr, ptr %16, align 8, !tbaa !5
  %176 = getelementptr inbounds %"class.Raz::OverlayCheckbox", ptr %175, i32 0, i32 4
  %177 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef %174, ptr noundef %176)
  %178 = load ptr, ptr %16, align 8, !tbaa !5
  %179 = getelementptr inbounds %"class.Raz::OverlayCheckbox", ptr %178, i32 0, i32 4
  %180 = load i8, ptr %179, align 8, !tbaa !33, !range !21, !noundef !22
  %181 = trunc i8 %180 to i1
  %182 = zext i1 %181 to i32
  %183 = load i8, ptr %17, align 1, !tbaa !37, !range !21, !noundef !22
  %184 = trunc i8 %183 to i1
  %185 = zext i1 %184 to i32
  %186 = icmp ne i32 %182, %185
  br i1 %186, label %187, label %199

187:                                              ; preds = %164
  %188 = load ptr, ptr %16, align 8, !tbaa !5
  %189 = getelementptr inbounds %"class.Raz::OverlayCheckbox", ptr %188, i32 0, i32 4
  %190 = load i8, ptr %189, align 8, !tbaa !33, !range !21, !noundef !22
  %191 = trunc i8 %190 to i1
  br i1 %191, label %192, label %195

192:                                              ; preds = %187
  %193 = load ptr, ptr %16, align 8, !tbaa !5
  %194 = getelementptr inbounds %"class.Raz::OverlayCheckbox", ptr %193, i32 0, i32 2
  call void @_ZNKSt8functionIFvvEEclEv(ptr noundef nonnull align 8 dereferenceable(32) %194)
  br label %198

195:                                              ; preds = %187
  %196 = load ptr, ptr %16, align 8, !tbaa !5
  %197 = getelementptr inbounds %"class.Raz::OverlayCheckbox", ptr %196, i32 0, i32 3
  call void @_ZNKSt8functionIFvvEEclEv(ptr noundef nonnull align 8 dereferenceable(32) %197)
  br label %198

198:                                              ; preds = %195, %192
  br label %199

199:                                              ; preds = %198, %164
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %652

200:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %201 = load ptr, ptr %10, align 8, !tbaa !5
  %202 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %201) #9
  store ptr %202, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %203 = call noundef float @_ZN5ImGui13CalcItemWidthEv()
  store float %203, ptr %19, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store float 2.100000e+02, ptr %20, align 4, !tbaa !23
  %204 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %20)
  %205 = load float, ptr %204, align 4, !tbaa !23
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %205)
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  %206 = load ptr, ptr %18, align 8, !tbaa !5
  %207 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %206, i32 0, i32 1
  %208 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  %209 = load ptr, ptr %18, align 8, !tbaa !5
  %210 = getelementptr inbounds %"class.Raz::OverlaySlider", ptr %209, i32 0, i32 5
  %211 = load ptr, ptr %18, align 8, !tbaa !5
  %212 = getelementptr inbounds %"class.Raz::OverlaySlider", ptr %211, i32 0, i32 3
  %213 = load float, ptr %212, align 8, !tbaa !38
  %214 = load ptr, ptr %18, align 8, !tbaa !5
  %215 = getelementptr inbounds %"class.Raz::OverlaySlider", ptr %214, i32 0, i32 4
  %216 = load float, ptr %215, align 4, !tbaa !41
  %217 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef %208, ptr noundef %210, float noundef %213, float noundef %216, ptr noundef @.str.14, i32 noundef 0)
  br i1 %217, label %218, label %224

218:                                              ; preds = %200
  %219 = load ptr, ptr %18, align 8, !tbaa !5
  %220 = getelementptr inbounds %"class.Raz::OverlaySlider", ptr %219, i32 0, i32 2
  %221 = load ptr, ptr %18, align 8, !tbaa !5
  %222 = getelementptr inbounds %"class.Raz::OverlaySlider", ptr %221, i32 0, i32 5
  %223 = load float, ptr %222, align 8, !tbaa !42
  call void @_ZNKSt8functionIFvfEEclEf(ptr noundef nonnull align 8 dereferenceable(32) %220, float noundef %223)
  br label %224

224:                                              ; preds = %218, %200
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %652

225:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %226 = load ptr, ptr %10, align 8, !tbaa !5
  %227 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %226) #9
  store ptr %227, ptr %21, align 8, !tbaa !5
  %228 = load ptr, ptr %21, align 8, !tbaa !5
  %229 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %228, i32 0, i32 1
  %230 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %229) #9
  %231 = load ptr, ptr %21, align 8, !tbaa !5
  %232 = getelementptr inbounds %"class.Raz::OverlayTextbox", ptr %231, i32 0, i32 1
  %233 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %230, ptr noundef %232, i32 noundef 0, ptr noundef null, ptr noundef null)
  br i1 %233, label %234, label %239

234:                                              ; preds = %225
  %235 = load ptr, ptr %21, align 8, !tbaa !5
  %236 = getelementptr inbounds %"class.Raz::OverlayTextbox", ptr %235, i32 0, i32 2
  %237 = load ptr, ptr %21, align 8, !tbaa !5
  %238 = getelementptr inbounds %"class.Raz::OverlayTextbox", ptr %237, i32 0, i32 1
  call void @_ZNKSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEclES7_(ptr noundef nonnull align 8 dereferenceable(32) %236, ptr noundef nonnull align 8 dereferenceable(32) %238)
  br label %239

239:                                              ; preds = %234, %225
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %652

240:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %241 = load ptr, ptr %10, align 8, !tbaa !5
  %242 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %241) #9
  store ptr %242, ptr %22, align 8, !tbaa !5
  %243 = load ptr, ptr %22, align 8, !tbaa !5
  %244 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %243, i32 0, i32 1
  %245 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %244) #9
  %246 = load ptr, ptr %22, align 8, !tbaa !5
  %247 = getelementptr inbounds %"class.Raz::OverlayTextArea", ptr %246, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %248 = load ptr, ptr %22, align 8, !tbaa !5
  %249 = getelementptr inbounds %"class.Raz::OverlayTextArea", ptr %248, i32 0, i32 4
  %250 = load float, ptr %249, align 8, !tbaa !43
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef -1.000000e+00, float noundef %250)
  %251 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %245, ptr noundef %247, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef 1024, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br i1 %251, label %252, label %257

252:                                              ; preds = %240
  %253 = load ptr, ptr %22, align 8, !tbaa !5
  %254 = getelementptr inbounds %"class.Raz::OverlayTextArea", ptr %253, i32 0, i32 3
  %255 = load ptr, ptr %22, align 8, !tbaa !5
  %256 = getelementptr inbounds %"class.Raz::OverlayTextArea", ptr %255, i32 0, i32 2
  call void @_ZNKSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEclES7_(ptr noundef nonnull align 8 dereferenceable(32) %254, ptr noundef nonnull align 8 dereferenceable(32) %256)
  br label %257

257:                                              ; preds = %252, %240
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %652

258:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %259 = load ptr, ptr %10, align 8, !tbaa !5
  %260 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %259) #9
  store ptr %260, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %261 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %262 = load ptr, ptr %24, align 8, !tbaa !5
  %263 = getelementptr inbounds %"class.Raz::OverlayListBox", ptr %262, i32 0, i32 1
  %264 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %263) #9
  %265 = uitofp i64 %264 to float
  store float %265, ptr %26, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  store float 5.000000e+00, ptr %27, align 4, !tbaa !23
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 4 dereferenceable(4) %27)
  %267 = load float, ptr %266, align 4, !tbaa !23
  %268 = call float @llvm.fmuladd.f32(float %261, float %267, float 2.000000e+00)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef 0.000000e+00, float noundef %268)
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  %269 = load ptr, ptr %24, align 8, !tbaa !5
  %270 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %269, i32 0, i32 1
  %271 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %270) #9
  %272 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef %271, ptr noundef nonnull align 4 dereferenceable(8) %25)
  br i1 %272, label %273, label %320

273:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  store i64 0, ptr %28, align 8, !tbaa !46
  br label %274

274:                                              ; preds = %316, %273
  %275 = load i64, ptr %28, align 8, !tbaa !46
  %276 = load ptr, ptr %24, align 8, !tbaa !5
  %277 = getelementptr inbounds %"class.Raz::OverlayListBox", ptr %276, i32 0, i32 1
  %278 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %277) #9
  %279 = icmp ult i64 %275, %278
  br i1 %279, label %281, label %280

280:                                              ; preds = %274
  store i32 5, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %319

281:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #9
  %282 = load ptr, ptr %24, align 8, !tbaa !5
  %283 = getelementptr inbounds %"class.Raz::OverlayListBox", ptr %282, i32 0, i32 3
  %284 = load i64, ptr %283, align 8, !tbaa !47
  %285 = load i64, ptr %28, align 8, !tbaa !46
  %286 = icmp eq i64 %284, %285
  %287 = zext i1 %286 to i8
  store i8 %287, ptr %29, align 1, !tbaa !37
  %288 = load ptr, ptr %24, align 8, !tbaa !5
  %289 = getelementptr inbounds %"class.Raz::OverlayListBox", ptr %288, i32 0, i32 1
  %290 = load i64, ptr %28, align 8, !tbaa !46
  %291 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %289, i64 noundef %290) #9
  %292 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %291) #9
  %293 = load i8, ptr %29, align 1, !tbaa !37, !range !21, !noundef !22
  %294 = trunc i8 %293 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %295 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %292, i1 noundef zeroext %294, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  br i1 %295, label %296, label %311

296:                                              ; preds = %281
  %297 = load i8, ptr %29, align 1, !tbaa !37, !range !21, !noundef !22
  %298 = trunc i8 %297 to i1
  br i1 %298, label %310, label %299

299:                                              ; preds = %296
  %300 = load ptr, ptr %24, align 8, !tbaa !5
  %301 = getelementptr inbounds %"class.Raz::OverlayListBox", ptr %300, i32 0, i32 2
  %302 = load ptr, ptr %24, align 8, !tbaa !5
  %303 = getelementptr inbounds %"class.Raz::OverlayListBox", ptr %302, i32 0, i32 1
  %304 = load i64, ptr %28, align 8, !tbaa !46
  %305 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %303, i64 noundef %304) #9
  %306 = load i64, ptr %28, align 8, !tbaa !46
  call void @_ZNKSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmEEclES7_m(ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef nonnull align 8 dereferenceable(32) %305, i64 noundef %306)
  %307 = load i64, ptr %28, align 8, !tbaa !46
  %308 = load ptr, ptr %24, align 8, !tbaa !5
  %309 = getelementptr inbounds %"class.Raz::OverlayListBox", ptr %308, i32 0, i32 3
  store i64 %307, ptr %309, align 8, !tbaa !47
  br label %310

310:                                              ; preds = %299, %296
  br label %311

311:                                              ; preds = %310, %281
  %312 = load i8, ptr %29, align 1, !tbaa !37, !range !21, !noundef !22
  %313 = trunc i8 %312 to i1
  br i1 %313, label %314, label %315

314:                                              ; preds = %311
  call void @_ZN5ImGui19SetItemDefaultFocusEv()
  br label %315

315:                                              ; preds = %314, %311
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #9
  br label %316

316:                                              ; preds = %315
  %317 = load i64, ptr %28, align 8, !tbaa !46
  %318 = add i64 %317, 1
  store i64 %318, ptr %28, align 8, !tbaa !46
  br label %274, !llvm.loop !54

319:                                              ; preds = %280
  call void @_ZN5ImGui10EndListBoxEv()
  br label %320

320:                                              ; preds = %319, %258
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  br label %652

321:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %322 = load ptr, ptr %10, align 8, !tbaa !5
  %323 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %322) #9
  store ptr %323, ptr %31, align 8, !tbaa !5
  %324 = load ptr, ptr %31, align 8, !tbaa !5
  %325 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %324, i32 0, i32 1
  %326 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %325) #9
  %327 = load ptr, ptr %31, align 8, !tbaa !5
  %328 = getelementptr inbounds %"class.Raz::OverlayDropdown", ptr %327, i32 0, i32 1
  %329 = load ptr, ptr %31, align 8, !tbaa !5
  %330 = getelementptr inbounds %"class.Raz::OverlayDropdown", ptr %329, i32 0, i32 3
  %331 = load i64, ptr %330, align 8, !tbaa !56
  %332 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %328, i64 noundef %331) #9
  %333 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %332) #9
  %334 = call noundef zeroext i1 @_ZN5ImGui10BeginComboEPKcS1_i(ptr noundef %326, ptr noundef %333, i32 noundef 0)
  br i1 %334, label %335, label %382

335:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  store i64 0, ptr %32, align 8, !tbaa !46
  br label %336

336:                                              ; preds = %378, %335
  %337 = load i64, ptr %32, align 8, !tbaa !46
  %338 = load ptr, ptr %31, align 8, !tbaa !5
  %339 = getelementptr inbounds %"class.Raz::OverlayDropdown", ptr %338, i32 0, i32 1
  %340 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %339) #9
  %341 = icmp ult i64 %337, %340
  br i1 %341, label %343, label %342

342:                                              ; preds = %336
  store i32 8, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %381

343:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #9
  %344 = load ptr, ptr %31, align 8, !tbaa !5
  %345 = getelementptr inbounds %"class.Raz::OverlayDropdown", ptr %344, i32 0, i32 3
  %346 = load i64, ptr %345, align 8, !tbaa !56
  %347 = load i64, ptr %32, align 8, !tbaa !46
  %348 = icmp eq i64 %346, %347
  %349 = zext i1 %348 to i8
  store i8 %349, ptr %33, align 1, !tbaa !37
  %350 = load ptr, ptr %31, align 8, !tbaa !5
  %351 = getelementptr inbounds %"class.Raz::OverlayDropdown", ptr %350, i32 0, i32 1
  %352 = load i64, ptr %32, align 8, !tbaa !46
  %353 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %351, i64 noundef %352) #9
  %354 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %353) #9
  %355 = load i8, ptr %33, align 1, !tbaa !37, !range !21, !noundef !22
  %356 = trunc i8 %355 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %357 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %354, i1 noundef zeroext %356, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %34)
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  br i1 %357, label %358, label %373

358:                                              ; preds = %343
  %359 = load i8, ptr %33, align 1, !tbaa !37, !range !21, !noundef !22
  %360 = trunc i8 %359 to i1
  br i1 %360, label %372, label %361

361:                                              ; preds = %358
  %362 = load ptr, ptr %31, align 8, !tbaa !5
  %363 = getelementptr inbounds %"class.Raz::OverlayDropdown", ptr %362, i32 0, i32 2
  %364 = load ptr, ptr %31, align 8, !tbaa !5
  %365 = getelementptr inbounds %"class.Raz::OverlayDropdown", ptr %364, i32 0, i32 1
  %366 = load i64, ptr %32, align 8, !tbaa !46
  %367 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %365, i64 noundef %366) #9
  %368 = load i64, ptr %32, align 8, !tbaa !46
  call void @_ZNKSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmEEclES7_m(ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull align 8 dereferenceable(32) %367, i64 noundef %368)
  %369 = load i64, ptr %32, align 8, !tbaa !46
  %370 = load ptr, ptr %31, align 8, !tbaa !5
  %371 = getelementptr inbounds %"class.Raz::OverlayDropdown", ptr %370, i32 0, i32 3
  store i64 %369, ptr %371, align 8, !tbaa !56
  br label %372

372:                                              ; preds = %361, %358
  br label %373

373:                                              ; preds = %372, %343
  %374 = load i8, ptr %33, align 1, !tbaa !37, !range !21, !noundef !22
  %375 = trunc i8 %374 to i1
  br i1 %375, label %376, label %377

376:                                              ; preds = %373
  call void @_ZN5ImGui19SetItemDefaultFocusEv()
  br label %377

377:                                              ; preds = %376, %373
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #9
  br label %378

378:                                              ; preds = %377
  %379 = load i64, ptr %32, align 8, !tbaa !46
  %380 = add i64 %379, 1
  store i64 %380, ptr %32, align 8, !tbaa !46
  br label %336, !llvm.loop !58

381:                                              ; preds = %342
  call void @_ZN5ImGui8EndComboEv()
  br label %382

382:                                              ; preds = %381, %321
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %652

383:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %384 = load ptr, ptr %10, align 8, !tbaa !5
  %385 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %384) #9
  store ptr %385, ptr %35, align 8, !tbaa !5
  %386 = load ptr, ptr %35, align 8, !tbaa !5
  %387 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %386, i32 0, i32 1
  %388 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %387) #9
  %389 = load ptr, ptr %35, align 8, !tbaa !5
  %390 = getelementptr inbounds %"class.Raz::OverlayColorPicker", ptr %389, i32 0, i32 3
  %391 = call noundef ptr @_ZNSt5arrayIfLm3EE4dataEv(ptr noundef nonnull align 4 dereferenceable(12) %390) #10
  %392 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit3EPKcPfi(ptr noundef %388, ptr noundef %391, i32 noundef 0)
  br i1 %392, label %393, label %408

393:                                              ; preds = %383
  %394 = load ptr, ptr %35, align 8, !tbaa !5
  %395 = getelementptr inbounds %"class.Raz::OverlayColorPicker", ptr %394, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 12, ptr %36) #9
  %396 = load ptr, ptr %35, align 8, !tbaa !5
  %397 = getelementptr inbounds %"class.Raz::OverlayColorPicker", ptr %396, i32 0, i32 3
  %398 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %397, i64 noundef 0) #9
  %399 = load float, ptr %398, align 4, !tbaa !23
  %400 = load ptr, ptr %35, align 8, !tbaa !5
  %401 = getelementptr inbounds %"class.Raz::OverlayColorPicker", ptr %400, i32 0, i32 3
  %402 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %401, i64 noundef 1) #9
  %403 = load float, ptr %402, align 4, !tbaa !23
  %404 = load ptr, ptr %35, align 8, !tbaa !5
  %405 = getelementptr inbounds %"class.Raz::OverlayColorPicker", ptr %404, i32 0, i32 3
  %406 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %405, i64 noundef 2) #9
  %407 = load float, ptr %406, align 4, !tbaa !23
  call void @_ZN3Raz5ColorC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %36, float noundef %399, float noundef %403, float noundef %407)
  call void @_ZNKSt8functionIFvRKN3Raz5ColorEEEclES3_(ptr noundef nonnull align 8 dereferenceable(32) %395, ptr noundef nonnull align 4 dereferenceable(12) %36)
  call void @llvm.lifetime.end.p0(i64 12, ptr %36) #9
  br label %408

408:                                              ; preds = %393, %383
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  br label %652

409:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %410 = load ptr, ptr %10, align 8, !tbaa !5
  %411 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %410) #9
  store ptr %411, ptr %37, align 8, !tbaa !5
  %412 = load ptr, ptr %37, align 8, !tbaa !5
  %413 = getelementptr inbounds %"class.Raz::OverlayTexture", ptr %412, i32 0, i32 1
  %414 = load i32, ptr %413, align 4, !tbaa !59
  %415 = call noundef zeroext i1 @_ZN3Raz8Renderer9isTextureEj(i32 noundef %414)
  br i1 %415, label %416, label %417

416:                                              ; preds = %409
  br label %419

417:                                              ; preds = %409
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.8, i32 noundef 422, ptr noundef @__PRETTY_FUNCTION__._ZNK3Raz13OverlayWindow6renderEv) #11
  unreachable

418:                                              ; No predecessors!
  br label %419

419:                                              ; preds = %418, %416
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %420 = call noundef float @_ZN5ImGui14GetWindowWidthEv()
  %421 = load ptr, ptr %37, align 8, !tbaa !5
  %422 = getelementptr inbounds %"class.Raz::OverlayTexture", ptr %421, i32 0, i32 2
  %423 = load float, ptr %422, align 8, !tbaa !62
  %424 = fdiv float %420, %423
  store float %424, ptr %39, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %425 = call noundef float @_ZN5ImGui15GetWindowHeightEv()
  %426 = load ptr, ptr %37, align 8, !tbaa !5
  %427 = getelementptr inbounds %"class.Raz::OverlayTexture", ptr %426, i32 0, i32 3
  %428 = load float, ptr %427, align 4, !tbaa !63
  %429 = fdiv float %425, %428
  store float %429, ptr %40, align 4, !tbaa !23
  %430 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %40)
  %431 = load float, ptr %430, align 4, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  store float %431, ptr %38, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %432 = load ptr, ptr %37, align 8, !tbaa !5
  %433 = getelementptr inbounds %"class.Raz::OverlayTexture", ptr %432, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %434 = load ptr, ptr %37, align 8, !tbaa !5
  %435 = getelementptr inbounds %"class.Raz::OverlayTexture", ptr %434, i32 0, i32 2
  %436 = load float, ptr %435, align 8, !tbaa !62
  %437 = load float, ptr %38, align 4, !tbaa !23
  %438 = fmul float %436, %437
  store float %438, ptr %42, align 4, !tbaa !23
  %439 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %433, ptr noundef nonnull align 4 dereferenceable(4) %42)
  %440 = load float, ptr %439, align 4, !tbaa !23
  %441 = load ptr, ptr %37, align 8, !tbaa !5
  %442 = getelementptr inbounds %"class.Raz::OverlayTexture", ptr %441, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %443 = load ptr, ptr %37, align 8, !tbaa !5
  %444 = getelementptr inbounds %"class.Raz::OverlayTexture", ptr %443, i32 0, i32 3
  %445 = load float, ptr %444, align 4, !tbaa !63
  %446 = load float, ptr %38, align 4, !tbaa !23
  %447 = fmul float %445, %446
  store float %447, ptr %43, align 4, !tbaa !23
  %448 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %442, ptr noundef nonnull align 4 dereferenceable(4) %43)
  %449 = load float, ptr %448, align 4, !tbaa !23
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef %440, float noundef %449)
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef 1.000000e+00, float noundef 0.000000e+00)
  %450 = load ptr, ptr %37, align 8, !tbaa !5
  %451 = getelementptr inbounds %"class.Raz::OverlayTexture", ptr %450, i32 0, i32 1
  %452 = load i32, ptr %451, align 4, !tbaa !59
  %453 = zext i32 %452 to i64
  %454 = inttoptr i64 %453 to ptr
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #9
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %46, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #9
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %47, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef %454, ptr noundef nonnull align 4 dereferenceable(8) %41, ptr noundef nonnull align 4 dereferenceable(8) %44, ptr noundef nonnull align 4 dereferenceable(8) %45, ptr noundef nonnull align 4 dereferenceable(16) %46, ptr noundef nonnull align 4 dereferenceable(16) %47)
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #9
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  br label %652

455:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %456 = load ptr, ptr %10, align 8, !tbaa !5
  %457 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %456) #9
  store ptr %457, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #9
  %458 = load ptr, ptr %48, align 8, !tbaa !5
  %459 = getelementptr inbounds %"class.Raz::OverlayProgressBar", ptr %458, i32 0, i32 5
  %460 = load i8, ptr %459, align 8, !tbaa !64, !range !21, !noundef !22
  %461 = trunc i8 %460 to i1
  store i1 false, ptr %51, align 1
  store i1 false, ptr %53, align 1
  store i1 false, ptr %54, align 1
  store i1 false, ptr %57, align 1
  store i1 false, ptr %59, align 1
  store i1 false, ptr %60, align 1
  br i1 %461, label %462, label %471

462:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  store i1 true, ptr %51, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #9
  store i1 true, ptr %53, align 1
  %463 = load ptr, ptr %48, align 8, !tbaa !5
  %464 = getelementptr inbounds %"class.Raz::OverlayProgressBar", ptr %463, i32 0, i32 4
  %465 = load i32, ptr %464, align 4, !tbaa !66
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, i32 noundef %465) #9
  store i1 true, ptr %54, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %52, i8 noundef signext 47)
          to label %466 unwind label %512

466:                                              ; preds = %462
  store i1 true, ptr %57, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #9
  store i1 true, ptr %59, align 1
  %467 = load ptr, ptr %48, align 8, !tbaa !5
  %468 = getelementptr inbounds %"class.Raz::OverlayProgressBar", ptr %467, i32 0, i32 3
  %469 = load i32, ptr %468, align 8, !tbaa !67
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, i32 noundef %469) #9
  store i1 true, ptr %60, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %470 unwind label %516

470:                                              ; preds = %466
  br label %472

471:                                              ; preds = %455
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %472

472:                                              ; preds = %471, %470
  %473 = load i1, ptr %60, align 1
  br i1 %473, label %474, label %475

474:                                              ; preds = %472
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  br label %475

475:                                              ; preds = %474, %472
  %476 = load i1, ptr %59, align 1
  br i1 %476, label %477, label %478

477:                                              ; preds = %475
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  br label %478

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

480:                                              ; preds = %478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %481

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

483:                                              ; preds = %481
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %484

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

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

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

489:                                              ; preds = %487
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  br label %490

490:                                              ; preds = %489, %487
  %491 = load ptr, ptr %48, align 8, !tbaa !5
  %492 = getelementptr inbounds %"class.Raz::OverlayProgressBar", ptr %491, i32 0, i32 2
  %493 = load i32, ptr %492, align 4, !tbaa !68
  %494 = load ptr, ptr %48, align 8, !tbaa !5
  %495 = getelementptr inbounds %"class.Raz::OverlayProgressBar", ptr %494, i32 0, i32 4
  %496 = load i32, ptr %495, align 4, !tbaa !66
  %497 = add nsw i32 %493, %496
  %498 = sitofp i32 %497 to float
  %499 = load ptr, ptr %48, align 8, !tbaa !5
  %500 = getelementptr inbounds %"class.Raz::OverlayProgressBar", ptr %499, i32 0, i32 3
  %501 = load i32, ptr %500, align 8, !tbaa !67
  %502 = sitofp i32 %501 to float
  %503 = fdiv float %498, %502
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  invoke void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %61, float noundef -1.000000e+00, float noundef 0.000000e+00)
          to label %504 unwind label %539

504:                                              ; preds = %490
  %505 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br i1 %505, label %506, label %507

506:                                              ; preds = %504
  br label %509

507:                                              ; preds = %504
  %508 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %509

509:                                              ; preds = %507, %506
  %510 = phi ptr [ null, %506 ], [ %508, %507 ]
  invoke void @_ZN5ImGui11ProgressBarEfRK6ImVec2PKc(float noundef %503, ptr noundef nonnull align 4 dereferenceable(8) %61, ptr noundef %510)
          to label %511 unwind label %539

511:                                              ; preds = %509
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  store i32 4, ptr %9, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  br label %652

512:                                              ; preds = %462
  %513 = landingpad { ptr, i32 }
          cleanup
  %514 = extractvalue { ptr, i32 } %513, 0
  store ptr %514, ptr %55, align 8
  %515 = extractvalue { ptr, i32 } %513, 1
  store i32 %515, ptr %56, align 4
  br label %529

516:                                              ; preds = %466
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %55, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %56, align 4
  %520 = load i1, ptr %60, align 1
  br i1 %520, label %521, label %522

521:                                              ; preds = %516
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  br label %522

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

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

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

527:                                              ; preds = %525
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %528

528:                                              ; preds = %527, %525
  br label %529

529:                                              ; preds = %528, %512
  %530 = load i1, ptr %54, align 1
  br i1 %530, label %531, label %532

531:                                              ; preds = %529
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %532

532:                                              ; preds = %531, %529
  %533 = load i1, ptr %53, align 1
  br i1 %533, label %534, label %535

534:                                              ; preds = %532
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #9
  br label %535

535:                                              ; preds = %534, %532
  %536 = load i1, ptr %51, align 1
  br i1 %536, label %537, label %538

537:                                              ; preds = %535
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  br label %538

538:                                              ; preds = %537, %535
  br label %543

539:                                              ; preds = %509, %490
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %55, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %543

543:                                              ; preds = %539, %538
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  br label %660

544:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %545 = load ptr, ptr %10, align 8, !tbaa !5
  %546 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %545) #9
  store ptr %546, ptr %62, align 8, !tbaa !5
  %547 = load ptr, ptr %62, align 8, !tbaa !5
  %548 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %547, i32 0, i32 1
  %549 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %548) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %550 = load ptr, ptr %62, align 8, !tbaa !5
  %551 = getelementptr inbounds %"class.Raz::OverlayPlot", ptr %550, i32 0, i32 8
  %552 = load float, ptr %551, align 4, !tbaa !69
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef -1.000000e+00, float noundef %552)
  %553 = call noundef zeroext i1 @_ZN6ImPlot9BeginPlotEPKcRK6ImVec2i(ptr noundef %549, ptr noundef nonnull align 4 dereferenceable(8) %63, i32 noundef 48)
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  br i1 %553, label %554, label %630

554:                                              ; preds = %544
  %555 = load ptr, ptr %62, align 8, !tbaa !5
  %556 = getelementptr inbounds %"class.Raz::OverlayPlot", ptr %555, i32 0, i32 3
  %557 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %556) #9
  %558 = load ptr, ptr %62, align 8, !tbaa !5
  %559 = getelementptr inbounds %"class.Raz::OverlayPlot", ptr %558, i32 0, i32 4
  %560 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %559) #9
  %561 = load ptr, ptr %62, align 8, !tbaa !5
  %562 = getelementptr inbounds %"class.Raz::OverlayPlot", ptr %561, i32 0, i32 7
  %563 = load i8, ptr %562, align 8, !tbaa !75, !range !21, !noundef !22
  %564 = trunc i8 %563 to i1
  %565 = zext i1 %564 to i64
  %566 = select i1 %564, i32 49152, i32 0
  call void @_ZN6ImPlot9SetupAxesEPKcS1_ii(ptr noundef %557, ptr noundef %560, i32 noundef 8, i32 noundef %566)
  %567 = load ptr, ptr %62, align 8, !tbaa !5
  %568 = getelementptr inbounds %"class.Raz::OverlayPlot", ptr %567, i32 0, i32 2
  %569 = load i64, ptr %568, align 8, !tbaa !76
  %570 = sub i64 %569, 1
  %571 = uitofp i64 %570 to double
  call void @_ZN6ImPlot15SetupAxisLimitsEiddi(i32 noundef 0, double noundef 0.000000e+00, double noundef %571, i32 noundef 1)
  %572 = load ptr, ptr %62, align 8, !tbaa !5
  %573 = getelementptr inbounds %"class.Raz::OverlayPlot", ptr %572, i32 0, i32 5
  %574 = load float, ptr %573, align 8, !tbaa !77
  %575 = fpext float %574 to double
  %576 = load ptr, ptr %62, align 8, !tbaa !5
  %577 = getelementptr inbounds %"class.Raz::OverlayPlot", ptr %576, i32 0, i32 6
  %578 = load float, ptr %577, align 4, !tbaa !78
  %579 = fpext float %578 to double
  call void @_ZN6ImPlot15SetupAxisLimitsEiddi(i32 noundef 3, double noundef %575, double noundef %579, i32 noundef 2)
  call void @_ZN6ImPlot14SetupMouseTextEii(i32 noundef 9, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %580 = load ptr, ptr %62, align 8, !tbaa !5
  %581 = getelementptr inbounds %"class.Raz::OverlayPlot", ptr %580, i32 0, i32 1
  store ptr %581, ptr %64, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %582 = load ptr, ptr %64, align 8, !tbaa !5
  %583 = call ptr @_ZNSt6vectorISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %582) #9
  %584 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.192", ptr %65, i32 0, i32 0
  store ptr %583, ptr %584, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %585 = load ptr, ptr %64, align 8, !tbaa !5
  %586 = call ptr @_ZNSt6vectorISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %585) #9
  %587 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.192", ptr %66, i32 0, i32 0
  store ptr %586, ptr %587, align 8
  br label %588

588:                                              ; preds = %627, %554
  %589 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  br i1 %589, label %591, label %590

590:                                              ; preds = %588
  store i32 11, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  br label %629

591:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  %592 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #9
  store ptr %592, ptr %67, align 8, !tbaa !5
  %593 = load ptr, ptr %67, align 8, !tbaa !5
  %594 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %593) #9
  %595 = getelementptr inbounds %"class.Raz::OverlayPlotEntry", ptr %594, i32 0, i32 1
  %596 = load i32, ptr %595, align 8, !tbaa !79
  %597 = icmp eq i32 %596, 1
  br i1 %597, label %598, label %612

598:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #9
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %68, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN6ImPlot16SetNextFillStyleERK6ImVec4f(ptr noundef nonnull align 4 dereferenceable(16) %68, float noundef 5.000000e-01)
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #9
  %599 = load ptr, ptr %67, align 8, !tbaa !5
  %600 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %599) #9
  %601 = getelementptr inbounds %"class.Raz::OverlayPlotEntry", ptr %600, i32 0, i32 0
  %602 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %601) #9
  %603 = load ptr, ptr %67, align 8, !tbaa !5
  %604 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %603) #9
  %605 = getelementptr inbounds %"class.Raz::OverlayPlotEntry", ptr %604, i32 0, i32 2
  %606 = call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %605) #9
  %607 = load ptr, ptr %67, align 8, !tbaa !5
  %608 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %607) #9
  %609 = getelementptr inbounds %"class.Raz::OverlayPlotEntry", ptr %608, i32 0, i32 2
  %610 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %609) #9
  %611 = trunc i64 %610 to i32
  call void @_ZN6ImPlot10PlotShadedIfEEvPKcPKT_idddiii(ptr noundef %602, ptr noundef %606, i32 noundef %611, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i32 noundef 4)
  br label %626

612:                                              ; preds = %591
  %613 = load ptr, ptr %67, align 8, !tbaa !5
  %614 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %613) #9
  %615 = getelementptr inbounds %"class.Raz::OverlayPlotEntry", ptr %614, i32 0, i32 0
  %616 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %615) #9
  %617 = load ptr, ptr %67, align 8, !tbaa !5
  %618 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %617) #9
  %619 = getelementptr inbounds %"class.Raz::OverlayPlotEntry", ptr %618, i32 0, i32 2
  %620 = call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %619) #9
  %621 = load ptr, ptr %67, align 8, !tbaa !5
  %622 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %621) #9
  %623 = getelementptr inbounds %"class.Raz::OverlayPlotEntry", ptr %622, i32 0, i32 2
  %624 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %623) #9
  %625 = trunc i64 %624 to i32
  call void @_ZN6ImPlot8PlotLineIfEEvPKcPKT_iddiii(ptr noundef %616, ptr noundef %620, i32 noundef %625, double noundef 1.000000e+00, double noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i32 noundef 4)
  br label %626

626:                                              ; preds = %612, %598
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  br label %627

627:                                              ; preds = %626
  %628 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #9
  br label %588

629:                                              ; preds = %590
  call void @_ZN6ImPlot7EndPlotEv()
  br label %630

630:                                              ; preds = %629, %544
  store i32 4, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  br label %652

631:                                              ; preds = %119
  call void @_ZN5ImGui9SeparatorEv()
  br label %652

632:                                              ; preds = %119
  %633 = load ptr, ptr %10, align 8, !tbaa !5
  %634 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %633) #9
  %635 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %634, i32 0, i32 1
  %636 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %635) #9
  %637 = call noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv()
  %638 = getelementptr inbounds %struct.ImGuiIO, ptr %637, i32 0, i32 53
  %639 = load float, ptr %638, align 4, !tbaa !86
  %640 = fdiv float 1.000000e+03, %639
  %641 = fpext float %640 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %636, double noundef %641)
  br label %652

642:                                              ; preds = %119
  %643 = load ptr, ptr %10, align 8, !tbaa !5
  %644 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %643) #9
  %645 = getelementptr inbounds %"class.Raz::OverlayElement", ptr %644, i32 0, i32 1
  %646 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %645) #9
  %647 = call noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv()
  %648 = getelementptr inbounds %struct.ImGuiIO, ptr %647, i32 0, i32 53
  %649 = load float, ptr %648, align 4, !tbaa !86
  %650 = fpext float %649 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %646, double noundef %650)
  br label %652

651:                                              ; preds = %119
  br label %652

652:                                              ; preds = %651, %642, %632, %631, %630, %511, %419, %408, %382, %320, %257, %239, %224, %199, %163, %131, %126
  store i32 0, ptr %9, align 4
  br label %653

653:                                              ; preds = %652, %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  %654 = load i32, ptr %9, align 4
  switch i32 %654, label %665 [
    i32 0, label %655
    i32 3, label %656
  ]

655:                                              ; preds = %653
  br label %656

656:                                              ; preds = %655, %653
  %657 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  br label %110

658:                                              ; preds = %112
  call void @_ZN5ImGui3EndEv()
  br label %659

659:                                              ; preds = %658, %73
  ret void

660:                                              ; preds = %543
  %661 = load ptr, ptr %55, align 8
  %662 = load i32, ptr %56, align 4
  %663 = insertvalue { ptr, i32 } poison, ptr %661, 0
  %664 = insertvalue { ptr, i32 } %663, i32 %662, 1
  resume { ptr, i32 } %664

665:                                              ; preds = %653
  unreachable
}

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

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #4

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

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

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

declare void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #1

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

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

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

declare void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) #1

declare noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef, ptr noundef, i32 noundef) #1

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

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

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

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

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

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

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

declare void @_ZN5ImGui15PushTextWrapPosEf(float noundef) #1

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, ptr noundef) #1

declare void @_ZN5ImGui14PopTextWrapPosEv() #1

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

declare void @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef, ...) #1

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) #1

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

declare noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) #1

declare void @_ZN5ImGui16SetNextItemWidthEf(float noundef) #1

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

declare noundef float @_ZN5ImGui13CalcItemWidthEv() #1

declare noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, i32 noundef) #1

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

declare noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) #1

declare noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) #1

declare noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv() #1

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

declare noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) #1

declare noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef, i1 noundef zeroext, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) #1

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

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

declare void @_ZN5ImGui19SetItemDefaultFocusEv() #1

declare void @_ZN5ImGui10EndListBoxEv() #1

declare noundef zeroext i1 @_ZN5ImGui10BeginComboEPKcS1_i(ptr noundef, ptr noundef, i32 noundef) #1

declare void @_ZN5ImGui8EndComboEv() #1

declare noundef zeroext i1 @_ZN5ImGui10ColorEdit3EPKcPfi(ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: mustprogress nounwind willreturn memory(none) uwtable
declare dso_local noundef ptr @_ZNSt5arrayIfLm3EE4dataEv(ptr noundef nonnull align 4 dereferenceable(12)) #7 align 2

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

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

declare noundef zeroext i1 @_ZN3Raz8Renderer9isTextureEj(i32 noundef) #1

declare noundef float @_ZN5ImGui14GetWindowWidthEv() #1

declare noundef float @_ZN5ImGui15GetWindowHeightEv() #1

declare void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #1

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #5

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

declare void @_ZN5ImGui11ProgressBarEfRK6ImVec2PKc(float noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef) #1

declare noundef zeroext i1 @_ZN6ImPlot9BeginPlotEPKcRK6ImVec2i(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #1

declare void @_ZN6ImPlot9SetupAxesEPKcS1_ii(ptr noundef, ptr noundef, i32 noundef, i32 noundef) #1

declare void @_ZN6ImPlot15SetupAxisLimitsEiddi(i32 noundef, double noundef, double noundef, i32 noundef) #1

declare void @_ZN6ImPlot14SetupMouseTextEii(i32 noundef, i32 noundef) #1

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

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

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

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

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

declare void @_ZN6ImPlot16SetNextFillStyleERK6ImVec4f(ptr noundef nonnull align 4 dereferenceable(16), float noundef) #1

declare void @_ZN6ImPlot10PlotShadedIfEEvPKcPKT_idddiii(ptr noundef, ptr noundef, i32 noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef) #1

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

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

declare void @_ZN6ImPlot8PlotLineIfEEvPKcPKT_iddiii(ptr noundef, ptr noundef, i32 noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef) #1

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

declare void @_ZN6ImPlot7EndPlotEv() #1

declare void @_ZN5ImGui9SeparatorEv() #1

declare void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) #1

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

declare void @_ZN5ImGui3EndEv() #1

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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { mustprogress nounwind willreturn memory(none) 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 = { 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 #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn 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, !16, i64 48}
!10 = !{!"_ZTSN3Raz13OverlayWindowE", !11, i64 0, !14, i64 32, !14, i64 40, !16, i64 48, !17, i64 56}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !12, i64 0, !13, i64 8, !7, i64 16}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTSN3Raz6VectorIfLm2EEE", !15, i64 0}
!15 = !{!"_ZTSSt5arrayIfLm2EE", !7, i64 0}
!16 = !{!"bool", !7, i64 0}
!17 = !{!"_ZTSSt6vectorISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{i8 0, i8 2}
!22 = !{}
!23 = !{!24, !24, i64 0}
!24 = !{!"float", !7, i64 0}
!25 = !{!26, !26, i64 0}
!26 = !{!"vtable pointer", !8, i64 0}
!27 = !{!28, !24, i64 56}
!28 = !{!"_ZTSN3Raz19OverlayColoredLabelE", !29, i64 0, !30, i64 44, !24, i64 56}
!29 = !{!"_ZTSN3Raz14OverlayElementE", !11, i64 8, !16, i64 40}
!30 = !{!"_ZTSN3Raz5ColorE", !31, i64 0}
!31 = !{!"_ZTSN3Raz6VectorIfLm3EEE", !32, i64 0}
!32 = !{!"_ZTSSt5arrayIfLm3EE", !7, i64 0}
!33 = !{!34, !16, i64 112}
!34 = !{!"_ZTSN3Raz15OverlayCheckboxE", !29, i64 0, !35, i64 48, !35, i64 80, !16, i64 112}
!35 = !{!"_ZTSSt8functionIFvvEE", !36, i64 0, !6, i64 24}
!36 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!37 = !{!16, !16, i64 0}
!38 = !{!39, !24, i64 80}
!39 = !{!"_ZTSN3Raz13OverlaySliderE", !29, i64 0, !40, i64 48, !24, i64 80, !24, i64 84, !24, i64 88}
!40 = !{!"_ZTSSt8functionIFvfEE", !36, i64 0, !6, i64 24}
!41 = !{!39, !24, i64 84}
!42 = !{!39, !24, i64 88}
!43 = !{!44, !24, i64 112}
!44 = !{!"_ZTSN3Raz15OverlayTextAreaE", !29, i64 0, !11, i64 48, !45, i64 80, !24, i64 112}
!45 = !{!"_ZTSSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !36, i64 0, !6, i64 24}
!46 = !{!13, !13, i64 0}
!47 = !{!48, !13, i64 104}
!48 = !{!"_ZTSN3Raz14OverlayListBoxE", !29, i64 0, !49, i64 48, !53, i64 72, !13, i64 104}
!49 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!"_ZTSSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmEE", !36, i64 0, !6, i64 24}
!54 = distinct !{!54, !55}
!55 = !{!"llvm.loop.mustprogress"}
!56 = !{!57, !13, i64 104}
!57 = !{!"_ZTSN3Raz15OverlayDropdownE", !29, i64 0, !49, i64 48, !53, i64 72, !13, i64 104}
!58 = distinct !{!58, !55}
!59 = !{!60, !61, i64 44}
!60 = !{!"_ZTSN3Raz14OverlayTextureE", !29, i64 0, !61, i64 44, !24, i64 48, !24, i64 52}
!61 = !{!"int", !7, i64 0}
!62 = !{!60, !24, i64 48}
!63 = !{!60, !24, i64 52}
!64 = !{!65, !16, i64 56}
!65 = !{!"_ZTSN3Raz18OverlayProgressBarE", !29, i64 0, !61, i64 44, !61, i64 48, !61, i64 52, !16, i64 56}
!66 = !{!65, !61, i64 52}
!67 = !{!65, !61, i64 48}
!68 = !{!65, !61, i64 44}
!69 = !{!70, !24, i64 156}
!70 = !{!"_ZTSN3Raz11OverlayPlotE", !29, i64 0, !71, i64 48, !13, i64 72, !11, i64 80, !11, i64 112, !24, i64 144, !24, i64 148, !16, i64 152, !24, i64 156}
!71 = !{!"_ZTSSt6vectorISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE", !72, i64 0}
!72 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!75 = !{!70, !16, i64 152}
!76 = !{!70, !13, i64 72}
!77 = !{!70, !24, i64 144}
!78 = !{!70, !24, i64 148}
!79 = !{!80, !81, i64 32}
!80 = !{!"_ZTSN3Raz16OverlayPlotEntryE", !11, i64 0, !81, i64 32, !82, i64 40}
!81 = !{!"_ZTSN3Raz15OverlayPlotTypeE", !7, i64 0}
!82 = !{!"_ZTSSt6vectorIfSaIfEE", !83, i64 0}
!83 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !85, i64 0}
!85 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!86 = !{!87, !24, i64 916}
!87 = !{!"_ZTS7ImGuiIO", !61, i64 0, !61, i64 4, !88, i64 8, !24, i64 16, !24, i64 20, !6, i64 24, !6, i64 32, !24, i64 40, !24, i64 44, !24, i64 48, !7, i64 52, !24, i64 140, !24, i64 144, !6, i64 152, !6, i64 160, !24, i64 168, !16, i64 172, !6, i64 176, !88, i64 184, !16, i64 192, !16, i64 193, !16, i64 194, !16, i64 195, !16, i64 196, !16, i64 197, !24, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !88, i64 288, !7, i64 296, !24, i64 304, !24, i64 308, !16, i64 312, !16, i64 313, !16, i64 314, !16, i64 315, !7, i64 316, !7, i64 828, !16, i64 908, !16, i64 909, !16, i64 910, !16, i64 911, !16, i64 912, !16, i64 913, !16, i64 914, !24, i64 916, !61, i64 920, !61, i64 924, !61, i64 928, !61, i64 932, !61, i64 936, !88, i64 940, !61, i64 948, !61, i64 952, !88, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1076, !7, i64 1096, !7, i64 1116, !7, i64 1156, !7, i64 1176, !7, i64 3224, !7, i64 5272, !7, i64 5352, !24, i64 5432, !89, i64 5436, !90, i64 5440}
!88 = !{!"_ZTS6ImVec2", !24, i64 0, !24, i64 4}
!89 = !{!"short", !7, i64 0}
!90 = !{!"_ZTS8ImVectorItE", !61, i64 0, !61, i64 4, !6, i64 8}


; 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.ImVec2 = type { float, float }
%"class.__gnu_cxx::__normal_iterator.191" = type { ptr }
%struct.ImVec4 = type { float, float, float, float }
%"class.Raz::Color" = type { %"class.Raz::Vector.16" }
%"class.Raz::Vector.16" = type { %"struct.std::array.17" }
%"struct.std::array.17" = type { [3 x float] }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.__gnu_cxx::__normal_iterator.192" = type { ptr }

@.str.8 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@__PRETTY_FUNCTION__._ZNK3Raz13OverlayWindow6renderEv = external hidden unnamed_addr constant [40 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

declare noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv() local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK3Raz13OverlayWindow6renderEv(ptr noundef nonnull align 8 dereferenceable(80) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %struct.ImVec2, align 4
  %3 = alloca %struct.ImVec2, align 4
  %4 = alloca %struct.ImVec2, align 4
  %5 = alloca %"class.__gnu_cxx::__normal_iterator.191", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator.191", align 8
  %7 = alloca %struct.ImVec4, align 4
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca float, align 4
  %10 = alloca float, align 4
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 4
  %13 = alloca float, align 4
  %14 = alloca float, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %"class.Raz::Color", align 4
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca %struct.ImVec2, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec4, align 4
  %26 = alloca %struct.ImVec4, align 4
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.192", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator.192", align 8
  %35 = alloca %struct.ImVec4, align 4
  %36 = getelementptr inbounds i8, ptr %0, i64 48
  %37 = load i8, ptr %36, align 8, !tbaa !5, !range !20, !noundef !21
  %38 = trunc nuw i8 %37 to i1
  br i1 %38, label %39, label %360

39:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #9
  %40 = getelementptr inbounds i8, ptr %0, i64 32
  %41 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1xEv(ptr noundef nonnull align 4 dereferenceable(8) %40) #9
  %42 = load float, ptr %41, align 4, !tbaa !22
  %43 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1yEv(ptr noundef nonnull align 4 dereferenceable(8) %40) #9
  %44 = load float, ptr %43, align 4, !tbaa !22
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef %42, float noundef %44)
  call void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8) %2, i32 noundef 2)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #9
  %45 = getelementptr inbounds i8, ptr %0, i64 40
  %46 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1xEv(ptr noundef nonnull align 4 dereferenceable(8) %45) #9
  %47 = load float, ptr %46, align 4, !tbaa !22
  %48 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1yEv(ptr noundef nonnull align 4 dereferenceable(8) %45) #9
  %49 = load float, ptr %48, align 4, !tbaa !22
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %3, float noundef %47, float noundef %49)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8) %3, i32 noundef 2, ptr noundef nonnull align 4 dereferenceable(8) %4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  %50 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #9
  %51 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1xEv(ptr noundef nonnull align 4 dereferenceable(8) %40) #9
  %52 = load float, ptr %51, align 4, !tbaa !22
  %53 = fcmp olt float %52, 0.000000e+00
  br i1 %53, label %54, label %.thread

54:                                               ; preds = %39
  %55 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm2EE1yEv(ptr noundef nonnull align 4 dereferenceable(8) %40) #9
  %56 = load float, ptr %55, align 4, !tbaa !22
  %.fr = freeze float %56
  %57 = fcmp olt float %.fr, 0.000000e+00
  %spec.select = select i1 %57, i32 64, i32 0
  br label %.thread

.thread:                                          ; preds = %54, %39
  %58 = phi i32 [ 0, %39 ], [ %spec.select, %54 ]
  %59 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef %50, ptr noundef null, i32 noundef %58)
  %60 = getelementptr inbounds i8, ptr %0, i64 56
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %61 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %60) #9
  store ptr %61, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %62 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %60) #9
  store ptr %62, ptr %6, align 8
  %63 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  br i1 %63, label %.lr.ph170, label %._crit_edge171

._crit_edge171:                                   ; preds = %357, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  call void @_ZN5ImGui3EndEv()
  br label %360

.lr.ph170:                                        ; preds = %.thread, %357
  %64 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #9
  %65 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %66 = call noundef zeroext i1 @_ZNK3Raz14OverlayElement9isEnabledEv(ptr noundef nonnull align 8 dereferenceable(41) %65) #9
  br i1 %66, label %67, label %357

67:                                               ; preds = %.lr.ph170
  %68 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %69 = load ptr, ptr %68, align 8, !tbaa !24
  %70 = load ptr, ptr %69, align 8
  %71 = call noundef i32 %70(ptr noundef nonnull align 8 dereferenceable(41) %68)
  switch i32 %71, label %357 [
    i32 0, label %72
    i32 1, label %76
    i32 2, label %91
    i32 3, label %98
    i32 4, label %112
    i32 5, label %128
    i32 6, label %136
    i32 7, label %146
    i32 8, label %176
    i32 9, label %202
    i32 10, label %217
    i32 11, label %245
    i32 12, label %281
    i32 13, label %339
    i32 14, label %340
    i32 15, label %349
  ]

72:                                               ; preds = %67
  call void @_ZN5ImGui15PushTextWrapPosEf(float noundef 0.000000e+00)
  %73 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %74 = getelementptr inbounds i8, ptr %73, i64 8
  %75 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef %75, ptr noundef null)
  call void @_ZN5ImGui14PopTextWrapPosEv()
  br label %357

76:                                               ; preds = %67
  %77 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  call void @_ZN5ImGui15PushTextWrapPosEf(float noundef 0.000000e+00)
  %78 = getelementptr inbounds i8, ptr %77, i64 44
  %79 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZNK3Raz5ColorcvRKNS_6VectorIfLm3EEEEv(ptr noundef nonnull align 4 dereferenceable(12) %78) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #9
  %80 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm3EE1xEv(ptr noundef nonnull align 4 dereferenceable(12) %79) #9
  %81 = load float, ptr %80, align 4, !tbaa !22
  %82 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm3EE1yEv(ptr noundef nonnull align 4 dereferenceable(12) %79) #9
  %83 = load float, ptr %82, align 4, !tbaa !22
  %84 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK3Raz6VectorIfLm3EE1zEv(ptr noundef nonnull align 4 dereferenceable(12) %79) #9
  %85 = load float, ptr %84, align 4, !tbaa !22
  %86 = getelementptr inbounds i8, ptr %77, i64 56
  %87 = load float, ptr %86, align 8, !tbaa !26
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %7, float noundef %81, float noundef %83, float noundef %85, float noundef %87)
  %88 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %89 = getelementptr inbounds i8, ptr %88, i64 8
  %90 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  call void (ptr, ptr, ...) @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16) %7, ptr noundef nonnull @.str.13, ptr noundef %90)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #9
  call void @_ZN5ImGui14PopTextWrapPosEv()
  br label %357

91:                                               ; preds = %67
  %92 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %93 = getelementptr inbounds i8, ptr %92, i64 8
  %94 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %95 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %94, ptr noundef nonnull align 4 dereferenceable(8) %8)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  br i1 %95, label %96, label %357

96:                                               ; preds = %91
  %97 = getelementptr inbounds i8, ptr %92, i64 48
  call void @_ZNKSt8functionIFvvEEclEv(ptr noundef nonnull align 8 dereferenceable(32) %97)
  br label %357

98:                                               ; preds = %67
  %99 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %100 = getelementptr inbounds i8, ptr %99, i64 112
  %101 = load i8, ptr %100, align 8, !tbaa !32, !range !20, !noundef !21
  %102 = getelementptr inbounds i8, ptr %99, i64 8
  %103 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  %104 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef %103, ptr noundef nonnull %100)
  %105 = load i8, ptr %100, align 8, !tbaa !32, !range !20, !noundef !21
  %.not = icmp eq i8 %105, %101
  br i1 %.not, label %357, label %106

106:                                              ; preds = %98
  %107 = trunc nuw i8 %105 to i1
  br i1 %107, label %108, label %110

108:                                              ; preds = %106
  %109 = getelementptr inbounds i8, ptr %99, i64 48
  call void @_ZNKSt8functionIFvvEEclEv(ptr noundef nonnull align 8 dereferenceable(32) %109)
  br label %357

110:                                              ; preds = %106
  %111 = getelementptr inbounds i8, ptr %99, i64 80
  call void @_ZNKSt8functionIFvvEEclEv(ptr noundef nonnull align 8 dereferenceable(32) %111)
  br label %357

112:                                              ; preds = %67
  %113 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #9
  %114 = call noundef float @_ZN5ImGui13CalcItemWidthEv()
  store float %114, ptr %9, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #9
  store float 2.100000e+02, ptr %10, align 4, !tbaa !22
  %115 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10)
  %116 = load float, ptr %115, align 4, !tbaa !22
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %116)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #9
  %117 = getelementptr inbounds i8, ptr %113, i64 8
  %118 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %117) #9
  %119 = getelementptr inbounds i8, ptr %113, i64 88
  %120 = getelementptr inbounds i8, ptr %113, i64 80
  %121 = load float, ptr %120, align 8, !tbaa !36
  %122 = getelementptr inbounds i8, ptr %113, i64 84
  %123 = load float, ptr %122, align 4, !tbaa !39
  %124 = call noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef %118, ptr noundef nonnull %119, float noundef %121, float noundef %123, ptr noundef nonnull @.str.14, i32 noundef 0)
  br i1 %124, label %125, label %357

125:                                              ; preds = %112
  %126 = getelementptr inbounds i8, ptr %113, i64 48
  %127 = load float, ptr %119, align 8, !tbaa !40
  call void @_ZNKSt8functionIFvfEEclEf(ptr noundef nonnull align 8 dereferenceable(32) %126, float noundef %127)
  br label %357

128:                                              ; preds = %67
  %129 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %130 = getelementptr inbounds i8, ptr %129, i64 8
  %131 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %130) #9
  %132 = getelementptr inbounds i8, ptr %129, i64 48
  %133 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %131, ptr noundef nonnull %132, i32 noundef 0, ptr noundef null, ptr noundef null)
  br i1 %133, label %134, label %357

134:                                              ; preds = %128
  %135 = getelementptr inbounds i8, ptr %129, i64 80
  call void @_ZNKSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEclES7_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull align 8 dereferenceable(32) %132)
  br label %357

136:                                              ; preds = %67
  %137 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %138 = getelementptr inbounds i8, ptr %137, i64 8
  %139 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %138) #9
  %140 = getelementptr inbounds i8, ptr %137, i64 48
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #9
  %141 = getelementptr inbounds i8, ptr %137, i64 112
  %142 = load float, ptr %141, align 8, !tbaa !41
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef -1.000000e+00, float noundef %142)
  %143 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %139, ptr noundef nonnull %140, ptr noundef nonnull align 4 dereferenceable(8) %11, i32 noundef 1024, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  br i1 %143, label %144, label %357

144:                                              ; preds = %136
  %145 = getelementptr inbounds i8, ptr %137, i64 80
  call void @_ZNKSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEclES7_(ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 8 dereferenceable(32) %140)
  br label %357

146:                                              ; preds = %67
  %147 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  %148 = call noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #9
  %149 = getelementptr inbounds i8, ptr %147, i64 48
  %150 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %149) #9
  %151 = uitofp i64 %150 to float
  store float %151, ptr %13, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #9
  store float 5.000000e+00, ptr %14, align 4, !tbaa !22
  %152 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14)
  %153 = load float, ptr %152, align 4, !tbaa !22
  %154 = call float @llvm.fmuladd.f32(float %148, float %153, float 2.000000e+00)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %12, float noundef 0.000000e+00, float noundef %154)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #9
  %155 = getelementptr inbounds i8, ptr %147, i64 8
  %156 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %155) #9
  %157 = call noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef %156, ptr noundef nonnull align 4 dereferenceable(8) %12)
  br i1 %157, label %.preheader, label %175

.preheader:                                       ; preds = %146
  %158 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %149) #9
  %.not173 = icmp eq i64 %158, 0
  br i1 %.not173, label %._crit_edge169, label %.lr.ph168

.lr.ph168:                                        ; preds = %.preheader
  %159 = getelementptr inbounds i8, ptr %147, i64 104
  %160 = getelementptr inbounds i8, ptr %147, i64 72
  br label %161

._crit_edge169:                                   ; preds = %171, %.preheader
  call void @_ZN5ImGui10EndListBoxEv()
  br label %175

161:                                              ; preds = %.lr.ph168, %171
  %.0167 = phi i64 [ 0, %.lr.ph168 ], [ %172, %171 ]
  %162 = load i64, ptr %159, align 8, !tbaa !44
  %163 = icmp eq i64 %162, %.0167
  %164 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %.0167) #9
  %165 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %164) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %166 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %165, i1 noundef zeroext %163, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  %.not154 = xor i1 %166, true
  %brmerge = select i1 %.not154, i1 true, i1 %163
  br i1 %brmerge, label %169, label %167

167:                                              ; preds = %161
  %168 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %149, i64 noundef %.0167) #9
  call void @_ZNKSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmEEclES7_m(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull align 8 dereferenceable(32) %168, i64 noundef %.0167)
  store i64 %.0167, ptr %159, align 8, !tbaa !44
  br label %169

169:                                              ; preds = %161, %167
  br i1 %163, label %170, label %171

170:                                              ; preds = %169
  call void @_ZN5ImGui19SetItemDefaultFocusEv()
  br label %171

171:                                              ; preds = %170, %169
  %172 = add nuw i64 %.0167, 1
  %173 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %149) #9
  %174 = icmp ult i64 %172, %173
  br i1 %174, label %161, label %._crit_edge169, !llvm.loop !51

175:                                              ; preds = %._crit_edge169, %146
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  br label %357

176:                                              ; preds = %67
  %177 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %178 = getelementptr inbounds i8, ptr %177, i64 8
  %179 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %178) #9
  %180 = getelementptr inbounds i8, ptr %177, i64 48
  %181 = getelementptr inbounds i8, ptr %177, i64 104
  %182 = load i64, ptr %181, align 8, !tbaa !53
  %183 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %182) #9
  %184 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %183) #9
  %185 = call noundef zeroext i1 @_ZN5ImGui10BeginComboEPKcS1_i(ptr noundef %179, ptr noundef %184, i32 noundef 0)
  br i1 %185, label %.preheader163, label %357

.preheader163:                                    ; preds = %176
  %186 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %180) #9
  %.not172 = icmp eq i64 %186, 0
  br i1 %.not172, label %._crit_edge166, label %.lr.ph165

.lr.ph165:                                        ; preds = %.preheader163
  %187 = getelementptr inbounds i8, ptr %177, i64 72
  br label %188

._crit_edge166:                                   ; preds = %198, %.preheader163
  call void @_ZN5ImGui8EndComboEv()
  br label %357

188:                                              ; preds = %.lr.ph165, %198
  %.0141164 = phi i64 [ 0, %.lr.ph165 ], [ %199, %198 ]
  %189 = load i64, ptr %181, align 8, !tbaa !53
  %190 = icmp eq i64 %189, %.0141164
  %191 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %.0141164) #9
  %192 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %191) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %193 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %192, i1 noundef zeroext %190, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %16)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #9
  %.not155 = xor i1 %193, true
  %brmerge156 = select i1 %.not155, i1 true, i1 %190
  br i1 %brmerge156, label %196, label %194

194:                                              ; preds = %188
  %195 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %.0141164) #9
  call void @_ZNKSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmEEclES7_m(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull align 8 dereferenceable(32) %195, i64 noundef %.0141164)
  store i64 %.0141164, ptr %181, align 8, !tbaa !53
  br label %196

196:                                              ; preds = %188, %194
  br i1 %190, label %197, label %198

197:                                              ; preds = %196
  call void @_ZN5ImGui19SetItemDefaultFocusEv()
  br label %198

198:                                              ; preds = %197, %196
  %199 = add nuw i64 %.0141164, 1
  %200 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %180) #9
  %201 = icmp ult i64 %199, %200
  br i1 %201, label %188, label %._crit_edge166, !llvm.loop !55

202:                                              ; preds = %67
  %203 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %204 = getelementptr inbounds i8, ptr %203, i64 8
  %205 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %204) #9
  %206 = getelementptr inbounds i8, ptr %203, i64 80
  %207 = call noundef ptr @_ZNSt5arrayIfLm3EE4dataEv(ptr noundef nonnull align 4 dereferenceable(12) %206) #10
  %208 = call noundef zeroext i1 @_ZN5ImGui10ColorEdit3EPKcPfi(ptr noundef %205, ptr noundef %207, i32 noundef 0)
  br i1 %208, label %209, label %357

209:                                              ; preds = %202
  %210 = getelementptr inbounds i8, ptr %203, i64 48
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %17) #9
  %211 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %206, i64 noundef 0) #9
  %212 = load float, ptr %211, align 4, !tbaa !22
  %213 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %206, i64 noundef 1) #9
  %214 = load float, ptr %213, align 4, !tbaa !22
  %215 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %206, i64 noundef 2) #9
  %216 = load float, ptr %215, align 4, !tbaa !22
  call void @_ZN3Raz5ColorC2Efff(ptr noundef nonnull align 4 dereferenceable(12) %17, float noundef %212, float noundef %214, float noundef %216)
  call void @_ZNKSt8functionIFvRKN3Raz5ColorEEEclES3_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 4 dereferenceable(12) %17)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %17) #9
  br label %357

217:                                              ; preds = %67
  %218 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %219 = getelementptr inbounds i8, ptr %218, i64 44
  %220 = load i32, ptr %219, align 4, !tbaa !56
  %221 = call noundef zeroext i1 @_ZN3Raz8Renderer9isTextureEj(i32 noundef %220)
  br i1 %221, label %223, label %222

222:                                              ; preds = %217
  call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.8, i32 noundef 422, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK3Raz13OverlayWindow6renderEv) #11
  unreachable

223:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #9
  %224 = call noundef float @_ZN5ImGui14GetWindowWidthEv()
  %225 = getelementptr inbounds i8, ptr %218, i64 48
  %226 = load float, ptr %225, align 8, !tbaa !59
  %227 = fdiv float %224, %226
  store float %227, ptr %18, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #9
  %228 = call noundef float @_ZN5ImGui15GetWindowHeightEv()
  %229 = getelementptr inbounds i8, ptr %218, i64 52
  %230 = load float, ptr %229, align 4, !tbaa !60
  %231 = fdiv float %228, %230
  store float %231, ptr %19, align 4, !tbaa !22
  %232 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %19)
  %233 = load float, ptr %232, align 4, !tbaa !22
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #9
  %234 = load float, ptr %225, align 8, !tbaa !59
  %235 = fmul float %233, %234
  store float %235, ptr %21, align 4, !tbaa !22
  %236 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %225, ptr noundef nonnull align 4 dereferenceable(4) %21)
  %237 = load float, ptr %236, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #9
  %238 = load float, ptr %229, align 4, !tbaa !60
  %239 = fmul float %233, %238
  store float %239, ptr %22, align 4, !tbaa !22
  %240 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %229, ptr noundef nonnull align 4 dereferenceable(4) %22)
  %241 = load float, ptr %240, align 4, !tbaa !22
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef %237, float noundef %241)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 1.000000e+00, float noundef 0.000000e+00)
  %242 = load i32, ptr %219, align 4, !tbaa !56
  %243 = zext i32 %242 to i64
  %244 = inttoptr i64 %243 to ptr
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #9
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %25, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #9
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %26, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef %244, ptr noundef nonnull align 4 dereferenceable(8) %20, ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(16) %25, ptr noundef nonnull align 4 dereferenceable(16) %26)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  br label %357

245:                                              ; preds = %67
  %246 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  %247 = getelementptr inbounds i8, ptr %246, i64 56
  %248 = load i8, ptr %247, align 8, !tbaa !61, !range !20, !noundef !21
  %249 = trunc nuw i8 %248 to i1
  br i1 %249, label %250, label %256

250:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  %251 = getelementptr inbounds i8, ptr %246, i64 52
  %252 = load i32, ptr %251, align 4, !tbaa !63
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, i32 noundef %252) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, i8 noundef signext 47)
          to label %253 unwind label %273

253:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  %254 = getelementptr inbounds i8, ptr %246, i64 48
  %255 = load i32, ptr %254, align 8, !tbaa !64
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, i32 noundef %255) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %.critedge unwind label %275

256:                                              ; preds = %245
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %.critedge160

.critedge:                                        ; preds = %253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  br label %.critedge160

.critedge160:                                     ; preds = %256, %.critedge
  %257 = getelementptr inbounds i8, ptr %246, i64 44
  %258 = load i32, ptr %257, align 4, !tbaa !65
  %259 = getelementptr inbounds i8, ptr %246, i64 52
  %260 = load i32, ptr %259, align 4, !tbaa !63
  %261 = add nsw i32 %260, %258
  %262 = sitofp i32 %261 to float
  %263 = getelementptr inbounds i8, ptr %246, i64 48
  %264 = load i32, ptr %263, align 8, !tbaa !64
  %265 = sitofp i32 %264 to float
  %266 = fdiv float %262, %265
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %31, float noundef -1.000000e+00, float noundef 0.000000e+00)
  %267 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br i1 %267, label %270, label %268

268:                                              ; preds = %.critedge160
  %269 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %270

270:                                              ; preds = %.critedge160, %268
  %271 = phi ptr [ %269, %268 ], [ null, %.critedge160 ]
  invoke void @_ZN5ImGui11ProgressBarEfRK6ImVec2PKc(float noundef %266, ptr noundef nonnull align 4 dereferenceable(8) %31, ptr noundef %271)
          to label %272 unwind label %278

272:                                              ; preds = %270
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %357

273:                                              ; preds = %250
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %277

275:                                              ; preds = %253
  %276 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %277

277:                                              ; preds = %273, %275
  %.pn = phi { ptr, i32 } [ %276, %275 ], [ %274, %273 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  br label %280

278:                                              ; preds = %270
  %279 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %280

280:                                              ; preds = %277, %278
  %.pn152 = phi { ptr, i32 } [ %279, %278 ], [ %.pn, %277 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  resume { ptr, i32 } %.pn152

281:                                              ; preds = %67
  %282 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %283 = getelementptr inbounds i8, ptr %282, i64 8
  %284 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %283) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #9
  %285 = getelementptr inbounds i8, ptr %282, i64 156
  %286 = load float, ptr %285, align 4, !tbaa !66
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef -1.000000e+00, float noundef %286)
  %287 = call noundef zeroext i1 @_ZN6ImPlot9BeginPlotEPKcRK6ImVec2i(ptr noundef %284, ptr noundef nonnull align 4 dereferenceable(8) %32, i32 noundef 48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  br i1 %287, label %288, label %357

288:                                              ; preds = %281
  %289 = getelementptr inbounds i8, ptr %282, i64 80
  %290 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %289) #9
  %291 = getelementptr inbounds i8, ptr %282, i64 112
  %292 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %291) #9
  %293 = getelementptr inbounds i8, ptr %282, i64 152
  %294 = load i8, ptr %293, align 8, !tbaa !72, !range !20, !noundef !21
  %295 = trunc nuw i8 %294 to i1
  %296 = select i1 %295, i32 49152, i32 0
  call void @_ZN6ImPlot9SetupAxesEPKcS1_ii(ptr noundef %290, ptr noundef %292, i32 noundef 8, i32 noundef %296)
  %297 = getelementptr inbounds i8, ptr %282, i64 72
  %298 = load i64, ptr %297, align 8, !tbaa !73
  %299 = add i64 %298, -1
  %300 = uitofp i64 %299 to double
  call void @_ZN6ImPlot15SetupAxisLimitsEiddi(i32 noundef 0, double noundef 0.000000e+00, double noundef %300, i32 noundef 1)
  %301 = getelementptr inbounds i8, ptr %282, i64 144
  %302 = load float, ptr %301, align 8, !tbaa !74
  %303 = fpext float %302 to double
  %304 = getelementptr inbounds i8, ptr %282, i64 148
  %305 = load float, ptr %304, align 4, !tbaa !75
  %306 = fpext float %305 to double
  call void @_ZN6ImPlot15SetupAxisLimitsEiddi(i32 noundef 3, double noundef %303, double noundef %306, i32 noundef 2)
  call void @_ZN6ImPlot14SetupMouseTextEii(i32 noundef 9, i32 noundef 0)
  %307 = getelementptr inbounds i8, ptr %282, i64 48
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #9
  %308 = call ptr @_ZNSt6vectorISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %307) #9
  store ptr %308, ptr %33, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #9
  %309 = call ptr @_ZNSt6vectorISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %307) #9
  store ptr %309, ptr %34, align 8
  %310 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  br i1 %310, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %336, %288
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #9
  call void @_ZN6ImPlot7EndPlotEv()
  br label %357

.lr.ph:                                           ; preds = %288, %336
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  %312 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %311) #9
  %313 = getelementptr inbounds i8, ptr %312, i64 32
  %314 = load i32, ptr %313, align 8, !tbaa !76
  %315 = icmp eq i32 %314, 1
  br i1 %315, label %316, label %326

316:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #9
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %35, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZN6ImPlot16SetNextFillStyleERK6ImVec4f(ptr noundef nonnull align 4 dereferenceable(16) %35, float noundef 5.000000e-01)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #9
  %317 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %311) #9
  %318 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %317) #9
  %319 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %311) #9
  %320 = getelementptr inbounds i8, ptr %319, i64 40
  %321 = call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %320) #9
  %322 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %311) #9
  %323 = getelementptr inbounds i8, ptr %322, i64 40
  %324 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %323) #9
  %325 = trunc i64 %324 to i32
  call void @_ZN6ImPlot10PlotShadedIfEEvPKcPKT_idddiii(ptr noundef %318, ptr noundef %321, i32 noundef %325, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i32 noundef 4)
  br label %336

326:                                              ; preds = %.lr.ph
  %327 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %311) #9
  %328 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %327) #9
  %329 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %311) #9
  %330 = getelementptr inbounds i8, ptr %329, i64 40
  %331 = call noundef ptr @_ZNSt6vectorIfSaIfEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %330) #9
  %332 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %311) #9
  %333 = getelementptr inbounds i8, ptr %332, i64 40
  %334 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %333) #9
  %335 = trunc i64 %334 to i32
  call void @_ZN6ImPlot8PlotLineIfEEvPKcPKT_iddiii(ptr noundef %328, ptr noundef %331, i32 noundef %335, double noundef 1.000000e+00, double noundef 0.000000e+00, i32 noundef 0, i32 noundef 0, i32 noundef 4)
  br label %336

336:                                              ; preds = %326, %316
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  %338 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  br i1 %338, label %.lr.ph, label %._crit_edge

339:                                              ; preds = %67
  call void @_ZN5ImGui9SeparatorEv()
  br label %357

340:                                              ; preds = %67
  %341 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %342 = getelementptr inbounds i8, ptr %341, i64 8
  %343 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %342) #9
  %344 = call noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv()
  %345 = getelementptr inbounds i8, ptr %344, i64 916
  %346 = load float, ptr %345, align 4, !tbaa !83
  %347 = fdiv float 1.000000e+03, %346
  %348 = fpext float %347 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %343, double noundef %348)
  br label %357

349:                                              ; preds = %67
  %350 = call noundef ptr @_ZNKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  %351 = getelementptr inbounds i8, ptr %350, i64 8
  %352 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %351) #9
  %353 = call noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv()
  %354 = getelementptr inbounds i8, ptr %353, i64 916
  %355 = load float, ptr %354, align 4, !tbaa !83
  %356 = fpext float %355 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %352, double noundef %356)
  br label %357

357:                                              ; preds = %72, %76, %175, %223, %272, %339, %340, %349, %67, %96, %91, %108, %110, %98, %125, %112, %134, %128, %144, %136, %._crit_edge166, %176, %209, %202, %._crit_edge, %281, %.lr.ph170
  %358 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #9
  %359 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS3_EESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  br i1 %359, label %.lr.ph170, label %._crit_edge171

360:                                              ; preds = %1, %._crit_edge171
  ret void
}

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

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #4

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

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

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

declare void @_ZN5ImGui17SetNextWindowSizeERK6ImVec2i(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #1

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

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

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

declare void @_ZN5ImGui16SetNextWindowPosERK6ImVec2iS2_(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

declare void @_ZN5ImGui15PushTextWrapPosEf(float noundef) local_unnamed_addr #1

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN5ImGui14PopTextWrapPosEv() local_unnamed_addr #1

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

declare void @_ZN5ImGui11TextColoredERK6ImVec4PKcz(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef, ...) local_unnamed_addr #1

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

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

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

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

declare noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #1

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

declare noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN5ImGui16SetNextItemWidthEf(float noundef) local_unnamed_addr #1

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

declare noundef float @_ZN5ImGui13CalcItemWidthEv() local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_i(ptr noundef, ptr noundef, float noundef, float noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

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

declare noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef float @_ZN5ImGui28GetTextLineHeightWithSpacingEv() local_unnamed_addr #1

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

declare noundef zeroext i1 @_ZN5ImGui12BeginListBoxEPKcRK6ImVec2(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef, i1 noundef zeroext, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #1

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

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

declare void @_ZN5ImGui19SetItemDefaultFocusEv() local_unnamed_addr #1

declare void @_ZN5ImGui10EndListBoxEv() local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui10BeginComboEPKcS1_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare void @_ZN5ImGui8EndComboEv() local_unnamed_addr #1

declare noundef zeroext i1 @_ZN5ImGui10ColorEdit3EPKcPfi(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable
declare dso_local noundef ptr @_ZNSt5arrayIfLm3EE4dataEv(ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #7 align 2

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

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

declare noundef zeroext i1 @_ZN3Raz8Renderer9isTextureEj(i32 noundef) local_unnamed_addr #1

declare noundef float @_ZN5ImGui14GetWindowWidthEv() local_unnamed_addr #1

declare noundef float @_ZN5ImGui15GetWindowHeightEv() local_unnamed_addr #1

declare void @_ZN5ImGui5ImageEPvRK6ImVec2S3_S3_RK6ImVec4S6_(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #1

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #5

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

declare void @_ZN5ImGui11ProgressBarEfRK6ImVec2PKc(float noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef) local_unnamed_addr #1

declare noundef zeroext i1 @_ZN6ImPlot9BeginPlotEPKcRK6ImVec2i(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #1

declare void @_ZN6ImPlot9SetupAxesEPKcS1_ii(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @_ZN6ImPlot15SetupAxisLimitsEiddi(i32 noundef, double noundef, double noundef, i32 noundef) local_unnamed_addr #1

declare void @_ZN6ImPlot14SetupMouseTextEii(i32 noundef, i32 noundef) local_unnamed_addr #1

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

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

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

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

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

declare void @_ZN6ImPlot16SetNextFillStyleERK6ImVec4f(ptr noundef nonnull align 4 dereferenceable(16), float noundef) local_unnamed_addr #1

declare void @_ZN6ImPlot10PlotShadedIfEEvPKcPKT_idddiii(ptr noundef, ptr noundef, i32 noundef, double noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

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

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

declare void @_ZN6ImPlot8PlotLineIfEEvPKcPKT_iddiii(ptr noundef, ptr noundef, i32 noundef, double noundef, double noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

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

declare void @_ZN6ImPlot7EndPlotEv() local_unnamed_addr #1

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #1

declare void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) local_unnamed_addr #1

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

declare void @_ZN5ImGui3EndEv() local_unnamed_addr #1

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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { mustprogress nofree nosync nounwind willreturn memory(none) 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 = { 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 #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn 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, !15, i64 48}
!6 = !{!"_ZTSN3Raz13OverlayWindowE", !7, i64 0, !13, i64 32, !13, i64 40, !15, i64 48, !16, i64 56}
!7 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !8, i64 0, !12, i64 8, !10, i64 16}
!8 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"long", !10, i64 0}
!13 = !{!"_ZTSN3Raz6VectorIfLm2EEE", !14, i64 0}
!14 = !{!"_ZTSSt5arrayIfLm2EE", !10, i64 0}
!15 = !{!"bool", !10, i64 0}
!16 = !{!"_ZTSSt6vectorISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3Raz14OverlayElementESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = !{!23, !23, i64 0}
!23 = !{!"float", !10, i64 0}
!24 = !{!25, !25, i64 0}
!25 = !{!"vtable pointer", !11, i64 0}
!26 = !{!27, !23, i64 56}
!27 = !{!"_ZTSN3Raz19OverlayColoredLabelE", !28, i64 0, !29, i64 44, !23, i64 56}
!28 = !{!"_ZTSN3Raz14OverlayElementE", !7, i64 8, !15, i64 40}
!29 = !{!"_ZTSN3Raz5ColorE", !30, i64 0}
!30 = !{!"_ZTSN3Raz6VectorIfLm3EEE", !31, i64 0}
!31 = !{!"_ZTSSt5arrayIfLm3EE", !10, i64 0}
!32 = !{!33, !15, i64 112}
!33 = !{!"_ZTSN3Raz15OverlayCheckboxE", !28, i64 0, !34, i64 48, !34, i64 80, !15, i64 112}
!34 = !{!"_ZTSSt8functionIFvvEE", !35, i64 0, !9, i64 24}
!35 = !{!"_ZTSSt14_Function_base", !10, i64 0, !9, i64 16}
!36 = !{!37, !23, i64 80}
!37 = !{!"_ZTSN3Raz13OverlaySliderE", !28, i64 0, !38, i64 48, !23, i64 80, !23, i64 84, !23, i64 88}
!38 = !{!"_ZTSSt8functionIFvfEE", !35, i64 0, !9, i64 24}
!39 = !{!37, !23, i64 84}
!40 = !{!37, !23, i64 88}
!41 = !{!42, !23, i64 112}
!42 = !{!"_ZTSN3Raz15OverlayTextAreaE", !28, i64 0, !7, i64 48, !43, i64 80, !23, i64 112}
!43 = !{!"_ZTSSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !35, i64 0, !9, i64 24}
!44 = !{!45, !12, i64 104}
!45 = !{!"_ZTSN3Raz14OverlayListBoxE", !28, i64 0, !46, i64 48, !50, i64 72, !12, i64 104}
!46 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !47, i64 0}
!47 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!50 = !{!"_ZTSSt8functionIFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmEE", !35, i64 0, !9, i64 24}
!51 = distinct !{!51, !52}
!52 = !{!"llvm.loop.mustprogress"}
!53 = !{!54, !12, i64 104}
!54 = !{!"_ZTSN3Raz15OverlayDropdownE", !28, i64 0, !46, i64 48, !50, i64 72, !12, i64 104}
!55 = distinct !{!55, !52}
!56 = !{!57, !58, i64 44}
!57 = !{!"_ZTSN3Raz14OverlayTextureE", !28, i64 0, !58, i64 44, !23, i64 48, !23, i64 52}
!58 = !{!"int", !10, i64 0}
!59 = !{!57, !23, i64 48}
!60 = !{!57, !23, i64 52}
!61 = !{!62, !15, i64 56}
!62 = !{!"_ZTSN3Raz18OverlayProgressBarE", !28, i64 0, !58, i64 44, !58, i64 48, !58, i64 52, !15, i64 56}
!63 = !{!62, !58, i64 52}
!64 = !{!62, !58, i64 48}
!65 = !{!62, !58, i64 44}
!66 = !{!67, !23, i64 156}
!67 = !{!"_ZTSN3Raz11OverlayPlotE", !28, i64 0, !68, i64 48, !12, i64 72, !7, i64 80, !7, i64 112, !23, i64 144, !23, i64 148, !15, i64 152, !23, i64 156}
!68 = !{!"_ZTSSt6vectorISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3Raz16OverlayPlotEntryESt14default_deleteIS2_EESaIS5_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!72 = !{!67, !15, i64 152}
!73 = !{!67, !12, i64 72}
!74 = !{!67, !23, i64 144}
!75 = !{!67, !23, i64 148}
!76 = !{!77, !78, i64 32}
!77 = !{!"_ZTSN3Raz16OverlayPlotEntryE", !7, i64 0, !78, i64 32, !79, i64 40}
!78 = !{!"_ZTSN3Raz15OverlayPlotTypeE", !10, i64 0}
!79 = !{!"_ZTSSt6vectorIfSaIfEE", !80, i64 0}
!80 = !{!"_ZTSSt12_Vector_baseIfSaIfEE", !81, i64 0}
!81 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE12_Vector_implE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseIfSaIfEE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!83 = !{!84, !23, i64 916}
!84 = !{!"_ZTS7ImGuiIO", !58, i64 0, !58, i64 4, !85, i64 8, !23, i64 16, !23, i64 20, !9, i64 24, !9, i64 32, !23, i64 40, !23, i64 44, !23, i64 48, !10, i64 52, !23, i64 140, !23, i64 144, !9, i64 152, !9, i64 160, !23, i64 168, !15, i64 172, !9, i64 176, !85, i64 184, !15, i64 192, !15, i64 193, !15, i64 194, !15, i64 195, !15, i64 196, !15, i64 197, !23, i64 200, !9, i64 208, !9, i64 216, !9, i64 224, !9, i64 232, !9, i64 240, !9, i64 248, !9, i64 256, !9, i64 264, !9, i64 272, !9, i64 280, !85, i64 288, !10, i64 296, !23, i64 304, !23, i64 308, !15, i64 312, !15, i64 313, !15, i64 314, !15, i64 315, !10, i64 316, !10, i64 828, !15, i64 908, !15, i64 909, !15, i64 910, !15, i64 911, !15, i64 912, !15, i64 913, !15, i64 914, !23, i64 916, !58, i64 920, !58, i64 924, !58, i64 928, !58, i64 932, !58, i64 936, !85, i64 940, !58, i64 948, !58, i64 952, !85, i64 956, !10, i64 964, !10, i64 1008, !10, i64 1048, !10, i64 1053, !10, i64 1058, !10, i64 1063, !10, i64 1068, !10, i64 1076, !10, i64 1096, !10, i64 1116, !10, i64 1156, !10, i64 1176, !10, i64 3224, !10, i64 5272, !10, i64 5352, !23, i64 5432, !86, i64 5436, !87, i64 5440}
!85 = !{!"_ZTS6ImVec2", !23, i64 0, !23, i64 4}
!86 = !{!"short", !10, i64 0}
!87 = !{!"_ZTS8ImVectorItE", !58, i64 0, !58, i64 4, !9, i64 8}


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