; LLVM IR from DarrenSweeney/3D-Physics-Engine :: Physics Engine/Imgui/imgui.ll (ZN5ImGui11SliderFloatEPKcPfffS1_f)

; 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 }
%struct.ImGuiAabb = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiWindow = type { ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, i8, i8, i8, i32, i8, i32, i32, i32, %struct.ImGuiDrawContext, %class.ImVector.11, %class.ImVector.12, %struct.ImGuiAabb, i32, float, %struct.ImGuiStorage, float, ptr, ptr, i32, i32, i32, i32, i32, i32 }
%struct.ImGuiDrawContext = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, i32, i32, %struct.ImGuiAabb, i8, %class.ImVector.1, %class.ImVector.9, %class.ImVector.10, %class.ImVector.10, i32, ptr, float, float, i32, i32, %struct.ImVec2, float, float, i8, i32, %class.ImVector.10 }
%class.ImVector.1 = type { i64, i64, ptr }
%class.ImVector.9 = type { i64, i64, ptr }
%class.ImVector.10 = type { i64, i64, ptr }
%class.ImVector.11 = type { i64, i64, ptr }
%class.ImVector.12 = type { i64, i64, ptr }
%struct.ImGuiStorage = type { %class.ImVector.6 }
%class.ImVector.6 = type { i64, i64, ptr }
%struct.ImGuiState = type { i8, [7 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, %struct.ImVec2, float, i32, i32, %class.ImVector.1, ptr, %class.ImVector.1, ptr, ptr, ptr, i32, i32, i32, i8, i8, ptr, float, %class.ImVector.2, %class.ImVector.3, %class.ImVector.4, %class.ImVector, %struct.ImVec2, i32, %struct.ImVec2, i32, i8, i32, i8, i8, i32, %class.ImVector.5, %class.ImVector.1, %struct.ImGuiTextEditState, i32, %struct.ImGuiStorage, i32, [1024 x i8], ptr, i8, ptr, ptr, i32, i32, [120 x float], i32, float }
%struct.ImGuiIO = type <{ %struct.ImVec2, float, float, ptr, ptr, float, float, [17 x i32], [4 x i8], ptr, ptr, float, i8, [3 x i8], %struct.ImVec2, %struct.ImVec2, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], [3 x i8], float, i8, i8, i8, [512 x i8], i8, [17 x i16], i8, i8, float, %struct.ImVec2, %struct.ImVec2, [5 x i8], [3 x i8], [5 x %struct.ImVec2], [5 x float], [5 x i8], [5 x i8], [2 x i8], [5 x float], [512 x float], [4 x i8] }>
%struct.ImGuiStyle = type { float, %struct.ImVec2, %struct.ImVec2, float, float, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, [39 x %struct.ImVec4] }
%struct.ImVec4 = type { float, float, float, float }
%class.ImVector.2 = type { i64, i64, ptr }
%class.ImVector.3 = type { i64, i64, ptr }
%class.ImVector.4 = type { i64, i64, ptr }
%class.ImVector = type { i64, i64, ptr }
%class.ImVector.5 = type { i64, i64, ptr }
%struct.ImGuiTextEditState = type <{ i32, [1024 x i16], [3073 x i8], [3 x i8], i64, float, float, %struct.STB_TexteditState, float, %struct.ImVec2, i8, [7 x i8], ptr, float, [4 x i8] }>
%struct.STB_TexteditState = type { i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, float, %struct.StbUndoState }
%struct.StbUndoState = type { [99 x %struct.StbUndoRecord], [999 x i16], i16, i16, i16, i16 }
%struct.StbUndoRecord = type { i32, i16, i16, i16 }

@_ZL6GImGui = external hidden global ptr, align 8
@.str.10 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [17 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui11SliderFloatEPKcPfffS1_f = external hidden unnamed_addr constant [82 x i8], align 1

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

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

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

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

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

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

; Function Attrs: nounwind
declare float @fmodf(float noundef, float noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i64 @_ZL14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef, ptr noundef) #5

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef ptr @_ZL16GetCurrentWindowv() #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11ImGuiWindow19FocusItemUnregisterEv(ptr noundef nonnull align 8 dereferenceable(480)) #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #9

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL11SetActiveIdj(i32 noundef) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImClampfff(float noundef, float noundef, float noundef) #7

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8), float noundef) #9

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #9

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMaxff(float noundef, float noundef) #7

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL7ItemAddRK9ImGuiAabbPKj(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL11FocusWindowP11ImGuiWindow(ptr noundef) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMinff(float noundef, float noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK11ImGuiWindow5ColorEif(ptr noundef nonnull align 8 dereferenceable(480), i32 noundef, float noundef) #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL6ImLerpfff(float noundef, float noundef, float noundef) #7

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL17RenderTextClipped6ImVec2PKcS1_PKS_RS2_(<2 x float>, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui13CalcItemWidthEv() #5

; Function Attrs: nounwind willreturn memory(read)
declare noundef ptr @strchr(ptr noundef, i32 noundef) #10

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL10RenderText6ImVec2PKcS1_b(<2 x float>, ptr noundef, ptr noundef, i1 noundef zeroext) #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL8ItemSizeRK9ImGuiAabbP6ImVec2(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL11RenderFrame6ImVec2S_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) #5

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef %0, ptr noundef %1, float noundef %2, float noundef %3, ptr noundef %4, float noundef %5) #5 {
  %7 = alloca i1, align 1
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca ptr, align 8
  %13 = alloca float, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca float, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImGuiAabb, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImGuiAabb, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImGuiAabb, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca i8, align 1
  %35 = alloca i8, align 1
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca i8, align 1
  %45 = alloca i8, align 1
  %46 = alloca i8, align 1
  %47 = alloca i8, align 1
  %48 = alloca [64 x i8], align 16
  %49 = alloca %struct.ImVec2, align 4
  %50 = alloca %struct.ImVec2, align 4
  %51 = alloca float, align 4
  %52 = alloca float, align 4
  %53 = alloca float, align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca float, align 4
  %58 = alloca float, align 4
  %59 = alloca float, align 4
  %60 = alloca float, align 4
  %61 = alloca float, align 4
  %62 = alloca %struct.ImGuiAabb, align 4
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca %struct.ImVec2, align 4
  %65 = alloca [64 x i8], align 16
  %66 = alloca ptr, align 8
  %67 = alloca %struct.ImVec2, align 4
  %68 = alloca %struct.ImVec2, align 4
  %69 = alloca %struct.ImVec2, align 4
  %70 = alloca %struct.ImVec2, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store float %2, ptr %10, align 4, !tbaa !9
  store float %3, ptr %11, align 4, !tbaa !9
  store ptr %4, ptr %12, align 8, !tbaa !5
  store float %5, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #12
  %71 = load ptr, ptr @_ZL6GImGui, align 8, !tbaa !5
  store ptr %71, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #12
  %72 = call noundef ptr @_ZL16GetCurrentWindowv()
  store ptr %72, ptr %15, align 8, !tbaa !5
  %73 = load ptr, ptr %15, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.ImGuiWindow, ptr %73, i32 0, i32 14
  %75 = load i8, ptr %74, align 4, !tbaa !11, !range !26, !noundef !27
  %76 = trunc i8 %75 to i1
  br i1 %76, label %77, label %78

77:                                               ; preds = %6
  store i1 false, ptr %7, align 1
  store i32 1, ptr %16, align 4
  br label %621

78:                                               ; preds = %6
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #12
  %79 = load ptr, ptr %14, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.ImGuiState, ptr %79, i32 0, i32 3
  store ptr %80, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #12
  %81 = load ptr, ptr %15, align 8, !tbaa !5
  %82 = load ptr, ptr %8, align 8, !tbaa !5
  %83 = call noundef i32 @_ZN11ImGuiWindow5GetIDEPKc(ptr noundef nonnull align 8 dereferenceable(480) %81, ptr noundef %82)
  store i32 %83, ptr %18, align 4, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #12
  %84 = call noundef float @_ZN5ImGui13CalcItemWidthEv()
  store float %84, ptr %19, align 4, !tbaa !9
  %85 = load ptr, ptr %12, align 8, !tbaa !5
  %86 = icmp ne ptr %85, null
  br i1 %86, label %88, label %87

87:                                               ; preds = %78
  store ptr @.str.90, ptr %12, align 8, !tbaa !5
  br label %88

88:                                               ; preds = %87, %78
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #12
  store i32 3, ptr %20, align 4, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #12
  %89 = load ptr, ptr %12, align 8, !tbaa !5
  %90 = call noundef ptr @strchr(ptr noundef %89, i32 noundef 37) #13
  store ptr %90, ptr %21, align 8, !tbaa !5
  %91 = load ptr, ptr %21, align 8, !tbaa !5
  %92 = icmp ne ptr %91, null
  br i1 %92, label %93, label %128

93:                                               ; preds = %88
  %94 = load ptr, ptr %21, align 8, !tbaa !5
  %95 = getelementptr inbounds i8, ptr %94, i32 1
  store ptr %95, ptr %21, align 8, !tbaa !5
  br label %96

96:                                               ; preds = %108, %93
  %97 = load ptr, ptr %21, align 8, !tbaa !5
  %98 = load i8, ptr %97, align 1, !tbaa !29
  %99 = sext i8 %98 to i32
  %100 = icmp sge i32 %99, 48
  br i1 %100, label %101, label %106

101:                                              ; preds = %96
  %102 = load ptr, ptr %21, align 8, !tbaa !5
  %103 = load i8, ptr %102, align 1, !tbaa !29
  %104 = sext i8 %103 to i32
  %105 = icmp sle i32 %104, 57
  br label %106

106:                                              ; preds = %101, %96
  %107 = phi i1 [ false, %96 ], [ %105, %101 ]
  br i1 %107, label %108, label %111

108:                                              ; preds = %106
  %109 = load ptr, ptr %21, align 8, !tbaa !5
  %110 = getelementptr inbounds i8, ptr %109, i32 1
  store ptr %110, ptr %21, align 8, !tbaa !5
  br label %96, !llvm.loop !30

111:                                              ; preds = %106
  %112 = load ptr, ptr %21, align 8, !tbaa !5
  %113 = load i8, ptr %112, align 1, !tbaa !29
  %114 = sext i8 %113 to i32
  %115 = icmp eq i32 %114, 46
  br i1 %115, label %116, label %127

116:                                              ; preds = %111
  %117 = load ptr, ptr %21, align 8, !tbaa !5
  %118 = getelementptr inbounds i8, ptr %117, i64 1
  %119 = call i32 @atoi(ptr noundef %118) #13
  store i32 %119, ptr %20, align 4, !tbaa !28
  %120 = load i32, ptr %20, align 4, !tbaa !28
  %121 = icmp slt i32 %120, 0
  br i1 %121, label %125, label %122

122:                                              ; preds = %116
  %123 = load i32, ptr %20, align 4, !tbaa !28
  %124 = icmp sgt i32 %123, 10
  br i1 %124, label %125, label %126

125:                                              ; preds = %122, %116
  store i32 3, ptr %20, align 4, !tbaa !28
  br label %126

126:                                              ; preds = %125, %122
  br label %127

127:                                              ; preds = %126, %111
  br label %128

128:                                              ; preds = %127, %88
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #12
  %129 = load ptr, ptr %8, align 8, !tbaa !5
  %130 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %129, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  store <2 x float> %130, ptr %22, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #12
  %131 = load ptr, ptr %15, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImGuiWindow, ptr %131, i32 0, i32 20
  %133 = getelementptr inbounds %struct.ImGuiDrawContext, ptr %132, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #12
  %134 = load ptr, ptr %15, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.ImGuiWindow, ptr %134, i32 0, i32 20
  %136 = getelementptr inbounds %struct.ImGuiDrawContext, ptr %135, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #12
  %137 = load float, ptr %19, align 4, !tbaa !9
  %138 = getelementptr inbounds %struct.ImVec2, ptr %22, i32 0, i32 1
  %139 = load float, ptr %138, align 4, !tbaa !32
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef %137, float noundef %139)
  %140 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %136, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %140, ptr %25, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #12
  %141 = load ptr, ptr %17, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.ImGuiStyle, ptr %141, i32 0, i32 5
  %143 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %142, float noundef 2.000000e+00)
  store <2 x float> %143, ptr %27, align 4
  %144 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %25, ptr noundef nonnull align 4 dereferenceable(8) %27)
  store <2 x float> %144, ptr %24, align 4
  call void @_ZN9ImGuiAabbC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %23, ptr noundef nonnull align 4 dereferenceable(8) %133, ptr noundef nonnull align 4 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #12
  %145 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 0
  %146 = load ptr, ptr %17, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.ImGuiStyle, ptr %146, i32 0, i32 5
  %148 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %145, ptr noundef nonnull align 4 dereferenceable(8) %147)
  store <2 x float> %148, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #12
  %149 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 1
  %150 = load ptr, ptr %17, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.ImGuiStyle, ptr %150, i32 0, i32 5
  %152 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %149, ptr noundef nonnull align 4 dereferenceable(8) %151)
  store <2 x float> %152, ptr %30, align 4
  call void @_ZN9ImGuiAabbC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %28, ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #12
  %153 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #12
  %154 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #12
  %155 = getelementptr inbounds %struct.ImVec2, ptr %22, i32 0, i32 0
  %156 = load float, ptr %155, align 4, !tbaa !33
  %157 = fcmp ogt float %156, 0.000000e+00
  br i1 %157, label %158, label %166

158:                                              ; preds = %128
  %159 = load ptr, ptr %17, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.ImGuiStyle, ptr %159, i32 0, i32 8
  %161 = getelementptr inbounds %struct.ImVec2, ptr %160, i32 0, i32 0
  %162 = load float, ptr %161, align 4, !tbaa !34
  %163 = getelementptr inbounds %struct.ImVec2, ptr %22, i32 0, i32 0
  %164 = load float, ptr %163, align 4, !tbaa !33
  %165 = fadd float %162, %164
  br label %167

166:                                              ; preds = %128
  br label %167

167:                                              ; preds = %166, %158
  %168 = phi float [ %165, %158 ], [ 0.000000e+00, %166 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %168, float noundef 0.000000e+00)
  %169 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %154, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %169, ptr %32, align 4
  call void @_ZN9ImGuiAabbC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %31, ptr noundef nonnull align 4 dereferenceable(8) %153, ptr noundef nonnull align 4 dereferenceable(8) %32)
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #12
  %170 = call noundef zeroext i1 @_ZL7ItemAddRK9ImGuiAabbPKj(ptr noundef nonnull align 4 dereferenceable(16) %28, ptr noundef %18)
  br i1 %170, label %172, label %171

171:                                              ; preds = %167
  call void @_ZL8ItemSizeRK9ImGuiAabbP6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %31, ptr noundef null)
  store i1 false, ptr %7, align 1
  store i32 1, ptr %16, align 4
  br label %620

172:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #12
  %173 = load ptr, ptr %15, align 8, !tbaa !5
  %174 = load ptr, ptr %14, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.ImGuiState, ptr %174, i32 0, i32 17
  %176 = load i32, ptr %175, align 4, !tbaa !36
  %177 = load i32, ptr %18, align 4, !tbaa !28
  %178 = icmp eq i32 %176, %177
  %179 = call noundef zeroext i1 @_ZN11ImGuiWindow17FocusItemRegisterEbb(ptr noundef nonnull align 8 dereferenceable(480) %173, i1 noundef zeroext %178, i1 noundef zeroext true)
  %180 = zext i1 %179 to i8
  store i8 %180, ptr %34, align 1, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #12
  %181 = load float, ptr %10, align 4, !tbaa !9
  %182 = fcmp oeq float %181, 0xC7EFFFFFE0000000
  br i1 %182, label %192, label %183

183:                                              ; preds = %172
  %184 = load float, ptr %10, align 4, !tbaa !9
  %185 = fcmp oeq float %184, 0x47EFFFFFE0000000
  br i1 %185, label %192, label %186

186:                                              ; preds = %183
  %187 = load float, ptr %11, align 4, !tbaa !9
  %188 = fcmp oeq float %187, 0xC7EFFFFFE0000000
  br i1 %188, label %192, label %189

189:                                              ; preds = %186
  %190 = load float, ptr %11, align 4, !tbaa !9
  %191 = fcmp oeq float %190, 0x47EFFFFFE0000000
  br label %192

192:                                              ; preds = %189, %186, %183, %172
  %193 = phi i1 [ true, %186 ], [ true, %183 ], [ true, %172 ], [ %191, %189 ]
  %194 = zext i1 %193 to i8
  store i8 %194, ptr %35, align 1, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #12
  store float 1.000000e+00, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #12
  %195 = load i32, ptr %20, align 4, !tbaa !28
  %196 = icmp sgt i32 %195, 0
  br i1 %196, label %200, label %197

197:                                              ; preds = %192
  %198 = load i8, ptr %35, align 1, !tbaa !48, !range !26, !noundef !27
  %199 = trunc i8 %198 to i1
  br i1 %199, label %200, label %201

200:                                              ; preds = %197, %192
  store float 1.000000e+01, ptr %37, align 4, !tbaa !9
  br label %210

201:                                              ; preds = %197
  %202 = load float, ptr %19, align 4, !tbaa !9
  %203 = load float, ptr %11, align 4, !tbaa !9
  %204 = load float, ptr %10, align 4, !tbaa !9
  %205 = fsub float %203, %204
  %206 = fadd float %205, 1.000000e+00
  %207 = fdiv float %202, %206
  %208 = fmul float 1.000000e+00, %207
  %209 = call noundef float @_ZL5ImMaxff(float noundef %208, float noundef 8.000000e+00)
  store float %209, ptr %37, align 4, !tbaa !9
  br label %210

210:                                              ; preds = %201, %200
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #12
  %211 = call noundef float @_ZNK9ImGuiAabb8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %28)
  %212 = load float, ptr %37, align 4, !tbaa !9
  %213 = fsub float %211, %212
  store float %213, ptr %38, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #12
  %214 = getelementptr inbounds %struct.ImGuiAabb, ptr %28, i32 0, i32 0
  %215 = getelementptr inbounds %struct.ImVec2, ptr %214, i32 0, i32 0
  %216 = load float, ptr %215, align 4, !tbaa !49
  %217 = load float, ptr %37, align 4, !tbaa !9
  %218 = call float @llvm.fmuladd.f32(float %217, float 5.000000e-01, float %216)
  store float %218, ptr %39, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #12
  %219 = getelementptr inbounds %struct.ImGuiAabb, ptr %28, i32 0, i32 1
  %220 = getelementptr inbounds %struct.ImVec2, ptr %219, i32 0, i32 0
  %221 = load float, ptr %220, align 4, !tbaa !50
  %222 = load float, ptr %37, align 4, !tbaa !9
  %223 = fneg float %222
  %224 = call float @llvm.fmuladd.f32(float %223, float 5.000000e-01, float %221)
  store float %224, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #12
  store float 0.000000e+00, ptr %41, align 4, !tbaa !9
  %225 = load i8, ptr %35, align 1, !tbaa !48, !range !26, !noundef !27
  %226 = trunc i8 %225 to i1
  br i1 %226, label %256, label %227

227:                                              ; preds = %210
  %228 = load float, ptr %10, align 4, !tbaa !9
  %229 = load float, ptr %11, align 4, !tbaa !9
  %230 = fmul float %228, %229
  %231 = fcmp olt float %230, 0.000000e+00
  br i1 %231, label %232, label %250

232:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #12
  %233 = load float, ptr %10, align 4, !tbaa !9
  %234 = fsub float 0.000000e+00, %233
  %235 = call float @llvm.fabs.f32(float %234)
  %236 = load float, ptr %13, align 4, !tbaa !9
  %237 = fdiv float 1.000000e+00, %236
  %238 = call float @powf(float noundef %235, float noundef %237) #12
  store float %238, ptr %42, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #12
  %239 = load float, ptr %11, align 4, !tbaa !9
  %240 = fsub float %239, 0.000000e+00
  %241 = call float @llvm.fabs.f32(float %240)
  %242 = load float, ptr %13, align 4, !tbaa !9
  %243 = fdiv float 1.000000e+00, %242
  %244 = call float @powf(float noundef %241, float noundef %243) #12
  store float %244, ptr %43, align 4, !tbaa !9
  %245 = load float, ptr %42, align 4, !tbaa !9
  %246 = load float, ptr %42, align 4, !tbaa !9
  %247 = load float, ptr %43, align 4, !tbaa !9
  %248 = fadd float %246, %247
  %249 = fdiv float %245, %248
  store float %249, ptr %41, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #12
  br label %255

250:                                              ; preds = %227
  %251 = load float, ptr %10, align 4, !tbaa !9
  %252 = fcmp olt float %251, 0.000000e+00
  %253 = zext i1 %252 to i64
  %254 = select i1 %252, float 1.000000e+00, float 0.000000e+00
  store float %254, ptr %41, align 4, !tbaa !9
  br label %255

255:                                              ; preds = %250, %232
  br label %256

256:                                              ; preds = %255, %210
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #12
  %257 = call noundef zeroext i1 @_ZL9IsHoveredRK9ImGuiAabbRKj(ptr noundef nonnull align 4 dereferenceable(16) %28, ptr noundef nonnull align 4 dereferenceable(4) %18)
  %258 = zext i1 %257 to i8
  store i8 %258, ptr %44, align 1, !tbaa !48
  %259 = load i8, ptr %44, align 1, !tbaa !48, !range !26, !noundef !27
  %260 = trunc i8 %259 to i1
  br i1 %260, label %261, label %265

261:                                              ; preds = %256
  %262 = load i32, ptr %18, align 4, !tbaa !28
  %263 = load ptr, ptr %14, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.ImGuiState, ptr %263, i32 0, i32 16
  store i32 %262, ptr %264, align 8, !tbaa !51
  br label %265

265:                                              ; preds = %261, %256
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #12
  store i8 0, ptr %45, align 1, !tbaa !48
  %266 = load i8, ptr %34, align 1, !tbaa !48, !range !26, !noundef !27
  %267 = trunc i8 %266 to i1
  br i1 %267, label %278, label %268

268:                                              ; preds = %265
  %269 = load i8, ptr %44, align 1, !tbaa !48, !range !26, !noundef !27
  %270 = trunc i8 %269 to i1
  br i1 %270, label %271, label %299

271:                                              ; preds = %268
  %272 = load ptr, ptr %14, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImGuiState, ptr %272, i32 0, i32 2
  %274 = getelementptr inbounds %struct.ImGuiIO, ptr %273, i32 0, i32 38
  %275 = getelementptr inbounds [5 x i8], ptr %274, i64 0, i64 0
  %276 = load i8, ptr %275, align 8, !tbaa !48, !range !26, !noundef !27
  %277 = trunc i8 %276 to i1
  br i1 %277, label %278, label %299

278:                                              ; preds = %271, %265
  %279 = load i32, ptr %18, align 4, !tbaa !28
  call void @_ZL11SetActiveIdj(i32 noundef %279)
  %280 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZL11FocusWindowP11ImGuiWindow(ptr noundef %280)
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #12
  %281 = load ptr, ptr %14, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.ImGuiState, ptr %281, i32 0, i32 2
  %283 = getelementptr inbounds %struct.ImGuiIO, ptr %282, i32 0, i32 28
  %284 = load i8, ptr %283, align 1, !tbaa !52, !range !26, !noundef !27
  %285 = trunc i8 %284 to i1
  %286 = zext i1 %285 to i8
  store i8 %286, ptr %46, align 1, !tbaa !48
  %287 = load i8, ptr %34, align 1, !tbaa !48, !range !26, !noundef !27
  %288 = trunc i8 %287 to i1
  br i1 %288, label %295, label %289

289:                                              ; preds = %278
  %290 = load i8, ptr %46, align 1, !tbaa !48, !range !26, !noundef !27
  %291 = trunc i8 %290 to i1
  br i1 %291, label %295, label %292

292:                                              ; preds = %289
  %293 = load i8, ptr %35, align 1, !tbaa !48, !range !26, !noundef !27
  %294 = trunc i8 %293 to i1
  br i1 %294, label %295, label %298

295:                                              ; preds = %292, %289, %278
  store i8 1, ptr %45, align 1, !tbaa !48
  %296 = load ptr, ptr %14, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.ImGuiState, ptr %296, i32 0, i32 39
  store i32 0, ptr %297, align 8, !tbaa !53
  br label %298

298:                                              ; preds = %295, %292
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #12
  br label %299

299:                                              ; preds = %298, %271, %268
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #12
  store i8 0, ptr %47, align 1, !tbaa !48
  %300 = load i8, ptr %45, align 1, !tbaa !48, !range !26, !noundef !27
  %301 = trunc i8 %300 to i1
  br i1 %301, label %314, label %302

302:                                              ; preds = %299
  %303 = load ptr, ptr %14, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.ImGuiState, ptr %303, i32 0, i32 17
  %305 = load i32, ptr %304, align 4, !tbaa !36
  %306 = load i32, ptr %18, align 4, !tbaa !28
  %307 = icmp eq i32 %305, %306
  br i1 %307, label %308, label %374

308:                                              ; preds = %302
  %309 = load i32, ptr %18, align 4, !tbaa !28
  %310 = load ptr, ptr %14, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImGuiState, ptr %310, i32 0, i32 39
  %312 = load i32, ptr %311, align 8, !tbaa !53
  %313 = icmp eq i32 %309, %312
  br i1 %313, label %314, label %374

314:                                              ; preds = %308, %299
  call void @llvm.lifetime.start.p0(i64 64, ptr %48) #12
  %315 = getelementptr inbounds [64 x i8], ptr %48, i64 0, i64 0
  %316 = load i32, ptr %20, align 4, !tbaa !28
  %317 = load ptr, ptr %9, align 8, !tbaa !5
  %318 = load float, ptr %317, align 4, !tbaa !9
  %319 = fpext float %318 to double
  %320 = call noundef i64 (ptr, i64, ptr, ...) @_ZL14ImFormatStringPcmPKcz(ptr noundef %315, i64 noundef 64, ptr noundef @.str.91, i32 noundef %316, double noundef %319)
  %321 = load ptr, ptr %14, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.ImGuiState, ptr %321, i32 0, i32 39
  %323 = load i32, ptr %322, align 8, !tbaa !53
  call void @_ZL11SetActiveIdj(i32 noundef %323)
  %324 = load ptr, ptr %14, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.ImGuiState, ptr %324, i32 0, i32 16
  store i32 0, ptr %325, align 8, !tbaa !51
  %326 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZN11ImGuiWindow19FocusItemUnregisterEv(ptr noundef nonnull align 8 dereferenceable(480) %326)
  %327 = load ptr, ptr %8, align 8, !tbaa !5
  %328 = getelementptr inbounds [64 x i8], ptr %48, i64 0, i64 0
  %329 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef %327, ptr noundef %328, i64 noundef 64, i32 noundef 17, ptr noundef null, ptr noundef null)
  %330 = zext i1 %329 to i8
  store i8 %330, ptr %47, align 1, !tbaa !48
  %331 = load ptr, ptr %14, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.ImGuiState, ptr %331, i32 0, i32 39
  %333 = load i32, ptr %332, align 8, !tbaa !53
  %334 = icmp eq i32 %333, 0
  br i1 %334, label %335, label %353

335:                                              ; preds = %314
  %336 = load ptr, ptr %14, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.ImGuiState, ptr %336, i32 0, i32 17
  %338 = load i32, ptr %337, align 4, !tbaa !36
  %339 = load i32, ptr %18, align 4, !tbaa !28
  %340 = icmp eq i32 %338, %339
  br i1 %340, label %341, label %342

341:                                              ; preds = %335
  br label %344

342:                                              ; preds = %335
  call void @__assert_fail(ptr noundef @.str.92, ptr noundef @.str.10, i32 noundef 4697, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11SliderFloatEPKcPfffS1_f) #14
  unreachable

343:                                              ; No predecessors!
  br label %344

344:                                              ; preds = %343, %341
  %345 = load ptr, ptr %14, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.ImGuiState, ptr %345, i32 0, i32 17
  %347 = load i32, ptr %346, align 4, !tbaa !36
  %348 = load ptr, ptr %14, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.ImGuiState, ptr %348, i32 0, i32 39
  store i32 %347, ptr %349, align 8, !tbaa !53
  %350 = load i32, ptr %18, align 4, !tbaa !28
  %351 = load ptr, ptr %14, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.ImGuiState, ptr %351, i32 0, i32 16
  store i32 %350, ptr %352, align 8, !tbaa !51
  br label %365

353:                                              ; preds = %314
  %354 = load ptr, ptr %14, align 8, !tbaa !5
  %355 = getelementptr inbounds %struct.ImGuiState, ptr %354, i32 0, i32 17
  %356 = load i32, ptr %355, align 4, !tbaa !36
  %357 = load ptr, ptr %14, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.ImGuiState, ptr %357, i32 0, i32 39
  %359 = load i32, ptr %358, align 8, !tbaa !53
  %360 = icmp ne i32 %356, %359
  br i1 %360, label %361, label %364

361:                                              ; preds = %353
  %362 = load ptr, ptr %14, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiState, ptr %362, i32 0, i32 39
  store i32 0, ptr %363, align 8, !tbaa !53
  br label %364

364:                                              ; preds = %361, %353
  br label %365

365:                                              ; preds = %364, %344
  %366 = load i8, ptr %47, align 1, !tbaa !48, !range !26, !noundef !27
  %367 = trunc i8 %366 to i1
  br i1 %367, label %368, label %371

368:                                              ; preds = %365
  %369 = getelementptr inbounds [64 x i8], ptr %48, i64 0, i64 0
  %370 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZL23ApplyNumericalTextInputPKcPf(ptr noundef %369, ptr noundef %370)
  br label %371

371:                                              ; preds = %368, %365
  %372 = load i8, ptr %47, align 1, !tbaa !48, !range !26, !noundef !27
  %373 = trunc i8 %372 to i1
  store i1 %373, ptr %7, align 1
  store i32 1, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 64, ptr %48) #12
  br label %619

374:                                              ; preds = %308, %302
  call void @_ZL8ItemSizeRK9ImGuiAabbP6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %31, ptr noundef null)
  %375 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %49, ptr align 4 %375, i64 8, i1 false), !tbaa.struct !54
  %376 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %50, ptr align 4 %376, i64 8, i1 false), !tbaa.struct !54
  %377 = load ptr, ptr %15, align 8, !tbaa !5
  %378 = call noundef i32 @_ZNK11ImGuiWindow5ColorEif(ptr noundef nonnull align 8 dereferenceable(480) %377, i32 noundef 5, float noundef 1.000000e+00)
  %379 = load ptr, ptr %17, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiStyle, ptr %379, i32 0, i32 6
  %381 = load float, ptr %380, align 4, !tbaa !55
  %382 = load <2 x float>, ptr %49, align 4
  %383 = load <2 x float>, ptr %50, align 4
  call void @_ZL11RenderFrame6ImVec2S_jbf(<2 x float> %382, <2 x float> %383, i32 noundef %378, i1 noundef zeroext true, float noundef %381)
  %384 = load ptr, ptr %14, align 8, !tbaa !5
  %385 = getelementptr inbounds %struct.ImGuiState, ptr %384, i32 0, i32 17
  %386 = load i32, ptr %385, align 4, !tbaa !36
  %387 = load i32, ptr %18, align 4, !tbaa !28
  %388 = icmp eq i32 %386, %387
  br i1 %388, label %389, label %484

389:                                              ; preds = %374
  %390 = load ptr, ptr %14, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.ImGuiState, ptr %390, i32 0, i32 2
  %392 = getelementptr inbounds %struct.ImGuiIO, ptr %391, i32 0, i32 24
  %393 = getelementptr inbounds [5 x i8], ptr %392, i64 0, i64 0
  %394 = load i8, ptr %393, align 8, !tbaa !48, !range !26, !noundef !27
  %395 = trunc i8 %394 to i1
  br i1 %395, label %396, label %482

396:                                              ; preds = %389
  %397 = load i8, ptr %35, align 1, !tbaa !48, !range !26, !noundef !27
  %398 = trunc i8 %397 to i1
  br i1 %398, label %481, label %399

399:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #12
  %400 = load ptr, ptr %14, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.ImGuiState, ptr %400, i32 0, i32 2
  %402 = getelementptr inbounds %struct.ImGuiIO, ptr %401, i32 0, i32 23
  %403 = getelementptr inbounds %struct.ImVec2, ptr %402, i32 0, i32 0
  %404 = load float, ptr %403, align 8, !tbaa !56
  %405 = load float, ptr %39, align 4, !tbaa !9
  %406 = fsub float %404, %405
  %407 = load float, ptr %38, align 4, !tbaa !9
  %408 = fdiv float %406, %407
  %409 = call noundef float @_ZL7ImClampfff(float noundef %408, float noundef 0.000000e+00, float noundef 1.000000e+00)
  store float %409, ptr %51, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #12
  %410 = load float, ptr %51, align 4, !tbaa !9
  %411 = load float, ptr %41, align 4, !tbaa !9
  %412 = fcmp olt float %410, %411
  br i1 %412, label %413, label %426

413:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #12
  %414 = load float, ptr %51, align 4, !tbaa !9
  %415 = load float, ptr %41, align 4, !tbaa !9
  %416 = fdiv float %414, %415
  %417 = fsub float 1.000000e+00, %416
  store float %417, ptr %53, align 4, !tbaa !9
  %418 = load float, ptr %53, align 4, !tbaa !9
  %419 = load float, ptr %13, align 4, !tbaa !9
  %420 = call float @powf(float noundef %418, float noundef %419) #12
  store float %420, ptr %53, align 4, !tbaa !9
  %421 = load float, ptr %11, align 4, !tbaa !9
  %422 = call noundef float @_ZL5ImMinff(float noundef %421, float noundef 0.000000e+00)
  %423 = load float, ptr %10, align 4, !tbaa !9
  %424 = load float, ptr %53, align 4, !tbaa !9
  %425 = call noundef float @_ZL6ImLerpfff(float noundef %422, float noundef %423, float noundef %424)
  store float %425, ptr %52, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #12
  br label %450

426:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #12
  %427 = load float, ptr %41, align 4, !tbaa !9
  %428 = fsub float %427, 1.000000e+00
  %429 = call float @llvm.fabs.f32(float %428)
  %430 = fpext float %429 to double
  %431 = fcmp ogt double %430, 0x3EB0C6F7A0B5ED8D
  br i1 %431, label %432, label %439

432:                                              ; preds = %426
  %433 = load float, ptr %51, align 4, !tbaa !9
  %434 = load float, ptr %41, align 4, !tbaa !9
  %435 = fsub float %433, %434
  %436 = load float, ptr %41, align 4, !tbaa !9
  %437 = fsub float 1.000000e+00, %436
  %438 = fdiv float %435, %437
  store float %438, ptr %54, align 4, !tbaa !9
  br label %441

439:                                              ; preds = %426
  %440 = load float, ptr %51, align 4, !tbaa !9
  store float %440, ptr %54, align 4, !tbaa !9
  br label %441

441:                                              ; preds = %439, %432
  %442 = load float, ptr %54, align 4, !tbaa !9
  %443 = load float, ptr %13, align 4, !tbaa !9
  %444 = call float @powf(float noundef %442, float noundef %443) #12
  store float %444, ptr %54, align 4, !tbaa !9
  %445 = load float, ptr %10, align 4, !tbaa !9
  %446 = call noundef float @_ZL5ImMaxff(float noundef %445, float noundef 0.000000e+00)
  %447 = load float, ptr %11, align 4, !tbaa !9
  %448 = load float, ptr %54, align 4, !tbaa !9
  %449 = call noundef float @_ZL6ImLerpfff(float noundef %446, float noundef %447, float noundef %448)
  store float %449, ptr %52, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #12
  br label %450

450:                                              ; preds = %441, %413
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #12
  %451 = load i32, ptr %20, align 4, !tbaa !28
  %452 = sitofp i32 %451 to float
  %453 = call float @powf(float noundef 1.000000e+01, float noundef %452) #12
  %454 = fdiv float 1.000000e+00, %453
  store float %454, ptr %55, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #12
  %455 = load float, ptr %52, align 4, !tbaa !9
  %456 = load float, ptr %55, align 4, !tbaa !9
  %457 = call float @fmodf(float noundef %455, float noundef %456) #12
  store float %457, ptr %56, align 4, !tbaa !9
  %458 = load float, ptr %56, align 4, !tbaa !9
  %459 = load float, ptr %55, align 4, !tbaa !9
  %460 = fmul float %459, 5.000000e-01
  %461 = fcmp ole float %458, %460
  br i1 %461, label %462, label %466

462:                                              ; preds = %450
  %463 = load float, ptr %56, align 4, !tbaa !9
  %464 = load float, ptr %52, align 4, !tbaa !9
  %465 = fsub float %464, %463
  store float %465, ptr %52, align 4, !tbaa !9
  br label %472

466:                                              ; preds = %450
  %467 = load float, ptr %55, align 4, !tbaa !9
  %468 = load float, ptr %56, align 4, !tbaa !9
  %469 = fsub float %467, %468
  %470 = load float, ptr %52, align 4, !tbaa !9
  %471 = fadd float %470, %469
  store float %471, ptr %52, align 4, !tbaa !9
  br label %472

472:                                              ; preds = %466, %462
  %473 = load ptr, ptr %9, align 8, !tbaa !5
  %474 = load float, ptr %473, align 4, !tbaa !9
  %475 = load float, ptr %52, align 4, !tbaa !9
  %476 = fcmp une float %474, %475
  br i1 %476, label %477, label %480

477:                                              ; preds = %472
  %478 = load float, ptr %52, align 4, !tbaa !9
  %479 = load ptr, ptr %9, align 8, !tbaa !5
  store float %478, ptr %479, align 4, !tbaa !9
  store i8 1, ptr %47, align 1, !tbaa !48
  br label %480

480:                                              ; preds = %477, %472
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #12
  br label %481

481:                                              ; preds = %480, %396
  br label %483

482:                                              ; preds = %389
  call void @_ZL11SetActiveIdj(i32 noundef 0)
  br label %483

483:                                              ; preds = %482, %481
  br label %484

484:                                              ; preds = %483, %374
  %485 = load i8, ptr %35, align 1, !tbaa !48, !range !26, !noundef !27
  %486 = trunc i8 %485 to i1
  br i1 %486, label %564, label %487

487:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #12
  %488 = load ptr, ptr %9, align 8, !tbaa !5
  %489 = load float, ptr %488, align 4, !tbaa !9
  %490 = load float, ptr %10, align 4, !tbaa !9
  %491 = load float, ptr %11, align 4, !tbaa !9
  %492 = call noundef float @_ZL7ImClampfff(float noundef %489, float noundef %490, float noundef %491)
  store float %492, ptr %58, align 4, !tbaa !9
  %493 = load float, ptr %58, align 4, !tbaa !9
  %494 = fcmp olt float %493, 0.000000e+00
  br i1 %494, label %495, label %512

495:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #12
  %496 = load float, ptr %58, align 4, !tbaa !9
  %497 = load float, ptr %10, align 4, !tbaa !9
  %498 = fsub float %496, %497
  %499 = load float, ptr %11, align 4, !tbaa !9
  %500 = call noundef float @_ZL5ImMinff(float noundef 0.000000e+00, float noundef %499)
  %501 = load float, ptr %10, align 4, !tbaa !9
  %502 = fsub float %500, %501
  %503 = fdiv float %498, %502
  %504 = fsub float 1.000000e+00, %503
  store float %504, ptr %59, align 4, !tbaa !9
  %505 = load float, ptr %59, align 4, !tbaa !9
  %506 = load float, ptr %13, align 4, !tbaa !9
  %507 = fdiv float 1.000000e+00, %506
  %508 = call float @powf(float noundef %505, float noundef %507) #12
  %509 = fsub float 1.000000e+00, %508
  %510 = load float, ptr %41, align 4, !tbaa !9
  %511 = fmul float %509, %510
  store float %511, ptr %57, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #12
  br label %530

512:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #12
  %513 = load float, ptr %58, align 4, !tbaa !9
  %514 = load float, ptr %10, align 4, !tbaa !9
  %515 = call noundef float @_ZL5ImMaxff(float noundef 0.000000e+00, float noundef %514)
  %516 = fsub float %513, %515
  %517 = load float, ptr %11, align 4, !tbaa !9
  %518 = load float, ptr %10, align 4, !tbaa !9
  %519 = call noundef float @_ZL5ImMaxff(float noundef 0.000000e+00, float noundef %518)
  %520 = fsub float %517, %519
  %521 = fdiv float %516, %520
  store float %521, ptr %60, align 4, !tbaa !9
  %522 = load float, ptr %41, align 4, !tbaa !9
  %523 = load float, ptr %60, align 4, !tbaa !9
  %524 = load float, ptr %13, align 4, !tbaa !9
  %525 = fdiv float 1.000000e+00, %524
  %526 = call float @powf(float noundef %523, float noundef %525) #12
  %527 = load float, ptr %41, align 4, !tbaa !9
  %528 = fsub float 1.000000e+00, %527
  %529 = call float @llvm.fmuladd.f32(float %526, float %528, float %522)
  store float %529, ptr %57, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #12
  br label %530

530:                                              ; preds = %512, %495
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #12
  %531 = load float, ptr %39, align 4, !tbaa !9
  %532 = load float, ptr %40, align 4, !tbaa !9
  %533 = load float, ptr %57, align 4, !tbaa !9
  %534 = call noundef float @_ZL6ImLerpfff(float noundef %531, float noundef %532, float noundef %533)
  store float %534, ptr %61, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #12
  %535 = load float, ptr %61, align 4, !tbaa !9
  %536 = load float, ptr %37, align 4, !tbaa !9
  %537 = fneg float %536
  %538 = call float @llvm.fmuladd.f32(float %537, float 5.000000e-01, float %535)
  %539 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 0
  %540 = getelementptr inbounds %struct.ImVec2, ptr %539, i32 0, i32 1
  %541 = load float, ptr %540, align 4, !tbaa !57
  %542 = fadd float %541, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef %538, float noundef %542)
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #12
  %543 = load float, ptr %61, align 4, !tbaa !9
  %544 = load float, ptr %37, align 4, !tbaa !9
  %545 = call float @llvm.fmuladd.f32(float %544, float 5.000000e-01, float %543)
  %546 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 1
  %547 = getelementptr inbounds %struct.ImVec2, ptr %546, i32 0, i32 1
  %548 = load float, ptr %547, align 4, !tbaa !58
  %549 = fsub float %548, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %64, float noundef %545, float noundef %549)
  call void @_ZN9ImGuiAabbC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %62, ptr noundef nonnull align 4 dereferenceable(8) %63, ptr noundef nonnull align 4 dereferenceable(8) %64)
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #12
  %550 = load ptr, ptr %15, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.ImGuiWindow, ptr %550, i32 0, i32 28
  %552 = load ptr, ptr %551, align 8, !tbaa !59
  %553 = getelementptr inbounds %struct.ImGuiAabb, ptr %62, i32 0, i32 0
  %554 = getelementptr inbounds %struct.ImGuiAabb, ptr %62, i32 0, i32 1
  %555 = load ptr, ptr %15, align 8, !tbaa !5
  %556 = load ptr, ptr %14, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.ImGuiState, ptr %556, i32 0, i32 17
  %558 = load i32, ptr %557, align 4, !tbaa !36
  %559 = load i32, ptr %18, align 4, !tbaa !28
  %560 = icmp eq i32 %558, %559
  %561 = zext i1 %560 to i64
  %562 = select i1 %560, i32 17, i32 16
  %563 = call noundef i32 @_ZNK11ImGuiWindow5ColorEif(ptr noundef nonnull align 8 dereferenceable(480) %555, i32 noundef %562, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %552, ptr noundef nonnull align 4 dereferenceable(8) %553, ptr noundef nonnull align 4 dereferenceable(8) %554, i32 noundef %563, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #12
  br label %564

564:                                              ; preds = %530, %484
  call void @llvm.lifetime.start.p0(i64 64, ptr %65) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #12
  %565 = getelementptr inbounds [64 x i8], ptr %65, i64 0, i64 0
  %566 = getelementptr inbounds [64 x i8], ptr %65, i64 0, i64 0
  %567 = load ptr, ptr %12, align 8, !tbaa !5
  %568 = load ptr, ptr %9, align 8, !tbaa !5
  %569 = load float, ptr %568, align 4, !tbaa !9
  %570 = fpext float %569 to double
  %571 = call noundef i64 (ptr, i64, ptr, ...) @_ZL14ImFormatStringPcmPKcz(ptr noundef %566, i64 noundef 64, ptr noundef %567, double noundef %570)
  %572 = getelementptr inbounds i8, ptr %565, i64 %571
  store ptr %572, ptr %66, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #12
  %573 = getelementptr inbounds [64 x i8], ptr %65, i64 0, i64 0
  %574 = load ptr, ptr %66, align 8, !tbaa !5
  %575 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %573, ptr noundef %574, i1 noundef zeroext true, float noundef -1.000000e+00)
  store <2 x float> %575, ptr %67, align 4
  %576 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 0
  %577 = getelementptr inbounds %struct.ImVec2, ptr %576, i32 0, i32 0
  %578 = load float, ptr %577, align 4, !tbaa !49
  %579 = load ptr, ptr %17, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.ImGuiStyle, ptr %579, i32 0, i32 5
  %581 = getelementptr inbounds %struct.ImVec2, ptr %580, i32 0, i32 0
  %582 = load float, ptr %581, align 4, !tbaa !60
  %583 = fadd float %578, %582
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #12
  %584 = call <2 x float> @_ZNK9ImGuiAabb9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16) %28)
  store <2 x float> %584, ptr %69, align 4
  %585 = getelementptr inbounds %struct.ImVec2, ptr %69, i32 0, i32 0
  %586 = load float, ptr %585, align 4, !tbaa !33
  %587 = getelementptr inbounds %struct.ImVec2, ptr %67, i32 0, i32 0
  %588 = load float, ptr %587, align 4, !tbaa !33
  %589 = fneg float %588
  %590 = call float @llvm.fmuladd.f32(float %589, float 5.000000e-01, float %586)
  %591 = call noundef float @_ZL5ImMaxff(float noundef %583, float noundef %590)
  %592 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 0
  %593 = getelementptr inbounds %struct.ImVec2, ptr %592, i32 0, i32 1
  %594 = load float, ptr %593, align 4, !tbaa !57
  %595 = load ptr, ptr %17, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.ImGuiStyle, ptr %595, i32 0, i32 5
  %597 = getelementptr inbounds %struct.ImVec2, ptr %596, i32 0, i32 1
  %598 = load float, ptr %597, align 4, !tbaa !61
  %599 = fadd float %594, %598
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %68, float noundef %591, float noundef %599)
  %600 = getelementptr inbounds [64 x i8], ptr %65, i64 0, i64 0
  %601 = load ptr, ptr %66, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 1
  %603 = load <2 x float>, ptr %68, align 4
  call void @_ZL17RenderTextClipped6ImVec2PKcS1_PKS_RS2_(<2 x float> %603, ptr noundef %600, ptr noundef %601, ptr noundef %67, ptr noundef nonnull align 4 dereferenceable(8) %602)
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #12
  %604 = getelementptr inbounds %struct.ImGuiAabb, ptr %23, i32 0, i32 1
  %605 = getelementptr inbounds %struct.ImVec2, ptr %604, i32 0, i32 0
  %606 = load float, ptr %605, align 4, !tbaa !50
  %607 = load ptr, ptr %17, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct.ImGuiStyle, ptr %607, i32 0, i32 8
  %609 = getelementptr inbounds %struct.ImVec2, ptr %608, i32 0, i32 0
  %610 = load float, ptr %609, align 4, !tbaa !34
  %611 = fadd float %606, %610
  %612 = getelementptr inbounds %struct.ImGuiAabb, ptr %28, i32 0, i32 0
  %613 = getelementptr inbounds %struct.ImVec2, ptr %612, i32 0, i32 1
  %614 = load float, ptr %613, align 4, !tbaa !57
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %70, float noundef %611, float noundef %614)
  %615 = load ptr, ptr %8, align 8, !tbaa !5
  %616 = load <2 x float>, ptr %70, align 4
  call void @_ZL10RenderText6ImVec2PKcS1_b(<2 x float> %616, ptr noundef %615, ptr noundef null, i1 noundef zeroext true)
  %617 = load i8, ptr %47, align 1, !tbaa !48, !range !26, !noundef !27
  %618 = trunc i8 %617 to i1
  store i1 %618, ptr %7, align 1
  store i32 1, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr %65) #12
  br label %619

619:                                              ; preds = %564, %371
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #12
  br label %620

620:                                              ; preds = %619, %171
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #12
  br label %621

621:                                              ; preds = %620, %77
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #12
  %622 = load i1, ptr %7, align 1
  ret i1 %622
}

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #11

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK9ImGuiAabb8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16)) #5 align 2

; Function Attrs: nounwind
declare float @powf(float noundef, float noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL9IsHoveredRK9ImGuiAabbRKj(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL23ApplyNumericalTextInputPKcPf(ptr noundef, ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK9ImGuiAabb9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16)) #5 align 2

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 = { mustprogress uwtable "min-legal-vector-width"="64" "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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 #9 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "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 #10 = { nounwind willreturn memory(read) "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 #11 = { inlinehint mustprogress nounwind willreturn memory(read) 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 #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(read) }
attributes #14 = { 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, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!12, !15, i64 68}
!12 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !13, i64 8, !13, i64 12, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !10, i64 56, !10, i64 60, !15, i64 64, !15, i64 65, !15, i64 66, !15, i64 67, !15, i64 68, !13, i64 72, !15, i64 76, !13, i64 80, !13, i64 84, !13, i64 88, !16, i64 96, !22, i64 336, !23, i64 360, !17, i64 384, !13, i64 400, !10, i64 404, !24, i64 408, !10, i64 432, !6, i64 440, !6, i64 448, !13, i64 456, !13, i64 460, !13, i64 464, !13, i64 468, !13, i64 472, !13, i64 476}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS6ImVec2", !10, i64 0, !10, i64 4}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"_ZTS16ImGuiDrawContext", !14, i64 0, !14, i64 8, !14, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !13, i64 36, !13, i64 40, !17, i64 44, !15, i64 60, !18, i64 64, !20, i64 88, !21, i64 112, !21, i64 136, !13, i64 160, !6, i64 168, !10, i64 176, !10, i64 180, !13, i64 184, !13, i64 188, !14, i64 192, !10, i64 200, !10, i64 204, !15, i64 208, !13, i64 212, !21, i64 216}
!17 = !{!"_ZTS9ImGuiAabb", !14, i64 0, !14, i64 8}
!18 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !19, i64 0, !19, i64 8, !6, i64 16}
!19 = !{!"long", !7, i64 0}
!20 = !{!"_ZTS8ImVectorIbE", !19, i64 0, !19, i64 8, !6, i64 16}
!21 = !{!"_ZTS8ImVectorIfE", !19, i64 0, !19, i64 8, !6, i64 16}
!22 = !{!"_ZTS8ImVectorIjE", !19, i64 0, !19, i64 8, !6, i64 16}
!23 = !{!"_ZTS8ImVectorI6ImVec4E", !19, i64 0, !19, i64 8, !6, i64 16}
!24 = !{!"_ZTS12ImGuiStorage", !25, i64 0}
!25 = !{!"_ZTS8ImVectorIN12ImGuiStorage4PairEE", !19, i64 0, !19, i64 8, !6, i64 16}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!13, !13, i64 0}
!29 = !{!7, !7, i64 0}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!14, !10, i64 4}
!33 = !{!14, !10, i64 0}
!34 = !{!35, !10, i64 48}
!35 = !{!"_ZTS10ImGuiStyle", !10, i64 0, !14, i64 4, !14, i64 12, !10, i64 20, !10, i64 24, !14, i64 28, !10, i64 36, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !7, i64 88}
!36 = !{!37, !13, i64 3788}
!37 = !{!"_ZTS10ImGuiState", !15, i64 0, !38, i64 8, !35, i64 2960, !6, i64 3672, !10, i64 3680, !14, i64 3684, !10, i64 3692, !13, i64 3696, !13, i64 3700, !18, i64 3704, !6, i64 3728, !18, i64 3736, !6, i64 3760, !6, i64 3768, !6, i64 3776, !13, i64 3784, !13, i64 3788, !13, i64 3792, !15, i64 3796, !15, i64 3797, !6, i64 3800, !10, i64 3808, !39, i64 3816, !40, i64 3840, !41, i64 3864, !42, i64 3888, !14, i64 3912, !13, i64 3920, !14, i64 3924, !13, i64 3932, !15, i64 3936, !13, i64 3940, !15, i64 3944, !15, i64 3945, !13, i64 3948, !43, i64 3952, !18, i64 3976, !44, i64 4000, !13, i64 12400, !24, i64 12408, !13, i64 12432, !7, i64 12436, !6, i64 13464, !15, i64 13472, !6, i64 13480, !6, i64 13488, !13, i64 13496, !13, i64 13500, !7, i64 13504, !13, i64 13984, !10, i64 13988}
!38 = !{!"_ZTS7ImGuiIO", !14, i64 0, !10, i64 8, !10, i64 12, !6, i64 16, !6, i64 24, !10, i64 32, !10, i64 36, !7, i64 40, !6, i64 112, !6, i64 120, !10, i64 128, !15, i64 132, !14, i64 136, !14, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !14, i64 208, !7, i64 216, !10, i64 224, !15, i64 228, !15, i64 229, !15, i64 230, !7, i64 231, !7, i64 744, !15, i64 778, !15, i64 779, !10, i64 780, !14, i64 784, !14, i64 792, !7, i64 800, !7, i64 808, !7, i64 848, !7, i64 868, !7, i64 873, !7, i64 880, !7, i64 900}
!39 = !{!"_ZTS8ImVectorIP12ImGuiIniDataE", !19, i64 0, !19, i64 8, !6, i64 16}
!40 = !{!"_ZTS8ImVectorI11ImGuiColModE", !19, i64 0, !19, i64 8, !6, i64 16}
!41 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !19, i64 0, !19, i64 8, !6, i64 16}
!42 = !{!"_ZTS8ImVectorIP6ImFontE", !19, i64 0, !19, i64 8, !6, i64 16}
!43 = !{!"_ZTS8ImVectorIP10ImDrawListE", !19, i64 0, !19, i64 8, !6, i64 16}
!44 = !{!"_ZTS18ImGuiTextEditState", !13, i64 0, !7, i64 4, !7, i64 2052, !19, i64 5128, !10, i64 5136, !10, i64 5140, !45, i64 5144, !10, i64 8364, !14, i64 8368, !15, i64 8376, !6, i64 8384, !10, i64 8392}
!45 = !{!"_ZTS17STB_TexteditState", !13, i64 0, !13, i64 4, !13, i64 8, !7, i64 12, !7, i64 13, !7, i64 14, !7, i64 15, !7, i64 16, !7, i64 17, !7, i64 18, !7, i64 19, !10, i64 20, !46, i64 24}
!46 = !{!"_ZTS12StbUndoState", !7, i64 0, !7, i64 1188, !47, i64 3186, !47, i64 3188, !47, i64 3190, !47, i64 3192}
!47 = !{!"short", !7, i64 0}
!48 = !{!15, !15, i64 0}
!49 = !{!17, !10, i64 0}
!50 = !{!17, !10, i64 8}
!51 = !{!37, !13, i64 3784}
!52 = !{!37, !15, i64 237}
!53 = !{!37, !13, i64 12400}
!54 = !{i64 0, i64 4, !9, i64 4, i64 4, !9}
!55 = !{!35, !10, i64 36}
!56 = !{!37, !10, i64 216}
!57 = !{!17, !10, i64 4}
!58 = !{!17, !10, i64 12}
!59 = !{!12, !6, i64 440}
!60 = !{!35, !10, i64 28}
!61 = !{!35, !10, i64 32}


; 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.ImGuiAabb = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }

@_ZL6GImGui = external hidden local_unnamed_addr global ptr, align 8
@.str.10 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [17 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui11SliderFloatEPKcPfffS1_f = external hidden unnamed_addr constant [82 x i8], align 1

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

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @fmodf(float noundef, float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i64 @_ZL14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef ptr @_ZL16GetCurrentWindowv() local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11ImGuiWindow19FocusItemUnregisterEv(ptr noundef nonnull align 8 dereferenceable(480)) local_unnamed_addr #0 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL11SetActiveIdj(i32 noundef) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImClampfff(float noundef, float noundef, float noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8), float noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMaxff(float noundef, float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL7ItemAddRK9ImGuiAabbPKj(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL11FocusWindowP11ImGuiWindow(ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMinff(float noundef, float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK11ImGuiWindow5ColorEif(ptr noundef nonnull align 8 dereferenceable(480), i32 noundef, float noundef) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL6ImLerpfff(float noundef, float noundef, float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL17RenderTextClipped6ImVec2PKcS1_PKS_RS2_(<2 x float>, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui13CalcItemWidthEv() local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare noundef ptr @strchr(ptr noundef, i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL10RenderText6ImVec2PKcS1_b(<2 x float>, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL8ItemSizeRK9ImGuiAabbP6ImVec2(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL11RenderFrame6ImVec2S_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui11SliderFloatEPKcPfffS1_f(ptr noundef %0, ptr noundef %1, float noundef %2, float noundef %3, ptr noundef %4, float noundef %5) local_unnamed_addr #4 {
  %7 = alloca i32, align 4
  %8 = alloca %struct.ImGuiAabb, align 8
  %9 = alloca %struct.ImVec2, align 8
  %10 = alloca %struct.ImVec2, align 8
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImGuiAabb, align 4
  %14 = alloca %struct.ImVec2, align 8
  %15 = alloca %struct.ImVec2, align 8
  %16 = alloca %struct.ImGuiAabb, align 4
  %17 = alloca %struct.ImVec2, align 8
  %18 = alloca %struct.ImVec2, align 4
  %19 = alloca [64 x i8], align 16
  %20 = alloca %struct.ImGuiAabb, align 4
  %21 = alloca %struct.ImVec2, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca [64 x i8], align 16
  %24 = alloca %struct.ImVec2, align 8
  %25 = alloca %struct.ImVec2, align 8
  %26 = alloca %struct.ImVec2, align 8
  %27 = load ptr, ptr @_ZL6GImGui, align 8, !tbaa !5
  %28 = tail call noundef ptr @_ZL16GetCurrentWindowv()
  %29 = getelementptr inbounds i8, ptr %28, i64 68
  %30 = load i8, ptr %29, align 4, !tbaa !9, !range !25, !noundef !26
  %31 = trunc nuw i8 %30 to i1
  br i1 %31, label %262, label %32

32:                                               ; preds = %6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #11
  %33 = tail call noundef i32 @_ZN11ImGuiWindow5GetIDEPKc(ptr noundef nonnull align 8 dereferenceable(480) %28, ptr noundef %0)
  store i32 %33, ptr %7, align 4, !tbaa !27
  %34 = tail call noundef float @_ZN5ImGui13CalcItemWidthEv()
  %.not = icmp eq ptr %4, null
  %spec.store.select = select i1 %.not, ptr @.str.90, ptr %4
  %35 = tail call noundef ptr @strchr(ptr noundef nonnull dereferenceable(1) %spec.store.select, i32 noundef 37) #12
  %.not194 = icmp eq ptr %35, null
  br i1 %.not194, label %42, label %.preheader

.preheader:                                       ; preds = %32, %.preheader
  %.pn = phi ptr [ %.0171, %.preheader ], [ %35, %32 ]
  %.0171 = getelementptr inbounds i8, ptr %.pn, i64 1
  %36 = load i8, ptr %.0171, align 1, !tbaa !28
  %37 = add i8 %36, -48
  %or.cond196 = icmp ult i8 %37, 10
  br i1 %or.cond196, label %.preheader, label %.critedge, !llvm.loop !29

.critedge:                                        ; preds = %.preheader
  %38 = icmp eq i8 %36, 46
  br i1 %38, label %39, label %42

39:                                               ; preds = %.critedge
  %40 = getelementptr inbounds i8, ptr %.pn, i64 2
  %41 = tail call i32 @atoi(ptr nocapture noundef %40) #12
  %or.cond = icmp ugt i32 %41, 10
  %spec.store.select6 = select i1 %or.cond, i32 3, i32 %41
  br label %42

42:                                               ; preds = %39, %.critedge, %32
  %.0170 = phi i32 [ %spec.store.select6, %39 ], [ 3, %.critedge ], [ 3, %32 ]
  %43 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %0, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #11
  %44 = getelementptr inbounds i8, ptr %28, i64 96
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  %.sroa.070.4.vec.extract = extractelement <2 x float> %43, i64 1
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef %34, float noundef %.sroa.070.4.vec.extract)
  %45 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %44, ptr noundef nonnull align 4 dereferenceable(8) %11)
  store <2 x float> %45, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #11
  %46 = getelementptr inbounds i8, ptr %27, i64 2988
  %47 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %46, float noundef 2.000000e+00)
  store <2 x float> %47, ptr %12, align 8
  %48 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %12)
  store <2 x float> %48, ptr %9, align 8
  call void @_ZN9ImGuiAabbC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %8, ptr noundef nonnull align 4 dereferenceable(8) %44, ptr noundef nonnull align 4 dereferenceable(8) %9)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %49 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %46)
  store <2 x float> %49, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  %50 = getelementptr inbounds i8, ptr %8, i64 8
  %51 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(8) %46)
  store <2 x float> %51, ptr %15, align 8
  call void @_ZN9ImGuiAabbC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %13, ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(8) %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  %.sroa.070.0.vec.extract = extractelement <2 x float> %43, i64 0
  %52 = fcmp ogt float %.sroa.070.0.vec.extract, 0.000000e+00
  br i1 %52, label %53, label %57

53:                                               ; preds = %42
  %54 = getelementptr inbounds i8, ptr %27, i64 3008
  %55 = load float, ptr %54, align 4, !tbaa !31
  %56 = fadd float %.sroa.070.0.vec.extract, %55
  br label %57

57:                                               ; preds = %42, %53
  %58 = phi float [ %56, %53 ], [ 0.000000e+00, %42 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %58, float noundef 0.000000e+00)
  %59 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(8) %18)
  store <2 x float> %59, ptr %17, align 8
  call void @_ZN9ImGuiAabbC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %16, ptr noundef nonnull align 4 dereferenceable(8) %8, ptr noundef nonnull align 4 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  %60 = call noundef zeroext i1 @_ZL7ItemAddRK9ImGuiAabbPKj(ptr noundef nonnull align 4 dereferenceable(16) %13, ptr noundef nonnull %7)
  br i1 %60, label %62, label %61

61:                                               ; preds = %57
  call void @_ZL8ItemSizeRK9ImGuiAabbP6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %16, ptr noundef null)
  br label %261

62:                                               ; preds = %57
  %63 = getelementptr inbounds i8, ptr %27, i64 3788
  %64 = load i32, ptr %63, align 4, !tbaa !33
  %65 = load i32, ptr %7, align 4, !tbaa !27
  %66 = icmp eq i32 %64, %65
  %67 = call noundef zeroext i1 @_ZN11ImGuiWindow17FocusItemRegisterEbb(ptr noundef nonnull align 8 dereferenceable(480) %28, i1 noundef zeroext %66, i1 noundef zeroext true)
  %68 = fcmp oeq float %2, 0xC7EFFFFFE0000000
  %69 = fcmp oeq float %2, 0x47EFFFFFE0000000
  %or.cond3 = or i1 %68, %69
  %70 = fcmp oeq float %3, 0xC7EFFFFFE0000000
  %or.cond5 = or i1 %or.cond3, %70
  %71 = fcmp oeq float %3, 0x47EFFFFFE0000000
  %spec.select = or i1 %71, %or.cond5
  %72 = icmp sgt i32 %.0170, 0
  %brmerge = or i1 %spec.select, %72
  br i1 %brmerge, label %78, label %73

73:                                               ; preds = %62
  %74 = fsub float %3, %2
  %75 = fadd float %74, 1.000000e+00
  %76 = fdiv float %34, %75
  %77 = call noundef float @_ZL5ImMaxff(float noundef %76, float noundef 8.000000e+00)
  br label %78

78:                                               ; preds = %62, %73
  %.0172 = phi float [ %77, %73 ], [ 1.000000e+01, %62 ]
  %79 = call noundef float @_ZNK9ImGuiAabb8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %13)
  %80 = fsub float %79, %.0172
  %81 = load float, ptr %13, align 4, !tbaa !45
  %82 = call float @llvm.fmuladd.f32(float %.0172, float 5.000000e-01, float %81)
  %83 = getelementptr inbounds i8, ptr %13, i64 8
  %84 = load float, ptr %83, align 4, !tbaa !46
  %85 = fneg float %.0172
  %86 = call float @llvm.fmuladd.f32(float %85, float 5.000000e-01, float %84)
  br i1 %spec.select, label %102, label %87

87:                                               ; preds = %78
  %88 = fmul float %2, %3
  %89 = fcmp olt float %88, 0.000000e+00
  br i1 %89, label %90, label %99

90:                                               ; preds = %87
  %91 = fsub float 0.000000e+00, %2
  %92 = call float @llvm.fabs.f32(float %91)
  %93 = fdiv float 1.000000e+00, %5
  %94 = call float @powf(float noundef %92, float noundef %93) #11
  %95 = call float @llvm.fabs.f32(float %3)
  %96 = call float @powf(float noundef %95, float noundef %93) #11
  %97 = fadd float %94, %96
  %98 = fdiv float %94, %97
  br label %102

99:                                               ; preds = %87
  %100 = fcmp olt float %2, 0.000000e+00
  %101 = select i1 %100, float 1.000000e+00, float 0.000000e+00
  br label %102

102:                                              ; preds = %90, %99, %78
  %.0174 = phi float [ 0.000000e+00, %78 ], [ %98, %90 ], [ %101, %99 ]
  %103 = call noundef zeroext i1 @_ZL9IsHoveredRK9ImGuiAabbRKj(ptr noundef nonnull align 4 dereferenceable(16) %13, ptr noundef nonnull align 4 dereferenceable(4) %7)
  %104 = load i32, ptr %7, align 4, !tbaa !27
  br i1 %103, label %105, label %.thread

105:                                              ; preds = %102
  %106 = getelementptr inbounds i8, ptr %27, i64 3784
  store i32 %104, ptr %106, align 8, !tbaa !47
  br i1 %67, label %.critedge198, label %107

.thread:                                          ; preds = %102
  br i1 %67, label %.critedge198, label %.critedge201

107:                                              ; preds = %105
  %108 = getelementptr inbounds i8, ptr %27, i64 808
  %109 = load i8, ptr %108, align 8, !tbaa !48, !range !25, !noundef !26
  %110 = trunc nuw i8 %109 to i1
  br i1 %110, label %111, label %.critedge201

111:                                              ; preds = %107
  call void @_ZL11SetActiveIdj(i32 noundef %104)
  call void @_ZL11FocusWindowP11ImGuiWindow(ptr noundef nonnull %28)
  %112 = getelementptr inbounds i8, ptr %27, i64 237
  %113 = load i8, ptr %112, align 1, !tbaa !49, !range !25, !noundef !26
  %114 = trunc nuw i8 %113 to i1
  %brmerge199 = or i1 %spec.select, %114
  br i1 %brmerge199, label %115, label %..critedge201_crit_edge

..critedge201_crit_edge:                          ; preds = %111
  %.pre210 = load i32, ptr %7, align 4, !tbaa !27
  br label %.critedge201

.critedge198:                                     ; preds = %.thread, %105
  call void @_ZL11SetActiveIdj(i32 noundef %104)
  call void @_ZL11FocusWindowP11ImGuiWindow(ptr noundef nonnull %28)
  br label %115

115:                                              ; preds = %111, %.critedge198
  %116 = getelementptr inbounds i8, ptr %27, i64 12400
  store i32 0, ptr %116, align 8, !tbaa !50
  br label %124

.critedge201:                                     ; preds = %..critedge201_crit_edge, %.thread, %107
  %117 = phi i32 [ %.pre210, %..critedge201_crit_edge ], [ %104, %.thread ], [ %104, %107 ]
  %118 = load i32, ptr %63, align 4, !tbaa !33
  %119 = icmp eq i32 %118, %117
  br i1 %119, label %120, label %145

120:                                              ; preds = %.critedge201
  %121 = getelementptr inbounds i8, ptr %27, i64 12400
  %122 = load i32, ptr %121, align 8, !tbaa !50
  %123 = icmp eq i32 %117, %122
  br i1 %123, label %124, label %145

124:                                              ; preds = %115, %120
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %19) #11
  %125 = load float, ptr %1, align 4, !tbaa !51
  %126 = fpext float %125 to double
  %127 = call noundef i64 (ptr, i64, ptr, ...) @_ZL14ImFormatStringPcmPKcz(ptr noundef nonnull %19, i64 noundef 64, ptr noundef nonnull @.str.91, i32 noundef %.0170, double noundef %126)
  %128 = getelementptr inbounds i8, ptr %27, i64 12400
  %129 = load i32, ptr %128, align 8, !tbaa !50
  call void @_ZL11SetActiveIdj(i32 noundef %129)
  %130 = getelementptr inbounds i8, ptr %27, i64 3784
  store i32 0, ptr %130, align 8, !tbaa !47
  call void @_ZN11ImGuiWindow19FocusItemUnregisterEv(ptr noundef nonnull align 8 dereferenceable(480) %28)
  %131 = call noundef zeroext i1 @_ZN5ImGui9InputTextEPKcPcmiPFiP25ImGuiTextEditCallbackDataEPv(ptr noundef %0, ptr noundef nonnull %19, i64 noundef 64, i32 noundef 17, ptr noundef null, ptr noundef null)
  %132 = load i32, ptr %128, align 8, !tbaa !50
  %133 = icmp eq i32 %132, 0
  %134 = load i32, ptr %63, align 4, !tbaa !33
  br i1 %133, label %135, label %140

135:                                              ; preds = %124
  %136 = load i32, ptr %7, align 4, !tbaa !27
  %137 = icmp eq i32 %134, %136
  br i1 %137, label %139, label %138

138:                                              ; preds = %135
  call void @__assert_fail(ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.10, i32 noundef 4697, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11SliderFloatEPKcPfffS1_f) #13
  unreachable

139:                                              ; preds = %135
  store i32 %134, ptr %128, align 8, !tbaa !50
  store i32 %134, ptr %130, align 8, !tbaa !47
  br label %142

140:                                              ; preds = %124
  %.not195 = icmp eq i32 %134, %132
  br i1 %.not195, label %142, label %141

141:                                              ; preds = %140
  store i32 0, ptr %128, align 8, !tbaa !50
  br label %142

142:                                              ; preds = %140, %141, %139
  br i1 %131, label %143, label %144

143:                                              ; preds = %142
  call void @_ZL23ApplyNumericalTextInputPKcPf(ptr noundef nonnull %19, ptr noundef nonnull %1)
  br label %144

144:                                              ; preds = %143, %142
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %19) #11
  br label %261

145:                                              ; preds = %120, %.critedge201
  call void @_ZL8ItemSizeRK9ImGuiAabbP6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %16, ptr noundef null)
  %.sroa.036.0.copyload = load <2 x float>, ptr %8, align 8
  %.sroa.035.0.copyload = load <2 x float>, ptr %50, align 8
  %146 = call noundef i32 @_ZNK11ImGuiWindow5ColorEif(ptr noundef nonnull align 8 dereferenceable(480) %28, i32 noundef 5, float noundef 1.000000e+00)
  %147 = getelementptr inbounds i8, ptr %27, i64 2996
  %148 = load float, ptr %147, align 4, !tbaa !52
  call void @_ZL11RenderFrame6ImVec2S_jbf(<2 x float> %.sroa.036.0.copyload, <2 x float> %.sroa.035.0.copyload, i32 noundef %146, i1 noundef zeroext true, float noundef %148)
  %149 = load i32, ptr %63, align 4, !tbaa !33
  %150 = load i32, ptr %7, align 4, !tbaa !27
  %151 = icmp eq i32 %149, %150
  br i1 %151, label %152, label %194

152:                                              ; preds = %145
  %153 = getelementptr inbounds i8, ptr %27, i64 224
  %154 = load i8, ptr %153, align 8, !tbaa !48, !range !25, !noundef !26
  %155 = trunc nuw i8 %154 to i1
  br i1 %155, label %156, label %193

156:                                              ; preds = %152
  br i1 %spec.select, label %.thread207, label %157

157:                                              ; preds = %156
  %158 = getelementptr inbounds i8, ptr %27, i64 216
  %159 = load float, ptr %158, align 8, !tbaa !53
  %160 = fsub float %159, %82
  %161 = fdiv float %160, %80
  %162 = call noundef float @_ZL7ImClampfff(float noundef %161, float noundef 0.000000e+00, float noundef 1.000000e+00)
  %163 = fcmp olt float %162, %.0174
  br i1 %163, label %164, label %170

164:                                              ; preds = %157
  %165 = fdiv float %162, %.0174
  %166 = fsub float 1.000000e+00, %165
  %167 = call float @powf(float noundef %166, float noundef %5) #11
  %168 = call noundef float @_ZL5ImMinff(float noundef %3, float noundef 0.000000e+00)
  %169 = call noundef float @_ZL6ImLerpfff(float noundef %168, float noundef %2, float noundef %167)
  br label %181

170:                                              ; preds = %157
  %171 = fadd float %.0174, -1.000000e+00
  %172 = call float @llvm.fabs.f32(float %171)
  %173 = fpext float %172 to double
  %174 = fcmp ogt double %173, 0x3EB0C6F7A0B5ED8D
  %175 = fsub float %162, %.0174
  %176 = fsub float 1.000000e+00, %.0174
  %177 = fdiv float %175, %176
  %.0177 = select i1 %174, float %177, float %162
  %178 = call float @powf(float noundef %.0177, float noundef %5) #11
  %179 = call noundef float @_ZL5ImMaxff(float noundef %2, float noundef 0.000000e+00)
  %180 = call noundef float @_ZL6ImLerpfff(float noundef %179, float noundef %3, float noundef %178)
  br label %181

181:                                              ; preds = %170, %164
  %.0180 = phi float [ %169, %164 ], [ %180, %170 ]
  %182 = sitofp i32 %.0170 to float
  %183 = call float @powf(float noundef 1.000000e+01, float noundef %182) #11
  %184 = fdiv float 1.000000e+00, %183
  %185 = call float @fmodf(float noundef %.0180, float noundef %184) #11
  %186 = fmul float %184, 5.000000e-01
  %187 = fcmp ugt float %185, %186
  %188 = fsub float %184, %185
  %189 = fneg float %185
  %.1181.p = select i1 %187, float %188, float %189
  %.1181 = fadd float %.0180, %.1181.p
  %190 = load float, ptr %1, align 4, !tbaa !51
  %191 = fcmp une float %190, %.1181
  br i1 %191, label %192, label %.thread203

192:                                              ; preds = %181
  store float %.1181, ptr %1, align 4, !tbaa !51
  br label %.thread203

193:                                              ; preds = %152
  call void @_ZL11SetActiveIdj(i32 noundef 0)
  br label %194

194:                                              ; preds = %193, %145
  br i1 %spec.select, label %.thread207, label %..thread203_crit_edge

..thread203_crit_edge:                            ; preds = %194
  %.pre = load float, ptr %1, align 4, !tbaa !51
  br label %.thread203

.thread203:                                       ; preds = %..thread203_crit_edge, %192, %181
  %195 = phi float [ %.pre, %..thread203_crit_edge ], [ %190, %181 ], [ %.1181, %192 ]
  %.1179205 = phi i1 [ false, %..thread203_crit_edge ], [ false, %181 ], [ true, %192 ]
  %196 = call noundef float @_ZL7ImClampfff(float noundef %195, float noundef %2, float noundef %3)
  %197 = fcmp olt float %196, 0.000000e+00
  %198 = fdiv float 1.000000e+00, %5
  br i1 %197, label %199, label %208

199:                                              ; preds = %.thread203
  %200 = fsub float %196, %2
  %201 = call noundef float @_ZL5ImMinff(float noundef 0.000000e+00, float noundef %3)
  %202 = fsub float %201, %2
  %203 = fdiv float %200, %202
  %204 = fsub float 1.000000e+00, %203
  %205 = call float @powf(float noundef %204, float noundef %198) #11
  %206 = fsub float 1.000000e+00, %205
  %207 = fmul float %.0174, %206
  br label %217

208:                                              ; preds = %.thread203
  %209 = call noundef float @_ZL5ImMaxff(float noundef 0.000000e+00, float noundef %2)
  %210 = fsub float %196, %209
  %211 = call noundef float @_ZL5ImMaxff(float noundef 0.000000e+00, float noundef %2)
  %212 = fsub float %3, %211
  %213 = fdiv float %210, %212
  %214 = call float @powf(float noundef %213, float noundef %198) #11
  %215 = fsub float 1.000000e+00, %.0174
  %216 = call float @llvm.fmuladd.f32(float %214, float %215, float %.0174)
  br label %217

217:                                              ; preds = %208, %199
  %.0173 = phi float [ %207, %199 ], [ %216, %208 ]
  %218 = call noundef float @_ZL6ImLerpfff(float noundef %82, float noundef %86, float noundef %.0173)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  %219 = call float @llvm.fmuladd.f32(float %85, float 5.000000e-01, float %218)
  %220 = getelementptr inbounds i8, ptr %8, i64 4
  %221 = load float, ptr %220, align 4, !tbaa !54
  %222 = fadd float %221, 2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef %219, float noundef %222)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %223 = call float @llvm.fmuladd.f32(float %.0172, float 5.000000e-01, float %218)
  %224 = getelementptr inbounds i8, ptr %8, i64 12
  %225 = load float, ptr %224, align 4, !tbaa !55
  %226 = fadd float %225, -2.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef %223, float noundef %226)
  call void @_ZN9ImGuiAabbC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %20, ptr noundef nonnull align 4 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(8) %22)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  %227 = getelementptr inbounds i8, ptr %28, i64 440
  %228 = load ptr, ptr %227, align 8, !tbaa !56
  %229 = getelementptr inbounds i8, ptr %20, i64 8
  %230 = load i32, ptr %63, align 4, !tbaa !33
  %231 = load i32, ptr %7, align 4, !tbaa !27
  %232 = icmp eq i32 %230, %231
  %233 = select i1 %232, i32 17, i32 16
  %234 = call noundef i32 @_ZNK11ImGuiWindow5ColorEif(ptr noundef nonnull align 8 dereferenceable(480) %28, i32 noundef %233, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(104) %228, ptr noundef nonnull align 4 dereferenceable(8) %20, ptr noundef nonnull align 4 dereferenceable(8) %229, i32 noundef %234, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #11
  br label %.thread207

.thread207:                                       ; preds = %156, %217, %194
  %.1179206 = phi i1 [ %.1179205, %217 ], [ false, %194 ], [ false, %156 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %23) #11
  %235 = load float, ptr %1, align 4, !tbaa !51
  %236 = fpext float %235 to double
  %237 = call noundef i64 (ptr, i64, ptr, ...) @_ZL14ImFormatStringPcmPKcz(ptr noundef nonnull %23, i64 noundef 64, ptr noundef nonnull %spec.store.select, double noundef %236)
  %238 = getelementptr inbounds i8, ptr %23, i64 %237
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  %239 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull %23, ptr noundef nonnull %238, i1 noundef zeroext true, float noundef -1.000000e+00)
  store <2 x float> %239, ptr %24, align 8
  %240 = load float, ptr %8, align 8, !tbaa !45
  %241 = load float, ptr %46, align 4, !tbaa !57
  %242 = fadd float %240, %241
  %243 = call <2 x float> @_ZNK9ImGuiAabb9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16) %13)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %243, i64 0
  %244 = extractelement <2 x float> %239, i64 0
  %245 = fneg float %244
  %246 = call float @llvm.fmuladd.f32(float %245, float 5.000000e-01, float %.sroa.0.0.vec.extract)
  %247 = call noundef float @_ZL5ImMaxff(float noundef %242, float noundef %246)
  %248 = getelementptr inbounds i8, ptr %8, i64 4
  %249 = load float, ptr %248, align 4, !tbaa !54
  %250 = getelementptr inbounds i8, ptr %27, i64 2992
  %251 = load float, ptr %250, align 4, !tbaa !58
  %252 = fadd float %249, %251
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef %247, float noundef %252)
  %253 = load <2 x float>, ptr %25, align 8
  call void @_ZL17RenderTextClipped6ImVec2PKcS1_PKS_RS2_(<2 x float> %253, ptr noundef nonnull %23, ptr noundef nonnull %238, ptr noundef nonnull %24, ptr noundef nonnull align 4 dereferenceable(8) %50)
  %254 = load float, ptr %50, align 8, !tbaa !46
  %255 = getelementptr inbounds i8, ptr %27, i64 3008
  %256 = load float, ptr %255, align 4, !tbaa !31
  %257 = fadd float %254, %256
  %258 = getelementptr inbounds i8, ptr %13, i64 4
  %259 = load float, ptr %258, align 4, !tbaa !54
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef %257, float noundef %259)
  %260 = load <2 x float>, ptr %26, align 8
  call void @_ZL10RenderText6ImVec2PKcS1_b(<2 x float> %260, ptr noundef %0, ptr noundef null, i1 noundef zeroext true)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %23) #11
  br label %261

261:                                              ; preds = %144, %.thread207, %61
  %.1 = phi i1 [ false, %61 ], [ %131, %144 ], [ %.1179206, %.thread207 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #11
  br label %262

262:                                              ; preds = %6, %261
  %.2 = phi i1 [ %.1, %261 ], [ false, %6 ]
  ret i1 %.2
}

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #10

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK9ImGuiAabb8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @powf(float noundef, float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL9IsHoveredRK9ImGuiAabbRKj(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL23ApplyNumericalTextInputPKcPf(ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK9ImGuiAabb9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #4 align 2

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "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 = { mustprogress nofree nounwind willreturn memory(argmem: read) "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 #10 = { inlinehint mustprogress nofree nounwind willreturn memory(read) 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 #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(read) }
attributes #13 = { 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, !14, i64 68}
!10 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !11, i64 8, !11, i64 12, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !13, i64 56, !13, i64 60, !14, i64 64, !14, i64 65, !14, i64 66, !14, i64 67, !14, i64 68, !11, i64 72, !14, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !15, i64 96, !21, i64 336, !22, i64 360, !16, i64 384, !11, i64 400, !13, i64 404, !23, i64 408, !13, i64 432, !6, i64 440, !6, i64 448, !11, i64 456, !11, i64 460, !11, i64 464, !11, i64 468, !11, i64 472, !11, i64 476}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImVec2", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"_ZTS16ImGuiDrawContext", !12, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 28, !13, i64 32, !11, i64 36, !11, i64 40, !16, i64 44, !14, i64 60, !17, i64 64, !19, i64 88, !20, i64 112, !20, i64 136, !11, i64 160, !6, i64 168, !13, i64 176, !13, i64 180, !11, i64 184, !11, i64 188, !12, i64 192, !13, i64 200, !13, i64 204, !14, i64 208, !11, i64 212, !20, i64 216}
!16 = !{!"_ZTS9ImGuiAabb", !12, i64 0, !12, i64 8}
!17 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !18, i64 0, !18, i64 8, !6, i64 16}
!18 = !{!"long", !7, i64 0}
!19 = !{!"_ZTS8ImVectorIbE", !18, i64 0, !18, i64 8, !6, i64 16}
!20 = !{!"_ZTS8ImVectorIfE", !18, i64 0, !18, i64 8, !6, i64 16}
!21 = !{!"_ZTS8ImVectorIjE", !18, i64 0, !18, i64 8, !6, i64 16}
!22 = !{!"_ZTS8ImVectorI6ImVec4E", !18, i64 0, !18, i64 8, !6, i64 16}
!23 = !{!"_ZTS12ImGuiStorage", !24, i64 0}
!24 = !{!"_ZTS8ImVectorIN12ImGuiStorage4PairEE", !18, i64 0, !18, i64 8, !6, i64 16}
!25 = !{i8 0, i8 2}
!26 = !{}
!27 = !{!11, !11, i64 0}
!28 = !{!7, !7, i64 0}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!32, !13, i64 48}
!32 = !{!"_ZTS10ImGuiStyle", !13, i64 0, !12, i64 4, !12, i64 12, !13, i64 20, !13, i64 24, !12, i64 28, !13, i64 36, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !13, i64 72, !13, i64 76, !13, i64 80, !13, i64 84, !7, i64 88}
!33 = !{!34, !11, i64 3788}
!34 = !{!"_ZTS10ImGuiState", !14, i64 0, !35, i64 8, !32, i64 2960, !6, i64 3672, !13, i64 3680, !12, i64 3684, !13, i64 3692, !11, i64 3696, !11, i64 3700, !17, i64 3704, !6, i64 3728, !17, i64 3736, !6, i64 3760, !6, i64 3768, !6, i64 3776, !11, i64 3784, !11, i64 3788, !11, i64 3792, !14, i64 3796, !14, i64 3797, !6, i64 3800, !13, i64 3808, !36, i64 3816, !37, i64 3840, !38, i64 3864, !39, i64 3888, !12, i64 3912, !11, i64 3920, !12, i64 3924, !11, i64 3932, !14, i64 3936, !11, i64 3940, !14, i64 3944, !14, i64 3945, !11, i64 3948, !40, i64 3952, !17, i64 3976, !41, i64 4000, !11, i64 12400, !23, i64 12408, !11, i64 12432, !7, i64 12436, !6, i64 13464, !14, i64 13472, !6, i64 13480, !6, i64 13488, !11, i64 13496, !11, i64 13500, !7, i64 13504, !11, i64 13984, !13, i64 13988}
!35 = !{!"_ZTS7ImGuiIO", !12, i64 0, !13, i64 8, !13, i64 12, !6, i64 16, !6, i64 24, !13, i64 32, !13, i64 36, !7, i64 40, !6, i64 112, !6, i64 120, !13, i64 128, !14, i64 132, !12, i64 136, !12, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !12, i64 208, !7, i64 216, !13, i64 224, !14, i64 228, !14, i64 229, !14, i64 230, !7, i64 231, !7, i64 744, !14, i64 778, !14, i64 779, !13, i64 780, !12, i64 784, !12, i64 792, !7, i64 800, !7, i64 808, !7, i64 848, !7, i64 868, !7, i64 873, !7, i64 880, !7, i64 900}
!36 = !{!"_ZTS8ImVectorIP12ImGuiIniDataE", !18, i64 0, !18, i64 8, !6, i64 16}
!37 = !{!"_ZTS8ImVectorI11ImGuiColModE", !18, i64 0, !18, i64 8, !6, i64 16}
!38 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !18, i64 0, !18, i64 8, !6, i64 16}
!39 = !{!"_ZTS8ImVectorIP6ImFontE", !18, i64 0, !18, i64 8, !6, i64 16}
!40 = !{!"_ZTS8ImVectorIP10ImDrawListE", !18, i64 0, !18, i64 8, !6, i64 16}
!41 = !{!"_ZTS18ImGuiTextEditState", !11, i64 0, !7, i64 4, !7, i64 2052, !18, i64 5128, !13, i64 5136, !13, i64 5140, !42, i64 5144, !13, i64 8364, !12, i64 8368, !14, i64 8376, !6, i64 8384, !13, i64 8392}
!42 = !{!"_ZTS17STB_TexteditState", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 12, !7, i64 13, !7, i64 14, !7, i64 15, !7, i64 16, !7, i64 17, !7, i64 18, !7, i64 19, !13, i64 20, !43, i64 24}
!43 = !{!"_ZTS12StbUndoState", !7, i64 0, !7, i64 1188, !44, i64 3186, !44, i64 3188, !44, i64 3190, !44, i64 3192}
!44 = !{!"short", !7, i64 0}
!45 = !{!16, !13, i64 0}
!46 = !{!16, !13, i64 8}
!47 = !{!34, !11, i64 3784}
!48 = !{!14, !14, i64 0}
!49 = !{!34, !14, i64 237}
!50 = !{!34, !11, i64 12400}
!51 = !{!13, !13, i64 0}
!52 = !{!32, !13, i64 36}
!53 = !{!34, !13, i64 216}
!54 = !{!16, !13, i64 4}
!55 = !{!16, !13, i64 12}
!56 = !{!10, !6, i64 440}
!57 = !{!32, !13, i64 28}
!58 = !{!32, !13, i64 32}


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