; LLVM IR from Samson-Mano/EM_Propogation_simulation :: EM_Propogation_simulation/src/ImGui/implot.ll (ZN6ImPlot11UpdateInputER10ImPlotPlot)

; 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.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%struct.ImPlotPlot = type <{ i32, i32, i32, i32, i32, [4 x i8], [6 x %struct.ImPlotAxis], %struct.ImGuiTextBuffer, %struct.ImPlotItemGroup, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8] }>
%struct.ImPlotAxis = type <{ i32, i32, i32, [4 x i8], %struct.ImPlotRange, i32, i32, %struct.ImPlotRange, ptr, %struct.ImPlotRange, %struct.ImPlotRange, %struct.ImPlotTicker, ptr, ptr, [16 x i8], ptr, ptr, ptr, i32, [4 x i8], %struct.ImPlotTime, %struct.ImPlotTime, ptr, ptr, ptr, float, float, double, double, double, float, float, %struct.ImRect, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, [4 x i8] }>
%struct.ImPlotRange = type { double, double }
%struct.ImPlotTicker = type <{ %struct.ImVector.38, %struct.ImGuiTextBuffer, %struct.ImVec2, %struct.ImVec2, i32, [4 x i8] }>
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImPlotTime = type <{ i64, i32, [4 x i8] }>
%struct.ImGuiTextBuffer = type { %struct.ImVector.24 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImPlotItemGroup = type <{ i32, [4 x i8], %struct.ImPlotLegend, %struct.ImPool.46, i32, [4 x i8] }>
%struct.ImPlotLegend = type <{ i32, i32, i32, i32, %struct.ImVector.10, %struct.ImGuiTextBuffer, %struct.ImRect, i8, i8, i8, [5 x i8] }>
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImPool.46 = type { %struct.ImVector.47, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.47 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.4 }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, float, float, float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, float, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], ptr, %struct.ImVec2, [5 x i8], float, float, i32, i8, i8, i8, i8, i32, [652 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], i8, [5 x float], [5 x float], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImPlotContext = type { %struct.ImPool.34, %struct.ImPool.36, ptr, ptr, ptr, ptr, ptr, %struct.ImPlotTicker, %struct.ImPlotAnnotationCollection, %struct.ImPlotTagCollection, i8, [3 x i8], %struct.ImPlotStyle, %struct.ImVector.6, %struct.ImVector.7, %struct.ImPlotColormapData, %struct.ImVector.10, %struct.tm, %struct.ImVector.42, %struct.ImVector.42, %struct.ImVector.10, i32, i32, %struct.ImPlotNextPlotData, %struct.ImPlotNextItemData, %struct.ImPlotInputMap, i8, %struct.ImGuiTextBuffer, ptr, %struct.ImPool.43, ptr, ptr }
%struct.ImPool.34 = type { %struct.ImVector.35, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImPool.36 = type { %struct.ImVector.37, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImPlotAnnotationCollection = type <{ %struct.ImVector.39, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImPlotTagCollection = type <{ %struct.ImVector.40, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImPlotStyle = type <{ float, i32, float, float, float, float, float, float, float, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [21 x %struct.ImVec4], i32, i8, i8, i8, i8 }>
%struct.ImVec4 = type { float, float, float, float }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImPlotColormapData = type <{ %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, %struct.ImGuiTextBuffer, %struct.ImVector.10, %struct.ImVector.41, %struct.ImGuiStorage, i32, [4 x i8] }>
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr }
%struct.ImVector.42 = type { i32, i32, ptr }
%struct.ImPlotNextPlotData = type { [6 x i32], [6 x %struct.ImPlotRange], [6 x i8], [6 x i8], [6 x ptr], [6 x ptr] }
%struct.ImPlotNextItemData = type { [5 x %struct.ImVec4], float, i32, float, float, float, float, float, float, float, i8, i8, i8, i8, i8, i8, i32 }
%struct.ImPlotInputMap = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float }
%struct.ImPool.43 = type { %struct.ImVector.44, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.1, %struct.ImVector.1, i32, i32, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.3, %struct.ImGuiStorage, i32, %struct.ImVec2, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, ptr, i32, float, [140 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.12, i32, %struct.ImVector.13, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i32, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.14, [16 x i8], i32, %struct.ImVector.15, ptr, i32, %struct.ImVector.16, %struct.ImPool, %struct.ImVector.18, %struct.ImVector.19, ptr, %struct.ImPool.20, %struct.ImVector.22, %struct.ImVector.23, i32, i32, float, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, float, i8, i8, float, float, float, float, i16, i16, %struct.ImVector.24, %struct.ImVector.9, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.26, %struct.ImChunkStream, %struct.ImChunkStream.27, %struct.ImVector.28, i32, [7 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i8, i8, i8, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.24 }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.0, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [140 x i16], %struct.ImVector.5, %struct.ImVector.5 }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.17, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImPool.20 = type { %struct.ImVector.21, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector, %struct.ImVector.24, %struct.ImVector.24, i8, [3 x i8], i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.24 }
%struct.ImFont = type <{ %struct.ImVector.18, float, float, %struct.ImVector, %struct.ImVector.25, ptr, ptr, ptr, i16, i16, i16, i16, float, float, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.24 }
%struct.ImChunkStream.27 = type { %struct.ImVector.24 }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.10, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.29, i8, float }
%struct.ImVector.29 = type { i32, i32, ptr }

@GImPlot = external dso_local global ptr, align 8
@GImGui = external global ptr, align 8

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

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

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

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

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

declare void @_ZN5ImGui11KeepAliveIDEj(i32 noundef) #4

declare noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, ptr noundef, ptr noundef, i32 noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef double @_ZL5ImMinIdET_S0_S0_(double noundef, double noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef, double noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372), double noundef, i1 noundef zeroext) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372), double noundef) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372), double noundef, i1 noundef zeroext) #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef, i32 noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533), i32 noundef) #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533), i32 noundef) #5 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN6ImPlot11UpdateInputER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533) %0) #7 {
  %2 = alloca i1, align 1
  %3 = alloca ptr, align 8
  %4 = alloca i8, align 1
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i8, align 1
  %10 = alloca %struct.ImRect, align 4
  %11 = alloca i32, align 4
  %12 = alloca i8, align 1
  %13 = alloca [3 x i8], align 1
  %14 = alloca [3 x i8], align 1
  %15 = alloca [3 x i8], align 1
  %16 = alloca [3 x i8], align 1
  %17 = alloca [3 x i8], align 1
  %18 = alloca [3 x i8], align 1
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  %26 = alloca i8, align 1
  %27 = alloca i8, align 1
  %28 = alloca i8, align 1
  %29 = alloca i8, align 1
  %30 = alloca i8, align 1
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca i8, align 1
  %36 = alloca i8, align 1
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca i8, align 1
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca i8, align 1
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca float, align 4
  %49 = alloca %struct.ImVec2, align 4
  %50 = alloca float, align 4
  %51 = alloca float, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca i8, align 1
  %55 = alloca i8, align 1
  %56 = alloca float, align 4
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca i32, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i8, align 1
  %62 = alloca i8, align 1
  %63 = alloca float, align 4
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca %struct.ImVec2, align 4
  %67 = alloca i8, align 1
  %68 = alloca i8, align 1
  %69 = alloca i32, align 4
  %70 = alloca ptr, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca i32, align 4
  %74 = alloca ptr, align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca i8, align 1
  %78 = alloca i8, align 1
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %4) #10
  store i8 0, ptr %4, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #10
  %79 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  store ptr %79, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #10
  %80 = call noundef nonnull align 8 dereferenceable(14280) ptr @_ZN5ImGui5GetIOEv()
  store ptr %80, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  store i32 4375, ptr %7, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  store i32 6423, ptr %8, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #10
  %81 = load ptr, ptr %3, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.ImPlotPlot, ptr %81, i32 0, i32 13
  %83 = load ptr, ptr %3, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.ImPlotPlot, ptr %83, i32 0, i32 0
  %85 = load i32, ptr %84, align 8, !tbaa !13
  %86 = load ptr, ptr %3, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.ImPlotPlot, ptr %86, i32 0, i32 22
  %88 = load ptr, ptr %3, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.ImPlotPlot, ptr %88, i32 0, i32 23
  %90 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %82, i32 noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef 4375)
  %91 = zext i1 %90 to i8
  store i8 %91, ptr %9, align 1, !tbaa !9
  call void @_ZN5ImGui19SetItemAllowOverlapEv()
  %92 = load i8, ptr %9, align 1, !tbaa !9, !range !27, !noundef !28
  %93 = trunc i8 %92 to i1
  br i1 %93, label %94, label %158

94:                                               ; preds = %1
  %95 = load ptr, ptr %3, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.ImPlotPlot, ptr %95, i32 0, i32 1
  %97 = load i32, ptr %96, align 4, !tbaa !29
  %98 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %97, i32 noundef 32)
  br i1 %98, label %128, label %99

99:                                               ; preds = %94
  %100 = load ptr, ptr %6, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.ImGuiIO, ptr %100, i32 0, i32 74
  %102 = load ptr, ptr %5, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.ImPlotContext, ptr %102, i32 0, i32 25
  %104 = getelementptr inbounds %struct.ImPlotInputMap, ptr %103, i32 0, i32 3
  %105 = load i32, ptr %104, align 4, !tbaa !30
  %106 = sext i32 %105 to i64
  %107 = getelementptr inbounds [5 x i8], ptr %101, i64 0, i64 %106
  %108 = load i8, ptr %107, align 1, !tbaa !9, !range !27, !noundef !28
  %109 = trunc i8 %108 to i1
  br i1 %109, label %110, label %128

110:                                              ; preds = %99
  %111 = load ptr, ptr %6, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.ImGuiIO, ptr %111, i32 0, i32 68
  %113 = load i32, ptr %112, align 8, !tbaa !56
  %114 = load ptr, ptr %5, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.ImPlotContext, ptr %114, i32 0, i32 25
  %116 = getelementptr inbounds %struct.ImPlotInputMap, ptr %115, i32 0, i32 5
  %117 = load i32, ptr %116, align 4, !tbaa !61
  %118 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %113, i32 noundef %117)
  br i1 %118, label %119, label %128

119:                                              ; preds = %110
  %120 = load ptr, ptr %3, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.ImPlotPlot, ptr %120, i32 0, i32 24
  store i8 1, ptr %121, align 2, !tbaa !62
  %122 = load ptr, ptr %6, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.ImGuiIO, ptr %122, i32 0, i32 59
  %124 = load ptr, ptr %3, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.ImPlotPlot, ptr %124, i32 0, i32 16
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %125, ptr align 8 %123, i64 8, i1 false), !tbaa.struct !63
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #10
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %10, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %126 = load ptr, ptr %3, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.ImPlotPlot, ptr %126, i32 0, i32 15
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %127, ptr align 4 %10, i64 16, i1 false), !tbaa.struct !65
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #10
  br label %128

128:                                              ; preds = %119, %110, %99, %94
  %129 = load ptr, ptr %6, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ImGuiIO, ptr %129, i32 0, i32 75
  %131 = load ptr, ptr %5, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImPlotContext, ptr %131, i32 0, i32 25
  %133 = getelementptr inbounds %struct.ImPlotInputMap, ptr %132, i32 0, i32 2
  %134 = load i32, ptr %133, align 8, !tbaa !66
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds [5 x i8], ptr %130, i64 0, i64 %135
  %137 = load i8, ptr %136, align 1, !tbaa !9, !range !27, !noundef !28
  %138 = trunc i8 %137 to i1
  br i1 %138, label %139, label %157

139:                                              ; preds = %128
  %140 = load ptr, ptr %3, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.ImPlotPlot, ptr %140, i32 0, i32 21
  store i8 1, ptr %141, align 1, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  store i32 0, ptr %11, align 4, !tbaa !11
  br label %142

142:                                              ; preds = %153, %139
  %143 = load i32, ptr %11, align 4, !tbaa !11
  %144 = icmp slt i32 %143, 6
  br i1 %144, label %146, label %145

145:                                              ; preds = %142
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %156

146:                                              ; preds = %142
  %147 = load ptr, ptr %3, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.ImPlotPlot, ptr %147, i32 0, i32 6
  %149 = load i32, ptr %11, align 4, !tbaa !11
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %148, i64 0, i64 %150
  %152 = getelementptr inbounds %struct.ImPlotAxis, ptr %151, i32 0, i32 44
  store i8 1, ptr %152, align 2, !tbaa !68
  br label %153

153:                                              ; preds = %146
  %154 = load i32, ptr %11, align 4, !tbaa !11
  %155 = add nsw i32 %154, 1
  store i32 %155, ptr %11, align 4, !tbaa !11
  br label %142, !llvm.loop !73

156:                                              ; preds = %145
  br label %157

157:                                              ; preds = %156, %128
  br label %158

158:                                              ; preds = %157, %1
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #10
  %159 = load ptr, ptr %6, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.ImGuiIO, ptr %159, i32 0, i32 60
  %161 = load ptr, ptr %5, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.ImPlotContext, ptr %161, i32 0, i32 25
  %163 = getelementptr inbounds %struct.ImPlotInputMap, ptr %162, i32 0, i32 0
  %164 = load i32, ptr %163, align 8, !tbaa !75
  %165 = sext i32 %164 to i64
  %166 = getelementptr inbounds [5 x i8], ptr %160, i64 0, i64 %165
  %167 = load i8, ptr %166, align 1, !tbaa !9, !range !27, !noundef !28
  %168 = trunc i8 %167 to i1
  br i1 %168, label %169, label %178

169:                                              ; preds = %158
  %170 = load ptr, ptr %6, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.ImGuiIO, ptr %170, i32 0, i32 68
  %172 = load i32, ptr %171, align 8, !tbaa !56
  %173 = load ptr, ptr %5, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.ImPlotContext, ptr %173, i32 0, i32 25
  %175 = getelementptr inbounds %struct.ImPlotInputMap, ptr %174, i32 0, i32 1
  %176 = load i32, ptr %175, align 4, !tbaa !76
  %177 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %172, i32 noundef %176)
  br label %178

178:                                              ; preds = %169, %158
  %179 = phi i1 [ false, %158 ], [ %177, %169 ]
  %180 = zext i1 %179 to i8
  store i8 %180, ptr %12, align 1, !tbaa !9
  %181 = load ptr, ptr %3, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.ImPlotPlot, ptr %181, i32 0, i32 23
  %183 = load i8, ptr %182, align 1, !tbaa !77, !range !27, !noundef !28
  %184 = trunc i8 %183 to i1
  br i1 %184, label %185, label %188

185:                                              ; preds = %178
  %186 = load i8, ptr %12, align 1, !tbaa !9, !range !27, !noundef !28
  %187 = trunc i8 %186 to i1
  br label %188

188:                                              ; preds = %185, %178
  %189 = phi i1 [ false, %178 ], [ %187, %185 ]
  %190 = load ptr, ptr %3, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.ImPlotPlot, ptr %190, i32 0, i32 23
  %192 = zext i1 %189 to i8
  store i8 %192, ptr %191, align 1, !tbaa !77
  call void @llvm.lifetime.start.p0(i64 3, ptr %13) #10
  call void @llvm.memset.p0.i64(ptr align 1 %13, i8 0, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 3, ptr %14) #10
  call void @llvm.memset.p0.i64(ptr align 1 %14, i8 0, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 3, ptr %15) #10
  call void @llvm.memset.p0.i64(ptr align 1 %15, i8 0, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 3, ptr %16) #10
  call void @llvm.memset.p0.i64(ptr align 1 %16, i8 0, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 3, ptr %17) #10
  call void @llvm.memset.p0.i64(ptr align 1 %17, i8 0, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 3, ptr %18) #10
  call void @llvm.memset.p0.i64(ptr align 1 %18, i8 0, i64 3, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  store i32 0, ptr %19, align 4, !tbaa !11
  br label %193

193:                                              ; preds = %288, %188
  %194 = load i32, ptr %19, align 4, !tbaa !11
  %195 = icmp slt i32 %194, 3
  br i1 %195, label %197, label %196

196:                                              ; preds = %193
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %291

197:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  %198 = load ptr, ptr %3, align 8, !tbaa !5
  %199 = load i32, ptr %19, align 4, !tbaa !11
  %200 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %198, i32 noundef %199)
  store ptr %200, ptr %20, align 8, !tbaa !5
  %201 = load ptr, ptr %20, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.ImPlotAxis, ptr %201, i32 0, i32 42
  %203 = load i8, ptr %202, align 4, !tbaa !78, !range !27, !noundef !28
  %204 = trunc i8 %203 to i1
  br i1 %204, label %205, label %287

205:                                              ; preds = %197
  %206 = load ptr, ptr %20, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.ImPlotAxis, ptr %206, i32 0, i32 0
  %208 = load i32, ptr %207, align 8, !tbaa !79
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %208)
  %209 = load ptr, ptr %20, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.ImPlotAxis, ptr %209, i32 0, i32 32
  %211 = load ptr, ptr %20, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.ImPlotAxis, ptr %211, i32 0, i32 0
  %213 = load i32, ptr %212, align 8, !tbaa !79
  %214 = load ptr, ptr %20, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImPlotAxis, ptr %214, i32 0, i32 48
  %216 = load ptr, ptr %20, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.ImPlotAxis, ptr %216, i32 0, i32 49
  %218 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %210, i32 noundef %213, ptr noundef %215, ptr noundef %217, i32 noundef 6423)
  %219 = load i32, ptr %19, align 4, !tbaa !11
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds [3 x i8], ptr %13, i64 0, i64 %220
  %222 = zext i1 %218 to i8
  store i8 %222, ptr %221, align 1, !tbaa !9
  %223 = load i32, ptr %19, align 4, !tbaa !11
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds [3 x i8], ptr %13, i64 0, i64 %224
  %226 = load i8, ptr %225, align 1, !tbaa !9, !range !27, !noundef !28
  %227 = trunc i8 %226 to i1
  br i1 %227, label %228, label %244

228:                                              ; preds = %205
  %229 = load ptr, ptr %6, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.ImGuiIO, ptr %229, i32 0, i32 75
  %231 = load ptr, ptr %5, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.ImPlotContext, ptr %231, i32 0, i32 25
  %233 = getelementptr inbounds %struct.ImPlotInputMap, ptr %232, i32 0, i32 2
  %234 = load i32, ptr %233, align 8, !tbaa !66
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds [5 x i8], ptr %230, i64 0, i64 %235
  %237 = load i8, ptr %236, align 1, !tbaa !9, !range !27, !noundef !28
  %238 = trunc i8 %237 to i1
  br i1 %238, label %239, label %244

239:                                              ; preds = %228
  %240 = load ptr, ptr %20, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.ImPlotAxis, ptr %240, i32 0, i32 44
  store i8 1, ptr %241, align 2, !tbaa !68
  %242 = load ptr, ptr %3, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.ImPlotPlot, ptr %242, i32 0, i32 21
  store i8 1, ptr %243, align 1, !tbaa !67
  br label %244

244:                                              ; preds = %239, %228, %205
  %245 = load ptr, ptr %20, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.ImPlotAxis, ptr %245, i32 0, i32 49
  %247 = load i8, ptr %246, align 1, !tbaa !80, !range !27, !noundef !28
  %248 = trunc i8 %247 to i1
  br i1 %248, label %249, label %252

249:                                              ; preds = %244
  %250 = load i8, ptr %12, align 1, !tbaa !9, !range !27, !noundef !28
  %251 = trunc i8 %250 to i1
  br label %252

252:                                              ; preds = %249, %244
  %253 = phi i1 [ false, %244 ], [ %251, %249 ]
  %254 = load ptr, ptr %20, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.ImPlotAxis, ptr %254, i32 0, i32 49
  %256 = zext i1 %253 to i8
  store i8 %256, ptr %255, align 1, !tbaa !80
  %257 = load ptr, ptr %20, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.ImPlotAxis, ptr %257, i32 0, i32 48
  %259 = load i8, ptr %258, align 2, !tbaa !81, !range !27, !noundef !28
  %260 = trunc i8 %259 to i1
  br i1 %260, label %266, label %261

261:                                              ; preds = %252
  %262 = load ptr, ptr %3, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImPlotPlot, ptr %262, i32 0, i32 22
  %264 = load i8, ptr %263, align 8, !tbaa !82, !range !27, !noundef !28
  %265 = trunc i8 %264 to i1
  br label %266

266:                                              ; preds = %261, %252
  %267 = phi i1 [ true, %252 ], [ %265, %261 ]
  %268 = load i32, ptr %19, align 4, !tbaa !11
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds [3 x i8], ptr %15, i64 0, i64 %269
  %271 = zext i1 %267 to i8
  store i8 %271, ptr %270, align 1, !tbaa !9
  %272 = load ptr, ptr %20, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImPlotAxis, ptr %272, i32 0, i32 49
  %274 = load i8, ptr %273, align 1, !tbaa !80, !range !27, !noundef !28
  %275 = trunc i8 %274 to i1
  br i1 %275, label %281, label %276

276:                                              ; preds = %266
  %277 = load ptr, ptr %3, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.ImPlotPlot, ptr %277, i32 0, i32 23
  %279 = load i8, ptr %278, align 1, !tbaa !77, !range !27, !noundef !28
  %280 = trunc i8 %279 to i1
  br label %281

281:                                              ; preds = %276, %266
  %282 = phi i1 [ true, %266 ], [ %280, %276 ]
  %283 = load i32, ptr %19, align 4, !tbaa !11
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds [3 x i8], ptr %14, i64 0, i64 %284
  %286 = zext i1 %282 to i8
  store i8 %286, ptr %285, align 1, !tbaa !9
  br label %287

287:                                              ; preds = %281, %197
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  br label %288

288:                                              ; preds = %287
  %289 = load i32, ptr %19, align 4, !tbaa !11
  %290 = add nsw i32 %289, 1
  store i32 %290, ptr %19, align 4, !tbaa !11
  br label %193, !llvm.loop !83

291:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  store i32 0, ptr %21, align 4, !tbaa !11
  br label %292

292:                                              ; preds = %387, %291
  %293 = load i32, ptr %21, align 4, !tbaa !11
  %294 = icmp slt i32 %293, 3
  br i1 %294, label %296, label %295

295:                                              ; preds = %292
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %390

296:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  %297 = load ptr, ptr %3, align 8, !tbaa !5
  %298 = load i32, ptr %21, align 4, !tbaa !11
  %299 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %297, i32 noundef %298)
  store ptr %299, ptr %22, align 8, !tbaa !5
  %300 = load ptr, ptr %22, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.ImPlotAxis, ptr %300, i32 0, i32 42
  %302 = load i8, ptr %301, align 4, !tbaa !78, !range !27, !noundef !28
  %303 = trunc i8 %302 to i1
  br i1 %303, label %304, label %386

304:                                              ; preds = %296
  %305 = load ptr, ptr %22, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.ImPlotAxis, ptr %305, i32 0, i32 0
  %307 = load i32, ptr %306, align 8, !tbaa !79
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %307)
  %308 = load ptr, ptr %22, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.ImPlotAxis, ptr %308, i32 0, i32 32
  %310 = load ptr, ptr %22, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImPlotAxis, ptr %310, i32 0, i32 0
  %312 = load i32, ptr %311, align 8, !tbaa !79
  %313 = load ptr, ptr %22, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.ImPlotAxis, ptr %313, i32 0, i32 48
  %315 = load ptr, ptr %22, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.ImPlotAxis, ptr %315, i32 0, i32 49
  %317 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %309, i32 noundef %312, ptr noundef %314, ptr noundef %316, i32 noundef 6423)
  %318 = load i32, ptr %21, align 4, !tbaa !11
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds [3 x i8], ptr %16, i64 0, i64 %319
  %321 = zext i1 %317 to i8
  store i8 %321, ptr %320, align 1, !tbaa !9
  %322 = load i32, ptr %21, align 4, !tbaa !11
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds [3 x i8], ptr %16, i64 0, i64 %323
  %325 = load i8, ptr %324, align 1, !tbaa !9, !range !27, !noundef !28
  %326 = trunc i8 %325 to i1
  br i1 %326, label %327, label %343

327:                                              ; preds = %304
  %328 = load ptr, ptr %6, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.ImGuiIO, ptr %328, i32 0, i32 75
  %330 = load ptr, ptr %5, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.ImPlotContext, ptr %330, i32 0, i32 25
  %332 = getelementptr inbounds %struct.ImPlotInputMap, ptr %331, i32 0, i32 2
  %333 = load i32, ptr %332, align 8, !tbaa !66
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds [5 x i8], ptr %329, i64 0, i64 %334
  %336 = load i8, ptr %335, align 1, !tbaa !9, !range !27, !noundef !28
  %337 = trunc i8 %336 to i1
  br i1 %337, label %338, label %343

338:                                              ; preds = %327
  %339 = load ptr, ptr %22, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ImPlotAxis, ptr %339, i32 0, i32 44
  store i8 1, ptr %340, align 2, !tbaa !68
  %341 = load ptr, ptr %3, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.ImPlotPlot, ptr %341, i32 0, i32 21
  store i8 1, ptr %342, align 1, !tbaa !67
  br label %343

343:                                              ; preds = %338, %327, %304
  %344 = load ptr, ptr %22, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImPlotAxis, ptr %344, i32 0, i32 49
  %346 = load i8, ptr %345, align 1, !tbaa !80, !range !27, !noundef !28
  %347 = trunc i8 %346 to i1
  br i1 %347, label %348, label %351

348:                                              ; preds = %343
  %349 = load i8, ptr %12, align 1, !tbaa !9, !range !27, !noundef !28
  %350 = trunc i8 %349 to i1
  br label %351

351:                                              ; preds = %348, %343
  %352 = phi i1 [ false, %343 ], [ %350, %348 ]
  %353 = load ptr, ptr %22, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.ImPlotAxis, ptr %353, i32 0, i32 49
  %355 = zext i1 %352 to i8
  store i8 %355, ptr %354, align 1, !tbaa !80
  %356 = load ptr, ptr %22, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.ImPlotAxis, ptr %356, i32 0, i32 48
  %358 = load i8, ptr %357, align 2, !tbaa !81, !range !27, !noundef !28
  %359 = trunc i8 %358 to i1
  br i1 %359, label %365, label %360

360:                                              ; preds = %351
  %361 = load ptr, ptr %3, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.ImPlotPlot, ptr %361, i32 0, i32 22
  %363 = load i8, ptr %362, align 8, !tbaa !82, !range !27, !noundef !28
  %364 = trunc i8 %363 to i1
  br label %365

365:                                              ; preds = %360, %351
  %366 = phi i1 [ true, %351 ], [ %364, %360 ]
  %367 = load i32, ptr %21, align 4, !tbaa !11
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds [3 x i8], ptr %18, i64 0, i64 %368
  %370 = zext i1 %366 to i8
  store i8 %370, ptr %369, align 1, !tbaa !9
  %371 = load ptr, ptr %22, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.ImPlotAxis, ptr %371, i32 0, i32 49
  %373 = load i8, ptr %372, align 1, !tbaa !80, !range !27, !noundef !28
  %374 = trunc i8 %373 to i1
  br i1 %374, label %380, label %375

375:                                              ; preds = %365
  %376 = load ptr, ptr %3, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.ImPlotPlot, ptr %376, i32 0, i32 23
  %378 = load i8, ptr %377, align 1, !tbaa !77, !range !27, !noundef !28
  %379 = trunc i8 %378 to i1
  br label %380

380:                                              ; preds = %375, %365
  %381 = phi i1 [ true, %365 ], [ %379, %375 ]
  %382 = load i32, ptr %21, align 4, !tbaa !11
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds [3 x i8], ptr %17, i64 0, i64 %383
  %385 = zext i1 %381 to i8
  store i8 %385, ptr %384, align 1, !tbaa !9
  br label %386

386:                                              ; preds = %380, %296
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  br label %387

387:                                              ; preds = %386
  %388 = load i32, ptr %21, align 4, !tbaa !11
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr %21, align 4, !tbaa !11
  br label %292, !llvm.loop !84

390:                                              ; preds = %295
  %391 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.ImGuiContext, ptr %391, i32 0, i32 139
  %393 = load i8, ptr %392, align 4, !tbaa !85, !range !27, !noundef !28
  %394 = trunc i8 %393 to i1
  br i1 %394, label %410, label %395

395:                                              ; preds = %390
  %396 = load ptr, ptr %6, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.ImGuiIO, ptr %396, i32 0, i32 68
  %398 = load i32, ptr %397, align 8, !tbaa !56
  %399 = load ptr, ptr %5, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImPlotContext, ptr %399, i32 0, i32 25
  %401 = getelementptr inbounds %struct.ImPlotInputMap, ptr %400, i32 0, i32 9
  %402 = load i32, ptr %401, align 4, !tbaa !135
  %403 = icmp eq i32 %398, %402
  br i1 %403, label %404, label %411

404:                                              ; preds = %395
  %405 = load ptr, ptr %5, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.ImPlotContext, ptr %405, i32 0, i32 25
  %407 = getelementptr inbounds %struct.ImPlotInputMap, ptr %406, i32 0, i32 9
  %408 = load i32, ptr %407, align 4, !tbaa !135
  %409 = icmp ne i32 %408, 0
  br i1 %409, label %410, label %411

410:                                              ; preds = %404, %390
  store i1 false, ptr %2, align 1
  store i32 1, ptr %23, align 4
  br label %1476

411:                                              ; preds = %404, %395
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #10
  %412 = load ptr, ptr %3, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.ImPlotPlot, ptr %412, i32 0, i32 1
  %414 = load i32, ptr %413, align 4, !tbaa !29
  %415 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %414, i32 noundef 256)
  %416 = zext i1 %415 to i8
  store i8 %416, ptr %24, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #10
  %417 = load ptr, ptr %3, align 8, !tbaa !5
  %418 = getelementptr inbounds %struct.ImPlotPlot, ptr %417, i32 0, i32 22
  %419 = load i8, ptr %418, align 8, !tbaa !82, !range !27, !noundef !28
  %420 = trunc i8 %419 to i1
  br i1 %420, label %426, label %421

421:                                              ; preds = %411
  %422 = load ptr, ptr %3, align 8, !tbaa !5
  %423 = getelementptr inbounds %struct.ImPlotPlot, ptr %422, i32 0, i32 6
  %424 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %423, i64 0, i64 0
  %425 = call noundef zeroext i1 @_ZN6ImPlotL14AnyAxesHoveredEP10ImPlotAxisi(ptr noundef %424, i32 noundef 3)
  br label %426

426:                                              ; preds = %421, %411
  %427 = phi i1 [ true, %411 ], [ %425, %421 ]
  %428 = zext i1 %427 to i8
  store i8 %428, ptr %25, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #10
  %429 = load ptr, ptr %3, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.ImPlotPlot, ptr %429, i32 0, i32 23
  %431 = load i8, ptr %430, align 1, !tbaa !77, !range !27, !noundef !28
  %432 = trunc i8 %431 to i1
  br i1 %432, label %438, label %433

433:                                              ; preds = %426
  %434 = load ptr, ptr %3, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.ImPlotPlot, ptr %434, i32 0, i32 6
  %436 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %435, i64 0, i64 0
  %437 = call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef %436, i32 noundef 3)
  br label %438

438:                                              ; preds = %433, %426
  %439 = phi i1 [ true, %426 ], [ %437, %433 ]
  %440 = zext i1 %439 to i8
  store i8 %440, ptr %26, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #10
  %441 = load ptr, ptr %3, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.ImPlotPlot, ptr %441, i32 0, i32 22
  %443 = load i8, ptr %442, align 8, !tbaa !82, !range !27, !noundef !28
  %444 = trunc i8 %443 to i1
  br i1 %444, label %450, label %445

445:                                              ; preds = %438
  %446 = load ptr, ptr %3, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.ImPlotPlot, ptr %446, i32 0, i32 6
  %448 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %447, i64 0, i64 3
  %449 = call noundef zeroext i1 @_ZN6ImPlotL14AnyAxesHoveredEP10ImPlotAxisi(ptr noundef %448, i32 noundef 3)
  br label %450

450:                                              ; preds = %445, %438
  %451 = phi i1 [ true, %438 ], [ %449, %445 ]
  %452 = zext i1 %451 to i8
  store i8 %452, ptr %27, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #10
  %453 = load ptr, ptr %3, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.ImPlotPlot, ptr %453, i32 0, i32 23
  %455 = load i8, ptr %454, align 1, !tbaa !77, !range !27, !noundef !28
  %456 = trunc i8 %455 to i1
  br i1 %456, label %462, label %457

457:                                              ; preds = %450
  %458 = load ptr, ptr %3, align 8, !tbaa !5
  %459 = getelementptr inbounds %struct.ImPlotPlot, ptr %458, i32 0, i32 6
  %460 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %459, i64 0, i64 3
  %461 = call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef %460, i32 noundef 3)
  br label %462

462:                                              ; preds = %457, %450
  %463 = phi i1 [ true, %450 ], [ %461, %457 ]
  %464 = zext i1 %463 to i8
  store i8 %464, ptr %28, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #10
  %465 = load i8, ptr %25, align 1, !tbaa !9, !range !27, !noundef !28
  %466 = trunc i8 %465 to i1
  br i1 %466, label %470, label %467

467:                                              ; preds = %462
  %468 = load i8, ptr %27, align 1, !tbaa !9, !range !27, !noundef !28
  %469 = trunc i8 %468 to i1
  br label %470

470:                                              ; preds = %467, %462
  %471 = phi i1 [ true, %462 ], [ %469, %467 ]
  %472 = zext i1 %471 to i8
  store i8 %472, ptr %29, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #10
  %473 = load i8, ptr %26, align 1, !tbaa !9, !range !27, !noundef !28
  %474 = trunc i8 %473 to i1
  br i1 %474, label %478, label %475

475:                                              ; preds = %470
  %476 = load i8, ptr %28, align 1, !tbaa !9, !range !27, !noundef !28
  %477 = trunc i8 %476 to i1
  br label %478

478:                                              ; preds = %475, %470
  %479 = phi i1 [ true, %470 ], [ %477, %475 ]
  %480 = zext i1 %479 to i8
  store i8 %480, ptr %30, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %481 = load ptr, ptr %5, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.ImPlotContext, ptr %481, i32 0, i32 25
  %483 = getelementptr inbounds %struct.ImPlotInputMap, ptr %482, i32 0, i32 3
  %484 = load i32, ptr %483, align 4, !tbaa !30
  %485 = call <2 x float> @_ZN5ImGui17GetMouseDragDeltaEif(i32 noundef %484, float noundef -1.000000e+00)
  store <2 x float> %485, ptr %31, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #10
  %486 = load ptr, ptr %5, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.ImPlotContext, ptr %486, i32 0, i32 25
  %488 = getelementptr inbounds %struct.ImPlotInputMap, ptr %487, i32 0, i32 0
  %489 = load i32, ptr %488, align 8, !tbaa !75
  %490 = call <2 x float> @_ZN5ImGui17GetMouseDragDeltaEif(i32 noundef %489, float noundef -1.000000e+00)
  store <2 x float> %490, ptr %32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %491 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %31)
  store float %491, ptr %33, align 4, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %492 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %32)
  store float %492, ptr %34, align 4, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #10
  %493 = load ptr, ptr %3, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.ImPlotPlot, ptr %493, i32 0, i32 24
  %495 = load i8, ptr %494, align 2, !tbaa !62, !range !27, !noundef !28
  %496 = trunc i8 %495 to i1
  br i1 %496, label %497, label %500

497:                                              ; preds = %478
  %498 = load float, ptr %33, align 4, !tbaa !64
  %499 = fcmp ogt float %498, 5.000000e+00
  br label %500

500:                                              ; preds = %497, %478
  %501 = phi i1 [ false, %478 ], [ %499, %497 ]
  %502 = zext i1 %501 to i8
  store i8 %502, ptr %35, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #10
  %503 = load i8, ptr %30, align 1, !tbaa !9, !range !27, !noundef !28
  %504 = trunc i8 %503 to i1
  br i1 %504, label %505, label %508

505:                                              ; preds = %500
  %506 = load float, ptr %34, align 4, !tbaa !64
  %507 = fcmp ogt float %506, 5.000000e+00
  br label %508

508:                                              ; preds = %505, %500
  %509 = phi i1 [ false, %500 ], [ %507, %505 ]
  %510 = zext i1 %509 to i8
  store i8 %510, ptr %36, align 1, !tbaa !9
  %511 = load ptr, ptr %6, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.ImGuiIO, ptr %511, i32 0, i32 78
  %513 = load ptr, ptr %5, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.ImPlotContext, ptr %513, i32 0, i32 25
  %515 = getelementptr inbounds %struct.ImPlotInputMap, ptr %514, i32 0, i32 8
  %516 = load i32, ptr %515, align 8, !tbaa !136
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds [5 x i8], ptr %512, i64 0, i64 %517
  %519 = load i8, ptr %518, align 1, !tbaa !9, !range !27, !noundef !28
  %520 = trunc i8 %519 to i1
  br i1 %520, label %521, label %529

521:                                              ; preds = %508
  %522 = load ptr, ptr %3, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.ImPlotPlot, ptr %522, i32 0, i32 26
  %524 = load i8, ptr %523, align 4, !tbaa !137, !range !27, !noundef !28
  %525 = trunc i8 %524 to i1
  br i1 %525, label %529, label %526

526:                                              ; preds = %521
  %527 = load ptr, ptr %5, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.ImPlotContext, ptr %527, i32 0, i32 26
  store i8 1, ptr %528, align 8, !tbaa !138
  br label %529

529:                                              ; preds = %526, %521, %508
  %530 = load i8, ptr %35, align 1, !tbaa !9, !range !27, !noundef !28
  %531 = trunc i8 %530 to i1
  br i1 %531, label %535, label %532

532:                                              ; preds = %529
  %533 = load i8, ptr %36, align 1, !tbaa !9, !range !27, !noundef !28
  %534 = trunc i8 %533 to i1
  br i1 %534, label %535, label %538

535:                                              ; preds = %532, %529
  %536 = load ptr, ptr %3, align 8, !tbaa !5
  %537 = getelementptr inbounds %struct.ImPlotPlot, ptr %536, i32 0, i32 26
  store i8 1, ptr %537, align 4, !tbaa !137
  br label %564

538:                                              ; preds = %532
  %539 = load ptr, ptr %6, align 8, !tbaa !5
  %540 = getelementptr inbounds %struct.ImGuiIO, ptr %539, i32 0, i32 60
  %541 = load ptr, ptr %5, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.ImPlotContext, ptr %541, i32 0, i32 25
  %543 = getelementptr inbounds %struct.ImPlotInputMap, ptr %542, i32 0, i32 8
  %544 = load i32, ptr %543, align 8, !tbaa !136
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds [5 x i8], ptr %540, i64 0, i64 %545
  %547 = load i8, ptr %546, align 1, !tbaa !9, !range !27, !noundef !28
  %548 = trunc i8 %547 to i1
  br i1 %548, label %563, label %549

549:                                              ; preds = %538
  %550 = load ptr, ptr %6, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.ImGuiIO, ptr %550, i32 0, i32 78
  %552 = load ptr, ptr %5, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.ImPlotContext, ptr %552, i32 0, i32 25
  %554 = getelementptr inbounds %struct.ImPlotInputMap, ptr %553, i32 0, i32 8
  %555 = load i32, ptr %554, align 8, !tbaa !136
  %556 = sext i32 %555 to i64
  %557 = getelementptr inbounds [5 x i8], ptr %551, i64 0, i64 %556
  %558 = load i8, ptr %557, align 1, !tbaa !9, !range !27, !noundef !28
  %559 = trunc i8 %558 to i1
  br i1 %559, label %563, label %560

560:                                              ; preds = %549
  %561 = load ptr, ptr %3, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.ImPlotPlot, ptr %561, i32 0, i32 26
  store i8 0, ptr %562, align 4, !tbaa !137
  br label %563

563:                                              ; preds = %560, %549, %538
  br label %564

564:                                              ; preds = %563, %535
  %565 = load i8, ptr %30, align 1, !tbaa !9, !range !27, !noundef !28
  %566 = trunc i8 %565 to i1
  br i1 %566, label %567, label %813

567:                                              ; preds = %564
  %568 = load ptr, ptr %3, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.ImPlotPlot, ptr %568, i32 0, i32 24
  %570 = load i8, ptr %569, align 2, !tbaa !62, !range !27, !noundef !28
  %571 = trunc i8 %570 to i1
  br i1 %571, label %813, label %572

572:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  store i32 0, ptr %37, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  store i32 0, ptr %38, align 4, !tbaa !11
  br label %573

573:                                              ; preds = %680, %572
  %574 = load i32, ptr %38, align 4, !tbaa !11
  %575 = icmp slt i32 %574, 3
  br i1 %575, label %577, label %576

576:                                              ; preds = %573
  store i32 11, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %683

577:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %578 = load ptr, ptr %3, align 8, !tbaa !5
  %579 = load i32, ptr %38, align 4, !tbaa !11
  %580 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %578, i32 noundef %579)
  store ptr %580, ptr %39, align 8, !tbaa !5
  %581 = load i32, ptr %38, align 4, !tbaa !11
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds [3 x i8], ptr %14, i64 0, i64 %582
  %584 = load i8, ptr %583, align 1, !tbaa !9, !range !27, !noundef !28
  %585 = trunc i8 %584 to i1
  br i1 %585, label %586, label %679

586:                                              ; preds = %577
  %587 = load ptr, ptr %39, align 8, !tbaa !5
  %588 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %587)
  br i1 %588, label %679, label %589

589:                                              ; preds = %586
  %590 = load i32, ptr %37, align 4, !tbaa !11
  %591 = or i32 %590, 2
  store i32 %591, ptr %37, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #10
  %592 = load ptr, ptr %39, align 8, !tbaa !5
  %593 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %592)
  br i1 %593, label %594, label %600

594:                                              ; preds = %589
  %595 = load ptr, ptr %6, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.ImGuiIO, ptr %595, i32 0, i32 54
  %597 = getelementptr inbounds %struct.ImVec2, ptr %596, i32 0, i32 0
  %598 = load float, ptr %597, align 8, !tbaa !139
  %599 = fcmp ogt float %598, 0.000000e+00
  br label %606

600:                                              ; preds = %589
  %601 = load ptr, ptr %6, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.ImGuiIO, ptr %601, i32 0, i32 54
  %603 = getelementptr inbounds %struct.ImVec2, ptr %602, i32 0, i32 0
  %604 = load float, ptr %603, align 8, !tbaa !139
  %605 = fcmp olt float %604, 0.000000e+00
  br label %606

606:                                              ; preds = %600, %594
  %607 = phi i1 [ %599, %594 ], [ %605, %600 ]
  %608 = zext i1 %607 to i8
  store i8 %608, ptr %40, align 1, !tbaa !9
  %609 = load ptr, ptr %6, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ImGuiIO, ptr %609, i32 0, i32 54
  %611 = getelementptr inbounds %struct.ImVec2, ptr %610, i32 0, i32 0
  %612 = load float, ptr %611, align 8, !tbaa !139
  %613 = fcmp une float %612, 0.000000e+00
  br i1 %613, label %614, label %678

614:                                              ; preds = %606
  %615 = load ptr, ptr %39, align 8, !tbaa !5
  %616 = load i8, ptr %40, align 1, !tbaa !9, !range !27, !noundef !28
  %617 = trunc i8 %616 to i1
  %618 = call noundef zeroext i1 @_ZN10ImPlotAxis11IsPanLockedEb(ptr noundef nonnull align 8 dereferenceable(372) %615, i1 noundef zeroext %617)
  br i1 %618, label %678, label %619

619:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %620 = load ptr, ptr %39, align 8, !tbaa !5
  %621 = load ptr, ptr %3, align 8, !tbaa !5
  %622 = getelementptr inbounds %struct.ImPlotPlot, ptr %621, i32 0, i32 13
  %623 = getelementptr inbounds %struct.ImRect, ptr %622, i32 0, i32 0
  %624 = getelementptr inbounds %struct.ImVec2, ptr %623, i32 0, i32 0
  %625 = load float, ptr %624, align 8, !tbaa !140
  %626 = load ptr, ptr %6, align 8, !tbaa !5
  %627 = getelementptr inbounds %struct.ImGuiIO, ptr %626, i32 0, i32 54
  %628 = getelementptr inbounds %struct.ImVec2, ptr %627, i32 0, i32 0
  %629 = load float, ptr %628, align 8, !tbaa !139
  %630 = fsub float %625, %629
  %631 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %620, float noundef %630)
  store double %631, ptr %41, align 8, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %632 = load ptr, ptr %39, align 8, !tbaa !5
  %633 = load ptr, ptr %3, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.ImPlotPlot, ptr %633, i32 0, i32 13
  %635 = getelementptr inbounds %struct.ImRect, ptr %634, i32 0, i32 1
  %636 = getelementptr inbounds %struct.ImVec2, ptr %635, i32 0, i32 0
  %637 = load float, ptr %636, align 8, !tbaa !142
  %638 = load ptr, ptr %6, align 8, !tbaa !5
  %639 = getelementptr inbounds %struct.ImGuiIO, ptr %638, i32 0, i32 54
  %640 = getelementptr inbounds %struct.ImVec2, ptr %639, i32 0, i32 0
  %641 = load float, ptr %640, align 8, !tbaa !139
  %642 = fsub float %637, %641
  %643 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %632, float noundef %642)
  store double %643, ptr %42, align 8, !tbaa !141
  %644 = load ptr, ptr %39, align 8, !tbaa !5
  %645 = load ptr, ptr %39, align 8, !tbaa !5
  %646 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %645)
  br i1 %646, label %647, label %649

647:                                              ; preds = %619
  %648 = load double, ptr %42, align 8, !tbaa !141
  br label %651

649:                                              ; preds = %619
  %650 = load double, ptr %41, align 8, !tbaa !141
  br label %651

651:                                              ; preds = %649, %647
  %652 = phi double [ %648, %647 ], [ %650, %649 ]
  %653 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %644, double noundef %652, i1 noundef zeroext false)
  %654 = load ptr, ptr %39, align 8, !tbaa !5
  %655 = load ptr, ptr %39, align 8, !tbaa !5
  %656 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %655)
  br i1 %656, label %657, label %659

657:                                              ; preds = %651
  %658 = load double, ptr %41, align 8, !tbaa !141
  br label %661

659:                                              ; preds = %651
  %660 = load double, ptr %42, align 8, !tbaa !141
  br label %661

661:                                              ; preds = %659, %657
  %662 = phi double [ %658, %657 ], [ %660, %659 ]
  %663 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %654, double noundef %662, i1 noundef zeroext false)
  %664 = load i8, ptr %24, align 1, !tbaa !9, !range !27, !noundef !28
  %665 = trunc i8 %664 to i1
  br i1 %665, label %666, label %677

666:                                              ; preds = %661
  %667 = load ptr, ptr %39, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.ImPlotAxis, ptr %667, i32 0, i32 8
  %669 = load ptr, ptr %668, align 8, !tbaa !143
  %670 = icmp ne ptr %669, null
  br i1 %670, label %671, label %677

671:                                              ; preds = %666
  %672 = load ptr, ptr %39, align 8, !tbaa !5
  %673 = getelementptr inbounds %struct.ImPlotAxis, ptr %672, i32 0, i32 8
  %674 = load ptr, ptr %673, align 8, !tbaa !143
  %675 = load ptr, ptr %39, align 8, !tbaa !5
  %676 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %675)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %674, double noundef %676)
  br label %677

677:                                              ; preds = %671, %666, %661
  store i8 1, ptr %4, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  br label %678

678:                                              ; preds = %677, %614, %606
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #10
  br label %679

679:                                              ; preds = %678, %586, %577
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  br label %680

680:                                              ; preds = %679
  %681 = load i32, ptr %38, align 4, !tbaa !11
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr %38, align 4, !tbaa !11
  br label %573, !llvm.loop !144

683:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  store i32 0, ptr %43, align 4, !tbaa !11
  br label %684

684:                                              ; preds = %791, %683
  %685 = load i32, ptr %43, align 4, !tbaa !11
  %686 = icmp slt i32 %685, 3
  br i1 %686, label %688, label %687

687:                                              ; preds = %684
  store i32 14, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %794

688:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %689 = load ptr, ptr %3, align 8, !tbaa !5
  %690 = load i32, ptr %43, align 4, !tbaa !11
  %691 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %689, i32 noundef %690)
  store ptr %691, ptr %44, align 8, !tbaa !5
  %692 = load i32, ptr %43, align 4, !tbaa !11
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds [3 x i8], ptr %17, i64 0, i64 %693
  %695 = load i8, ptr %694, align 1, !tbaa !9, !range !27, !noundef !28
  %696 = trunc i8 %695 to i1
  br i1 %696, label %697, label %790

697:                                              ; preds = %688
  %698 = load ptr, ptr %44, align 8, !tbaa !5
  %699 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %698)
  br i1 %699, label %790, label %700

700:                                              ; preds = %697
  %701 = load i32, ptr %37, align 4, !tbaa !11
  %702 = or i32 %701, 4
  store i32 %702, ptr %37, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #10
  %703 = load ptr, ptr %44, align 8, !tbaa !5
  %704 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %703)
  br i1 %704, label %705, label %711

705:                                              ; preds = %700
  %706 = load ptr, ptr %6, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.ImGuiIO, ptr %706, i32 0, i32 54
  %708 = getelementptr inbounds %struct.ImVec2, ptr %707, i32 0, i32 1
  %709 = load float, ptr %708, align 4, !tbaa !145
  %710 = fcmp olt float %709, 0.000000e+00
  br label %717

711:                                              ; preds = %700
  %712 = load ptr, ptr %6, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.ImGuiIO, ptr %712, i32 0, i32 54
  %714 = getelementptr inbounds %struct.ImVec2, ptr %713, i32 0, i32 1
  %715 = load float, ptr %714, align 4, !tbaa !145
  %716 = fcmp ogt float %715, 0.000000e+00
  br label %717

717:                                              ; preds = %711, %705
  %718 = phi i1 [ %710, %705 ], [ %716, %711 ]
  %719 = zext i1 %718 to i8
  store i8 %719, ptr %45, align 1, !tbaa !9
  %720 = load ptr, ptr %6, align 8, !tbaa !5
  %721 = getelementptr inbounds %struct.ImGuiIO, ptr %720, i32 0, i32 54
  %722 = getelementptr inbounds %struct.ImVec2, ptr %721, i32 0, i32 1
  %723 = load float, ptr %722, align 4, !tbaa !145
  %724 = fcmp une float %723, 0.000000e+00
  br i1 %724, label %725, label %789

725:                                              ; preds = %717
  %726 = load ptr, ptr %44, align 8, !tbaa !5
  %727 = load i8, ptr %45, align 1, !tbaa !9, !range !27, !noundef !28
  %728 = trunc i8 %727 to i1
  %729 = call noundef zeroext i1 @_ZN10ImPlotAxis11IsPanLockedEb(ptr noundef nonnull align 8 dereferenceable(372) %726, i1 noundef zeroext %728)
  br i1 %729, label %789, label %730

730:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  %731 = load ptr, ptr %44, align 8, !tbaa !5
  %732 = load ptr, ptr %3, align 8, !tbaa !5
  %733 = getelementptr inbounds %struct.ImPlotPlot, ptr %732, i32 0, i32 13
  %734 = getelementptr inbounds %struct.ImRect, ptr %733, i32 0, i32 0
  %735 = getelementptr inbounds %struct.ImVec2, ptr %734, i32 0, i32 1
  %736 = load float, ptr %735, align 4, !tbaa !146
  %737 = load ptr, ptr %6, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.ImGuiIO, ptr %737, i32 0, i32 54
  %739 = getelementptr inbounds %struct.ImVec2, ptr %738, i32 0, i32 1
  %740 = load float, ptr %739, align 4, !tbaa !145
  %741 = fsub float %736, %740
  %742 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %731, float noundef %741)
  store double %742, ptr %46, align 8, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %743 = load ptr, ptr %44, align 8, !tbaa !5
  %744 = load ptr, ptr %3, align 8, !tbaa !5
  %745 = getelementptr inbounds %struct.ImPlotPlot, ptr %744, i32 0, i32 13
  %746 = getelementptr inbounds %struct.ImRect, ptr %745, i32 0, i32 1
  %747 = getelementptr inbounds %struct.ImVec2, ptr %746, i32 0, i32 1
  %748 = load float, ptr %747, align 4, !tbaa !147
  %749 = load ptr, ptr %6, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.ImGuiIO, ptr %749, i32 0, i32 54
  %751 = getelementptr inbounds %struct.ImVec2, ptr %750, i32 0, i32 1
  %752 = load float, ptr %751, align 4, !tbaa !145
  %753 = fsub float %748, %752
  %754 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %743, float noundef %753)
  store double %754, ptr %47, align 8, !tbaa !141
  %755 = load ptr, ptr %44, align 8, !tbaa !5
  %756 = load ptr, ptr %44, align 8, !tbaa !5
  %757 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %756)
  br i1 %757, label %758, label %760

758:                                              ; preds = %730
  %759 = load double, ptr %46, align 8, !tbaa !141
  br label %762

760:                                              ; preds = %730
  %761 = load double, ptr %47, align 8, !tbaa !141
  br label %762

762:                                              ; preds = %760, %758
  %763 = phi double [ %759, %758 ], [ %761, %760 ]
  %764 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %755, double noundef %763, i1 noundef zeroext false)
  %765 = load ptr, ptr %44, align 8, !tbaa !5
  %766 = load ptr, ptr %44, align 8, !tbaa !5
  %767 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %766)
  br i1 %767, label %768, label %770

768:                                              ; preds = %762
  %769 = load double, ptr %47, align 8, !tbaa !141
  br label %772

770:                                              ; preds = %762
  %771 = load double, ptr %46, align 8, !tbaa !141
  br label %772

772:                                              ; preds = %770, %768
  %773 = phi double [ %769, %768 ], [ %771, %770 ]
  %774 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %765, double noundef %773, i1 noundef zeroext false)
  %775 = load i8, ptr %24, align 1, !tbaa !9, !range !27, !noundef !28
  %776 = trunc i8 %775 to i1
  br i1 %776, label %777, label %788

777:                                              ; preds = %772
  %778 = load ptr, ptr %44, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.ImPlotAxis, ptr %778, i32 0, i32 8
  %780 = load ptr, ptr %779, align 8, !tbaa !143
  %781 = icmp ne ptr %780, null
  br i1 %781, label %782, label %788

782:                                              ; preds = %777
  %783 = load ptr, ptr %44, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImPlotAxis, ptr %783, i32 0, i32 8
  %785 = load ptr, ptr %784, align 8, !tbaa !143
  %786 = load ptr, ptr %44, align 8, !tbaa !5
  %787 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %786)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %785, double noundef %787)
  br label %788

788:                                              ; preds = %782, %777, %772
  store i8 1, ptr %4, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  br label %789

789:                                              ; preds = %788, %725, %717
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #10
  br label %790

790:                                              ; preds = %789, %697, %688
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  br label %791

791:                                              ; preds = %790
  %792 = load i32, ptr %43, align 4, !tbaa !11
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr %43, align 4, !tbaa !11
  br label %684, !llvm.loop !148

794:                                              ; preds = %687
  %795 = load ptr, ptr %6, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.ImGuiIO, ptr %795, i32 0, i32 84
  %797 = load ptr, ptr %5, align 8, !tbaa !5
  %798 = getelementptr inbounds %struct.ImPlotContext, ptr %797, i32 0, i32 25
  %799 = getelementptr inbounds %struct.ImPlotInputMap, ptr %798, i32 0, i32 0
  %800 = load i32, ptr %799, align 8, !tbaa !75
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds [5 x float], ptr %796, i64 0, i64 %801
  %803 = load float, ptr %802, align 4, !tbaa !64
  %804 = fcmp ogt float %803, 5.000000e+00
  br i1 %804, label %805, label %812

805:                                              ; preds = %794
  %806 = load i32, ptr %37, align 4, !tbaa !11
  switch i32 %806, label %810 [
    i32 0, label %807
    i32 2, label %808
    i32 4, label %809
  ]

807:                                              ; preds = %805
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef 8)
  br label %811

808:                                              ; preds = %805
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef 4)
  br label %811

809:                                              ; preds = %805
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef 3)
  br label %811

810:                                              ; preds = %805
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef 2)
  br label %811

811:                                              ; preds = %810, %809, %808, %807
  br label %812

812:                                              ; preds = %811, %794
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %813

813:                                              ; preds = %812, %567, %564
  %814 = load i8, ptr %29, align 1, !tbaa !9, !range !27, !noundef !28
  %815 = trunc i8 %814 to i1
  br i1 %815, label %816, label %1125

816:                                              ; preds = %813
  %817 = load ptr, ptr %6, align 8, !tbaa !5
  %818 = getelementptr inbounds %struct.ImGuiIO, ptr %817, i32 0, i32 61
  %819 = load float, ptr %818, align 8, !tbaa !149
  %820 = fcmp une float %819, 0.000000e+00
  br i1 %820, label %821, label %1125

821:                                              ; preds = %816
  %822 = load ptr, ptr %6, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.ImGuiIO, ptr %822, i32 0, i32 68
  %824 = load i32, ptr %823, align 8, !tbaa !56
  %825 = load ptr, ptr %5, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.ImPlotContext, ptr %825, i32 0, i32 25
  %827 = getelementptr inbounds %struct.ImPlotInputMap, ptr %826, i32 0, i32 10
  %828 = load i32, ptr %827, align 8, !tbaa !150
  %829 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %824, i32 noundef %828)
  br i1 %829, label %830, label %1125

830:                                              ; preds = %821
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %831 = load ptr, ptr %5, align 8, !tbaa !5
  %832 = getelementptr inbounds %struct.ImPlotContext, ptr %831, i32 0, i32 25
  %833 = getelementptr inbounds %struct.ImPlotInputMap, ptr %832, i32 0, i32 11
  %834 = load float, ptr %833, align 4, !tbaa !151
  store float %834, ptr %48, align 4, !tbaa !64
  %835 = load ptr, ptr %6, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.ImGuiIO, ptr %835, i32 0, i32 61
  %837 = load float, ptr %836, align 8, !tbaa !149
  %838 = fcmp ogt float %837, 0.000000e+00
  br i1 %838, label %839, label %845

839:                                              ; preds = %830
  %840 = load float, ptr %48, align 4, !tbaa !64
  %841 = fneg float %840
  %842 = load float, ptr %48, align 4, !tbaa !64
  %843 = call float @llvm.fmuladd.f32(float 2.000000e+00, float %842, float 1.000000e+00)
  %844 = fdiv float %841, %843
  store float %844, ptr %48, align 4, !tbaa !64
  br label %845

845:                                              ; preds = %839, %830
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %846 = load ptr, ptr %3, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.ImPlotPlot, ptr %846, i32 0, i32 13
  %848 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %847)
  store <2 x float> %848, ptr %49, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %849 = load ptr, ptr %6, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.ImGuiIO, ptr %849, i32 0, i32 59
  %851 = getelementptr inbounds %struct.ImVec2, ptr %850, i32 0, i32 0
  %852 = load float, ptr %851, align 8, !tbaa !152
  %853 = load ptr, ptr %3, align 8, !tbaa !5
  %854 = getelementptr inbounds %struct.ImPlotPlot, ptr %853, i32 0, i32 13
  %855 = getelementptr inbounds %struct.ImRect, ptr %854, i32 0, i32 0
  %856 = getelementptr inbounds %struct.ImVec2, ptr %855, i32 0, i32 0
  %857 = load float, ptr %856, align 8, !tbaa !140
  %858 = load ptr, ptr %3, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.ImPlotPlot, ptr %858, i32 0, i32 13
  %860 = getelementptr inbounds %struct.ImRect, ptr %859, i32 0, i32 1
  %861 = getelementptr inbounds %struct.ImVec2, ptr %860, i32 0, i32 0
  %862 = load float, ptr %861, align 8, !tbaa !142
  %863 = call noundef float @_ZL7ImRemapIfET_S0_S0_S0_S0_S0_(float noundef %852, float noundef %857, float noundef %862, float noundef 0.000000e+00, float noundef 1.000000e+00)
  store float %863, ptr %50, align 4, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %864 = load ptr, ptr %6, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.ImGuiIO, ptr %864, i32 0, i32 59
  %866 = getelementptr inbounds %struct.ImVec2, ptr %865, i32 0, i32 1
  %867 = load float, ptr %866, align 4, !tbaa !153
  %868 = load ptr, ptr %3, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.ImPlotPlot, ptr %868, i32 0, i32 13
  %870 = getelementptr inbounds %struct.ImRect, ptr %869, i32 0, i32 0
  %871 = getelementptr inbounds %struct.ImVec2, ptr %870, i32 0, i32 1
  %872 = load float, ptr %871, align 4, !tbaa !146
  %873 = load ptr, ptr %3, align 8, !tbaa !5
  %874 = getelementptr inbounds %struct.ImPlotPlot, ptr %873, i32 0, i32 13
  %875 = getelementptr inbounds %struct.ImRect, ptr %874, i32 0, i32 1
  %876 = getelementptr inbounds %struct.ImVec2, ptr %875, i32 0, i32 1
  %877 = load float, ptr %876, align 4, !tbaa !147
  %878 = call noundef float @_ZL7ImRemapIfET_S0_S0_S0_S0_S0_(float noundef %867, float noundef %872, float noundef %877, float noundef 0.000000e+00, float noundef 1.000000e+00)
  store float %878, ptr %51, align 4, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  store i32 0, ptr %52, align 4, !tbaa !11
  br label %879

879:                                              ; preds = %999, %845
  %880 = load i32, ptr %52, align 4, !tbaa !11
  %881 = icmp slt i32 %880, 3
  br i1 %881, label %883, label %882

882:                                              ; preds = %879
  store i32 18, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %1002

883:                                              ; preds = %879
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  %884 = load ptr, ptr %3, align 8, !tbaa !5
  %885 = load i32, ptr %52, align 4, !tbaa !11
  %886 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %884, i32 noundef %885)
  store ptr %886, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #10
  %887 = load i8, ptr %24, align 1, !tbaa !9, !range !27, !noundef !28
  %888 = trunc i8 %887 to i1
  br i1 %888, label %889, label %894

889:                                              ; preds = %883
  %890 = load ptr, ptr %53, align 8, !tbaa !5
  %891 = getelementptr inbounds %struct.ImPlotAxis, ptr %890, i32 0, i32 8
  %892 = load ptr, ptr %891, align 8, !tbaa !143
  %893 = icmp ne ptr %892, null
  br label %894

894:                                              ; preds = %889, %883
  %895 = phi i1 [ false, %883 ], [ %893, %889 ]
  %896 = zext i1 %895 to i8
  store i8 %896, ptr %54, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #10
  %897 = load i8, ptr %54, align 1, !tbaa !9, !range !27, !noundef !28
  %898 = trunc i8 %897 to i1
  %899 = zext i1 %898 to i32
  %900 = icmp ne i32 %899, 0
  br i1 %900, label %901, label %906

901:                                              ; preds = %894
  %902 = load ptr, ptr %53, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.ImPlotAxis, ptr %902, i32 0, i32 8
  %904 = load ptr, ptr %903, align 8, !tbaa !143
  %905 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %904)
  br label %906

906:                                              ; preds = %901, %894
  %907 = phi i1 [ false, %894 ], [ %905, %901 ]
  %908 = zext i1 %907 to i8
  store i8 %908, ptr %55, align 1, !tbaa !9
  %909 = load i32, ptr %52, align 4, !tbaa !11
  %910 = sext i32 %909 to i64
  %911 = getelementptr inbounds [3 x i8], ptr %15, i64 0, i64 %910
  %912 = load i8, ptr %911, align 1, !tbaa !9, !range !27, !noundef !28
  %913 = trunc i8 %912 to i1
  br i1 %913, label %914, label %998

914:                                              ; preds = %906
  %915 = load ptr, ptr %53, align 8, !tbaa !5
  %916 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %915)
  br i1 %916, label %998, label %917

917:                                              ; preds = %914
  %918 = load i8, ptr %55, align 1, !tbaa !9, !range !27, !noundef !28
  %919 = trunc i8 %918 to i1
  br i1 %919, label %998, label %920

920:                                              ; preds = %917
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %921 = load ptr, ptr %3, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.ImPlotPlot, ptr %921, i32 0, i32 22
  %923 = load i8, ptr %922, align 8, !tbaa !82, !range !27, !noundef !28
  %924 = trunc i8 %923 to i1
  br i1 %924, label %925, label %928

925:                                              ; preds = %920
  %926 = load i8, ptr %54, align 1, !tbaa !9, !range !27, !noundef !28
  %927 = trunc i8 %926 to i1
  br label %928

928:                                              ; preds = %925, %920
  %929 = phi i1 [ false, %920 ], [ %927, %925 ]
  %930 = zext i1 %929 to i64
  %931 = select i1 %929, float 5.000000e-01, float 1.000000e+00
  store float %931, ptr %56, align 4, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  %932 = load ptr, ptr %53, align 8, !tbaa !5
  %933 = load ptr, ptr %3, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.ImPlotPlot, ptr %933, i32 0, i32 13
  %935 = getelementptr inbounds %struct.ImRect, ptr %934, i32 0, i32 0
  %936 = getelementptr inbounds %struct.ImVec2, ptr %935, i32 0, i32 0
  %937 = load float, ptr %936, align 8, !tbaa !140
  %938 = getelementptr inbounds %struct.ImVec2, ptr %49, i32 0, i32 0
  %939 = load float, ptr %938, align 4, !tbaa !154
  %940 = load float, ptr %50, align 4, !tbaa !64
  %941 = fmul float %939, %940
  %942 = load float, ptr %48, align 4, !tbaa !64
  %943 = fmul float %941, %942
  %944 = load float, ptr %56, align 4, !tbaa !64
  %945 = fneg float %943
  %946 = call float @llvm.fmuladd.f32(float %945, float %944, float %937)
  %947 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %932, float noundef %946)
  store double %947, ptr %57, align 8, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #10
  %948 = load ptr, ptr %53, align 8, !tbaa !5
  %949 = load ptr, ptr %3, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.ImPlotPlot, ptr %949, i32 0, i32 13
  %951 = getelementptr inbounds %struct.ImRect, ptr %950, i32 0, i32 1
  %952 = getelementptr inbounds %struct.ImVec2, ptr %951, i32 0, i32 0
  %953 = load float, ptr %952, align 8, !tbaa !142
  %954 = getelementptr inbounds %struct.ImVec2, ptr %49, i32 0, i32 0
  %955 = load float, ptr %954, align 4, !tbaa !154
  %956 = load float, ptr %50, align 4, !tbaa !64
  %957 = fsub float 1.000000e+00, %956
  %958 = fmul float %955, %957
  %959 = load float, ptr %48, align 4, !tbaa !64
  %960 = fmul float %958, %959
  %961 = load float, ptr %56, align 4, !tbaa !64
  %962 = call float @llvm.fmuladd.f32(float %960, float %961, float %953)
  %963 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %948, float noundef %962)
  store double %963, ptr %58, align 8, !tbaa !141
  %964 = load ptr, ptr %53, align 8, !tbaa !5
  %965 = load ptr, ptr %53, align 8, !tbaa !5
  %966 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %965)
  br i1 %966, label %967, label %969

967:                                              ; preds = %928
  %968 = load double, ptr %58, align 8, !tbaa !141
  br label %971

969:                                              ; preds = %928
  %970 = load double, ptr %57, align 8, !tbaa !141
  br label %971

971:                                              ; preds = %969, %967
  %972 = phi double [ %968, %967 ], [ %970, %969 ]
  %973 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %964, double noundef %972, i1 noundef zeroext false)
  %974 = load ptr, ptr %53, align 8, !tbaa !5
  %975 = load ptr, ptr %53, align 8, !tbaa !5
  %976 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %975)
  br i1 %976, label %977, label %979

977:                                              ; preds = %971
  %978 = load double, ptr %57, align 8, !tbaa !141
  br label %981

979:                                              ; preds = %971
  %980 = load double, ptr %58, align 8, !tbaa !141
  br label %981

981:                                              ; preds = %979, %977
  %982 = phi double [ %978, %977 ], [ %980, %979 ]
  %983 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %974, double noundef %982, i1 noundef zeroext false)
  %984 = load i8, ptr %24, align 1, !tbaa !9, !range !27, !noundef !28
  %985 = trunc i8 %984 to i1
  br i1 %985, label %986, label %997

986:                                              ; preds = %981
  %987 = load ptr, ptr %53, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.ImPlotAxis, ptr %987, i32 0, i32 8
  %989 = load ptr, ptr %988, align 8, !tbaa !143
  %990 = icmp ne ptr %989, null
  br i1 %990, label %991, label %997

991:                                              ; preds = %986
  %992 = load ptr, ptr %53, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.ImPlotAxis, ptr %992, i32 0, i32 8
  %994 = load ptr, ptr %993, align 8, !tbaa !143
  %995 = load ptr, ptr %53, align 8, !tbaa !5
  %996 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %995)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %994, double noundef %996)
  br label %997

997:                                              ; preds = %991, %986, %981
  store i8 1, ptr %4, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %998

998:                                              ; preds = %997, %917, %914, %906
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  br label %999

999:                                              ; preds = %998
  %1000 = load i32, ptr %52, align 4, !tbaa !11
  %1001 = add nsw i32 %1000, 1
  store i32 %1001, ptr %52, align 4, !tbaa !11
  br label %879, !llvm.loop !155

1002:                                             ; preds = %882
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  store i32 0, ptr %59, align 4, !tbaa !11
  br label %1003

1003:                                             ; preds = %1121, %1002
  %1004 = load i32, ptr %59, align 4, !tbaa !11
  %1005 = icmp slt i32 %1004, 3
  br i1 %1005, label %1007, label %1006

1006:                                             ; preds = %1003
  store i32 21, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %1124

1007:                                             ; preds = %1003
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %1008 = load ptr, ptr %3, align 8, !tbaa !5
  %1009 = load i32, ptr %59, align 4, !tbaa !11
  %1010 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1008, i32 noundef %1009)
  store ptr %1010, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #10
  %1011 = load i8, ptr %24, align 1, !tbaa !9, !range !27, !noundef !28
  %1012 = trunc i8 %1011 to i1
  br i1 %1012, label %1013, label %1018

1013:                                             ; preds = %1007
  %1014 = load ptr, ptr %60, align 8, !tbaa !5
  %1015 = getelementptr inbounds %struct.ImPlotAxis, ptr %1014, i32 0, i32 8
  %1016 = load ptr, ptr %1015, align 8, !tbaa !143
  %1017 = icmp ne ptr %1016, null
  br label %1018

1018:                                             ; preds = %1013, %1007
  %1019 = phi i1 [ false, %1007 ], [ %1017, %1013 ]
  %1020 = zext i1 %1019 to i8
  store i8 %1020, ptr %61, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #10
  %1021 = load i8, ptr %61, align 1, !tbaa !9, !range !27, !noundef !28
  %1022 = trunc i8 %1021 to i1
  br i1 %1022, label %1023, label %1028

1023:                                             ; preds = %1018
  %1024 = load ptr, ptr %60, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.ImPlotAxis, ptr %1024, i32 0, i32 8
  %1026 = load ptr, ptr %1025, align 8, !tbaa !143
  %1027 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %1026)
  br label %1028

1028:                                             ; preds = %1023, %1018
  %1029 = phi i1 [ false, %1018 ], [ %1027, %1023 ]
  %1030 = zext i1 %1029 to i8
  store i8 %1030, ptr %62, align 1, !tbaa !9
  %1031 = load i32, ptr %59, align 4, !tbaa !11
  %1032 = sext i32 %1031 to i64
  %1033 = getelementptr inbounds [3 x i8], ptr %18, i64 0, i64 %1032
  %1034 = load i8, ptr %1033, align 1, !tbaa !9, !range !27, !noundef !28
  %1035 = trunc i8 %1034 to i1
  br i1 %1035, label %1036, label %1120

1036:                                             ; preds = %1028
  %1037 = load ptr, ptr %60, align 8, !tbaa !5
  %1038 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %1037)
  br i1 %1038, label %1120, label %1039

1039:                                             ; preds = %1036
  %1040 = load i8, ptr %62, align 1, !tbaa !9, !range !27, !noundef !28
  %1041 = trunc i8 %1040 to i1
  br i1 %1041, label %1120, label %1042

1042:                                             ; preds = %1039
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %1043 = load ptr, ptr %3, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.ImPlotPlot, ptr %1043, i32 0, i32 22
  %1045 = load i8, ptr %1044, align 8, !tbaa !82, !range !27, !noundef !28
  %1046 = trunc i8 %1045 to i1
  br i1 %1046, label %1047, label %1050

1047:                                             ; preds = %1042
  %1048 = load i8, ptr %61, align 1, !tbaa !9, !range !27, !noundef !28
  %1049 = trunc i8 %1048 to i1
  br label %1050

1050:                                             ; preds = %1047, %1042
  %1051 = phi i1 [ false, %1042 ], [ %1049, %1047 ]
  %1052 = zext i1 %1051 to i64
  %1053 = select i1 %1051, float 5.000000e-01, float 1.000000e+00
  store float %1053, ptr %63, align 4, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %1054 = load ptr, ptr %60, align 8, !tbaa !5
  %1055 = load ptr, ptr %3, align 8, !tbaa !5
  %1056 = getelementptr inbounds %struct.ImPlotPlot, ptr %1055, i32 0, i32 13
  %1057 = getelementptr inbounds %struct.ImRect, ptr %1056, i32 0, i32 0
  %1058 = getelementptr inbounds %struct.ImVec2, ptr %1057, i32 0, i32 1
  %1059 = load float, ptr %1058, align 4, !tbaa !146
  %1060 = getelementptr inbounds %struct.ImVec2, ptr %49, i32 0, i32 1
  %1061 = load float, ptr %1060, align 4, !tbaa !156
  %1062 = load float, ptr %51, align 4, !tbaa !64
  %1063 = fmul float %1061, %1062
  %1064 = load float, ptr %48, align 4, !tbaa !64
  %1065 = fmul float %1063, %1064
  %1066 = load float, ptr %63, align 4, !tbaa !64
  %1067 = fneg float %1065
  %1068 = call float @llvm.fmuladd.f32(float %1067, float %1066, float %1059)
  %1069 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1054, float noundef %1068)
  store double %1069, ptr %64, align 8, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %1070 = load ptr, ptr %60, align 8, !tbaa !5
  %1071 = load ptr, ptr %3, align 8, !tbaa !5
  %1072 = getelementptr inbounds %struct.ImPlotPlot, ptr %1071, i32 0, i32 13
  %1073 = getelementptr inbounds %struct.ImRect, ptr %1072, i32 0, i32 1
  %1074 = getelementptr inbounds %struct.ImVec2, ptr %1073, i32 0, i32 1
  %1075 = load float, ptr %1074, align 4, !tbaa !147
  %1076 = getelementptr inbounds %struct.ImVec2, ptr %49, i32 0, i32 1
  %1077 = load float, ptr %1076, align 4, !tbaa !156
  %1078 = load float, ptr %51, align 4, !tbaa !64
  %1079 = fsub float 1.000000e+00, %1078
  %1080 = fmul float %1077, %1079
  %1081 = load float, ptr %48, align 4, !tbaa !64
  %1082 = fmul float %1080, %1081
  %1083 = load float, ptr %63, align 4, !tbaa !64
  %1084 = call float @llvm.fmuladd.f32(float %1082, float %1083, float %1075)
  %1085 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1070, float noundef %1084)
  store double %1085, ptr %65, align 8, !tbaa !141
  %1086 = load ptr, ptr %60, align 8, !tbaa !5
  %1087 = load ptr, ptr %60, align 8, !tbaa !5
  %1088 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %1087)
  br i1 %1088, label %1089, label %1091

1089:                                             ; preds = %1050
  %1090 = load double, ptr %64, align 8, !tbaa !141
  br label %1093

1091:                                             ; preds = %1050
  %1092 = load double, ptr %65, align 8, !tbaa !141
  br label %1093

1093:                                             ; preds = %1091, %1089
  %1094 = phi double [ %1090, %1089 ], [ %1092, %1091 ]
  %1095 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %1086, double noundef %1094, i1 noundef zeroext false)
  %1096 = load ptr, ptr %60, align 8, !tbaa !5
  %1097 = load ptr, ptr %60, align 8, !tbaa !5
  %1098 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %1097)
  br i1 %1098, label %1099, label %1101

1099:                                             ; preds = %1093
  %1100 = load double, ptr %65, align 8, !tbaa !141
  br label %1103

1101:                                             ; preds = %1093
  %1102 = load double, ptr %64, align 8, !tbaa !141
  br label %1103

1103:                                             ; preds = %1101, %1099
  %1104 = phi double [ %1100, %1099 ], [ %1102, %1101 ]
  %1105 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %1096, double noundef %1104, i1 noundef zeroext false)
  %1106 = load i8, ptr %24, align 1, !tbaa !9, !range !27, !noundef !28
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1108, label %1119

1108:                                             ; preds = %1103
  %1109 = load ptr, ptr %60, align 8, !tbaa !5
  %1110 = getelementptr inbounds %struct.ImPlotAxis, ptr %1109, i32 0, i32 8
  %1111 = load ptr, ptr %1110, align 8, !tbaa !143
  %1112 = icmp ne ptr %1111, null
  br i1 %1112, label %1113, label %1119

1113:                                             ; preds = %1108
  %1114 = load ptr, ptr %60, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.ImPlotAxis, ptr %1114, i32 0, i32 8
  %1116 = load ptr, ptr %1115, align 8, !tbaa !143
  %1117 = load ptr, ptr %60, align 8, !tbaa !5
  %1118 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1117)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1116, double noundef %1118)
  br label %1119

1119:                                             ; preds = %1113, %1108, %1103
  store i8 1, ptr %4, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %1120

1120:                                             ; preds = %1119, %1039, %1036, %1028
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %1121

1121:                                             ; preds = %1120
  %1122 = load i32, ptr %59, align 4, !tbaa !11
  %1123 = add nsw i32 %1122, 1
  store i32 %1123, ptr %59, align 4, !tbaa !11
  br label %1003, !llvm.loop !157

1124:                                             ; preds = %1006
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %1125

1125:                                             ; preds = %1124, %821, %816, %813
  %1126 = load ptr, ptr %3, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.ImPlotPlot, ptr %1126, i32 0, i32 24
  %1128 = load i8, ptr %1127, align 2, !tbaa !62, !range !27, !noundef !28
  %1129 = trunc i8 %1128 to i1
  br i1 %1129, label %1130, label %1473

1130:                                             ; preds = %1125
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  %1131 = load ptr, ptr %3, align 8, !tbaa !5
  %1132 = getelementptr inbounds %struct.ImPlotPlot, ptr %1131, i32 0, i32 16
  %1133 = load ptr, ptr %6, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.ImGuiIO, ptr %1133, i32 0, i32 59
  %1135 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1132, ptr noundef nonnull align 4 dereferenceable(8) %1134)
  store <2 x float> %1135, ptr %66, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #10
  %1136 = load ptr, ptr %6, align 8, !tbaa !5
  %1137 = getelementptr inbounds %struct.ImGuiIO, ptr %1136, i32 0, i32 68
  %1138 = load i32, ptr %1137, align 8, !tbaa !56
  %1139 = load ptr, ptr %5, align 8, !tbaa !5
  %1140 = getelementptr inbounds %struct.ImPlotContext, ptr %1139, i32 0, i32 25
  %1141 = getelementptr inbounds %struct.ImPlotInputMap, ptr %1140, i32 0, i32 6
  %1142 = load i32, ptr %1141, align 8, !tbaa !158
  %1143 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %1138, i32 noundef %1142)
  br i1 %1143, label %1149, label %1144

1144:                                             ; preds = %1130
  %1145 = getelementptr inbounds %struct.ImVec2, ptr %66, i32 0, i32 0
  %1146 = load float, ptr %1145, align 4, !tbaa !154
  %1147 = call float @llvm.fabs.f32(float %1146)
  %1148 = fcmp ogt float %1147, 2.000000e+00
  br label %1149

1149:                                             ; preds = %1144, %1130
  %1150 = phi i1 [ false, %1130 ], [ %1148, %1144 ]
  %1151 = zext i1 %1150 to i8
  store i8 %1151, ptr %67, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #10
  %1152 = load ptr, ptr %6, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.ImGuiIO, ptr %1152, i32 0, i32 68
  %1154 = load i32, ptr %1153, align 8, !tbaa !56
  %1155 = load ptr, ptr %5, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.ImPlotContext, ptr %1155, i32 0, i32 25
  %1157 = getelementptr inbounds %struct.ImPlotInputMap, ptr %1156, i32 0, i32 7
  %1158 = load i32, ptr %1157, align 4, !tbaa !159
  %1159 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %1154, i32 noundef %1158)
  br i1 %1159, label %1165, label %1160

1160:                                             ; preds = %1149
  %1161 = getelementptr inbounds %struct.ImVec2, ptr %66, i32 0, i32 1
  %1162 = load float, ptr %1161, align 4, !tbaa !156
  %1163 = call float @llvm.fabs.f32(float %1162)
  %1164 = fcmp ogt float %1163, 2.000000e+00
  br label %1165

1165:                                             ; preds = %1160, %1149
  %1166 = phi i1 [ false, %1149 ], [ %1164, %1160 ]
  %1167 = zext i1 %1166 to i8
  store i8 %1167, ptr %68, align 1, !tbaa !9
  %1168 = load ptr, ptr %6, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.ImGuiIO, ptr %1168, i32 0, i32 78
  %1170 = load ptr, ptr %5, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.ImPlotContext, ptr %1170, i32 0, i32 25
  %1172 = getelementptr inbounds %struct.ImPlotInputMap, ptr %1171, i32 0, i32 3
  %1173 = load i32, ptr %1172, align 4, !tbaa !30
  %1174 = sext i32 %1173 to i64
  %1175 = getelementptr inbounds [5 x i8], ptr %1169, i64 0, i64 %1174
  %1176 = load i8, ptr %1175, align 1, !tbaa !9, !range !27, !noundef !28
  %1177 = trunc i8 %1176 to i1
  br i1 %1177, label %1178, label %1292

1178:                                             ; preds = %1165
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  store i32 0, ptr %69, align 4, !tbaa !11
  br label %1179

1179:                                             ; preds = %1216, %1178
  %1180 = load i32, ptr %69, align 4, !tbaa !11
  %1181 = icmp slt i32 %1180, 3
  br i1 %1181, label %1183, label %1182

1182:                                             ; preds = %1179
  store i32 24, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %1219

1183:                                             ; preds = %1179
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %1184 = load ptr, ptr %3, align 8, !tbaa !5
  %1185 = load i32, ptr %69, align 4, !tbaa !11
  %1186 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1184, i32 noundef %1185)
  store ptr %1186, ptr %70, align 8, !tbaa !5
  %1187 = load ptr, ptr %70, align 8, !tbaa !5
  %1188 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %1187)
  br i1 %1188, label %1215, label %1189

1189:                                             ; preds = %1183
  %1190 = load i8, ptr %67, align 1, !tbaa !9, !range !27, !noundef !28
  %1191 = trunc i8 %1190 to i1
  br i1 %1191, label %1192, label %1215

1192:                                             ; preds = %1189
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  %1193 = load ptr, ptr %70, align 8, !tbaa !5
  %1194 = load ptr, ptr %3, align 8, !tbaa !5
  %1195 = getelementptr inbounds %struct.ImPlotPlot, ptr %1194, i32 0, i32 16
  %1196 = getelementptr inbounds %struct.ImVec2, ptr %1195, i32 0, i32 0
  %1197 = load float, ptr %1196, align 8, !tbaa !160
  %1198 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1193, float noundef %1197)
  store double %1198, ptr %71, align 8, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  %1199 = load ptr, ptr %70, align 8, !tbaa !5
  %1200 = load ptr, ptr %6, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.ImGuiIO, ptr %1200, i32 0, i32 59
  %1202 = getelementptr inbounds %struct.ImVec2, ptr %1201, i32 0, i32 0
  %1203 = load float, ptr %1202, align 8, !tbaa !152
  %1204 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1199, float noundef %1203)
  store double %1204, ptr %72, align 8, !tbaa !141
  %1205 = load ptr, ptr %70, align 8, !tbaa !5
  %1206 = load double, ptr %71, align 8, !tbaa !141
  %1207 = load double, ptr %72, align 8, !tbaa !141
  %1208 = call noundef double @_ZL5ImMinIdET_S0_S0_(double noundef %1206, double noundef %1207)
  %1209 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %1205, double noundef %1208, i1 noundef zeroext false)
  %1210 = load ptr, ptr %70, align 8, !tbaa !5
  %1211 = load double, ptr %71, align 8, !tbaa !141
  %1212 = load double, ptr %72, align 8, !tbaa !141
  %1213 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1211, double noundef %1212)
  %1214 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %1210, double noundef %1213, i1 noundef zeroext false)
  store i8 1, ptr %4, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %1215

1215:                                             ; preds = %1192, %1189, %1183
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %1216

1216:                                             ; preds = %1215
  %1217 = load i32, ptr %69, align 4, !tbaa !11
  %1218 = add nsw i32 %1217, 1
  store i32 %1218, ptr %69, align 4, !tbaa !11
  br label %1179, !llvm.loop !161

1219:                                             ; preds = %1182
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  store i32 0, ptr %73, align 4, !tbaa !11
  br label %1220

1220:                                             ; preds = %1257, %1219
  %1221 = load i32, ptr %73, align 4, !tbaa !11
  %1222 = icmp slt i32 %1221, 3
  br i1 %1222, label %1224, label %1223

1223:                                             ; preds = %1220
  store i32 27, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %1260

1224:                                             ; preds = %1220
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %1225 = load ptr, ptr %3, align 8, !tbaa !5
  %1226 = load i32, ptr %73, align 4, !tbaa !11
  %1227 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1225, i32 noundef %1226)
  store ptr %1227, ptr %74, align 8, !tbaa !5
  %1228 = load ptr, ptr %74, align 8, !tbaa !5
  %1229 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %1228)
  br i1 %1229, label %1256, label %1230

1230:                                             ; preds = %1224
  %1231 = load i8, ptr %68, align 1, !tbaa !9, !range !27, !noundef !28
  %1232 = trunc i8 %1231 to i1
  br i1 %1232, label %1233, label %1256

1233:                                             ; preds = %1230
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #10
  %1234 = load ptr, ptr %74, align 8, !tbaa !5
  %1235 = load ptr, ptr %3, align 8, !tbaa !5
  %1236 = getelementptr inbounds %struct.ImPlotPlot, ptr %1235, i32 0, i32 16
  %1237 = getelementptr inbounds %struct.ImVec2, ptr %1236, i32 0, i32 1
  %1238 = load float, ptr %1237, align 4, !tbaa !162
  %1239 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1234, float noundef %1238)
  store double %1239, ptr %75, align 8, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  %1240 = load ptr, ptr %74, align 8, !tbaa !5
  %1241 = load ptr, ptr %6, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.ImGuiIO, ptr %1241, i32 0, i32 59
  %1243 = getelementptr inbounds %struct.ImVec2, ptr %1242, i32 0, i32 1
  %1244 = load float, ptr %1243, align 4, !tbaa !153
  %1245 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1240, float noundef %1244)
  store double %1245, ptr %76, align 8, !tbaa !141
  %1246 = load ptr, ptr %74, align 8, !tbaa !5
  %1247 = load double, ptr %75, align 8, !tbaa !141
  %1248 = load double, ptr %76, align 8, !tbaa !141
  %1249 = call noundef double @_ZL5ImMinIdET_S0_S0_(double noundef %1247, double noundef %1248)
  %1250 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %1246, double noundef %1249, i1 noundef zeroext false)
  %1251 = load ptr, ptr %74, align 8, !tbaa !5
  %1252 = load double, ptr %75, align 8, !tbaa !141
  %1253 = load double, ptr %76, align 8, !tbaa !141
  %1254 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1252, double noundef %1253)
  %1255 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %1251, double noundef %1254, i1 noundef zeroext false)
  store i8 1, ptr %4, align 1, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #10
  br label %1256

1256:                                             ; preds = %1233, %1230, %1224
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  br label %1257

1257:                                             ; preds = %1256
  %1258 = load i32, ptr %73, align 4, !tbaa !11
  %1259 = add nsw i32 %1258, 1
  store i32 %1259, ptr %73, align 4, !tbaa !11
  br label %1220, !llvm.loop !163

1260:                                             ; preds = %1223
  %1261 = load i8, ptr %67, align 1, !tbaa !9, !range !27, !noundef !28
  %1262 = trunc i8 %1261 to i1
  br i1 %1262, label %1284, label %1263

1263:                                             ; preds = %1260
  %1264 = load i8, ptr %68, align 1, !tbaa !9, !range !27, !noundef !28
  %1265 = trunc i8 %1264 to i1
  br i1 %1265, label %1284, label %1266

1266:                                             ; preds = %1263
  %1267 = load ptr, ptr %6, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.ImGuiIO, ptr %1267, i32 0, i32 68
  %1269 = load i32, ptr %1268, align 8, !tbaa !56
  %1270 = load ptr, ptr %5, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.ImPlotContext, ptr %1270, i32 0, i32 25
  %1272 = getelementptr inbounds %struct.ImPlotInputMap, ptr %1271, i32 0, i32 6
  %1273 = load i32, ptr %1272, align 8, !tbaa !158
  %1274 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %1269, i32 noundef %1273)
  br i1 %1274, label %1275, label %1287

1275:                                             ; preds = %1266
  %1276 = load ptr, ptr %6, align 8, !tbaa !5
  %1277 = getelementptr inbounds %struct.ImGuiIO, ptr %1276, i32 0, i32 68
  %1278 = load i32, ptr %1277, align 8, !tbaa !56
  %1279 = load ptr, ptr %5, align 8, !tbaa !5
  %1280 = getelementptr inbounds %struct.ImPlotContext, ptr %1279, i32 0, i32 25
  %1281 = getelementptr inbounds %struct.ImPlotInputMap, ptr %1280, i32 0, i32 7
  %1282 = load i32, ptr %1281, align 4, !tbaa !159
  %1283 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %1278, i32 noundef %1282)
  br i1 %1283, label %1284, label %1287

1284:                                             ; preds = %1275, %1263, %1260
  %1285 = load ptr, ptr %5, align 8, !tbaa !5
  %1286 = getelementptr inbounds %struct.ImPlotContext, ptr %1285, i32 0, i32 26
  store i8 0, ptr %1286, align 8, !tbaa !138
  br label %1287

1287:                                             ; preds = %1284, %1275, %1266
  %1288 = load ptr, ptr %3, align 8, !tbaa !5
  %1289 = getelementptr inbounds %struct.ImPlotPlot, ptr %1288, i32 0, i32 24
  store i8 0, ptr %1289, align 2, !tbaa !62
  %1290 = load ptr, ptr %3, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.ImPlotPlot, ptr %1290, i32 0, i32 25
  store i8 0, ptr %1291, align 1, !tbaa !164
  br label %1472

1292:                                             ; preds = %1165
  %1293 = load ptr, ptr %6, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.ImGuiIO, ptr %1293, i32 0, i32 78
  %1295 = load ptr, ptr %5, align 8, !tbaa !5
  %1296 = getelementptr inbounds %struct.ImPlotContext, ptr %1295, i32 0, i32 25
  %1297 = getelementptr inbounds %struct.ImPlotInputMap, ptr %1296, i32 0, i32 4
  %1298 = load i32, ptr %1297, align 8, !tbaa !165
  %1299 = sext i32 %1298 to i64
  %1300 = getelementptr inbounds [5 x i8], ptr %1294, i64 0, i64 %1299
  %1301 = load i8, ptr %1300, align 1, !tbaa !9, !range !27, !noundef !28
  %1302 = trunc i8 %1301 to i1
  br i1 %1302, label %1303, label %1310

1303:                                             ; preds = %1292
  %1304 = load ptr, ptr %3, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.ImPlotPlot, ptr %1304, i32 0, i32 24
  store i8 0, ptr %1305, align 2, !tbaa !62
  %1306 = load ptr, ptr %3, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.ImPlotPlot, ptr %1306, i32 0, i32 25
  store i8 0, ptr %1307, align 1, !tbaa !164
  %1308 = load ptr, ptr %5, align 8, !tbaa !5
  %1309 = getelementptr inbounds %struct.ImPlotContext, ptr %1308, i32 0, i32 26
  store i8 0, ptr %1309, align 8, !tbaa !138
  br label %1471

1310:                                             ; preds = %1292
  %1311 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %66)
  %1312 = fcmp ogt float %1311, 4.000000e+00
  br i1 %1312, label %1313, label %1467

1313:                                             ; preds = %1310
  %1314 = load ptr, ptr %3, align 8, !tbaa !5
  %1315 = call noundef zeroext i1 @_ZNK10ImPlotPlot13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(2533) %1314)
  br i1 %1315, label %1316, label %1321

1316:                                             ; preds = %1313
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef 8)
  %1317 = load ptr, ptr %5, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.ImPlotContext, ptr %1317, i32 0, i32 26
  store i8 0, ptr %1318, align 8, !tbaa !138
  %1319 = load ptr, ptr %3, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.ImPlotPlot, ptr %1319, i32 0, i32 25
  store i8 0, ptr %1320, align 1, !tbaa !164
  br label %1466

1321:                                             ; preds = %1313
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #10
  %1322 = load ptr, ptr %6, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.ImGuiIO, ptr %1322, i32 0, i32 68
  %1324 = load i32, ptr %1323, align 8, !tbaa !56
  %1325 = load ptr, ptr %5, align 8, !tbaa !5
  %1326 = getelementptr inbounds %struct.ImPlotContext, ptr %1325, i32 0, i32 25
  %1327 = getelementptr inbounds %struct.ImPlotInputMap, ptr %1326, i32 0, i32 6
  %1328 = load i32, ptr %1327, align 8, !tbaa !158
  %1329 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %1324, i32 noundef %1328)
  br i1 %1329, label %1335, label %1330

1330:                                             ; preds = %1321
  %1331 = load ptr, ptr %3, align 8, !tbaa !5
  %1332 = getelementptr inbounds %struct.ImPlotPlot, ptr %1331, i32 0, i32 6
  %1333 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %1332, i64 0, i64 0
  %1334 = call noundef zeroext i1 @_ZN6ImPlotL18AllAxesInputLockedEP10ImPlotAxisi(ptr noundef %1333, i32 noundef 3)
  br label %1335

1335:                                             ; preds = %1330, %1321
  %1336 = phi i1 [ true, %1321 ], [ %1334, %1330 ]
  %1337 = zext i1 %1336 to i8
  store i8 %1337, ptr %77, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #10
  %1338 = load ptr, ptr %6, align 8, !tbaa !5
  %1339 = getelementptr inbounds %struct.ImGuiIO, ptr %1338, i32 0, i32 68
  %1340 = load i32, ptr %1339, align 8, !tbaa !56
  %1341 = load ptr, ptr %5, align 8, !tbaa !5
  %1342 = getelementptr inbounds %struct.ImPlotContext, ptr %1341, i32 0, i32 25
  %1343 = getelementptr inbounds %struct.ImPlotInputMap, ptr %1342, i32 0, i32 7
  %1344 = load i32, ptr %1343, align 4, !tbaa !159
  %1345 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %1340, i32 noundef %1344)
  br i1 %1345, label %1351, label %1346

1346:                                             ; preds = %1335
  %1347 = load ptr, ptr %3, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.ImPlotPlot, ptr %1347, i32 0, i32 6
  %1349 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %1348, i64 0, i64 3
  %1350 = call noundef zeroext i1 @_ZN6ImPlotL18AllAxesInputLockedEP10ImPlotAxisi(ptr noundef %1349, i32 noundef 3)
  br label %1351

1351:                                             ; preds = %1346, %1335
  %1352 = phi i1 [ true, %1335 ], [ %1350, %1346 ]
  %1353 = zext i1 %1352 to i8
  store i8 %1353, ptr %78, align 1, !tbaa !9
  %1354 = load i8, ptr %77, align 1, !tbaa !9, !range !27, !noundef !28
  %1355 = trunc i8 %1354 to i1
  br i1 %1355, label %1356, label %1362

1356:                                             ; preds = %1351
  %1357 = load ptr, ptr %3, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.ImPlotPlot, ptr %1357, i32 0, i32 13
  %1359 = getelementptr inbounds %struct.ImRect, ptr %1358, i32 0, i32 0
  %1360 = getelementptr inbounds %struct.ImVec2, ptr %1359, i32 0, i32 0
  %1361 = load float, ptr %1360, align 8, !tbaa !140
  br label %1372

1362:                                             ; preds = %1351
  %1363 = load ptr, ptr %3, align 8, !tbaa !5
  %1364 = getelementptr inbounds %struct.ImPlotPlot, ptr %1363, i32 0, i32 16
  %1365 = getelementptr inbounds %struct.ImVec2, ptr %1364, i32 0, i32 0
  %1366 = load float, ptr %1365, align 8, !tbaa !160
  %1367 = load ptr, ptr %6, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.ImGuiIO, ptr %1367, i32 0, i32 59
  %1369 = getelementptr inbounds %struct.ImVec2, ptr %1368, i32 0, i32 0
  %1370 = load float, ptr %1369, align 8, !tbaa !152
  %1371 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1366, float noundef %1370)
  br label %1372

1372:                                             ; preds = %1362, %1356
  %1373 = phi float [ %1361, %1356 ], [ %1371, %1362 ]
  %1374 = load ptr, ptr %3, align 8, !tbaa !5
  %1375 = getelementptr inbounds %struct.ImPlotPlot, ptr %1374, i32 0, i32 15
  %1376 = getelementptr inbounds %struct.ImRect, ptr %1375, i32 0, i32 0
  %1377 = getelementptr inbounds %struct.ImVec2, ptr %1376, i32 0, i32 0
  store float %1373, ptr %1377, align 8, !tbaa !166
  %1378 = load i8, ptr %77, align 1, !tbaa !9, !range !27, !noundef !28
  %1379 = trunc i8 %1378 to i1
  br i1 %1379, label %1380, label %1386

1380:                                             ; preds = %1372
  %1381 = load ptr, ptr %3, align 8, !tbaa !5
  %1382 = getelementptr inbounds %struct.ImPlotPlot, ptr %1381, i32 0, i32 13
  %1383 = getelementptr inbounds %struct.ImRect, ptr %1382, i32 0, i32 1
  %1384 = getelementptr inbounds %struct.ImVec2, ptr %1383, i32 0, i32 0
  %1385 = load float, ptr %1384, align 8, !tbaa !142
  br label %1396

1386:                                             ; preds = %1372
  %1387 = load ptr, ptr %3, align 8, !tbaa !5
  %1388 = getelementptr inbounds %struct.ImPlotPlot, ptr %1387, i32 0, i32 16
  %1389 = getelementptr inbounds %struct.ImVec2, ptr %1388, i32 0, i32 0
  %1390 = load float, ptr %1389, align 8, !tbaa !160
  %1391 = load ptr, ptr %6, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.ImGuiIO, ptr %1391, i32 0, i32 59
  %1393 = getelementptr inbounds %struct.ImVec2, ptr %1392, i32 0, i32 0
  %1394 = load float, ptr %1393, align 8, !tbaa !152
  %1395 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1390, float noundef %1394)
  br label %1396

1396:                                             ; preds = %1386, %1380
  %1397 = phi float [ %1385, %1380 ], [ %1395, %1386 ]
  %1398 = load ptr, ptr %3, align 8, !tbaa !5
  %1399 = getelementptr inbounds %struct.ImPlotPlot, ptr %1398, i32 0, i32 15
  %1400 = getelementptr inbounds %struct.ImRect, ptr %1399, i32 0, i32 1
  %1401 = getelementptr inbounds %struct.ImVec2, ptr %1400, i32 0, i32 0
  store float %1397, ptr %1401, align 8, !tbaa !167
  %1402 = load i8, ptr %78, align 1, !tbaa !9, !range !27, !noundef !28
  %1403 = trunc i8 %1402 to i1
  br i1 %1403, label %1404, label %1410

1404:                                             ; preds = %1396
  %1405 = load ptr, ptr %3, align 8, !tbaa !5
  %1406 = getelementptr inbounds %struct.ImPlotPlot, ptr %1405, i32 0, i32 13
  %1407 = getelementptr inbounds %struct.ImRect, ptr %1406, i32 0, i32 0
  %1408 = getelementptr inbounds %struct.ImVec2, ptr %1407, i32 0, i32 1
  %1409 = load float, ptr %1408, align 4, !tbaa !146
  br label %1420

1410:                                             ; preds = %1396
  %1411 = load ptr, ptr %3, align 8, !tbaa !5
  %1412 = getelementptr inbounds %struct.ImPlotPlot, ptr %1411, i32 0, i32 16
  %1413 = getelementptr inbounds %struct.ImVec2, ptr %1412, i32 0, i32 1
  %1414 = load float, ptr %1413, align 4, !tbaa !162
  %1415 = load ptr, ptr %6, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.ImGuiIO, ptr %1415, i32 0, i32 59
  %1417 = getelementptr inbounds %struct.ImVec2, ptr %1416, i32 0, i32 1
  %1418 = load float, ptr %1417, align 4, !tbaa !153
  %1419 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1414, float noundef %1418)
  br label %1420

1420:                                             ; preds = %1410, %1404
  %1421 = phi float [ %1409, %1404 ], [ %1419, %1410 ]
  %1422 = load ptr, ptr %3, align 8, !tbaa !5
  %1423 = getelementptr inbounds %struct.ImPlotPlot, ptr %1422, i32 0, i32 15
  %1424 = getelementptr inbounds %struct.ImRect, ptr %1423, i32 0, i32 0
  %1425 = getelementptr inbounds %struct.ImVec2, ptr %1424, i32 0, i32 1
  store float %1421, ptr %1425, align 4, !tbaa !168
  %1426 = load i8, ptr %78, align 1, !tbaa !9, !range !27, !noundef !28
  %1427 = trunc i8 %1426 to i1
  br i1 %1427, label %1428, label %1434

1428:                                             ; preds = %1420
  %1429 = load ptr, ptr %3, align 8, !tbaa !5
  %1430 = getelementptr inbounds %struct.ImPlotPlot, ptr %1429, i32 0, i32 13
  %1431 = getelementptr inbounds %struct.ImRect, ptr %1430, i32 0, i32 1
  %1432 = getelementptr inbounds %struct.ImVec2, ptr %1431, i32 0, i32 1
  %1433 = load float, ptr %1432, align 4, !tbaa !147
  br label %1444

1434:                                             ; preds = %1420
  %1435 = load ptr, ptr %3, align 8, !tbaa !5
  %1436 = getelementptr inbounds %struct.ImPlotPlot, ptr %1435, i32 0, i32 16
  %1437 = getelementptr inbounds %struct.ImVec2, ptr %1436, i32 0, i32 1
  %1438 = load float, ptr %1437, align 4, !tbaa !162
  %1439 = load ptr, ptr %6, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.ImGuiIO, ptr %1439, i32 0, i32 59
  %1441 = getelementptr inbounds %struct.ImVec2, ptr %1440, i32 0, i32 1
  %1442 = load float, ptr %1441, align 4, !tbaa !153
  %1443 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1438, float noundef %1442)
  br label %1444

1444:                                             ; preds = %1434, %1428
  %1445 = phi float [ %1433, %1428 ], [ %1443, %1434 ]
  %1446 = load ptr, ptr %3, align 8, !tbaa !5
  %1447 = getelementptr inbounds %struct.ImPlotPlot, ptr %1446, i32 0, i32 15
  %1448 = getelementptr inbounds %struct.ImRect, ptr %1447, i32 0, i32 1
  %1449 = getelementptr inbounds %struct.ImVec2, ptr %1448, i32 0, i32 1
  store float %1445, ptr %1449, align 4, !tbaa !169
  %1450 = load ptr, ptr %3, align 8, !tbaa !5
  %1451 = getelementptr inbounds %struct.ImPlotPlot, ptr %1450, i32 0, i32 13
  %1452 = getelementptr inbounds %struct.ImRect, ptr %1451, i32 0, i32 0
  %1453 = load ptr, ptr %3, align 8, !tbaa !5
  %1454 = getelementptr inbounds %struct.ImPlotPlot, ptr %1453, i32 0, i32 15
  %1455 = getelementptr inbounds %struct.ImRect, ptr %1454, i32 0, i32 0
  %1456 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZmIR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %1455, ptr noundef nonnull align 4 dereferenceable(8) %1452)
  %1457 = load ptr, ptr %3, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.ImPlotPlot, ptr %1457, i32 0, i32 13
  %1459 = getelementptr inbounds %struct.ImRect, ptr %1458, i32 0, i32 0
  %1460 = load ptr, ptr %3, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.ImPlotPlot, ptr %1460, i32 0, i32 15
  %1462 = getelementptr inbounds %struct.ImRect, ptr %1461, i32 0, i32 1
  %1463 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZmIR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %1462, ptr noundef nonnull align 4 dereferenceable(8) %1459)
  %1464 = load ptr, ptr %3, align 8, !tbaa !5
  %1465 = getelementptr inbounds %struct.ImPlotPlot, ptr %1464, i32 0, i32 25
  store i8 1, ptr %1465, align 1, !tbaa !164
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #10
  br label %1466

1466:                                             ; preds = %1444, %1316
  br label %1470

1467:                                             ; preds = %1310
  %1468 = load ptr, ptr %3, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.ImPlotPlot, ptr %1468, i32 0, i32 25
  store i8 0, ptr %1469, align 1, !tbaa !164
  br label %1470

1470:                                             ; preds = %1467, %1466
  br label %1471

1471:                                             ; preds = %1470, %1303
  br label %1472

1472:                                             ; preds = %1471, %1287
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  br label %1473

1473:                                             ; preds = %1472, %1125
  %1474 = load i8, ptr %4, align 1, !tbaa !9, !range !27, !noundef !28
  %1475 = trunc i8 %1474 to i1
  store i1 %1475, ptr %2, align 1
  store i32 1, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #10
  br label %1476

1476:                                             ; preds = %1473, %410
  call void @llvm.lifetime.end.p0(i64 3, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 3, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 3, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 3, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 3, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 3, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #10
  %1477 = load i1, ptr %2, align 1
  ret i1 %1477
}

declare noundef nonnull align 8 dereferenceable(14280) ptr @_ZN5ImGui5GetIOEv() #4

declare void @_ZN5ImGui19SetItemAllowOverlapEv() #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef, i32 noundef) #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN6ImPlotL14AnyAxesHoveredEP10ImPlotAxisi(ptr noundef, i32 noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef, i32 noundef) #5

declare <2 x float> @_ZN5ImGui17GetMouseDragDeltaEif(i32 noundef, float noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372)) #6 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372), float noundef) #6 align 2

declare void @_ZN5ImGui14SetMouseCursorEi(i32 noundef) #4

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

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

; 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: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fabs.f32(float) #2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImPlotPlot13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(2533)) #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN6ImPlotL18AllAxesInputLockedEP10ImPlotAxisi(ptr noundef, i32 noundef) #6

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

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

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

!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 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !12, i64 0}
!14 = !{!"_ZTS10ImPlotPlot", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !7, i64 24, !15, i64 2280, !17, i64 2296, !12, i64 2424, !12, i64 2428, !20, i64 2432, !20, i64 2448, !20, i64 2464, !20, i64 2480, !20, i64 2496, !21, i64 2512, !12, i64 2520, !10, i64 2524, !10, i64 2525, !10, i64 2526, !10, i64 2527, !10, i64 2528, !10, i64 2529, !10, i64 2530, !10, i64 2531, !10, i64 2532}
!15 = !{!"_ZTS15ImGuiTextBuffer", !16, i64 0}
!16 = !{!"_ZTS8ImVectorIcE", !12, i64 0, !12, i64 4, !6, i64 8}
!17 = !{!"_ZTS15ImPlotItemGroup", !12, i64 0, !18, i64 8, !23, i64 80, !12, i64 120}
!18 = !{!"_ZTS12ImPlotLegend", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !19, i64 16, !15, i64 32, !20, i64 48, !10, i64 64, !10, i64 65, !10, i64 66}
!19 = !{!"_ZTS8ImVectorIiE", !12, i64 0, !12, i64 4, !6, i64 8}
!20 = !{!"_ZTS6ImRect", !21, i64 0, !21, i64 8}
!21 = !{!"_ZTS6ImVec2", !22, i64 0, !22, i64 4}
!22 = !{!"float", !7, i64 0}
!23 = !{!"_ZTS6ImPoolI10ImPlotItemE", !24, i64 0, !25, i64 16, !12, i64 32, !12, i64 36}
!24 = !{!"_ZTS8ImVectorI10ImPlotItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!25 = !{!"_ZTS12ImGuiStorage", !26, i64 0}
!26 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !12, i64 0, !12, i64 4, !6, i64 8}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = !{!14, !12, i64 4}
!30 = !{!31, !12, i64 1476}
!31 = !{!"_ZTS13ImPlotContext", !32, i64 0, !34, i64 40, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !36, i64 120, !38, i64 176, !40, i64 216, !10, i64 256, !42, i64 260, !43, i64 776, !44, i64 792, !45, i64 808, !19, i64 976, !48, i64 992, !50, i64 1048, !50, i64 1064, !19, i64 1080, !12, i64 1096, !12, i64 1100, !51, i64 1104, !52, i64 1336, !53, i64 1464, !10, i64 1512, !15, i64 1520, !6, i64 1536, !54, i64 1544, !6, i64 1584, !6, i64 1592}
!32 = !{!"_ZTS6ImPoolI10ImPlotPlotE", !33, i64 0, !25, i64 16, !12, i64 32, !12, i64 36}
!33 = !{!"_ZTS8ImVectorI10ImPlotPlotE", !12, i64 0, !12, i64 4, !6, i64 8}
!34 = !{!"_ZTS6ImPoolI13ImPlotSubplotE", !35, i64 0, !25, i64 16, !12, i64 32, !12, i64 36}
!35 = !{!"_ZTS8ImVectorI13ImPlotSubplotE", !12, i64 0, !12, i64 4, !6, i64 8}
!36 = !{!"_ZTS12ImPlotTicker", !37, i64 0, !15, i64 16, !21, i64 32, !21, i64 40, !12, i64 48}
!37 = !{!"_ZTS8ImVectorI10ImPlotTickE", !12, i64 0, !12, i64 4, !6, i64 8}
!38 = !{!"_ZTS26ImPlotAnnotationCollection", !39, i64 0, !15, i64 16, !12, i64 32}
!39 = !{!"_ZTS8ImVectorI16ImPlotAnnotationE", !12, i64 0, !12, i64 4, !6, i64 8}
!40 = !{!"_ZTS19ImPlotTagCollection", !41, i64 0, !15, i64 16, !12, i64 32}
!41 = !{!"_ZTS8ImVectorI9ImPlotTagE", !12, i64 0, !12, i64 4, !6, i64 8}
!42 = !{!"_ZTS11ImPlotStyle", !22, i64 0, !12, i64 4, !22, i64 8, !22, i64 12, !22, i64 16, !22, i64 20, !22, i64 24, !22, i64 28, !22, i64 32, !22, i64 36, !22, i64 40, !21, i64 44, !21, i64 52, !21, i64 60, !21, i64 68, !21, i64 76, !21, i64 84, !21, i64 92, !21, i64 100, !21, i64 108, !21, i64 116, !21, i64 124, !21, i64 132, !21, i64 140, !21, i64 148, !21, i64 156, !21, i64 164, !7, i64 172, !12, i64 508, !10, i64 512, !10, i64 513, !10, i64 514}
!43 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !12, i64 0, !12, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !12, i64 0, !12, i64 4, !6, i64 8}
!45 = !{!"_ZTS18ImPlotColormapData", !46, i64 0, !19, i64 16, !19, i64 32, !46, i64 48, !19, i64 64, !19, i64 80, !15, i64 96, !19, i64 112, !47, i64 128, !25, i64 144, !12, i64 160}
!46 = !{!"_ZTS8ImVectorIjE", !12, i64 0, !12, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorIbE", !12, i64 0, !12, i64 4, !6, i64 8}
!48 = !{!"_ZTS2tm", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !49, i64 40, !6, i64 48}
!49 = !{!"long", !7, i64 0}
!50 = !{!"_ZTS8ImVectorIdE", !12, i64 0, !12, i64 4, !6, i64 8}
!51 = !{!"_ZTS18ImPlotNextPlotData", !7, i64 0, !7, i64 24, !7, i64 120, !7, i64 126, !7, i64 136, !7, i64 184}
!52 = !{!"_ZTS18ImPlotNextItemData", !7, i64 0, !22, i64 80, !12, i64 84, !22, i64 88, !22, i64 92, !22, i64 96, !22, i64 100, !22, i64 104, !22, i64 108, !22, i64 112, !10, i64 116, !10, i64 117, !10, i64 118, !10, i64 119, !10, i64 120, !10, i64 121, !12, i64 124}
!53 = !{!"_ZTS14ImPlotInputMap", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 40, !22, i64 44}
!54 = !{!"_ZTS6ImPoolI19ImPlotAlignmentDataE", !55, i64 0, !25, i64 16, !12, i64 32, !12, i64 36}
!55 = !{!"_ZTS8ImVectorI19ImPlotAlignmentDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!56 = !{!57, !12, i64 3616}
!57 = !{!"_ZTS7ImGuiIO", !12, i64 0, !12, i64 4, !21, i64 8, !22, i64 16, !22, i64 20, !6, i64 24, !6, i64 32, !22, i64 40, !22, i64 44, !22, i64 48, !22, i64 52, !22, i64 56, !22, i64 60, !22, i64 64, !6, i64 72, !6, i64 80, !22, i64 88, !10, i64 92, !6, i64 96, !21, i64 104, !10, i64 112, !10, i64 113, !10, i64 114, !10, i64 115, !10, i64 116, !10, i64 117, !10, i64 118, !10, i64 119, !22, i64 120, !10, i64 124, !10, i64 125, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !10, i64 208, !10, i64 209, !10, i64 210, !10, i64 211, !10, i64 212, !10, i64 213, !10, i64 214, !22, i64 216, !12, i64 220, !12, i64 224, !12, i64 228, !12, i64 232, !12, i64 236, !21, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !21, i64 3584, !7, i64 3592, !22, i64 3600, !22, i64 3604, !58, i64 3608, !10, i64 3612, !10, i64 3613, !10, i64 3614, !10, i64 3615, !12, i64 3616, !7, i64 3620, !10, i64 14052, !21, i64 14056, !7, i64 14064, !7, i64 14104, !7, i64 14144, !7, i64 14149, !7, i64 14154, !7, i64 14164, !7, i64 14174, !7, i64 14179, !7, i64 14184, !10, i64 14189, !7, i64 14192, !7, i64 14212, !7, i64 14232, !22, i64 14252, !10, i64 14256, !10, i64 14257, !7, i64 14258, !10, i64 14259, !59, i64 14260, !60, i64 14264}
!58 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!59 = !{!"short", !7, i64 0}
!60 = !{!"_ZTS8ImVectorItE", !12, i64 0, !12, i64 4, !6, i64 8}
!61 = !{!31, !12, i64 1484}
!62 = !{!14, !10, i64 2530}
!63 = !{i64 0, i64 4, !64, i64 4, i64 4, !64}
!64 = !{!22, !22, i64 0}
!65 = !{i64 0, i64 4, !64, i64 4, i64 4, !64, i64 8, i64 4, !64, i64 12, i64 4, !64}
!66 = !{!31, !12, i64 1472}
!67 = !{!14, !10, i64 2527}
!68 = !{!69, !10, i64 366}
!69 = !{!"_ZTS10ImPlotAxis", !12, i64 0, !12, i64 4, !12, i64 8, !70, i64 16, !12, i64 32, !12, i64 36, !70, i64 40, !6, i64 56, !70, i64 64, !70, i64 80, !36, i64 96, !6, i64 152, !6, i64 160, !7, i64 168, !6, i64 184, !6, i64 192, !6, i64 200, !12, i64 208, !72, i64 216, !72, i64 232, !6, i64 248, !6, i64 256, !6, i64 264, !22, i64 272, !22, i64 276, !71, i64 280, !71, i64 288, !71, i64 296, !22, i64 304, !22, i64 308, !20, i64 312, !12, i64 328, !12, i64 332, !12, i64 336, !12, i64 340, !12, i64 344, !12, i64 348, !12, i64 352, !12, i64 356, !12, i64 360, !10, i64 364, !10, i64 365, !10, i64 366, !10, i64 367, !10, i64 368, !10, i64 369, !10, i64 370, !10, i64 371}
!70 = !{!"_ZTS11ImPlotRange", !71, i64 0, !71, i64 8}
!71 = !{!"double", !7, i64 0}
!72 = !{!"_ZTS10ImPlotTime", !49, i64 0, !12, i64 8}
!73 = distinct !{!73, !74}
!74 = !{!"llvm.loop.mustprogress"}
!75 = !{!31, !12, i64 1464}
!76 = !{!31, !12, i64 1468}
!77 = !{!14, !10, i64 2529}
!78 = !{!69, !10, i64 364}
!79 = !{!69, !12, i64 0}
!80 = !{!69, !10, i64 371}
!81 = !{!69, !10, i64 370}
!82 = !{!14, !10, i64 2528}
!83 = distinct !{!83, !74}
!84 = distinct !{!84, !74}
!85 = !{!86, !10, i64 19028}
!86 = !{!"_ZTS12ImGuiContext", !10, i64 0, !10, i64 1, !57, i64 8, !87, i64 14288, !6, i64 15360, !22, i64 15368, !22, i64 15372, !88, i64 15376, !71, i64 15904, !12, i64 15912, !12, i64 15916, !12, i64 15920, !10, i64 15924, !10, i64 15925, !10, i64 15926, !10, i64 15927, !10, i64 15928, !6, i64 15936, !91, i64 15944, !91, i64 15960, !58, i64 15976, !12, i64 15980, !92, i64 15984, !92, i64 16000, !92, i64 16016, !93, i64 16032, !25, i64 16048, !12, i64 16064, !21, i64 16068, !6, i64 16080, !6, i64 16088, !6, i64 16096, !6, i64 16104, !6, i64 16112, !21, i64 16120, !12, i64 16128, !22, i64 16132, !21, i64 16136, !21, i64 16144, !12, i64 16152, !12, i64 16156, !12, i64 16160, !10, i64 16164, !10, i64 16165, !22, i64 16168, !22, i64 16172, !12, i64 16176, !12, i64 16180, !22, i64 16184, !10, i64 16188, !10, i64 16189, !10, i64 16190, !10, i64 16191, !10, i64 16192, !10, i64 16193, !21, i64 16196, !6, i64 16208, !94, i64 16216, !12, i64 16220, !12, i64 16224, !10, i64 16228, !10, i64 16229, !6, i64 16232, !12, i64 16240, !22, i64 16244, !7, i64 16248, !95, i64 17928, !12, i64 18240, !10, i64 18244, !12, i64 18248, !12, i64 18252, !12, i64 18256, !12, i64 18260, !97, i64 18264, !98, i64 18284, !99, i64 18344, !43, i64 18456, !44, i64 18472, !100, i64 18488, !46, i64 18504, !19, i64 18520, !101, i64 18536, !102, i64 18552, !102, i64 18568, !12, i64 18584, !103, i64 18592, !6, i64 18608, !12, i64 18616, !12, i64 18620, !12, i64 18624, !12, i64 18628, !12, i64 18632, !12, i64 18636, !12, i64 18640, !12, i64 18644, !12, i64 18648, !12, i64 18652, !12, i64 18656, !94, i64 18660, !104, i64 18664, !10, i64 18668, !10, i64 18669, !10, i64 18670, !10, i64 18671, !10, i64 18672, !10, i64 18673, !10, i64 18674, !12, i64 18676, !20, i64 18680, !10, i64 18696, !10, i64 18697, !10, i64 18698, !12, i64 18700, !12, i64 18704, !12, i64 18708, !12, i64 18712, !12, i64 18716, !12, i64 18720, !20, i64 18724, !20, i64 18740, !12, i64 18756, !12, i64 18760, !12, i64 18764, !105, i64 18768, !105, i64 18816, !105, i64 18864, !105, i64 18912, !12, i64 18960, !12, i64 18964, !6, i64 18968, !6, i64 18976, !6, i64 18984, !22, i64 18992, !22, i64 18996, !10, i64 19000, !21, i64 19004, !21, i64 19012, !22, i64 19020, !12, i64 19024, !10, i64 19028, !10, i64 19029, !10, i64 19030, !12, i64 19032, !12, i64 19036, !12, i64 19040, !106, i64 19048, !20, i64 19112, !12, i64 19128, !12, i64 19132, !22, i64 19136, !12, i64 19140, !12, i64 19144, !12, i64 19148, !12, i64 19152, !107, i64 19160, !7, i64 19176, !12, i64 19192, !108, i64 19200, !6, i64 19216, !12, i64 19224, !109, i64 19232, !110, i64 19248, !112, i64 19288, !113, i64 19304, !6, i64 19320, !114, i64 19328, !116, i64 19368, !117, i64 19384, !12, i64 19400, !12, i64 19404, !22, i64 19408, !22, i64 19412, !21, i64 19416, !118, i64 19424, !121, i64 23152, !122, i64 23176, !12, i64 23296, !12, i64 23300, !12, i64 23304, !12, i64 23308, !22, i64 23312, !22, i64 23316, !12, i64 23320, !89, i64 23324, !124, i64 23340, !22, i64 23388, !22, i64 23392, !10, i64 23396, !10, i64 23397, !22, i64 23400, !22, i64 23404, !22, i64 23408, !22, i64 23412, !59, i64 23416, !59, i64 23418, !16, i64 23424, !46, i64 23440, !125, i64 23456, !125, i64 23472, !7, i64 23488, !10, i64 23489, !22, i64 23492, !15, i64 23496, !126, i64 23512, !127, i64 23528, !128, i64 23544, !129, i64 23560, !12, i64 23576, !7, i64 23584, !10, i64 23640, !130, i64 23644, !6, i64 23648, !15, i64 23656, !6, i64 23672, !6, i64 23680, !22, i64 23688, !10, i64 23692, !12, i64 23696, !12, i64 23700, !12, i64 23704, !12, i64 23708, !15, i64 23712, !131, i64 23728, !7, i64 23752, !7, i64 23753, !7, i64 23754, !10, i64 23755, !7, i64 23756, !12, i64 23760, !132, i64 23764, !133, i64 23784, !7, i64 23824, !12, i64 24064, !12, i64 24068, !22, i64 24072, !12, i64 24076, !12, i64 24080, !12, i64 24084, !16, i64 24088}
!87 = !{!"_ZTS10ImGuiStyle", !22, i64 0, !22, i64 4, !21, i64 8, !22, i64 16, !22, i64 20, !21, i64 24, !21, i64 32, !12, i64 40, !22, i64 44, !22, i64 48, !22, i64 52, !22, i64 56, !21, i64 60, !22, i64 68, !22, i64 72, !21, i64 76, !21, i64 84, !21, i64 92, !21, i64 100, !22, i64 108, !22, i64 112, !22, i64 116, !22, i64 120, !22, i64 124, !22, i64 128, !22, i64 132, !22, i64 136, !22, i64 140, !22, i64 144, !12, i64 148, !21, i64 152, !21, i64 160, !22, i64 168, !21, i64 172, !21, i64 180, !21, i64 188, !21, i64 196, !22, i64 204, !10, i64 208, !10, i64 209, !10, i64 210, !22, i64 212, !22, i64 216, !7, i64 220}
!88 = !{!"_ZTS20ImDrawListSharedData", !21, i64 0, !6, i64 8, !22, i64 16, !22, i64 20, !22, i64 24, !89, i64 28, !12, i64 44, !90, i64 48, !7, i64 64, !22, i64 448, !7, i64 452, !6, i64 520}
!89 = !{!"_ZTS6ImVec4", !22, i64 0, !22, i64 4, !22, i64 8, !22, i64 12}
!90 = !{!"_ZTS8ImVectorI6ImVec2E", !12, i64 0, !12, i64 4, !6, i64 8}
!91 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !12, i64 0, !12, i64 4, !6, i64 8}
!92 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !12, i64 0, !12, i64 4, !6, i64 8}
!93 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!94 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!95 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !96, i64 280, !96, i64 296}
!96 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!97 = !{!"_ZTS17ImGuiNextItemData", !12, i64 0, !22, i64 4, !12, i64 8, !12, i64 12, !10, i64 16}
!98 = !{!"_ZTS17ImGuiLastItemData", !12, i64 0, !12, i64 4, !12, i64 8, !20, i64 12, !20, i64 28, !20, i64 44}
!99 = !{!"_ZTS19ImGuiNextWindowData", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !21, i64 16, !21, i64 24, !21, i64 32, !21, i64 40, !21, i64 48, !10, i64 56, !20, i64 60, !6, i64 80, !6, i64 88, !22, i64 96, !21, i64 100}
!100 = !{!"_ZTS8ImVectorIP6ImFontE", !12, i64 0, !12, i64 4, !6, i64 8}
!101 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!102 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!103 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !12, i64 0, !12, i64 4, !6, i64 8}
!104 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!105 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !12, i64 8, !12, i64 12, !20, i64 16, !12, i64 32, !22, i64 36, !22, i64 40, !22, i64 44}
!106 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !7, i64 24, !10, i64 57, !10, i64 58}
!107 = !{!"_ZTS8ImVectorIhE", !12, i64 0, !12, i64 4, !6, i64 8}
!108 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!109 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !12, i64 0, !12, i64 4, !6, i64 8}
!110 = !{!"_ZTS6ImPoolI10ImGuiTableE", !111, i64 0, !25, i64 16, !12, i64 32, !12, i64 36}
!111 = !{!"_ZTS8ImVectorI10ImGuiTableE", !12, i64 0, !12, i64 4, !6, i64 8}
!112 = !{!"_ZTS8ImVectorIfE", !12, i64 0, !12, i64 4, !6, i64 8}
!113 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !12, i64 0, !12, i64 4, !6, i64 8}
!114 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !115, i64 0, !25, i64 16, !12, i64 32, !12, i64 36}
!115 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !12, i64 0, !12, i64 4, !6, i64 8}
!116 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !12, i64 0, !12, i64 4, !6, i64 8}
!117 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !12, i64 0, !12, i64 4, !6, i64 8}
!118 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !60, i64 24, !16, i64 40, !16, i64 56, !10, i64 72, !12, i64 76, !22, i64 80, !119, i64 84, !22, i64 3712, !10, i64 3716, !10, i64 3717, !10, i64 3718, !12, i64 3720}
!119 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !12, i64 0, !12, i64 4, !12, i64 8, !7, i64 12, !12, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !22, i64 28, !120, i64 32}
!120 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !59, i64 3582, !59, i64 3584, !12, i64 3588, !12, i64 3592}
!121 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !12, i64 0, !16, i64 8}
!122 = !{!"_ZTS6ImFont", !112, i64 0, !22, i64 16, !22, i64 20, !60, i64 24, !123, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !59, i64 80, !59, i64 82, !59, i64 84, !59, i64 86, !22, i64 88, !22, i64 92, !10, i64 96, !22, i64 100, !22, i64 104, !22, i64 108, !12, i64 112, !7, i64 116}
!123 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !12, i64 0, !12, i64 4, !6, i64 8}
!124 = !{!"_ZTS21ImGuiComboPreviewData", !20, i64 0, !21, i64 16, !21, i64 24, !21, i64 32, !22, i64 40, !12, i64 44}
!125 = !{!"_ZTS20ImGuiPlatformImeData", !10, i64 0, !21, i64 4, !22, i64 12}
!126 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !12, i64 0, !12, i64 4, !6, i64 8}
!127 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !16, i64 0}
!128 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !16, i64 0}
!129 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !12, i64 0, !12, i64 4, !6, i64 8}
!130 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!131 = !{!"_ZTS14ImGuiTextIndex", !19, i64 0, !12, i64 16}
!132 = !{!"_ZTS18ImGuiMetricsConfig", !10, i64 0, !10, i64 1, !10, i64 2, !10, i64 3, !10, i64 4, !10, i64 5, !10, i64 6, !10, i64 7, !12, i64 8, !12, i64 12}
!133 = !{!"_ZTS14ImGuiStackTool", !12, i64 0, !12, i64 4, !12, i64 8, !134, i64 16, !10, i64 32, !22, i64 36}
!134 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !12, i64 0, !12, i64 4, !6, i64 8}
!135 = !{!31, !12, i64 1500}
!136 = !{!31, !12, i64 1496}
!137 = !{!14, !10, i64 2532}
!138 = !{!31, !10, i64 1512}
!139 = !{!57, !22, i64 240}
!140 = !{!14, !22, i64 2464}
!141 = !{!71, !71, i64 0}
!142 = !{!14, !22, i64 2472}
!143 = !{!69, !6, i64 56}
!144 = distinct !{!144, !74}
!145 = !{!57, !22, i64 244}
!146 = !{!14, !22, i64 2468}
!147 = !{!14, !22, i64 2476}
!148 = distinct !{!148, !74}
!149 = !{!57, !22, i64 3600}
!150 = !{!31, !12, i64 1504}
!151 = !{!31, !22, i64 1508}
!152 = !{!57, !22, i64 3584}
!153 = !{!57, !22, i64 3588}
!154 = !{!21, !22, i64 0}
!155 = distinct !{!155, !74}
!156 = !{!21, !22, i64 4}
!157 = distinct !{!157, !74}
!158 = !{!31, !12, i64 1488}
!159 = !{!31, !12, i64 1492}
!160 = !{!14, !22, i64 2512}
!161 = distinct !{!161, !74}
!162 = !{!14, !22, i64 2516}
!163 = distinct !{!163, !74}
!164 = !{!14, !10, i64 2531}
!165 = !{!31, !12, i64 1480}
!166 = !{!14, !22, i64 2496}
!167 = !{!14, !22, i64 2504}
!168 = !{!14, !22, i64 2500}
!169 = !{!14, !22, i64 2508}


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

@GImPlot = external dso_local local_unnamed_addr global ptr, align 8
@GImGui = external local_unnamed_addr global ptr, align 8
@switch.table._ZN6ImPlot11UpdateInputER10ImPlotPlot = private unnamed_addr constant [5 x i32] [i32 8, i32 2, i32 4, i32 2, i32 3], align 4

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

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

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

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

declare void @_ZN5ImGui11KeepAliveIDEj(i32 noundef) local_unnamed_addr #3

declare noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef double @_ZL5ImMinIdET_S0_S0_(double noundef, double noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef, double noundef) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372), double noundef) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372)) local_unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533), i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533), i32 noundef) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN6ImPlot11UpdateInputER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533) %0) local_unnamed_addr #6 {
  %2 = alloca %struct.ImRect, align 4
  %3 = alloca %struct.ImVec2, align 8
  %4 = alloca %struct.ImVec2, align 8
  %5 = alloca %struct.ImVec2, align 8
  %6 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %7 = tail call noundef nonnull align 8 dereferenceable(14280) ptr @_ZN5ImGui5GetIOEv()
  %8 = getelementptr inbounds i8, ptr %0, i64 2464
  %9 = load i32, ptr %0, align 8, !tbaa !9
  %10 = getelementptr inbounds i8, ptr %0, i64 2528
  %11 = getelementptr inbounds i8, ptr %0, i64 2529
  %12 = tail call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %8, i32 noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %11, i32 noundef 4375)
  tail call void @_ZN5ImGui19SetItemAllowOverlapEv()
  br i1 %12, label %13, label %.loopexit401

13:                                               ; preds = %1
  %14 = getelementptr inbounds i8, ptr %0, i64 4
  %15 = load i32, ptr %14, align 4, !tbaa !25
  %16 = tail call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %15, i32 noundef 32)
  br i1 %16, label %37, label %17

17:                                               ; preds = %13
  %18 = getelementptr inbounds i8, ptr %7, i64 14144
  %19 = getelementptr inbounds i8, ptr %6, i64 1476
  %20 = load i32, ptr %19, align 4, !tbaa !26
  %21 = sext i32 %20 to i64
  %22 = getelementptr inbounds [5 x i8], ptr %18, i64 0, i64 %21
  %23 = load i8, ptr %22, align 1, !tbaa !52, !range !53, !noundef !54
  %24 = trunc nuw i8 %23 to i1
  br i1 %24, label %25, label %37

25:                                               ; preds = %17
  %26 = getelementptr inbounds i8, ptr %7, i64 3616
  %27 = load i32, ptr %26, align 8, !tbaa !55
  %28 = getelementptr inbounds i8, ptr %6, i64 1484
  %29 = load i32, ptr %28, align 4, !tbaa !60
  %30 = tail call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %27, i32 noundef %29)
  br i1 %30, label %31, label %37

31:                                               ; preds = %25
  %32 = getelementptr inbounds i8, ptr %0, i64 2530
  store i8 1, ptr %32, align 2, !tbaa !61
  %33 = getelementptr inbounds i8, ptr %7, i64 3584
  %34 = getelementptr inbounds i8, ptr %0, i64 2512
  %35 = load i64, ptr %33, align 8
  store i64 %35, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #10
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %2, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %36 = getelementptr inbounds i8, ptr %0, i64 2496
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 4 dereferenceable(16) %2, i64 16, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #10
  br label %37

37:                                               ; preds = %31, %25, %17, %13
  %38 = getelementptr inbounds i8, ptr %7, i64 14149
  %39 = getelementptr inbounds i8, ptr %6, i64 1472
  %40 = load i32, ptr %39, align 8, !tbaa !64
  %41 = sext i32 %40 to i64
  %42 = getelementptr inbounds [5 x i8], ptr %38, i64 0, i64 %41
  %43 = load i8, ptr %42, align 1, !tbaa !52, !range !53, !noundef !54
  %44 = trunc nuw i8 %43 to i1
  br i1 %44, label %.loopexit401.loopexit, label %.loopexit401

.loopexit401.loopexit:                            ; preds = %37
  %45 = getelementptr inbounds i8, ptr %0, i64 2527
  store i8 1, ptr %45, align 1, !tbaa !65
  %46 = getelementptr inbounds i8, ptr %0, i64 390
  store i8 1, ptr %46, align 2, !tbaa !66
  %47 = getelementptr inbounds i8, ptr %0, i64 766
  store i8 1, ptr %47, align 2, !tbaa !66
  %48 = getelementptr inbounds i8, ptr %0, i64 1142
  store i8 1, ptr %48, align 2, !tbaa !66
  %49 = getelementptr inbounds i8, ptr %0, i64 1518
  store i8 1, ptr %49, align 2, !tbaa !66
  %50 = getelementptr inbounds i8, ptr %0, i64 1894
  store i8 1, ptr %50, align 2, !tbaa !66
  %51 = getelementptr inbounds i8, ptr %0, i64 2270
  store i8 1, ptr %51, align 2, !tbaa !66
  br label %.loopexit401

.loopexit401:                                     ; preds = %.loopexit401.loopexit, %37, %1
  %52 = getelementptr inbounds i8, ptr %7, i64 3592
  %53 = getelementptr inbounds i8, ptr %6, i64 1464
  %54 = load i32, ptr %53, align 8, !tbaa !71
  %55 = sext i32 %54 to i64
  %56 = getelementptr inbounds [5 x i8], ptr %52, i64 0, i64 %55
  %57 = load i8, ptr %56, align 1, !tbaa !52, !range !53, !noundef !54
  %58 = trunc nuw i8 %57 to i1
  br i1 %58, label %59, label %65

59:                                               ; preds = %.loopexit401
  %60 = getelementptr inbounds i8, ptr %7, i64 3616
  %61 = load i32, ptr %60, align 8, !tbaa !55
  %62 = getelementptr inbounds i8, ptr %6, i64 1468
  %63 = load i32, ptr %62, align 4, !tbaa !72
  %64 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %61, i32 noundef %63)
  br label %65

65:                                               ; preds = %59, %.loopexit401
  %66 = phi i1 [ false, %.loopexit401 ], [ %64, %59 ]
  %67 = load i8, ptr %11, align 1, !tbaa !73, !range !53, !noundef !54
  %68 = trunc nuw i8 %67 to i1
  %69 = and i1 %66, %68
  %70 = zext i1 %69 to i8
  store i8 %70, ptr %11, align 1, !tbaa !73
  %71 = getelementptr inbounds i8, ptr %7, i64 14149
  %72 = getelementptr inbounds i8, ptr %6, i64 1472
  %73 = getelementptr inbounds i8, ptr %0, i64 2527
  %74 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 0)
  %75 = getelementptr inbounds i8, ptr %74, i64 364
  %76 = load i8, ptr %75, align 4, !tbaa !74, !range !53, !noundef !54
  %77 = trunc nuw i8 %76 to i1
  br i1 %77, label %78, label %103

78:                                               ; preds = %65
  %79 = load i32, ptr %74, align 8, !tbaa !75
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %79)
  %80 = getelementptr inbounds i8, ptr %74, i64 312
  %81 = load i32, ptr %74, align 8, !tbaa !75
  %82 = getelementptr inbounds i8, ptr %74, i64 370
  %83 = getelementptr inbounds i8, ptr %74, i64 371
  %84 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %80, i32 noundef %81, ptr noundef nonnull %82, ptr noundef nonnull %83, i32 noundef 6423)
  br i1 %84, label %85, label %93

85:                                               ; preds = %78
  %86 = load i32, ptr %72, align 8, !tbaa !64
  %87 = sext i32 %86 to i64
  %88 = getelementptr inbounds [5 x i8], ptr %71, i64 0, i64 %87
  %89 = load i8, ptr %88, align 1, !tbaa !52, !range !53, !noundef !54
  %90 = trunc nuw i8 %89 to i1
  br i1 %90, label %91, label %93

91:                                               ; preds = %85
  %92 = getelementptr inbounds i8, ptr %74, i64 366
  store i8 1, ptr %92, align 2, !tbaa !66
  store i8 1, ptr %73, align 1, !tbaa !65
  br label %93

93:                                               ; preds = %91, %85, %78
  %94 = load i8, ptr %83, align 1, !tbaa !76, !range !53, !noundef !54
  %95 = trunc nuw i8 %94 to i1
  %96 = and i1 %66, %95
  %97 = zext i1 %96 to i8
  store i8 %97, ptr %83, align 1, !tbaa !76
  %98 = load i8, ptr %82, align 2, !tbaa !77, !range !53, !noundef !54
  %99 = trunc nuw i8 %98 to i1
  %100 = load i8, ptr %10, align 8, !range !53
  %spec.select = select i1 %99, i8 1, i8 %100
  %101 = load i8, ptr %11, align 1, !range !53
  %102 = select i1 %96, i8 1, i8 %101
  br label %103

103:                                              ; preds = %93, %65
  %.sroa.0430.0 = phi i8 [ %102, %93 ], [ 0, %65 ]
  %.sroa.0427.0 = phi i8 [ %spec.select, %93 ], [ 0, %65 ]
  %104 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 1)
  %105 = getelementptr inbounds i8, ptr %104, i64 364
  %106 = load i8, ptr %105, align 4, !tbaa !74, !range !53, !noundef !54
  %107 = trunc nuw i8 %106 to i1
  br i1 %107, label %108, label %133

108:                                              ; preds = %103
  %109 = load i32, ptr %104, align 8, !tbaa !75
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %109)
  %110 = getelementptr inbounds i8, ptr %104, i64 312
  %111 = load i32, ptr %104, align 8, !tbaa !75
  %112 = getelementptr inbounds i8, ptr %104, i64 370
  %113 = getelementptr inbounds i8, ptr %104, i64 371
  %114 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %110, i32 noundef %111, ptr noundef nonnull %112, ptr noundef nonnull %113, i32 noundef 6423)
  br i1 %114, label %115, label %123

115:                                              ; preds = %108
  %116 = load i32, ptr %72, align 8, !tbaa !64
  %117 = sext i32 %116 to i64
  %118 = getelementptr inbounds [5 x i8], ptr %71, i64 0, i64 %117
  %119 = load i8, ptr %118, align 1, !tbaa !52, !range !53, !noundef !54
  %120 = trunc nuw i8 %119 to i1
  br i1 %120, label %121, label %123

121:                                              ; preds = %115
  %122 = getelementptr inbounds i8, ptr %104, i64 366
  store i8 1, ptr %122, align 2, !tbaa !66
  store i8 1, ptr %73, align 1, !tbaa !65
  br label %123

123:                                              ; preds = %121, %115, %108
  %124 = load i8, ptr %113, align 1, !tbaa !76, !range !53, !noundef !54
  %125 = trunc nuw i8 %124 to i1
  %126 = and i1 %66, %125
  %127 = zext i1 %126 to i8
  store i8 %127, ptr %113, align 1, !tbaa !76
  %128 = load i8, ptr %112, align 2, !tbaa !77, !range !53, !noundef !54
  %129 = trunc nuw i8 %128 to i1
  %130 = load i8, ptr %10, align 8, !range !53
  %spec.select.1 = select i1 %129, i8 1, i8 %130
  %131 = load i8, ptr %11, align 1, !range !53
  %132 = select i1 %126, i8 1, i8 %131
  br label %133

133:                                              ; preds = %123, %103
  %.sroa.5431.0 = phi i8 [ %132, %123 ], [ 0, %103 ]
  %.sroa.5428.0 = phi i8 [ %spec.select.1, %123 ], [ 0, %103 ]
  %134 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 2)
  %135 = getelementptr inbounds i8, ptr %134, i64 364
  %136 = load i8, ptr %135, align 4, !tbaa !74, !range !53, !noundef !54
  %137 = trunc nuw i8 %136 to i1
  br i1 %137, label %138, label %.preheader400

138:                                              ; preds = %133
  %139 = load i32, ptr %134, align 8, !tbaa !75
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %139)
  %140 = getelementptr inbounds i8, ptr %134, i64 312
  %141 = load i32, ptr %134, align 8, !tbaa !75
  %142 = getelementptr inbounds i8, ptr %134, i64 370
  %143 = getelementptr inbounds i8, ptr %134, i64 371
  %144 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %140, i32 noundef %141, ptr noundef nonnull %142, ptr noundef nonnull %143, i32 noundef 6423)
  br i1 %144, label %145, label %153

145:                                              ; preds = %138
  %146 = load i32, ptr %72, align 8, !tbaa !64
  %147 = sext i32 %146 to i64
  %148 = getelementptr inbounds [5 x i8], ptr %71, i64 0, i64 %147
  %149 = load i8, ptr %148, align 1, !tbaa !52, !range !53, !noundef !54
  %150 = trunc nuw i8 %149 to i1
  br i1 %150, label %151, label %153

151:                                              ; preds = %145
  %152 = getelementptr inbounds i8, ptr %134, i64 366
  store i8 1, ptr %152, align 2, !tbaa !66
  store i8 1, ptr %73, align 1, !tbaa !65
  br label %153

153:                                              ; preds = %151, %145, %138
  %154 = load i8, ptr %143, align 1, !tbaa !76, !range !53, !noundef !54
  %155 = trunc nuw i8 %154 to i1
  %156 = and i1 %66, %155
  %157 = zext i1 %156 to i8
  store i8 %157, ptr %143, align 1, !tbaa !76
  %158 = load i8, ptr %142, align 2, !tbaa !77, !range !53, !noundef !54
  %159 = trunc nuw i8 %158 to i1
  %160 = load i8, ptr %10, align 8, !range !53
  %spec.select.2 = select i1 %159, i8 1, i8 %160
  %161 = load i8, ptr %11, align 1, !range !53
  %162 = select i1 %156, i8 1, i8 %161
  br label %.preheader400

.preheader400:                                    ; preds = %153, %133
  %.sroa.7432.0 = phi i8 [ %162, %153 ], [ 0, %133 ]
  %.sroa.7429.0 = phi i8 [ %spec.select.2, %153 ], [ 0, %133 ]
  %163 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 0)
  %164 = getelementptr inbounds i8, ptr %163, i64 364
  %165 = load i8, ptr %164, align 4, !tbaa !74, !range !53, !noundef !54
  %166 = trunc nuw i8 %165 to i1
  br i1 %166, label %167, label %192

167:                                              ; preds = %.preheader400
  %168 = load i32, ptr %163, align 8, !tbaa !75
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %168)
  %169 = getelementptr inbounds i8, ptr %163, i64 312
  %170 = load i32, ptr %163, align 8, !tbaa !75
  %171 = getelementptr inbounds i8, ptr %163, i64 370
  %172 = getelementptr inbounds i8, ptr %163, i64 371
  %173 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %169, i32 noundef %170, ptr noundef nonnull %171, ptr noundef nonnull %172, i32 noundef 6423)
  br i1 %173, label %174, label %182

174:                                              ; preds = %167
  %175 = load i32, ptr %72, align 8, !tbaa !64
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds [5 x i8], ptr %71, i64 0, i64 %176
  %178 = load i8, ptr %177, align 1, !tbaa !52, !range !53, !noundef !54
  %179 = trunc nuw i8 %178 to i1
  br i1 %179, label %180, label %182

180:                                              ; preds = %174
  %181 = getelementptr inbounds i8, ptr %163, i64 366
  store i8 1, ptr %181, align 2, !tbaa !66
  store i8 1, ptr %73, align 1, !tbaa !65
  br label %182

182:                                              ; preds = %180, %174, %167
  %183 = load i8, ptr %172, align 1, !tbaa !76, !range !53, !noundef !54
  %184 = trunc nuw i8 %183 to i1
  %185 = and i1 %66, %184
  %186 = zext i1 %185 to i8
  store i8 %186, ptr %172, align 1, !tbaa !76
  %187 = load i8, ptr %171, align 2, !tbaa !77, !range !53, !noundef !54
  %188 = trunc nuw i8 %187 to i1
  %189 = load i8, ptr %10, align 8, !range !53
  %spec.select387 = select i1 %188, i8 1, i8 %189
  %190 = load i8, ptr %11, align 1, !range !53
  %191 = select i1 %185, i8 1, i8 %190
  br label %192

192:                                              ; preds = %182, %.preheader400
  %.sroa.0424.0 = phi i8 [ %191, %182 ], [ 0, %.preheader400 ]
  %.sroa.0.0 = phi i8 [ %spec.select387, %182 ], [ 0, %.preheader400 ]
  %193 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 1)
  %194 = getelementptr inbounds i8, ptr %193, i64 364
  %195 = load i8, ptr %194, align 4, !tbaa !74, !range !53, !noundef !54
  %196 = trunc nuw i8 %195 to i1
  br i1 %196, label %197, label %222

197:                                              ; preds = %192
  %198 = load i32, ptr %193, align 8, !tbaa !75
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %198)
  %199 = getelementptr inbounds i8, ptr %193, i64 312
  %200 = load i32, ptr %193, align 8, !tbaa !75
  %201 = getelementptr inbounds i8, ptr %193, i64 370
  %202 = getelementptr inbounds i8, ptr %193, i64 371
  %203 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %199, i32 noundef %200, ptr noundef nonnull %201, ptr noundef nonnull %202, i32 noundef 6423)
  br i1 %203, label %204, label %212

204:                                              ; preds = %197
  %205 = load i32, ptr %72, align 8, !tbaa !64
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds [5 x i8], ptr %71, i64 0, i64 %206
  %208 = load i8, ptr %207, align 1, !tbaa !52, !range !53, !noundef !54
  %209 = trunc nuw i8 %208 to i1
  br i1 %209, label %210, label %212

210:                                              ; preds = %204
  %211 = getelementptr inbounds i8, ptr %193, i64 366
  store i8 1, ptr %211, align 2, !tbaa !66
  store i8 1, ptr %73, align 1, !tbaa !65
  br label %212

212:                                              ; preds = %210, %204, %197
  %213 = load i8, ptr %202, align 1, !tbaa !76, !range !53, !noundef !54
  %214 = trunc nuw i8 %213 to i1
  %215 = and i1 %66, %214
  %216 = zext i1 %215 to i8
  store i8 %216, ptr %202, align 1, !tbaa !76
  %217 = load i8, ptr %201, align 2, !tbaa !77, !range !53, !noundef !54
  %218 = trunc nuw i8 %217 to i1
  %219 = load i8, ptr %10, align 8, !range !53
  %spec.select387.1 = select i1 %218, i8 1, i8 %219
  %220 = load i8, ptr %11, align 1, !range !53
  %221 = select i1 %215, i8 1, i8 %220
  br label %222

222:                                              ; preds = %212, %192
  %.sroa.5425.0 = phi i8 [ %221, %212 ], [ 0, %192 ]
  %.sroa.5.0 = phi i8 [ %spec.select387.1, %212 ], [ 0, %192 ]
  %223 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 2)
  %224 = getelementptr inbounds i8, ptr %223, i64 364
  %225 = load i8, ptr %224, align 4, !tbaa !74, !range !53, !noundef !54
  %226 = trunc nuw i8 %225 to i1
  br i1 %226, label %227, label %252

227:                                              ; preds = %222
  %228 = load i32, ptr %223, align 8, !tbaa !75
  call void @_ZN5ImGui11KeepAliveIDEj(i32 noundef %228)
  %229 = getelementptr inbounds i8, ptr %223, i64 312
  %230 = load i32, ptr %223, align 8, !tbaa !75
  %231 = getelementptr inbounds i8, ptr %223, i64 370
  %232 = getelementptr inbounds i8, ptr %223, i64 371
  %233 = call noundef zeroext i1 @_ZN5ImGui14ButtonBehaviorERK6ImRectjPbS3_i(ptr noundef nonnull align 4 dereferenceable(16) %229, i32 noundef %230, ptr noundef nonnull %231, ptr noundef nonnull %232, i32 noundef 6423)
  br i1 %233, label %234, label %242

234:                                              ; preds = %227
  %235 = load i32, ptr %72, align 8, !tbaa !64
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds [5 x i8], ptr %71, i64 0, i64 %236
  %238 = load i8, ptr %237, align 1, !tbaa !52, !range !53, !noundef !54
  %239 = trunc nuw i8 %238 to i1
  br i1 %239, label %240, label %242

240:                                              ; preds = %234
  %241 = getelementptr inbounds i8, ptr %223, i64 366
  store i8 1, ptr %241, align 2, !tbaa !66
  store i8 1, ptr %73, align 1, !tbaa !65
  br label %242

242:                                              ; preds = %240, %234, %227
  %243 = load i8, ptr %232, align 1, !tbaa !76, !range !53, !noundef !54
  %244 = trunc nuw i8 %243 to i1
  %245 = and i1 %66, %244
  %246 = zext i1 %245 to i8
  store i8 %246, ptr %232, align 1, !tbaa !76
  %247 = load i8, ptr %231, align 2, !tbaa !77, !range !53, !noundef !54
  %248 = trunc nuw i8 %247 to i1
  %249 = load i8, ptr %10, align 8, !range !53
  %spec.select387.2 = select i1 %248, i8 1, i8 %249
  %250 = load i8, ptr %11, align 1, !range !53
  %251 = select i1 %245, i8 1, i8 %250
  br label %252

252:                                              ; preds = %242, %222
  %.sroa.7426.0 = phi i8 [ %251, %242 ], [ 0, %222 ]
  %.sroa.7.0 = phi i8 [ %spec.select387.2, %242 ], [ 0, %222 ]
  %253 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %254 = getelementptr inbounds i8, ptr %253, i64 19028
  %255 = load i8, ptr %254, align 4, !tbaa !78, !range !53, !noundef !54
  %256 = trunc nuw i8 %255 to i1
  br i1 %256, label %989, label %257

257:                                              ; preds = %252
  %258 = getelementptr inbounds i8, ptr %7, i64 3616
  %259 = load i32, ptr %258, align 8, !tbaa !55
  %260 = getelementptr inbounds i8, ptr %6, i64 1500
  %261 = load i32, ptr %260, align 4, !tbaa !128
  %262 = icmp ne i32 %259, %261
  %.not = icmp eq i32 %261, 0
  %or.cond = or i1 %262, %.not
  br i1 %or.cond, label %263, label %989

263:                                              ; preds = %257
  %264 = getelementptr inbounds i8, ptr %0, i64 4
  %265 = load i32, ptr %264, align 4, !tbaa !25
  %266 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %265, i32 noundef 256)
  %267 = load i8, ptr %10, align 8, !tbaa !129, !range !53, !noundef !54
  %268 = trunc nuw i8 %267 to i1
  br i1 %268, label %272, label %269

269:                                              ; preds = %263
  %270 = getelementptr inbounds i8, ptr %0, i64 24
  %271 = call noundef zeroext i1 @_ZN6ImPlotL14AnyAxesHoveredEP10ImPlotAxisi(ptr noundef nonnull %270, i32 noundef 3)
  br label %272

272:                                              ; preds = %269, %263
  %273 = phi i1 [ true, %263 ], [ %271, %269 ]
  %274 = load i8, ptr %11, align 1, !tbaa !73, !range !53, !noundef !54
  %275 = trunc nuw i8 %274 to i1
  br i1 %275, label %279, label %276

276:                                              ; preds = %272
  %277 = getelementptr inbounds i8, ptr %0, i64 24
  %278 = call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef nonnull %277, i32 noundef 3)
  br label %279

279:                                              ; preds = %276, %272
  %280 = phi i1 [ true, %272 ], [ %278, %276 ]
  %281 = load i8, ptr %10, align 8, !tbaa !129, !range !53, !noundef !54
  %282 = trunc nuw i8 %281 to i1
  br i1 %282, label %286, label %283

283:                                              ; preds = %279
  %284 = getelementptr inbounds i8, ptr %0, i64 1152
  %285 = call noundef zeroext i1 @_ZN6ImPlotL14AnyAxesHoveredEP10ImPlotAxisi(ptr noundef nonnull %284, i32 noundef 3)
  br label %286

286:                                              ; preds = %283, %279
  %287 = phi i1 [ true, %279 ], [ %285, %283 ]
  %288 = load i8, ptr %11, align 1, !tbaa !73, !range !53, !noundef !54
  %289 = trunc nuw i8 %288 to i1
  br i1 %289, label %293, label %290

290:                                              ; preds = %286
  %291 = getelementptr inbounds i8, ptr %0, i64 1152
  %292 = call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef nonnull %291, i32 noundef 3)
  br label %293

293:                                              ; preds = %290, %286
  %294 = phi i1 [ true, %286 ], [ %292, %290 ]
  %295 = or i1 %273, %287
  %296 = or i1 %280, %294
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #10
  %297 = getelementptr inbounds i8, ptr %6, i64 1476
  %298 = load i32, ptr %297, align 4, !tbaa !26
  %299 = call <2 x float> @_ZN5ImGui17GetMouseDragDeltaEif(i32 noundef %298, float noundef -1.000000e+00)
  store <2 x float> %299, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #10
  %300 = load i32, ptr %53, align 8, !tbaa !71
  %301 = call <2 x float> @_ZN5ImGui17GetMouseDragDeltaEif(i32 noundef %300, float noundef -1.000000e+00)
  store <2 x float> %301, ptr %4, align 8
  %302 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %3)
  %303 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %4)
  %304 = getelementptr inbounds i8, ptr %0, i64 2530
  %305 = load i8, ptr %304, align 2, !tbaa !61, !range !53, !noundef !54
  %306 = trunc nuw i8 %305 to i1
  %307 = fcmp ogt float %302, 5.000000e+00
  %308 = and i1 %307, %306
  %309 = fcmp ogt float %303, 5.000000e+00
  %310 = and i1 %296, %309
  %311 = getelementptr inbounds i8, ptr %7, i64 14174
  %312 = getelementptr inbounds i8, ptr %6, i64 1496
  %313 = load i32, ptr %312, align 8, !tbaa !130
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds [5 x i8], ptr %311, i64 0, i64 %314
  %316 = load i8, ptr %315, align 1, !tbaa !52, !range !53, !noundef !54
  %317 = trunc nuw i8 %316 to i1
  br i1 %317, label %318, label %324

318:                                              ; preds = %293
  %319 = getelementptr inbounds i8, ptr %0, i64 2532
  %320 = load i8, ptr %319, align 4, !tbaa !131, !range !53, !noundef !54
  %321 = trunc nuw i8 %320 to i1
  br i1 %321, label %324, label %322

322:                                              ; preds = %318
  %323 = getelementptr inbounds i8, ptr %6, i64 1512
  store i8 1, ptr %323, align 8, !tbaa !132
  br label %324

324:                                              ; preds = %322, %318, %293
  %brmerge = or i1 %310, %308
  br i1 %brmerge, label %.sink.split, label %325

325:                                              ; preds = %324
  %326 = getelementptr inbounds [5 x i8], ptr %52, i64 0, i64 %314
  %327 = load i8, ptr %326, align 1, !tbaa !52, !range !53, !noundef !54
  %328 = trunc nuw i8 %327 to i1
  br i1 %328, label %333, label %329

329:                                              ; preds = %325
  %330 = load i8, ptr %315, align 1, !tbaa !52, !range !53, !noundef !54
  %331 = trunc nuw i8 %330 to i1
  br i1 %331, label %333, label %.sink.split

.sink.split:                                      ; preds = %329, %324
  %.sink = phi i8 [ 1, %324 ], [ 0, %329 ]
  %332 = getelementptr inbounds i8, ptr %0, i64 2532
  store i8 %.sink, ptr %332, align 4, !tbaa !131
  br label %333

333:                                              ; preds = %.sink.split, %325, %329
  %.not394 = xor i1 %296, true
  %brmerge395 = select i1 %.not394, i1 true, i1 %306
  br i1 %brmerge395, label %554, label %.preheader399

.preheader399:                                    ; preds = %333
  %334 = getelementptr inbounds i8, ptr %7, i64 240
  %335 = getelementptr inbounds i8, ptr %0, i64 2472
  %336 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 0)
  %337 = trunc nuw i8 %.sroa.0430.0 to i1
  br i1 %337, label %338, label %369

338:                                              ; preds = %.preheader399
  %339 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %336)
  br i1 %339, label %369, label %340

340:                                              ; preds = %338
  %341 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %336)
  %342 = load float, ptr %334, align 8
  %343 = fcmp une float %342, 0.000000e+00
  br i1 %343, label %344, label %369

344:                                              ; preds = %340
  %345 = fcmp ogt float %342, 0.000000e+00
  %346 = fcmp olt float %342, 0.000000e+00
  %347 = select i1 %341, i1 %345, i1 %346
  %348 = call noundef zeroext i1 @_ZN10ImPlotAxis11IsPanLockedEb(ptr noundef nonnull align 8 dereferenceable(372) %336, i1 noundef zeroext %347)
  br i1 %348, label %369, label %349

349:                                              ; preds = %344
  %350 = load float, ptr %8, align 8, !tbaa !133
  %351 = load float, ptr %334, align 8, !tbaa !134
  %352 = fsub float %350, %351
  %353 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %336, float noundef %352)
  %354 = load float, ptr %335, align 8, !tbaa !135
  %355 = load float, ptr %334, align 8, !tbaa !134
  %356 = fsub float %354, %355
  %357 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %336, float noundef %356)
  %358 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %336)
  %359 = select i1 %358, double %357, double %353
  %360 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %336, double noundef %359, i1 noundef zeroext false)
  %361 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %336)
  %362 = select i1 %361, double %353, double %357
  %363 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %336, double noundef %362, i1 noundef zeroext false)
  br i1 %266, label %364, label %369

364:                                              ; preds = %349
  %365 = getelementptr inbounds i8, ptr %336, i64 56
  %366 = load ptr, ptr %365, align 8, !tbaa !136
  %.not380 = icmp eq ptr %366, null
  br i1 %.not380, label %369, label %367

367:                                              ; preds = %364
  %368 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %336)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %366, double noundef %368)
  br label %369

369:                                              ; preds = %340, %344, %367, %364, %349, %338, %.preheader399
  %.1365 = phi i32 [ 0, %338 ], [ 0, %.preheader399 ], [ 2, %349 ], [ 2, %364 ], [ 2, %367 ], [ 2, %344 ], [ 2, %340 ]
  %.2 = phi i1 [ false, %338 ], [ false, %.preheader399 ], [ true, %349 ], [ true, %364 ], [ true, %367 ], [ false, %344 ], [ false, %340 ]
  %370 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 1)
  %371 = trunc nuw i8 %.sroa.5431.0 to i1
  br i1 %371, label %372, label %403

372:                                              ; preds = %369
  %373 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %370)
  br i1 %373, label %403, label %374

374:                                              ; preds = %372
  %375 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %370)
  %376 = load float, ptr %334, align 8
  %377 = fcmp une float %376, 0.000000e+00
  br i1 %377, label %378, label %403

378:                                              ; preds = %374
  %379 = fcmp ogt float %376, 0.000000e+00
  %380 = fcmp olt float %376, 0.000000e+00
  %381 = select i1 %375, i1 %379, i1 %380
  %382 = call noundef zeroext i1 @_ZN10ImPlotAxis11IsPanLockedEb(ptr noundef nonnull align 8 dereferenceable(372) %370, i1 noundef zeroext %381)
  br i1 %382, label %403, label %383

383:                                              ; preds = %378
  %384 = load float, ptr %8, align 8, !tbaa !133
  %385 = load float, ptr %334, align 8, !tbaa !134
  %386 = fsub float %384, %385
  %387 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %370, float noundef %386)
  %388 = load float, ptr %335, align 8, !tbaa !135
  %389 = load float, ptr %334, align 8, !tbaa !134
  %390 = fsub float %388, %389
  %391 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %370, float noundef %390)
  %392 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %370)
  %393 = select i1 %392, double %391, double %387
  %394 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %370, double noundef %393, i1 noundef zeroext false)
  %395 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %370)
  %396 = select i1 %395, double %387, double %391
  %397 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %370, double noundef %396, i1 noundef zeroext false)
  br i1 %266, label %398, label %403

398:                                              ; preds = %383
  %399 = getelementptr inbounds i8, ptr %370, i64 56
  %400 = load ptr, ptr %399, align 8, !tbaa !136
  %.not380.1 = icmp eq ptr %400, null
  br i1 %.not380.1, label %403, label %401

401:                                              ; preds = %398
  %402 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %370)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %400, double noundef %402)
  br label %403

403:                                              ; preds = %401, %398, %383, %378, %374, %372, %369
  %.1365.1 = phi i32 [ %.1365, %372 ], [ %.1365, %369 ], [ 2, %383 ], [ 2, %398 ], [ 2, %401 ], [ 2, %378 ], [ 2, %374 ]
  %.2.1 = phi i1 [ %.2, %372 ], [ %.2, %369 ], [ true, %383 ], [ true, %398 ], [ true, %401 ], [ %.2, %378 ], [ %.2, %374 ]
  %404 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 2)
  %405 = trunc nuw i8 %.sroa.7432.0 to i1
  br i1 %405, label %406, label %.preheader398

406:                                              ; preds = %403
  %407 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %404)
  br i1 %407, label %.preheader398, label %408

408:                                              ; preds = %406
  %409 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %404)
  %410 = load float, ptr %334, align 8
  %411 = fcmp une float %410, 0.000000e+00
  br i1 %411, label %412, label %.preheader398

412:                                              ; preds = %408
  %413 = fcmp ogt float %410, 0.000000e+00
  %414 = fcmp olt float %410, 0.000000e+00
  %415 = select i1 %409, i1 %413, i1 %414
  %416 = call noundef zeroext i1 @_ZN10ImPlotAxis11IsPanLockedEb(ptr noundef nonnull align 8 dereferenceable(372) %404, i1 noundef zeroext %415)
  br i1 %416, label %.preheader398, label %417

417:                                              ; preds = %412
  %418 = load float, ptr %8, align 8, !tbaa !133
  %419 = load float, ptr %334, align 8, !tbaa !134
  %420 = fsub float %418, %419
  %421 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %404, float noundef %420)
  %422 = load float, ptr %335, align 8, !tbaa !135
  %423 = load float, ptr %334, align 8, !tbaa !134
  %424 = fsub float %422, %423
  %425 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %404, float noundef %424)
  %426 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %404)
  %427 = select i1 %426, double %425, double %421
  %428 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %404, double noundef %427, i1 noundef zeroext false)
  %429 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %404)
  %430 = select i1 %429, double %421, double %425
  %431 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %404, double noundef %430, i1 noundef zeroext false)
  br i1 %266, label %432, label %.preheader398

432:                                              ; preds = %417
  %433 = getelementptr inbounds i8, ptr %404, i64 56
  %434 = load ptr, ptr %433, align 8, !tbaa !136
  %.not380.2 = icmp eq ptr %434, null
  br i1 %.not380.2, label %.preheader398, label %435

435:                                              ; preds = %432
  %436 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %404)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %434, double noundef %436)
  br label %.preheader398

.preheader398:                                    ; preds = %435, %432, %417, %412, %408, %406, %403
  %.1365.2 = phi i32 [ %.1365.1, %406 ], [ %.1365.1, %403 ], [ 2, %417 ], [ 2, %432 ], [ 2, %435 ], [ 2, %412 ], [ 2, %408 ]
  %.2.2 = phi i1 [ %.2.1, %406 ], [ %.2.1, %403 ], [ true, %417 ], [ true, %432 ], [ true, %435 ], [ %.2.1, %412 ], [ %.2.1, %408 ]
  %437 = getelementptr inbounds i8, ptr %7, i64 244
  %438 = getelementptr inbounds i8, ptr %0, i64 2468
  %439 = getelementptr inbounds i8, ptr %0, i64 2476
  %440 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 0)
  %441 = trunc nuw i8 %.sroa.0424.0 to i1
  br i1 %441, label %442, label %474

442:                                              ; preds = %.preheader398
  %443 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %440)
  br i1 %443, label %474, label %444

444:                                              ; preds = %442
  %445 = or i32 %.1365.2, 4
  %446 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %440)
  %447 = load float, ptr %437, align 4
  %448 = fcmp une float %447, 0.000000e+00
  br i1 %448, label %449, label %474

449:                                              ; preds = %444
  %450 = fcmp olt float %447, 0.000000e+00
  %451 = fcmp ogt float %447, 0.000000e+00
  %452 = select i1 %446, i1 %450, i1 %451
  %453 = call noundef zeroext i1 @_ZN10ImPlotAxis11IsPanLockedEb(ptr noundef nonnull align 8 dereferenceable(372) %440, i1 noundef zeroext %452)
  br i1 %453, label %474, label %454

454:                                              ; preds = %449
  %455 = load float, ptr %438, align 4, !tbaa !137
  %456 = load float, ptr %437, align 4, !tbaa !138
  %457 = fsub float %455, %456
  %458 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %440, float noundef %457)
  %459 = load float, ptr %439, align 4, !tbaa !139
  %460 = load float, ptr %437, align 4, !tbaa !138
  %461 = fsub float %459, %460
  %462 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %440, float noundef %461)
  %463 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %440)
  %464 = select i1 %463, double %458, double %462
  %465 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %440, double noundef %464, i1 noundef zeroext false)
  %466 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %440)
  %467 = select i1 %466, double %462, double %458
  %468 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %440, double noundef %467, i1 noundef zeroext false)
  br i1 %266, label %469, label %474

469:                                              ; preds = %454
  %470 = getelementptr inbounds i8, ptr %440, i64 56
  %471 = load ptr, ptr %470, align 8, !tbaa !136
  %.not379 = icmp eq ptr %471, null
  br i1 %.not379, label %474, label %472

472:                                              ; preds = %469
  %473 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %440)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %471, double noundef %473)
  br label %474

474:                                              ; preds = %444, %449, %472, %469, %454, %442, %.preheader398
  %.3367 = phi i32 [ %.1365.2, %442 ], [ %.1365.2, %.preheader398 ], [ %445, %454 ], [ %445, %469 ], [ %445, %472 ], [ %445, %449 ], [ %445, %444 ]
  %.5 = phi i1 [ %.2.2, %442 ], [ %.2.2, %.preheader398 ], [ true, %454 ], [ true, %469 ], [ true, %472 ], [ %.2.2, %449 ], [ %.2.2, %444 ]
  %475 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 1)
  %476 = trunc nuw i8 %.sroa.5425.0 to i1
  br i1 %476, label %477, label %509

477:                                              ; preds = %474
  %478 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %475)
  br i1 %478, label %509, label %479

479:                                              ; preds = %477
  %480 = or i32 %.3367, 4
  %481 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %475)
  %482 = load float, ptr %437, align 4
  %483 = fcmp une float %482, 0.000000e+00
  br i1 %483, label %484, label %509

484:                                              ; preds = %479
  %485 = fcmp olt float %482, 0.000000e+00
  %486 = fcmp ogt float %482, 0.000000e+00
  %487 = select i1 %481, i1 %485, i1 %486
  %488 = call noundef zeroext i1 @_ZN10ImPlotAxis11IsPanLockedEb(ptr noundef nonnull align 8 dereferenceable(372) %475, i1 noundef zeroext %487)
  br i1 %488, label %509, label %489

489:                                              ; preds = %484
  %490 = load float, ptr %438, align 4, !tbaa !137
  %491 = load float, ptr %437, align 4, !tbaa !138
  %492 = fsub float %490, %491
  %493 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %475, float noundef %492)
  %494 = load float, ptr %439, align 4, !tbaa !139
  %495 = load float, ptr %437, align 4, !tbaa !138
  %496 = fsub float %494, %495
  %497 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %475, float noundef %496)
  %498 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %475)
  %499 = select i1 %498, double %493, double %497
  %500 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %475, double noundef %499, i1 noundef zeroext false)
  %501 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %475)
  %502 = select i1 %501, double %497, double %493
  %503 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %475, double noundef %502, i1 noundef zeroext false)
  br i1 %266, label %504, label %509

504:                                              ; preds = %489
  %505 = getelementptr inbounds i8, ptr %475, i64 56
  %506 = load ptr, ptr %505, align 8, !tbaa !136
  %.not379.1 = icmp eq ptr %506, null
  br i1 %.not379.1, label %509, label %507

507:                                              ; preds = %504
  %508 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %475)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %506, double noundef %508)
  br label %509

509:                                              ; preds = %507, %504, %489, %484, %479, %477, %474
  %.3367.1 = phi i32 [ %.3367, %477 ], [ %.3367, %474 ], [ %480, %489 ], [ %480, %504 ], [ %480, %507 ], [ %480, %484 ], [ %480, %479 ]
  %.5.1 = phi i1 [ %.5, %477 ], [ %.5, %474 ], [ true, %489 ], [ true, %504 ], [ true, %507 ], [ %.5, %484 ], [ %.5, %479 ]
  %510 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 2)
  %511 = trunc nuw i8 %.sroa.7426.0 to i1
  br i1 %511, label %512, label %544

512:                                              ; preds = %509
  %513 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %510)
  br i1 %513, label %544, label %514

514:                                              ; preds = %512
  %515 = or i32 %.3367.1, 4
  %516 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %510)
  %517 = load float, ptr %437, align 4
  %518 = fcmp une float %517, 0.000000e+00
  br i1 %518, label %519, label %544

519:                                              ; preds = %514
  %520 = fcmp olt float %517, 0.000000e+00
  %521 = fcmp ogt float %517, 0.000000e+00
  %522 = select i1 %516, i1 %520, i1 %521
  %523 = call noundef zeroext i1 @_ZN10ImPlotAxis11IsPanLockedEb(ptr noundef nonnull align 8 dereferenceable(372) %510, i1 noundef zeroext %522)
  br i1 %523, label %544, label %524

524:                                              ; preds = %519
  %525 = load float, ptr %438, align 4, !tbaa !137
  %526 = load float, ptr %437, align 4, !tbaa !138
  %527 = fsub float %525, %526
  %528 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %510, float noundef %527)
  %529 = load float, ptr %439, align 4, !tbaa !139
  %530 = load float, ptr %437, align 4, !tbaa !138
  %531 = fsub float %529, %530
  %532 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %510, float noundef %531)
  %533 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %510)
  %534 = select i1 %533, double %528, double %532
  %535 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %510, double noundef %534, i1 noundef zeroext false)
  %536 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %510)
  %537 = select i1 %536, double %532, double %528
  %538 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %510, double noundef %537, i1 noundef zeroext false)
  br i1 %266, label %539, label %544

539:                                              ; preds = %524
  %540 = getelementptr inbounds i8, ptr %510, i64 56
  %541 = load ptr, ptr %540, align 8, !tbaa !136
  %.not379.2 = icmp eq ptr %541, null
  br i1 %.not379.2, label %544, label %542

542:                                              ; preds = %539
  %543 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %510)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %541, double noundef %543)
  br label %544

544:                                              ; preds = %542, %539, %524, %519, %514, %512, %509
  %.3367.2 = phi i32 [ %.3367.1, %512 ], [ %.3367.1, %509 ], [ %515, %524 ], [ %515, %539 ], [ %515, %542 ], [ %515, %519 ], [ %515, %514 ]
  %.5.2 = phi i1 [ %.5.1, %512 ], [ %.5.1, %509 ], [ true, %524 ], [ true, %539 ], [ true, %542 ], [ %.5.1, %519 ], [ %.5.1, %514 ]
  %545 = getelementptr inbounds i8, ptr %7, i64 14232
  %546 = load i32, ptr %53, align 8, !tbaa !71
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds [5 x float], ptr %545, i64 0, i64 %547
  %549 = load float, ptr %548, align 4, !tbaa !63
  %550 = fcmp ogt float %549, 5.000000e+00
  br i1 %550, label %551, label %554

551:                                              ; preds = %544
  %552 = icmp ult i32 %.3367.2, 5
  br i1 %552, label %switch.lookup, label %.sink.split439

switch.lookup:                                    ; preds = %551
  %553 = zext nneg i32 %.3367.2 to i64
  %switch.gep = getelementptr inbounds [5 x i32], ptr @switch.table._ZN6ImPlot11UpdateInputER10ImPlotPlot, i64 0, i64 %553
  %switch.load = load i32, ptr %switch.gep, align 4
  br label %.sink.split439

.sink.split439:                                   ; preds = %551, %switch.lookup
  %.sink440 = phi i32 [ %switch.load, %switch.lookup ], [ 2, %551 ]
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef %.sink440)
  br label %554

554:                                              ; preds = %.sink.split439, %333, %544
  %.6 = phi i1 [ false, %333 ], [ %.5.2, %544 ], [ %.5.2, %.sink.split439 ]
  br i1 %295, label %555, label %.loopexit

555:                                              ; preds = %554
  %556 = getelementptr inbounds i8, ptr %7, i64 3600
  %557 = load float, ptr %556, align 8, !tbaa !140
  %558 = fcmp une float %557, 0.000000e+00
  br i1 %558, label %559, label %.loopexit

559:                                              ; preds = %555
  %560 = load i32, ptr %258, align 8, !tbaa !55
  %561 = getelementptr inbounds i8, ptr %6, i64 1504
  %562 = load i32, ptr %561, align 8, !tbaa !141
  %563 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %560, i32 noundef %562)
  br i1 %563, label %564, label %.loopexit

564:                                              ; preds = %559
  %565 = getelementptr inbounds i8, ptr %6, i64 1508
  %566 = load float, ptr %565, align 4, !tbaa !142
  %567 = load float, ptr %556, align 8, !tbaa !140
  %568 = fcmp ogt float %567, 0.000000e+00
  %569 = fneg float %566
  %570 = call float @llvm.fmuladd.f32(float %566, float 2.000000e+00, float 1.000000e+00)
  %571 = fdiv float %569, %570
  %.0371 = select i1 %568, float %571, float %566
  %572 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %8)
  %573 = getelementptr inbounds i8, ptr %7, i64 3584
  %574 = load float, ptr %573, align 8, !tbaa !143
  %575 = load float, ptr %8, align 8, !tbaa !133
  %576 = getelementptr inbounds i8, ptr %0, i64 2472
  %577 = load float, ptr %576, align 8, !tbaa !135
  %578 = call noundef float @_ZL7ImRemapIfET_S0_S0_S0_S0_S0_(float noundef %574, float noundef %575, float noundef %577, float noundef 0.000000e+00, float noundef 1.000000e+00)
  %579 = getelementptr inbounds i8, ptr %7, i64 3588
  %580 = load float, ptr %579, align 4, !tbaa !144
  %581 = getelementptr inbounds i8, ptr %0, i64 2468
  %582 = load float, ptr %581, align 4, !tbaa !137
  %583 = getelementptr inbounds i8, ptr %0, i64 2476
  %584 = load float, ptr %583, align 4, !tbaa !139
  %585 = call noundef float @_ZL7ImRemapIfET_S0_S0_S0_S0_S0_(float noundef %580, float noundef %582, float noundef %584, float noundef 0.000000e+00, float noundef 1.000000e+00)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %572, i64 0
  %586 = fneg float %.sroa.0.0.vec.extract
  %587 = fmul float %578, %586
  %588 = fmul float %.0371, %587
  %589 = fsub float 1.000000e+00, %578
  %590 = fmul float %.sroa.0.0.vec.extract, %589
  %591 = fmul float %.0371, %590
  %592 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 0)
  %593 = getelementptr inbounds i8, ptr %592, i64 56
  %594 = load ptr, ptr %593, align 8
  %595 = icmp ne ptr %594, null
  %596 = select i1 %266, i1 %595, i1 false
  br i1 %596, label %597, label %599

597:                                              ; preds = %564
  %598 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %594)
  br label %599

599:                                              ; preds = %597, %564
  %600 = phi i1 [ false, %564 ], [ %598, %597 ]
  %601 = trunc nuw i8 %.sroa.0427.0 to i1
  br i1 %601, label %602, label %625

602:                                              ; preds = %599
  %603 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %592)
  %brmerge388 = or i1 %600, %603
  br i1 %brmerge388, label %625, label %604

604:                                              ; preds = %602
  %605 = load i8, ptr %10, align 8, !tbaa !129, !range !53, !noundef !54
  %606 = trunc nuw i8 %605 to i1
  %607 = and i1 %596, %606
  %608 = select i1 %607, float 5.000000e-01, float 1.000000e+00
  %609 = load float, ptr %8, align 8, !tbaa !133
  %610 = call float @llvm.fmuladd.f32(float %588, float %608, float %609)
  %611 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %592, float noundef %610)
  %612 = load float, ptr %576, align 8, !tbaa !135
  %613 = call float @llvm.fmuladd.f32(float %591, float %608, float %612)
  %614 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %592, float noundef %613)
  %615 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %592)
  %616 = select i1 %615, double %614, double %611
  %617 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %592, double noundef %616, i1 noundef zeroext false)
  %618 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %592)
  %619 = select i1 %618, double %611, double %614
  %620 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %592, double noundef %619, i1 noundef zeroext false)
  br i1 %266, label %621, label %625

621:                                              ; preds = %604
  %622 = load ptr, ptr %593, align 8, !tbaa !136
  %.not386 = icmp eq ptr %622, null
  br i1 %.not386, label %625, label %623

623:                                              ; preds = %621
  %624 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %592)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %622, double noundef %624)
  br label %625

625:                                              ; preds = %604, %621, %623, %602, %599
  %.8 = phi i1 [ %.6, %602 ], [ %.6, %599 ], [ true, %623 ], [ true, %621 ], [ true, %604 ]
  %626 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 1)
  %627 = getelementptr inbounds i8, ptr %626, i64 56
  %628 = load ptr, ptr %627, align 8
  %629 = icmp ne ptr %628, null
  %630 = select i1 %266, i1 %629, i1 false
  br i1 %630, label %631, label %633

631:                                              ; preds = %625
  %632 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %628)
  br label %633

633:                                              ; preds = %631, %625
  %634 = phi i1 [ false, %625 ], [ %632, %631 ]
  %635 = trunc nuw i8 %.sroa.5428.0 to i1
  br i1 %635, label %636, label %659

636:                                              ; preds = %633
  %637 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %626)
  %brmerge388.1 = or i1 %634, %637
  br i1 %brmerge388.1, label %659, label %638

638:                                              ; preds = %636
  %639 = load i8, ptr %10, align 8, !tbaa !129, !range !53, !noundef !54
  %640 = trunc nuw i8 %639 to i1
  %641 = and i1 %630, %640
  %642 = select i1 %641, float 5.000000e-01, float 1.000000e+00
  %643 = load float, ptr %8, align 8, !tbaa !133
  %644 = call float @llvm.fmuladd.f32(float %588, float %642, float %643)
  %645 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %626, float noundef %644)
  %646 = load float, ptr %576, align 8, !tbaa !135
  %647 = call float @llvm.fmuladd.f32(float %591, float %642, float %646)
  %648 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %626, float noundef %647)
  %649 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %626)
  %650 = select i1 %649, double %648, double %645
  %651 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %626, double noundef %650, i1 noundef zeroext false)
  %652 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %626)
  %653 = select i1 %652, double %645, double %648
  %654 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %626, double noundef %653, i1 noundef zeroext false)
  br i1 %266, label %655, label %659

655:                                              ; preds = %638
  %656 = load ptr, ptr %627, align 8, !tbaa !136
  %.not386.1 = icmp eq ptr %656, null
  br i1 %.not386.1, label %659, label %657

657:                                              ; preds = %655
  %658 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %626)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %656, double noundef %658)
  br label %659

659:                                              ; preds = %657, %655, %638, %636, %633
  %.8.1 = phi i1 [ %.8, %636 ], [ %.8, %633 ], [ true, %657 ], [ true, %655 ], [ true, %638 ]
  %660 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 2)
  %661 = getelementptr inbounds i8, ptr %660, i64 56
  %662 = load ptr, ptr %661, align 8
  %663 = icmp ne ptr %662, null
  %664 = select i1 %266, i1 %663, i1 false
  br i1 %664, label %665, label %667

665:                                              ; preds = %659
  %666 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %662)
  br label %667

667:                                              ; preds = %665, %659
  %668 = phi i1 [ false, %659 ], [ %666, %665 ]
  %669 = trunc nuw i8 %.sroa.7429.0 to i1
  br i1 %669, label %670, label %.preheader397

670:                                              ; preds = %667
  %671 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %660)
  %brmerge388.2 = or i1 %668, %671
  br i1 %brmerge388.2, label %.preheader397, label %672

672:                                              ; preds = %670
  %673 = load i8, ptr %10, align 8, !tbaa !129, !range !53, !noundef !54
  %674 = trunc nuw i8 %673 to i1
  %675 = and i1 %664, %674
  %676 = select i1 %675, float 5.000000e-01, float 1.000000e+00
  %677 = load float, ptr %8, align 8, !tbaa !133
  %678 = call float @llvm.fmuladd.f32(float %588, float %676, float %677)
  %679 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %660, float noundef %678)
  %680 = load float, ptr %576, align 8, !tbaa !135
  %681 = call float @llvm.fmuladd.f32(float %591, float %676, float %680)
  %682 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %660, float noundef %681)
  %683 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %660)
  %684 = select i1 %683, double %682, double %679
  %685 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %660, double noundef %684, i1 noundef zeroext false)
  %686 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %660)
  %687 = select i1 %686, double %679, double %682
  %688 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %660, double noundef %687, i1 noundef zeroext false)
  br i1 %266, label %689, label %.preheader397

689:                                              ; preds = %672
  %690 = load ptr, ptr %661, align 8, !tbaa !136
  %.not386.2 = icmp eq ptr %690, null
  br i1 %.not386.2, label %.preheader397, label %691

691:                                              ; preds = %689
  %692 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %660)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %690, double noundef %692)
  br label %.preheader397

.preheader397:                                    ; preds = %691, %689, %672, %670, %667
  %.8.2 = phi i1 [ %.8.1, %670 ], [ %.8.1, %667 ], [ true, %691 ], [ true, %689 ], [ true, %672 ]
  %.sroa.0.4.vec.extract = extractelement <2 x float> %572, i64 1
  %693 = fneg float %.sroa.0.4.vec.extract
  %694 = fmul float %585, %693
  %695 = fmul float %.0371, %694
  %696 = fsub float 1.000000e+00, %585
  %697 = fmul float %.sroa.0.4.vec.extract, %696
  %698 = fmul float %.0371, %697
  %699 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 0)
  %700 = getelementptr inbounds i8, ptr %699, i64 56
  %701 = load ptr, ptr %700, align 8
  %702 = icmp ne ptr %701, null
  %703 = select i1 %266, i1 %702, i1 false
  br i1 %703, label %704, label %706

704:                                              ; preds = %.preheader397
  %705 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %701)
  br label %706

706:                                              ; preds = %704, %.preheader397
  %707 = phi i1 [ false, %.preheader397 ], [ %705, %704 ]
  %708 = trunc nuw i8 %.sroa.0.0 to i1
  br i1 %708, label %709, label %732

709:                                              ; preds = %706
  %710 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %699)
  %brmerge389 = or i1 %707, %710
  br i1 %brmerge389, label %732, label %711

711:                                              ; preds = %709
  %712 = load i8, ptr %10, align 8, !tbaa !129, !range !53, !noundef !54
  %713 = trunc nuw i8 %712 to i1
  %714 = and i1 %703, %713
  %715 = select i1 %714, float 5.000000e-01, float 1.000000e+00
  %716 = load float, ptr %581, align 4, !tbaa !137
  %717 = call float @llvm.fmuladd.f32(float %695, float %715, float %716)
  %718 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %699, float noundef %717)
  %719 = load float, ptr %583, align 4, !tbaa !139
  %720 = call float @llvm.fmuladd.f32(float %698, float %715, float %719)
  %721 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %699, float noundef %720)
  %722 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %699)
  %723 = select i1 %722, double %718, double %721
  %724 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %699, double noundef %723, i1 noundef zeroext false)
  %725 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %699)
  %726 = select i1 %725, double %721, double %718
  %727 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %699, double noundef %726, i1 noundef zeroext false)
  br i1 %266, label %728, label %732

728:                                              ; preds = %711
  %729 = load ptr, ptr %700, align 8, !tbaa !136
  %.not385 = icmp eq ptr %729, null
  br i1 %.not385, label %732, label %730

730:                                              ; preds = %728
  %731 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %699)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %729, double noundef %731)
  br label %732

732:                                              ; preds = %711, %728, %730, %709, %706
  %.10 = phi i1 [ %.8.2, %709 ], [ %.8.2, %706 ], [ true, %730 ], [ true, %728 ], [ true, %711 ]
  %733 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 1)
  %734 = getelementptr inbounds i8, ptr %733, i64 56
  %735 = load ptr, ptr %734, align 8
  %736 = icmp ne ptr %735, null
  %737 = select i1 %266, i1 %736, i1 false
  br i1 %737, label %738, label %740

738:                                              ; preds = %732
  %739 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %735)
  br label %740

740:                                              ; preds = %738, %732
  %741 = phi i1 [ false, %732 ], [ %739, %738 ]
  %742 = trunc nuw i8 %.sroa.5.0 to i1
  br i1 %742, label %743, label %766

743:                                              ; preds = %740
  %744 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %733)
  %brmerge389.1 = or i1 %741, %744
  br i1 %brmerge389.1, label %766, label %745

745:                                              ; preds = %743
  %746 = load i8, ptr %10, align 8, !tbaa !129, !range !53, !noundef !54
  %747 = trunc nuw i8 %746 to i1
  %748 = and i1 %737, %747
  %749 = select i1 %748, float 5.000000e-01, float 1.000000e+00
  %750 = load float, ptr %581, align 4, !tbaa !137
  %751 = call float @llvm.fmuladd.f32(float %695, float %749, float %750)
  %752 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %733, float noundef %751)
  %753 = load float, ptr %583, align 4, !tbaa !139
  %754 = call float @llvm.fmuladd.f32(float %698, float %749, float %753)
  %755 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %733, float noundef %754)
  %756 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %733)
  %757 = select i1 %756, double %752, double %755
  %758 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %733, double noundef %757, i1 noundef zeroext false)
  %759 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %733)
  %760 = select i1 %759, double %755, double %752
  %761 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %733, double noundef %760, i1 noundef zeroext false)
  br i1 %266, label %762, label %766

762:                                              ; preds = %745
  %763 = load ptr, ptr %734, align 8, !tbaa !136
  %.not385.1 = icmp eq ptr %763, null
  br i1 %.not385.1, label %766, label %764

764:                                              ; preds = %762
  %765 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %733)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %763, double noundef %765)
  br label %766

766:                                              ; preds = %764, %762, %745, %743, %740
  %.10.1 = phi i1 [ %.10, %743 ], [ %.10, %740 ], [ true, %764 ], [ true, %762 ], [ true, %745 ]
  %767 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 2)
  %768 = getelementptr inbounds i8, ptr %767, i64 56
  %769 = load ptr, ptr %768, align 8
  %770 = icmp ne ptr %769, null
  %771 = select i1 %266, i1 %770, i1 false
  br i1 %771, label %772, label %774

772:                                              ; preds = %766
  %773 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %769)
  br label %774

774:                                              ; preds = %772, %766
  %775 = phi i1 [ false, %766 ], [ %773, %772 ]
  %776 = trunc nuw i8 %.sroa.7.0 to i1
  br i1 %776, label %777, label %.loopexit

777:                                              ; preds = %774
  %778 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %767)
  %brmerge389.2 = or i1 %775, %778
  br i1 %brmerge389.2, label %.loopexit, label %779

779:                                              ; preds = %777
  %780 = load i8, ptr %10, align 8, !tbaa !129, !range !53, !noundef !54
  %781 = trunc nuw i8 %780 to i1
  %782 = and i1 %771, %781
  %783 = select i1 %782, float 5.000000e-01, float 1.000000e+00
  %784 = load float, ptr %581, align 4, !tbaa !137
  %785 = call float @llvm.fmuladd.f32(float %695, float %783, float %784)
  %786 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %767, float noundef %785)
  %787 = load float, ptr %583, align 4, !tbaa !139
  %788 = call float @llvm.fmuladd.f32(float %698, float %783, float %787)
  %789 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %767, float noundef %788)
  %790 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %767)
  %791 = select i1 %790, double %786, double %789
  %792 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %767, double noundef %791, i1 noundef zeroext false)
  %793 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %767)
  %794 = select i1 %793, double %789, double %786
  %795 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %767, double noundef %794, i1 noundef zeroext false)
  br i1 %266, label %796, label %.loopexit

796:                                              ; preds = %779
  %797 = load ptr, ptr %768, align 8, !tbaa !136
  %.not385.2 = icmp eq ptr %797, null
  br i1 %.not385.2, label %.loopexit, label %798

798:                                              ; preds = %796
  %799 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %767)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %797, double noundef %799)
  br label %.loopexit

.loopexit:                                        ; preds = %774, %777, %779, %796, %798, %559, %555, %554
  %.11 = phi i1 [ %.6, %559 ], [ %.6, %555 ], [ %.6, %554 ], [ %.10.1, %777 ], [ %.10.1, %774 ], [ true, %798 ], [ true, %796 ], [ true, %779 ]
  %800 = load i8, ptr %304, align 2, !tbaa !61, !range !53, !noundef !54
  %801 = trunc nuw i8 %800 to i1
  br i1 %801, label %802, label %988

802:                                              ; preds = %.loopexit
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  %803 = getelementptr inbounds i8, ptr %0, i64 2512
  %804 = getelementptr inbounds i8, ptr %7, i64 3584
  %805 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %803, ptr noundef nonnull align 4 dereferenceable(8) %804)
  %.fr434 = freeze <2 x float> %805
  store <2 x float> %.fr434, ptr %5, align 8
  %806 = load i32, ptr %258, align 8, !tbaa !55
  %807 = getelementptr inbounds i8, ptr %6, i64 1488
  %808 = load i32, ptr %807, align 8, !tbaa !145
  %809 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %806, i32 noundef %808)
  %810 = load i32, ptr %258, align 8, !tbaa !55
  %811 = getelementptr inbounds i8, ptr %6, i64 1492
  %812 = load i32, ptr %811, align 4, !tbaa !146
  %813 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %810, i32 noundef %812)
  %814 = call <2 x float> @llvm.fabs.v2f32(<2 x float> %.fr434)
  %815 = fcmp ule <2 x float> %814, <float 2.000000e+00, float 2.000000e+00>
  %816 = extractelement <2 x i1> %815, i64 0
  %.not382 = or i1 %809, %816
  %817 = extractelement <2 x i1> %815, i64 1
  %.not384 = or i1 %813, %817
  %818 = load i32, ptr %297, align 4, !tbaa !26
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds [5 x i8], ptr %311, i64 0, i64 %819
  %821 = load i8, ptr %820, align 1, !tbaa !52, !range !53, !noundef !54
  %822 = trunc nuw i8 %821 to i1
  br i1 %822, label %.preheader396, label %911

.preheader396:                                    ; preds = %802
  %823 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 0)
  %824 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %823)
  br i1 %.not382, label %.preheader396.split.us.preheader, label %.preheader396.split.preheader

.preheader396.split.preheader:                    ; preds = %.preheader396
  br i1 %824, label %.preheader396.split.1, label %833

.preheader396.split.us.preheader:                 ; preds = %.preheader396
  %825 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 1)
  %826 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %825)
  %827 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 2)
  %828 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %827)
  br label %.preheader

.preheader:                                       ; preds = %.preheader396.split.2, %855, %.preheader396.split.us.preheader
  %.us-phi = phi i1 [ %.11, %.preheader396.split.us.preheader ], [ %.13.1, %.preheader396.split.2 ], [ true, %855 ]
  %829 = getelementptr inbounds i8, ptr %0, i64 2516
  %830 = getelementptr inbounds i8, ptr %7, i64 3588
  %831 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 0)
  %832 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %831)
  %brmerge391 = or i1 %832, %.not384
  br i1 %brmerge391, label %873, label %864

833:                                              ; preds = %.preheader396.split.preheader
  %834 = load float, ptr %803, align 8, !tbaa !147
  %835 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %823, float noundef %834)
  %836 = load float, ptr %804, align 8, !tbaa !143
  %837 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %823, float noundef %836)
  %838 = call noundef double @_ZL5ImMinIdET_S0_S0_(double noundef %835, double noundef %837)
  %839 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %823, double noundef %838, i1 noundef zeroext false)
  %840 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %835, double noundef %837)
  %841 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %823, double noundef %840, i1 noundef zeroext false)
  br label %.preheader396.split.1

.preheader396.split.1:                            ; preds = %.preheader396.split.preheader, %833
  %.13 = phi i1 [ %.11, %.preheader396.split.preheader ], [ true, %833 ]
  %842 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 1)
  %843 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %842)
  br i1 %843, label %.preheader396.split.2, label %844

844:                                              ; preds = %.preheader396.split.1
  %845 = load float, ptr %803, align 8, !tbaa !147
  %846 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %842, float noundef %845)
  %847 = load float, ptr %804, align 8, !tbaa !143
  %848 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %842, float noundef %847)
  %849 = call noundef double @_ZL5ImMinIdET_S0_S0_(double noundef %846, double noundef %848)
  %850 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %842, double noundef %849, i1 noundef zeroext false)
  %851 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %846, double noundef %848)
  %852 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %842, double noundef %851, i1 noundef zeroext false)
  br label %.preheader396.split.2

.preheader396.split.2:                            ; preds = %844, %.preheader396.split.1
  %.13.1 = phi i1 [ %.13, %.preheader396.split.1 ], [ true, %844 ]
  %853 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 2)
  %854 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %853)
  br i1 %854, label %.preheader, label %855

855:                                              ; preds = %.preheader396.split.2
  %856 = load float, ptr %803, align 8, !tbaa !147
  %857 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %853, float noundef %856)
  %858 = load float, ptr %804, align 8, !tbaa !143
  %859 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %853, float noundef %858)
  %860 = call noundef double @_ZL5ImMinIdET_S0_S0_(double noundef %857, double noundef %859)
  %861 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %853, double noundef %860, i1 noundef zeroext false)
  %862 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %857, double noundef %859)
  %863 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %853, double noundef %862, i1 noundef zeroext false)
  br label %.preheader

864:                                              ; preds = %.preheader
  %865 = load float, ptr %829, align 4, !tbaa !148
  %866 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %831, float noundef %865)
  %867 = load float, ptr %830, align 4, !tbaa !144
  %868 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %831, float noundef %867)
  %869 = call noundef double @_ZL5ImMinIdET_S0_S0_(double noundef %866, double noundef %868)
  %870 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %831, double noundef %869, i1 noundef zeroext false)
  %871 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %866, double noundef %868)
  %872 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %831, double noundef %871, i1 noundef zeroext false)
  br label %873

873:                                              ; preds = %.preheader, %864
  %.15 = phi i1 [ %.us-phi, %.preheader ], [ true, %864 ]
  %874 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 1)
  %875 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %874)
  %brmerge391.1 = or i1 %875, %.not384
  br i1 %brmerge391.1, label %885, label %876

876:                                              ; preds = %873
  %877 = load float, ptr %829, align 4, !tbaa !148
  %878 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %874, float noundef %877)
  %879 = load float, ptr %830, align 4, !tbaa !144
  %880 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %874, float noundef %879)
  %881 = call noundef double @_ZL5ImMinIdET_S0_S0_(double noundef %878, double noundef %880)
  %882 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %874, double noundef %881, i1 noundef zeroext false)
  %883 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %878, double noundef %880)
  %884 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %874, double noundef %883, i1 noundef zeroext false)
  br label %885

885:                                              ; preds = %876, %873
  %.15.1 = phi i1 [ %.15, %873 ], [ true, %876 ]
  %886 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %0, i32 noundef 2)
  %887 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %886)
  %brmerge391.2 = or i1 %887, %.not384
  br i1 %brmerge391.2, label %897, label %888

888:                                              ; preds = %885
  %889 = load float, ptr %829, align 4, !tbaa !148
  %890 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %886, float noundef %889)
  %891 = load float, ptr %830, align 4, !tbaa !144
  %892 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %886, float noundef %891)
  %893 = call noundef double @_ZL5ImMinIdET_S0_S0_(double noundef %890, double noundef %892)
  %894 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMinEdb(ptr noundef nonnull align 8 dereferenceable(372) %886, double noundef %893, i1 noundef zeroext false)
  %895 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %890, double noundef %892)
  %896 = call noundef zeroext i1 @_ZN10ImPlotAxis6SetMaxEdb(ptr noundef nonnull align 8 dereferenceable(372) %886, double noundef %895, i1 noundef zeroext false)
  br label %897

897:                                              ; preds = %888, %885
  %.15.2 = phi i1 [ %.15.1, %885 ], [ true, %888 ]
  %898 = and i1 %.not382, %.not384
  br i1 %898, label %899, label %907

899:                                              ; preds = %897
  %900 = load i32, ptr %258, align 8, !tbaa !55
  %901 = load i32, ptr %807, align 8, !tbaa !145
  %902 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %900, i32 noundef %901)
  br i1 %902, label %903, label %909

903:                                              ; preds = %899
  %904 = load i32, ptr %258, align 8, !tbaa !55
  %905 = load i32, ptr %811, align 4, !tbaa !146
  %906 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %904, i32 noundef %905)
  br i1 %906, label %907, label %909

907:                                              ; preds = %897, %903
  %908 = getelementptr inbounds i8, ptr %6, i64 1512
  store i8 0, ptr %908, align 8, !tbaa !132
  br label %909

909:                                              ; preds = %907, %903, %899
  store i8 0, ptr %304, align 2, !tbaa !61
  %910 = getelementptr inbounds i8, ptr %0, i64 2531
  store i8 0, ptr %910, align 1, !tbaa !149
  br label %987

911:                                              ; preds = %802
  %912 = getelementptr inbounds i8, ptr %6, i64 1480
  %913 = load i32, ptr %912, align 8, !tbaa !150
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds [5 x i8], ptr %311, i64 0, i64 %914
  %916 = load i8, ptr %915, align 1, !tbaa !52, !range !53, !noundef !54
  %917 = trunc nuw i8 %916 to i1
  br i1 %917, label %918, label %921

918:                                              ; preds = %911
  store i8 0, ptr %304, align 2, !tbaa !61
  %919 = getelementptr inbounds i8, ptr %0, i64 2531
  store i8 0, ptr %919, align 1, !tbaa !149
  %920 = getelementptr inbounds i8, ptr %6, i64 1512
  store i8 0, ptr %920, align 8, !tbaa !132
  br label %987

921:                                              ; preds = %911
  %922 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %5)
  %923 = fcmp ogt float %922, 4.000000e+00
  br i1 %923, label %924, label %985

924:                                              ; preds = %921
  %925 = call noundef zeroext i1 @_ZNK10ImPlotPlot13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(2533) %0)
  br i1 %925, label %926, label %929

926:                                              ; preds = %924
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef 8)
  %927 = getelementptr inbounds i8, ptr %6, i64 1512
  store i8 0, ptr %927, align 8, !tbaa !132
  %928 = getelementptr inbounds i8, ptr %0, i64 2531
  store i8 0, ptr %928, align 1, !tbaa !149
  br label %987

929:                                              ; preds = %924
  %930 = load i32, ptr %258, align 8, !tbaa !55
  %931 = load i32, ptr %807, align 8, !tbaa !145
  %932 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %930, i32 noundef %931)
  br i1 %932, label %936, label %933

933:                                              ; preds = %929
  %934 = getelementptr inbounds i8, ptr %0, i64 24
  %935 = call noundef zeroext i1 @_ZN6ImPlotL18AllAxesInputLockedEP10ImPlotAxisi(ptr noundef nonnull %934, i32 noundef 3)
  br label %936

936:                                              ; preds = %933, %929
  %937 = phi i1 [ true, %929 ], [ %935, %933 ]
  %938 = load i32, ptr %258, align 8, !tbaa !55
  %939 = load i32, ptr %811, align 4, !tbaa !146
  %940 = call noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef %938, i32 noundef %939)
  br i1 %940, label %944, label %941

941:                                              ; preds = %936
  %942 = getelementptr inbounds i8, ptr %0, i64 1152
  %943 = call noundef zeroext i1 @_ZN6ImPlotL18AllAxesInputLockedEP10ImPlotAxisi(ptr noundef nonnull %942, i32 noundef 3)
  br label %944

944:                                              ; preds = %941, %936
  %945 = phi i1 [ true, %936 ], [ %943, %941 ]
  br i1 %937, label %946, label %951

946:                                              ; preds = %944
  %947 = load float, ptr %8, align 8, !tbaa !133
  %948 = getelementptr inbounds i8, ptr %0, i64 2496
  store float %947, ptr %948, align 8, !tbaa !151
  %949 = getelementptr inbounds i8, ptr %0, i64 2472
  %950 = load float, ptr %949, align 8, !tbaa !135
  br label %959

951:                                              ; preds = %944
  %952 = load float, ptr %803, align 8, !tbaa !147
  %953 = load float, ptr %804, align 8, !tbaa !143
  %954 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %952, float noundef %953)
  %955 = getelementptr inbounds i8, ptr %0, i64 2496
  store float %954, ptr %955, align 8, !tbaa !151
  %956 = load float, ptr %803, align 8, !tbaa !147
  %957 = load float, ptr %804, align 8, !tbaa !143
  %958 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %956, float noundef %957)
  br label %959

959:                                              ; preds = %951, %946
  %960 = phi ptr [ %948, %946 ], [ %955, %951 ]
  %961 = phi float [ %950, %946 ], [ %958, %951 ]
  %962 = getelementptr inbounds i8, ptr %0, i64 2504
  store float %961, ptr %962, align 8, !tbaa !152
  br i1 %945, label %963, label %969

963:                                              ; preds = %959
  %964 = getelementptr inbounds i8, ptr %0, i64 2468
  %965 = load float, ptr %964, align 4, !tbaa !137
  %966 = getelementptr inbounds i8, ptr %0, i64 2500
  store float %965, ptr %966, align 4, !tbaa !153
  %967 = getelementptr inbounds i8, ptr %0, i64 2476
  %968 = load float, ptr %967, align 4, !tbaa !139
  br label %979

969:                                              ; preds = %959
  %970 = getelementptr inbounds i8, ptr %0, i64 2516
  %971 = load float, ptr %970, align 4, !tbaa !148
  %972 = getelementptr inbounds i8, ptr %7, i64 3588
  %973 = load float, ptr %972, align 4, !tbaa !144
  %974 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %971, float noundef %973)
  %975 = getelementptr inbounds i8, ptr %0, i64 2500
  store float %974, ptr %975, align 4, !tbaa !153
  %976 = load float, ptr %970, align 4, !tbaa !148
  %977 = load float, ptr %972, align 4, !tbaa !144
  %978 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %976, float noundef %977)
  br label %979

979:                                              ; preds = %969, %963
  %980 = phi float [ %968, %963 ], [ %978, %969 ]
  %981 = getelementptr inbounds i8, ptr %0, i64 2508
  store float %980, ptr %981, align 4, !tbaa !154
  %982 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZmIR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %960, ptr noundef nonnull align 4 dereferenceable(8) %8)
  %983 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZmIR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %962, ptr noundef nonnull align 4 dereferenceable(8) %8)
  %984 = getelementptr inbounds i8, ptr %0, i64 2531
  store i8 1, ptr %984, align 1, !tbaa !149
  br label %987

985:                                              ; preds = %921
  %986 = getelementptr inbounds i8, ptr %0, i64 2531
  store i8 0, ptr %986, align 1, !tbaa !149
  br label %987

987:                                              ; preds = %918, %926, %979, %985, %909
  %.16 = phi i1 [ %.15.2, %909 ], [ %.11, %918 ], [ %.11, %926 ], [ %.11, %979 ], [ %.11, %985 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  br label %988

988:                                              ; preds = %987, %.loopexit
  %.17 = phi i1 [ %.16, %987 ], [ %.11, %.loopexit ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  br label %989

989:                                              ; preds = %252, %257, %988
  %.0 = phi i1 [ %.17, %988 ], [ false, %257 ], [ false, %252 ]
  ret i1 %.0
}

declare noundef nonnull align 8 dereferenceable(14280) ptr @_ZN5ImGui5GetIOEv() local_unnamed_addr #3

declare void @_ZN5ImGui19SetItemAllowOverlapEv() local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9ImHasFlagIiiEbT_T0_(i32 noundef, i32 noundef) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN6ImPlotL14AnyAxesHoveredEP10ImPlotAxisi(ptr noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef, i32 noundef) local_unnamed_addr #4

declare <2 x float> @_ZN5ImGui17GetMouseDragDeltaEif(i32 noundef, float noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372)) local_unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372), float noundef) local_unnamed_addr #5 align 2

declare void @_ZN5ImGui14SetMouseCursorEi(i32 noundef) local_unnamed_addr #3

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

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

; 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: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10ImPlotPlot13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(2533)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN6ImPlotL18AllAxesInputLockedEP10ImPlotAxisi(ptr noundef, i32 noundef) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef nonnull align 4 dereferenceable(8) ptr @_ZmIR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fabs.v2f32(<2 x float>) #9

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS10ImPlotPlot", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !7, i64 24, !12, i64 2280, !14, i64 2296, !11, i64 2424, !11, i64 2428, !17, i64 2432, !17, i64 2448, !17, i64 2464, !17, i64 2480, !17, i64 2496, !18, i64 2512, !11, i64 2520, !20, i64 2524, !20, i64 2525, !20, i64 2526, !20, i64 2527, !20, i64 2528, !20, i64 2529, !20, i64 2530, !20, i64 2531, !20, i64 2532}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS15ImGuiTextBuffer", !13, i64 0}
!13 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!14 = !{!"_ZTS15ImPlotItemGroup", !11, i64 0, !15, i64 8, !21, i64 80, !11, i64 120}
!15 = !{!"_ZTS12ImPlotLegend", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !16, i64 16, !12, i64 32, !17, i64 48, !20, i64 64, !20, i64 65, !20, i64 66}
!16 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!17 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!18 = !{!"_ZTS6ImVec2", !19, i64 0, !19, i64 4}
!19 = !{!"float", !7, i64 0}
!20 = !{!"bool", !7, i64 0}
!21 = !{!"_ZTS6ImPoolI10ImPlotItemE", !22, i64 0, !23, i64 16, !11, i64 32, !11, i64 36}
!22 = !{!"_ZTS8ImVectorI10ImPlotItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!23 = !{!"_ZTS12ImGuiStorage", !24, i64 0}
!24 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!25 = !{!10, !11, i64 4}
!26 = !{!27, !11, i64 1476}
!27 = !{!"_ZTS13ImPlotContext", !28, i64 0, !30, i64 40, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !32, i64 120, !34, i64 176, !36, i64 216, !20, i64 256, !38, i64 260, !39, i64 776, !40, i64 792, !41, i64 808, !16, i64 976, !44, i64 992, !46, i64 1048, !46, i64 1064, !16, i64 1080, !11, i64 1096, !11, i64 1100, !47, i64 1104, !48, i64 1336, !49, i64 1464, !20, i64 1512, !12, i64 1520, !6, i64 1536, !50, i64 1544, !6, i64 1584, !6, i64 1592}
!28 = !{!"_ZTS6ImPoolI10ImPlotPlotE", !29, i64 0, !23, i64 16, !11, i64 32, !11, i64 36}
!29 = !{!"_ZTS8ImVectorI10ImPlotPlotE", !11, i64 0, !11, i64 4, !6, i64 8}
!30 = !{!"_ZTS6ImPoolI13ImPlotSubplotE", !31, i64 0, !23, i64 16, !11, i64 32, !11, i64 36}
!31 = !{!"_ZTS8ImVectorI13ImPlotSubplotE", !11, i64 0, !11, i64 4, !6, i64 8}
!32 = !{!"_ZTS12ImPlotTicker", !33, i64 0, !12, i64 16, !18, i64 32, !18, i64 40, !11, i64 48}
!33 = !{!"_ZTS8ImVectorI10ImPlotTickE", !11, i64 0, !11, i64 4, !6, i64 8}
!34 = !{!"_ZTS26ImPlotAnnotationCollection", !35, i64 0, !12, i64 16, !11, i64 32}
!35 = !{!"_ZTS8ImVectorI16ImPlotAnnotationE", !11, i64 0, !11, i64 4, !6, i64 8}
!36 = !{!"_ZTS19ImPlotTagCollection", !37, i64 0, !12, i64 16, !11, i64 32}
!37 = !{!"_ZTS8ImVectorI9ImPlotTagE", !11, i64 0, !11, i64 4, !6, i64 8}
!38 = !{!"_ZTS11ImPlotStyle", !19, i64 0, !11, i64 4, !19, i64 8, !19, i64 12, !19, i64 16, !19, i64 20, !19, i64 24, !19, i64 28, !19, i64 32, !19, i64 36, !19, i64 40, !18, i64 44, !18, i64 52, !18, i64 60, !18, i64 68, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !18, i64 108, !18, i64 116, !18, i64 124, !18, i64 132, !18, i64 140, !18, i64 148, !18, i64 156, !18, i64 164, !7, i64 172, !11, i64 508, !20, i64 512, !20, i64 513, !20, i64 514}
!39 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!40 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!41 = !{!"_ZTS18ImPlotColormapData", !42, i64 0, !16, i64 16, !16, i64 32, !42, i64 48, !16, i64 64, !16, i64 80, !12, i64 96, !16, i64 112, !43, i64 128, !23, i64 144, !11, i64 160}
!42 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorIbE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS2tm", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !45, i64 40, !6, i64 48}
!45 = !{!"long", !7, i64 0}
!46 = !{!"_ZTS8ImVectorIdE", !11, i64 0, !11, i64 4, !6, i64 8}
!47 = !{!"_ZTS18ImPlotNextPlotData", !7, i64 0, !7, i64 24, !7, i64 120, !7, i64 126, !7, i64 136, !7, i64 184}
!48 = !{!"_ZTS18ImPlotNextItemData", !7, i64 0, !19, i64 80, !11, i64 84, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !20, i64 116, !20, i64 117, !20, i64 118, !20, i64 119, !20, i64 120, !20, i64 121, !11, i64 124}
!49 = !{!"_ZTS14ImPlotInputMap", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !19, i64 44}
!50 = !{!"_ZTS6ImPoolI19ImPlotAlignmentDataE", !51, i64 0, !23, i64 16, !11, i64 32, !11, i64 36}
!51 = !{!"_ZTS8ImVectorI19ImPlotAlignmentDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!52 = !{!20, !20, i64 0}
!53 = !{i8 0, i8 2}
!54 = !{}
!55 = !{!56, !11, i64 3616}
!56 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !6, i64 24, !6, i64 32, !19, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !19, i64 60, !19, i64 64, !6, i64 72, !6, i64 80, !19, i64 88, !20, i64 92, !6, i64 96, !18, i64 104, !20, i64 112, !20, i64 113, !20, i64 114, !20, i64 115, !20, i64 116, !20, i64 117, !20, i64 118, !20, i64 119, !19, i64 120, !20, i64 124, !20, i64 125, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !20, i64 208, !20, i64 209, !20, i64 210, !20, i64 211, !20, i64 212, !20, i64 213, !20, i64 214, !19, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !18, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !18, i64 3584, !7, i64 3592, !19, i64 3600, !19, i64 3604, !57, i64 3608, !20, i64 3612, !20, i64 3613, !20, i64 3614, !20, i64 3615, !11, i64 3616, !7, i64 3620, !20, i64 14052, !18, i64 14056, !7, i64 14064, !7, i64 14104, !7, i64 14144, !7, i64 14149, !7, i64 14154, !7, i64 14164, !7, i64 14174, !7, i64 14179, !7, i64 14184, !20, i64 14189, !7, i64 14192, !7, i64 14212, !7, i64 14232, !19, i64 14252, !20, i64 14256, !20, i64 14257, !7, i64 14258, !20, i64 14259, !58, i64 14260, !59, i64 14264}
!57 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!58 = !{!"short", !7, i64 0}
!59 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!27, !11, i64 1484}
!61 = !{!10, !20, i64 2530}
!62 = !{i64 0, i64 4, !63, i64 4, i64 4, !63, i64 8, i64 4, !63, i64 12, i64 4, !63}
!63 = !{!19, !19, i64 0}
!64 = !{!27, !11, i64 1472}
!65 = !{!10, !20, i64 2527}
!66 = !{!67, !20, i64 366}
!67 = !{!"_ZTS10ImPlotAxis", !11, i64 0, !11, i64 4, !11, i64 8, !68, i64 16, !11, i64 32, !11, i64 36, !68, i64 40, !6, i64 56, !68, i64 64, !68, i64 80, !32, i64 96, !6, i64 152, !6, i64 160, !7, i64 168, !6, i64 184, !6, i64 192, !6, i64 200, !11, i64 208, !70, i64 216, !70, i64 232, !6, i64 248, !6, i64 256, !6, i64 264, !19, i64 272, !19, i64 276, !69, i64 280, !69, i64 288, !69, i64 296, !19, i64 304, !19, i64 308, !17, i64 312, !11, i64 328, !11, i64 332, !11, i64 336, !11, i64 340, !11, i64 344, !11, i64 348, !11, i64 352, !11, i64 356, !11, i64 360, !20, i64 364, !20, i64 365, !20, i64 366, !20, i64 367, !20, i64 368, !20, i64 369, !20, i64 370, !20, i64 371}
!68 = !{!"_ZTS11ImPlotRange", !69, i64 0, !69, i64 8}
!69 = !{!"double", !7, i64 0}
!70 = !{!"_ZTS10ImPlotTime", !45, i64 0, !11, i64 8}
!71 = !{!27, !11, i64 1464}
!72 = !{!27, !11, i64 1468}
!73 = !{!10, !20, i64 2529}
!74 = !{!67, !20, i64 364}
!75 = !{!67, !11, i64 0}
!76 = !{!67, !20, i64 371}
!77 = !{!67, !20, i64 370}
!78 = !{!79, !20, i64 19028}
!79 = !{!"_ZTS12ImGuiContext", !20, i64 0, !20, i64 1, !56, i64 8, !80, i64 14288, !6, i64 15360, !19, i64 15368, !19, i64 15372, !81, i64 15376, !69, i64 15904, !11, i64 15912, !11, i64 15916, !11, i64 15920, !20, i64 15924, !20, i64 15925, !20, i64 15926, !20, i64 15927, !20, i64 15928, !6, i64 15936, !84, i64 15944, !84, i64 15960, !57, i64 15976, !11, i64 15980, !85, i64 15984, !85, i64 16000, !85, i64 16016, !86, i64 16032, !23, i64 16048, !11, i64 16064, !18, i64 16068, !6, i64 16080, !6, i64 16088, !6, i64 16096, !6, i64 16104, !6, i64 16112, !18, i64 16120, !11, i64 16128, !19, i64 16132, !18, i64 16136, !18, i64 16144, !11, i64 16152, !11, i64 16156, !11, i64 16160, !20, i64 16164, !20, i64 16165, !19, i64 16168, !19, i64 16172, !11, i64 16176, !11, i64 16180, !19, i64 16184, !20, i64 16188, !20, i64 16189, !20, i64 16190, !20, i64 16191, !20, i64 16192, !20, i64 16193, !18, i64 16196, !6, i64 16208, !87, i64 16216, !11, i64 16220, !11, i64 16224, !20, i64 16228, !20, i64 16229, !6, i64 16232, !11, i64 16240, !19, i64 16244, !7, i64 16248, !88, i64 17928, !11, i64 18240, !20, i64 18244, !11, i64 18248, !11, i64 18252, !11, i64 18256, !11, i64 18260, !90, i64 18264, !91, i64 18284, !92, i64 18344, !39, i64 18456, !40, i64 18472, !93, i64 18488, !42, i64 18504, !16, i64 18520, !94, i64 18536, !95, i64 18552, !95, i64 18568, !11, i64 18584, !96, i64 18592, !6, i64 18608, !11, i64 18616, !11, i64 18620, !11, i64 18624, !11, i64 18628, !11, i64 18632, !11, i64 18636, !11, i64 18640, !11, i64 18644, !11, i64 18648, !11, i64 18652, !11, i64 18656, !87, i64 18660, !97, i64 18664, !20, i64 18668, !20, i64 18669, !20, i64 18670, !20, i64 18671, !20, i64 18672, !20, i64 18673, !20, i64 18674, !11, i64 18676, !17, i64 18680, !20, i64 18696, !20, i64 18697, !20, i64 18698, !11, i64 18700, !11, i64 18704, !11, i64 18708, !11, i64 18712, !11, i64 18716, !11, i64 18720, !17, i64 18724, !17, i64 18740, !11, i64 18756, !11, i64 18760, !11, i64 18764, !98, i64 18768, !98, i64 18816, !98, i64 18864, !98, i64 18912, !11, i64 18960, !11, i64 18964, !6, i64 18968, !6, i64 18976, !6, i64 18984, !19, i64 18992, !19, i64 18996, !20, i64 19000, !18, i64 19004, !18, i64 19012, !19, i64 19020, !11, i64 19024, !20, i64 19028, !20, i64 19029, !20, i64 19030, !11, i64 19032, !11, i64 19036, !11, i64 19040, !99, i64 19048, !17, i64 19112, !11, i64 19128, !11, i64 19132, !19, i64 19136, !11, i64 19140, !11, i64 19144, !11, i64 19148, !11, i64 19152, !100, i64 19160, !7, i64 19176, !11, i64 19192, !101, i64 19200, !6, i64 19216, !11, i64 19224, !102, i64 19232, !103, i64 19248, !105, i64 19288, !106, i64 19304, !6, i64 19320, !107, i64 19328, !109, i64 19368, !110, i64 19384, !11, i64 19400, !11, i64 19404, !19, i64 19408, !19, i64 19412, !18, i64 19416, !111, i64 19424, !114, i64 23152, !115, i64 23176, !11, i64 23296, !11, i64 23300, !11, i64 23304, !11, i64 23308, !19, i64 23312, !19, i64 23316, !11, i64 23320, !82, i64 23324, !117, i64 23340, !19, i64 23388, !19, i64 23392, !20, i64 23396, !20, i64 23397, !19, i64 23400, !19, i64 23404, !19, i64 23408, !19, i64 23412, !58, i64 23416, !58, i64 23418, !13, i64 23424, !42, i64 23440, !118, i64 23456, !118, i64 23472, !7, i64 23488, !20, i64 23489, !19, i64 23492, !12, i64 23496, !119, i64 23512, !120, i64 23528, !121, i64 23544, !122, i64 23560, !11, i64 23576, !7, i64 23584, !20, i64 23640, !123, i64 23644, !6, i64 23648, !12, i64 23656, !6, i64 23672, !6, i64 23680, !19, i64 23688, !20, i64 23692, !11, i64 23696, !11, i64 23700, !11, i64 23704, !11, i64 23708, !12, i64 23712, !124, i64 23728, !7, i64 23752, !7, i64 23753, !7, i64 23754, !20, i64 23755, !7, i64 23756, !11, i64 23760, !125, i64 23764, !126, i64 23784, !7, i64 23824, !11, i64 24064, !11, i64 24068, !19, i64 24072, !11, i64 24076, !11, i64 24080, !11, i64 24084, !13, i64 24088}
!80 = !{!"_ZTS10ImGuiStyle", !19, i64 0, !19, i64 4, !18, i64 8, !19, i64 16, !19, i64 20, !18, i64 24, !18, i64 32, !11, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !18, i64 60, !19, i64 68, !19, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !11, i64 148, !18, i64 152, !18, i64 160, !19, i64 168, !18, i64 172, !18, i64 180, !18, i64 188, !18, i64 196, !19, i64 204, !20, i64 208, !20, i64 209, !20, i64 210, !19, i64 212, !19, i64 216, !7, i64 220}
!81 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !82, i64 28, !11, i64 44, !83, i64 48, !7, i64 64, !19, i64 448, !7, i64 452, !6, i64 520}
!82 = !{!"_ZTS6ImVec4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12}
!83 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !11, i64 0, !11, i64 4, !6, i64 8}
!85 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!86 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!87 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!88 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !89, i64 280, !89, i64 296}
!89 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!90 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !19, i64 4, !11, i64 8, !11, i64 12, !20, i64 16}
!91 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !17, i64 12, !17, i64 28, !17, i64 44}
!92 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !20, i64 56, !17, i64 60, !6, i64 80, !6, i64 88, !19, i64 96, !18, i64 100}
!93 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!94 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!95 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!96 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!97 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!98 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !17, i64 16, !11, i64 32, !19, i64 36, !19, i64 40, !19, i64 44}
!99 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !20, i64 57, !20, i64 58}
!100 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!101 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!102 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!103 = !{!"_ZTS6ImPoolI10ImGuiTableE", !104, i64 0, !23, i64 16, !11, i64 32, !11, i64 36}
!104 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!105 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!106 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!107 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !108, i64 0, !23, i64 16, !11, i64 32, !11, i64 36}
!108 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!109 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!110 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!111 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !59, i64 24, !13, i64 40, !13, i64 56, !20, i64 72, !11, i64 76, !19, i64 80, !112, i64 84, !19, i64 3712, !20, i64 3716, !20, i64 3717, !20, i64 3718, !11, i64 3720}
!112 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 12, !11, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !19, i64 28, !113, i64 32}
!113 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !58, i64 3582, !58, i64 3584, !11, i64 3588, !11, i64 3592}
!114 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !11, i64 0, !13, i64 8}
!115 = !{!"_ZTS6ImFont", !105, i64 0, !19, i64 16, !19, i64 20, !59, i64 24, !116, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !58, i64 80, !58, i64 82, !58, i64 84, !58, i64 86, !19, i64 88, !19, i64 92, !20, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !11, i64 112, !7, i64 116}
!116 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!117 = !{!"_ZTS21ImGuiComboPreviewData", !17, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !19, i64 40, !11, i64 44}
!118 = !{!"_ZTS20ImGuiPlatformImeData", !20, i64 0, !18, i64 4, !19, i64 12}
!119 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!120 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !13, i64 0}
!121 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !13, i64 0}
!122 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!123 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!124 = !{!"_ZTS14ImGuiTextIndex", !16, i64 0, !11, i64 16}
!125 = !{!"_ZTS18ImGuiMetricsConfig", !20, i64 0, !20, i64 1, !20, i64 2, !20, i64 3, !20, i64 4, !20, i64 5, !20, i64 6, !20, i64 7, !11, i64 8, !11, i64 12}
!126 = !{!"_ZTS14ImGuiStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !127, i64 16, !20, i64 32, !19, i64 36}
!127 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!128 = !{!27, !11, i64 1500}
!129 = !{!10, !20, i64 2528}
!130 = !{!27, !11, i64 1496}
!131 = !{!10, !20, i64 2532}
!132 = !{!27, !20, i64 1512}
!133 = !{!10, !19, i64 2464}
!134 = !{!56, !19, i64 240}
!135 = !{!10, !19, i64 2472}
!136 = !{!67, !6, i64 56}
!137 = !{!10, !19, i64 2468}
!138 = !{!56, !19, i64 244}
!139 = !{!10, !19, i64 2476}
!140 = !{!56, !19, i64 3600}
!141 = !{!27, !11, i64 1504}
!142 = !{!27, !19, i64 1508}
!143 = !{!56, !19, i64 3584}
!144 = !{!56, !19, i64 3588}
!145 = !{!27, !11, i64 1488}
!146 = !{!27, !11, i64 1492}
!147 = !{!10, !19, i64 2512}
!148 = !{!10, !19, i64 2516}
!149 = !{!10, !20, i64 2531}
!150 = !{!27, !11, i64 1480}
!151 = !{!10, !19, i64 2496}
!152 = !{!10, !19, i64 2504}
!153 = !{!10, !19, i64 2500}
!154 = !{!10, !19, i64 2508}


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass