; LLVM IR from Razakhel/RaZ :: extern/implot/implot.ll (ZN6ImPlot7EndPlotEv)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImPlotContext = type { %struct.ImPool.30, %struct.ImPool.32, ptr, ptr, ptr, ptr, ptr, %struct.ImPlotTicker, %struct.ImPlotAnnotationCollection, %struct.ImPlotTagCollection, i8, [3 x i8], %struct.ImPlotStyle, %struct.ImVector.3, %struct.ImVector.4, %struct.ImPlotColormapData, %struct.ImVector.7, %struct.tm, %struct.ImVector.38, %struct.ImVector.38, %struct.ImVector.7, i32, i32, %struct.ImPlotNextPlotData, %struct.ImPlotNextItemData, %struct.ImPlotInputMap, i8, %struct.ImGuiTextBuffer, ptr, %struct.ImPool.39, ptr, ptr }
%struct.ImPool.30 = type { %struct.ImVector.31, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.2 }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImPool.32 = type { %struct.ImVector.33, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImPlotTicker = type <{ %struct.ImVector.34, %struct.ImGuiTextBuffer, %struct.ImVec2, %struct.ImVec2, i32, [4 x i8] }>
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImPlotAnnotationCollection = type <{ %struct.ImVector.35, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImPlotTagCollection = type <{ %struct.ImVector.36, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.36 = 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.ImVector.3 = type { i32, i32, ptr }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImPlotColormapData = type <{ %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.7, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.7, %struct.ImGuiTextBuffer, %struct.ImVector.7, %struct.ImVector.37, %struct.ImGuiStorage, i32, [4 x i8] }>
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.7 = 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.ImPlotRange = type { double, double }
%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.ImGuiTextBuffer = type { %struct.ImVector.20 }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImPool.39 = type { %struct.ImVector.40, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImGuiContext = type <{ i8, i8, [6 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, [3 x i8], i32, ptr, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.0, %struct.ImVector.1, %struct.ImGuiStorage, i32, %struct.ImVec2, [4 x i8], ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, float, i32, i32, i8, i8, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, [4 x i8], i64, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, [2 x i8], ptr, i32, float, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, [4 x i8], %struct.ImGuiNextWindowData, %struct.ImVector.3, %struct.ImVector.4, %struct.ImVector.5, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.9, %struct.ImVector.10, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.ImRect, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, [3 x i8], i32, i32, i32, i32, i32, i32, [4 x i8], %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, ptr, i32, [4 x i8], ptr, ptr, ptr, float, float, i8, [7 x i8], ptr, ptr, i32, i32, i32, i32, i8, [3 x i8], float, i32, i8, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, [4 x i8], %struct.ImVector.11, [16 x i8], ptr, i32, [4 x i8], %struct.ImPool, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector.15, ptr, %struct.ImPool.16, %struct.ImVector.18, %struct.ImVector.19, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, float, float, [3 x float], %struct.ImVec4, %struct.ImGuiComboPreviewData, float, i8, i8, [2 x i8], float, float, float, float, i32, float, [4 x i8], %struct.ImVector.20, %struct.ImVector.6, %struct.ImVec2, %struct.ImVec2, i8, i8, [2 x i8], float, %struct.ImGuiTextBuffer, %struct.ImVector.22, %struct.ImChunkStream, %struct.ImChunkStream.23, %struct.ImVector.24, i32, i8, [3 x i8], i32, [4 x i8], ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, [3 x i8], i32, i32, i32, i8, [3 x i8], i32, %struct.ImGuiMetricsConfig, [120 x float], i32, i32, float, i32, i32, i32, [3073 x i8], [3 x i8] }>
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [22 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [20 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, i32, i32, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], [512 x float], [512 x float], [20 x float], [20 x float], float, i16, %struct.ImVector }
%struct.ImVector = type { i32, i32, ptr }
%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, %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, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = 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.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.5 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type <{ ptr, i32, i32, %struct.ImRect, float, float, float, [4 x i8] }>
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.12, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImPool.16 = 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.ImGuiInputTextState = type { i32, i32, i32, %struct.ImVector, %struct.ImVector.20, %struct.ImVector.20, i8, i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i32, ptr, ptr }
%"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.ImFont = type <{ %struct.ImVector.14, float, float, %struct.ImVector, %struct.ImVector.21, ptr, ptr, ptr, i16, i16, i16, i16, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.20 }
%struct.ImChunkStream.23 = type { %struct.ImVector.20 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiWindow = type <{ ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, [2 x i8], i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.6, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, float, float, [4 x i8], %struct.ImGuiStorage, %struct.ImVector.41, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i8, [7 x i8] }>
%struct.ImGuiWindowTempData = type <{ %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, i32, i16, i16, i32, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.0, ptr, ptr, i32, i32, i32, i32, i32, float, float, [4 x i8], %struct.ImVector.14, %struct.ImVector.14, %struct.ImGuiStackSizes, [2 x i8] }>
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImGuiStackSizes = type { i16, i16, i16, i16, i16, i16, i16 }
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.25, %struct.ImVector.6, %struct.ImVector.26, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.27, %struct.ImVector.28, %struct.ImVector.29, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.15 }
%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.ImPlotTime = type <{ i64, i32, [4 x i8] }>
%struct.ImPlotItemGroup = type <{ i32, [4 x i8], %struct.ImPlotLegend, %struct.ImPool.42, i32, [4 x i8] }>
%struct.ImPlotLegend = type <{ i32, i32, i32, i32, %struct.ImVector.7, %struct.ImGuiTextBuffer, %struct.ImRect, i8, i8, i8, [5 x i8] }>
%struct.ImPool.42 = type { %struct.ImVector.43, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.43 = type { i32, i32, ptr }
%struct.ImPlotTick = type <{ double, float, %struct.ImVec2, i32, i8, i8, [2 x i8], i32, i32, [4 x i8] }>
%struct.ImPlotAnnotation = type <{ %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, [3 x i8] }>
%struct.ImPlotItem = type <{ i32, i32, %struct.ImRect, i32, i8, i8, i8, i8 }>
%struct.ImPlotTag = type { i32, double, i32, i32, i32 }

@GImPlot = external dso_local global ptr, align 8
@GImGui = external global ptr, align 8
@.str.78 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [114 x i8], align 1
@__PRETTY_FUNCTION__._ZN6ImPlot7EndPlotEv = external hidden unnamed_addr constant [23 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [11 x i8], align 1

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZN6ImPlotL17GetStyleColorVec4Ei(i32 noundef) #3

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot15AddTextCenteredEP10ImDrawList6ImVec2jPKcS4_(ptr noundef, <2 x float>, i32 noundef, ptr noundef, ptr noundef) #5

declare <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) #6

declare void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot19ResetCtxForNextPlotEP13ImPlotContext(ptr noundef) #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN6ImPlot14CalcLegendSizeER15ImPlotItemGroupRK6ImVec2S4_b(ptr noundef nonnull align 8 dereferenceable(124), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK15ImPlotItemGroup14GetLegendCountEv(ptr noundef nonnull align 8 dereferenceable(124)) #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot17ShowLegendEntriesER15ImPlotItemGroupRK6ImRectbRK6ImVec2S7_bR10ImDrawList(ptr noundef nonnull align 8 dereferenceable(124), ptr noundef nonnull align 4 dereferenceable(16), i1 noundef zeroext, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(196)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef) #3

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

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

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

declare void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK11ImPlotRange8ContainsEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372), ptr noundef, i1 noundef zeroext) #7

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

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

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

declare void @_ZN5ImGui9SeparatorEv() #6

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot21ShowLegendContextMenuER12ImPlotLegendb(ptr noundef nonnull align 8 dereferenceable(67), i1 noundef zeroext) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot19ShowPlotContextMenuER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533)) #7

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

; 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) #8 align 2

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

declare void @_ZN5ImGui6PushIDEi(i32 noundef) #6

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

declare void @_ZN5ImGui5PopIDEv() #6

; 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) #8 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372), double noundef, ptr noundef, i32 noundef, i1 noundef zeroext) #7

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

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

; 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 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef, i32 noundef) #8

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

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

declare void @_ZN5ImGui14SetMouseCursorEi(i32 noundef) #6

; 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)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZN6ImPlotL17Formatter_DefaultEdPciPv(double noundef, ptr noundef, i32 noundef, ptr noundef) #10

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 8 dereferenceable(52), ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef, float noundef, float noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 8 dereferenceable(52), ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef, float noundef, float noundef) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #8 align 2

declare void @_ZN5ImGui14PushOverrideIDEj(i32 noundef) #6

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ImPlot7EndPlotEv() #5 {
  %1 = alloca ptr, align 8
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i8, align 1
  %8 = alloca i8, align 1
  %9 = alloca i8, align 1
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i8, align 1
  %24 = alloca i8, align 1
  %25 = alloca float, align 4
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImVec2, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca i8, align 1
  %41 = alloca i8, align 1
  %42 = alloca float, align 4
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca %struct.ImVec2, align 4
  %46 = alloca float, align 4
  %47 = alloca float, align 4
  %48 = alloca %struct.ImVec2, align 4
  %49 = alloca %struct.ImVec2, align 4
  %50 = alloca %struct.ImVec2, align 4
  %51 = alloca %struct.ImVec2, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca %struct.ImVec2, align 4
  %56 = alloca %struct.ImVec2, align 4
  %57 = alloca %struct.ImVec2, align 4
  %58 = alloca %struct.ImVec2, align 4
  %59 = alloca %struct.ImVec2, align 4
  %60 = alloca %struct.ImVec2, align 4
  %61 = alloca %struct.ImRect, align 4
  %62 = alloca %struct.ImVec2, align 4
  %63 = alloca [4 x %struct.ImVec2], align 16
  %64 = alloca i32, align 4
  %65 = alloca float, align 4
  %66 = alloca i32, align 4
  %67 = alloca float, align 4
  %68 = alloca %struct.ImVec2, align 4
  %69 = alloca %struct.ImVec2, align 4
  %70 = alloca %struct.ImVec2, align 4
  %71 = alloca %struct.ImVec2, align 4
  %72 = alloca %struct.ImVec4, align 4
  %73 = alloca %struct.ImVec2, align 4
  %74 = alloca %struct.ImVec2, align 4
  %75 = alloca %struct.ImVec2, align 4
  %76 = alloca %struct.ImVec2, align 4
  %77 = alloca %struct.ImVec2, align 4
  %78 = alloca %struct.ImVec2, align 4
  %79 = alloca %struct.ImVec2, align 4
  %80 = alloca %struct.ImVec2, align 4
  %81 = alloca %struct.ImVec2, align 4
  %82 = alloca i32, align 4
  %83 = alloca i8, align 1
  %84 = alloca i8, align 1
  %85 = alloca ptr, align 8
  %86 = alloca [32 x i8], align 16
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca ptr, align 8
  %90 = alloca double, align 8
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca ptr, align 8
  %94 = alloca double, align 8
  %95 = alloca %struct.ImVec2, align 4
  %96 = alloca %struct.ImVec2, align 4
  %97 = alloca %struct.ImVec2, align 4
  %98 = alloca %struct.ImRect, align 4
  %99 = alloca i32, align 4
  %100 = alloca ptr, align 8
  %101 = alloca i8, align 1
  %102 = alloca %struct.ImRect, align 4
  %103 = alloca %struct.ImRect, align 4
  %104 = alloca i32, align 4
  %105 = alloca ptr, align 8
  %106 = alloca i8, align 1
  %107 = alloca %struct.ImRect, align 4
  %108 = alloca %struct.ImRect, align 4
  %109 = alloca i32, align 4
  %110 = alloca ptr, align 8
  %111 = alloca i8, align 1
  %112 = alloca i8, align 1
  %113 = alloca %struct.ImVec2, align 4
  %114 = alloca %struct.ImVec2, align 4
  %115 = alloca %struct.ImRect, align 4
  %116 = alloca %struct.ImVec2, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i8, align 1
  %120 = alloca %struct.ImRect, align 4
  %121 = alloca i32, align 4
  %122 = alloca ptr, align 8
  %123 = alloca ptr, align 8
  %124 = alloca ptr, align 8
  %125 = alloca %struct.ImVec2, align 4
  %126 = alloca %struct.ImVec2, align 4
  %127 = alloca %struct.ImVec2, align 4
  %128 = alloca %struct.ImVec2, align 4
  %129 = alloca float, align 4
  %130 = alloca %struct.ImVec2, align 4
  %131 = alloca %struct.ImVec2, align 4
  %132 = alloca %struct.ImVec2, align 4
  %133 = alloca %struct.ImVec2, align 4
  %134 = alloca %struct.ImVec2, align 4
  %135 = alloca %struct.ImVec2, align 4
  %136 = alloca %struct.ImVec2, align 4
  %137 = alloca %struct.ImVec2, align 4
  %138 = alloca %struct.ImVec2, align 4
  %139 = alloca %struct.ImVec2, align 4
  %140 = alloca %struct.ImVec2, align 4
  %141 = alloca %struct.ImVec2, align 4
  %142 = alloca %struct.ImVec2, align 4
  %143 = alloca %struct.ImVec2, align 4
  %144 = alloca %struct.ImVec2, align 4
  %145 = alloca %struct.ImVec2, align 4
  %146 = alloca %struct.ImVec2, align 4
  %147 = alloca %struct.ImVec2, align 4
  %148 = alloca %struct.ImVec2, align 4
  %149 = alloca %struct.ImVec2, align 4
  %150 = alloca i8, align 1
  %151 = alloca i32, align 4
  %152 = alloca ptr, align 8
  %153 = alloca double, align 8
  %154 = alloca ptr, align 8
  %155 = alloca i32, align 4
  %156 = alloca ptr, align 8
  %157 = alloca double, align 8
  %158 = alloca ptr, align 8
  %159 = alloca i8, align 1
  %160 = alloca i32, align 4
  %161 = alloca ptr, align 8
  %162 = alloca i32, align 4
  %163 = alloca ptr, align 8
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %167 = icmp ne ptr %166, null
  br i1 %167, label %168, label %169

168:                                              ; preds = %0
  br label %169

169:                                              ; preds = %168, %0
  %170 = phi i1 [ false, %0 ], [ true, %168 ]
  br i1 %170, label %171, label %172

171:                                              ; preds = %169
  br label %174

172:                                              ; preds = %169
  call void @__assert_fail(ptr noundef @.str.144, ptr noundef @.str.78, i32 noundef 2728, ptr noundef @__PRETTY_FUNCTION__._ZN6ImPlot7EndPlotEv) #13
  unreachable

173:                                              ; No predecessors!
  br label %174

174:                                              ; preds = %173, %171
  %175 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.ImPlotContext, ptr %175, i32 0, i32 2
  %177 = load ptr, ptr %176, align 8, !tbaa !9
  %178 = icmp ne ptr %177, null
  br i1 %178, label %179, label %180

179:                                              ; preds = %174
  br label %180

180:                                              ; preds = %179, %174
  %181 = phi i1 [ false, %174 ], [ true, %179 ]
  br i1 %181, label %182, label %183

182:                                              ; preds = %180
  br label %185

183:                                              ; preds = %180
  call void @__assert_fail(ptr noundef @.str.149, ptr noundef @.str.78, i32 noundef 2729, ptr noundef @__PRETTY_FUNCTION__._ZN6ImPlot7EndPlotEv) #13
  unreachable

184:                                              ; No predecessors!
  br label %185

185:                                              ; preds = %184, %182
  call void @_ZN6ImPlotL9SetupLockEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %1) #14
  %186 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  store ptr %186, ptr %1, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %2) #14
  %187 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %187, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #14
  %188 = load ptr, ptr %1, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.ImPlotContext, ptr %188, i32 0, i32 2
  %190 = load ptr, ptr %189, align 8, !tbaa !9
  store ptr %190, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #14
  %191 = load ptr, ptr %2, align 8, !tbaa !5
  %192 = getelementptr inbounds %struct.ImGuiContext, ptr %191, i32 0, i32 29
  %193 = load ptr, ptr %192, align 8, !tbaa !44
  store ptr %193, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #14
  %194 = load ptr, ptr %4, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.ImGuiWindow, ptr %194, i32 0, i32 72
  %196 = load ptr, ptr %195, align 8, !tbaa !91
  store ptr %196, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #14
  %197 = call noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv()
  store ptr %197, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #14
  %198 = load ptr, ptr %1, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.ImPlotContext, ptr %198, i32 0, i32 12
  %200 = getelementptr inbounds %struct.ImPlotStyle, ptr %199, i32 0, i32 9
  %201 = load float, ptr %200, align 4, !tbaa !107
  %202 = fcmp ogt float %201, 0.000000e+00
  br i1 %202, label %203, label %211

203:                                              ; preds = %185
  %204 = load ptr, ptr %1, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.ImPlotContext, ptr %204, i32 0, i32 12
  %206 = getelementptr inbounds %struct.ImPlotStyle, ptr %205, i32 0, i32 27
  %207 = getelementptr inbounds [21 x %struct.ImVec4], ptr %206, i64 0, i64 7
  %208 = getelementptr inbounds %struct.ImVec4, ptr %207, i32 0, i32 3
  %209 = load float, ptr %208, align 4, !tbaa !108
  %210 = fcmp ogt float %209, 0.000000e+00
  br label %211

211:                                              ; preds = %203, %185
  %212 = phi i1 [ false, %185 ], [ %210, %203 ]
  %213 = zext i1 %212 to i8
  store i8 %213, ptr %7, align 1, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #14
  %214 = load ptr, ptr %3, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImPlotPlot, ptr %214, i32 0, i32 23
  %216 = load i8, ptr %215, align 1, !tbaa !110, !range !116, !noundef !117
  %217 = trunc i8 %216 to i1
  br i1 %217, label %223, label %218

218:                                              ; preds = %211
  %219 = load ptr, ptr %3, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.ImPlotPlot, ptr %219, i32 0, i32 6
  %221 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %220, i64 0, i64 0
  %222 = call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef %221, i32 noundef 3)
  br label %223

223:                                              ; preds = %218, %211
  %224 = phi i1 [ true, %211 ], [ %222, %218 ]
  %225 = zext i1 %224 to i8
  store i8 %225, ptr %8, align 1, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #14
  %226 = load ptr, ptr %3, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.ImPlotPlot, ptr %226, i32 0, i32 23
  %228 = load i8, ptr %227, align 1, !tbaa !110, !range !116, !noundef !117
  %229 = trunc i8 %228 to i1
  br i1 %229, label %235, label %230

230:                                              ; preds = %223
  %231 = load ptr, ptr %3, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.ImPlotPlot, ptr %231, i32 0, i32 6
  %233 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %232, i64 0, i64 3
  %234 = call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef %233, i32 noundef 3)
  br label %235

235:                                              ; preds = %230, %223
  %236 = phi i1 [ true, %223 ], [ %234, %230 ]
  %237 = zext i1 %236 to i8
  store i8 %237, ptr %9, align 1, !tbaa !109
  %238 = load ptr, ptr %3, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.ImPlotPlot, ptr %238, i32 0, i32 11
  %240 = getelementptr inbounds %struct.ImRect, ptr %239, i32 0, i32 0
  %241 = load ptr, ptr %3, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.ImPlotPlot, ptr %241, i32 0, i32 11
  %243 = getelementptr inbounds %struct.ImRect, ptr %242, i32 0, i32 1
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %240, ptr noundef nonnull align 4 dereferenceable(8) %243, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #14
  store i32 0, ptr %10, align 4, !tbaa !118
  br label %244

244:                                              ; preds = %285, %235
  %245 = load i32, ptr %10, align 4, !tbaa !118
  %246 = icmp slt i32 %245, 3
  br i1 %246, label %248, label %247

247:                                              ; preds = %244
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #14
  br label %288

248:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #14
  %249 = load ptr, ptr %3, align 8, !tbaa !5
  %250 = load i32, ptr %10, align 4, !tbaa !118
  %251 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %249, i32 noundef %250)
  store ptr %251, ptr %11, align 8, !tbaa !5
  %252 = load ptr, ptr %11, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.ImPlotAxis, ptr %252, i32 0, i32 42
  %254 = load i8, ptr %253, align 4, !tbaa !119, !range !116, !noundef !117
  %255 = trunc i8 %254 to i1
  br i1 %255, label %256, label %284

256:                                              ; preds = %248
  %257 = load ptr, ptr %11, align 8, !tbaa !5
  %258 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %257)
  br i1 %258, label %259, label %284

259:                                              ; preds = %256
  %260 = load ptr, ptr %11, align 8, !tbaa !5
  %261 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %260)
  br i1 %261, label %262, label %284

262:                                              ; preds = %259
  %263 = load ptr, ptr %5, align 8, !tbaa !5
  %264 = load ptr, ptr %11, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.ImPlotAxis, ptr %264, i32 0, i32 11
  %266 = load ptr, ptr %3, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.ImPlotPlot, ptr %266, i32 0, i32 13
  %268 = load ptr, ptr %11, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.ImPlotAxis, ptr %268, i32 0, i32 34
  %270 = load i32, ptr %269, align 4, !tbaa !123
  %271 = load ptr, ptr %11, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ImPlotAxis, ptr %271, i32 0, i32 35
  %273 = load i32, ptr %272, align 8, !tbaa !124
  %274 = load ptr, ptr %1, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.ImPlotContext, ptr %274, i32 0, i32 12
  %276 = getelementptr inbounds %struct.ImPlotStyle, ptr %275, i32 0, i32 15
  %277 = getelementptr inbounds %struct.ImVec2, ptr %276, i32 0, i32 0
  %278 = load float, ptr %277, align 4, !tbaa !125
  %279 = load ptr, ptr %1, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.ImPlotContext, ptr %279, i32 0, i32 12
  %281 = getelementptr inbounds %struct.ImPlotStyle, ptr %280, i32 0, i32 16
  %282 = getelementptr inbounds %struct.ImVec2, ptr %281, i32 0, i32 0
  %283 = load float, ptr %282, align 4, !tbaa !126
  call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %263, ptr noundef nonnull align 8 dereferenceable(52) %265, ptr noundef nonnull align 4 dereferenceable(16) %267, i32 noundef %270, i32 noundef %273, float noundef %278, float noundef %283)
  br label %284

284:                                              ; preds = %262, %259, %256, %248
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #14
  br label %285

285:                                              ; preds = %284
  %286 = load i32, ptr %10, align 4, !tbaa !118
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr %10, align 4, !tbaa !118
  br label %244, !llvm.loop !127

288:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #14
  store i32 0, ptr %12, align 4, !tbaa !118
  br label %289

289:                                              ; preds = %330, %288
  %290 = load i32, ptr %12, align 4, !tbaa !118
  %291 = icmp slt i32 %290, 3
  br i1 %291, label %293, label %292

292:                                              ; preds = %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #14
  br label %333

293:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #14
  %294 = load ptr, ptr %3, align 8, !tbaa !5
  %295 = load i32, ptr %12, align 4, !tbaa !118
  %296 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %294, i32 noundef %295)
  store ptr %296, ptr %13, align 8, !tbaa !5
  %297 = load ptr, ptr %13, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.ImPlotAxis, ptr %297, i32 0, i32 42
  %299 = load i8, ptr %298, align 4, !tbaa !119, !range !116, !noundef !117
  %300 = trunc i8 %299 to i1
  br i1 %300, label %301, label %329

301:                                              ; preds = %293
  %302 = load ptr, ptr %13, align 8, !tbaa !5
  %303 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %302)
  br i1 %303, label %304, label %329

304:                                              ; preds = %301
  %305 = load ptr, ptr %13, align 8, !tbaa !5
  %306 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %305)
  br i1 %306, label %307, label %329

307:                                              ; preds = %304
  %308 = load ptr, ptr %5, align 8, !tbaa !5
  %309 = load ptr, ptr %13, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.ImPlotAxis, ptr %309, i32 0, i32 11
  %311 = load ptr, ptr %3, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.ImPlotPlot, ptr %311, i32 0, i32 13
  %313 = load ptr, ptr %13, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.ImPlotAxis, ptr %313, i32 0, i32 34
  %315 = load i32, ptr %314, align 4, !tbaa !123
  %316 = load ptr, ptr %13, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.ImPlotAxis, ptr %316, i32 0, i32 35
  %318 = load i32, ptr %317, align 8, !tbaa !124
  %319 = load ptr, ptr %1, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.ImPlotContext, ptr %319, i32 0, i32 12
  %321 = getelementptr inbounds %struct.ImPlotStyle, ptr %320, i32 0, i32 15
  %322 = getelementptr inbounds %struct.ImVec2, ptr %321, i32 0, i32 1
  %323 = load float, ptr %322, align 4, !tbaa !129
  %324 = load ptr, ptr %1, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.ImPlotContext, ptr %324, i32 0, i32 12
  %326 = getelementptr inbounds %struct.ImPlotStyle, ptr %325, i32 0, i32 16
  %327 = getelementptr inbounds %struct.ImVec2, ptr %326, i32 0, i32 1
  %328 = load float, ptr %327, align 4, !tbaa !130
  call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %308, ptr noundef nonnull align 8 dereferenceable(52) %310, ptr noundef nonnull align 4 dereferenceable(16) %312, i32 noundef %315, i32 noundef %318, float noundef %323, float noundef %328)
  br label %329

329:                                              ; preds = %307, %304, %301, %293
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #14
  br label %330

330:                                              ; preds = %329
  %331 = load i32, ptr %12, align 4, !tbaa !118
  %332 = add nsw i32 %331, 1
  store i32 %332, ptr %12, align 4, !tbaa !118
  br label %289, !llvm.loop !131

333:                                              ; preds = %292
  %334 = load ptr, ptr %3, align 8, !tbaa !5
  %335 = call noundef zeroext i1 @_ZNK10ImPlotPlot8HasTitleEv(ptr noundef nonnull align 8 dereferenceable(2533) %334)
  br i1 %335, label %336, label %353

336:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #14
  %337 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 11)
  store i32 %337, ptr %14, align 4, !tbaa !118
  %338 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #14
  %339 = load ptr, ptr %3, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ImPlotPlot, ptr %339, i32 0, i32 13
  %341 = call <2 x float> @_ZNK6ImRect9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16) %340)
  store <2 x float> %341, ptr %16, align 4
  %342 = getelementptr inbounds %struct.ImVec2, ptr %16, i32 0, i32 0
  %343 = load float, ptr %342, align 4, !tbaa !132
  %344 = load ptr, ptr %3, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImPlotPlot, ptr %344, i32 0, i32 12
  %346 = getelementptr inbounds %struct.ImRect, ptr %345, i32 0, i32 0
  %347 = getelementptr inbounds %struct.ImVec2, ptr %346, i32 0, i32 1
  %348 = load float, ptr %347, align 4, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef %343, float noundef %348)
  %349 = load i32, ptr %14, align 4, !tbaa !118
  %350 = load ptr, ptr %3, align 8, !tbaa !5
  %351 = call noundef ptr @_ZNK10ImPlotPlot8GetTitleEv(ptr noundef nonnull align 8 dereferenceable(2533) %350)
  %352 = load <2 x float>, ptr %15, align 4
  call void @_ZN6ImPlot15AddTextCenteredEP10ImDrawList6ImVec2jPKcS4_(ptr noundef %338, <2 x float> %352, i32 noundef %349, ptr noundef %351, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #14
  br label %353

353:                                              ; preds = %336, %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #14
  store i32 0, ptr %17, align 4, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #14
  store i32 0, ptr %18, align 4, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #14
  store i32 0, ptr %19, align 4, !tbaa !118
  br label %354

354:                                              ; preds = %544, %353
  %355 = load i32, ptr %19, align 4, !tbaa !118
  %356 = icmp slt i32 %355, 3
  br i1 %356, label %358, label %357

357:                                              ; preds = %354
  store i32 8, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #14
  br label %547

358:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #14
  %359 = load ptr, ptr %3, align 8, !tbaa !5
  %360 = load i32, ptr %19, align 4, !tbaa !118
  %361 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %359, i32 noundef %360)
  store ptr %361, ptr %21, align 8, !tbaa !5
  %362 = load ptr, ptr %21, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImPlotAxis, ptr %362, i32 0, i32 42
  %364 = load i8, ptr %363, align 4, !tbaa !119, !range !116, !noundef !117
  %365 = trunc i8 %364 to i1
  br i1 %365, label %367, label %366

366:                                              ; preds = %358
  store i32 10, ptr %20, align 4
  br label %541

367:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #14
  %368 = load ptr, ptr %21, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.ImPlotAxis, ptr %368, i32 0, i32 11
  store ptr %369, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #14
  %370 = load ptr, ptr %21, align 8, !tbaa !5
  %371 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %370)
  %372 = zext i1 %371 to i8
  store i8 %372, ptr %23, align 1, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #14
  %373 = load i8, ptr %23, align 1, !tbaa !109, !range !116, !noundef !117
  %374 = trunc i8 %373 to i1
  br i1 %374, label %375, label %378

375:                                              ; preds = %367
  %376 = load i32, ptr %18, align 4, !tbaa !118
  %377 = icmp sgt i32 %376, 0
  br i1 %377, label %386, label %378

378:                                              ; preds = %375, %367
  %379 = load i8, ptr %23, align 1, !tbaa !109, !range !116, !noundef !117
  %380 = trunc i8 %379 to i1
  br i1 %380, label %384, label %381

381:                                              ; preds = %378
  %382 = load i32, ptr %17, align 4, !tbaa !118
  %383 = icmp sgt i32 %382, 0
  br label %384

384:                                              ; preds = %381, %378
  %385 = phi i1 [ false, %378 ], [ %383, %381 ]
  br label %386

386:                                              ; preds = %384, %375
  %387 = phi i1 [ true, %375 ], [ %385, %384 ]
  %388 = zext i1 %387 to i8
  store i8 %388, ptr %24, align 1, !tbaa !109
  %389 = load ptr, ptr %21, align 8, !tbaa !5
  %390 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasTickMarksEv(ptr noundef nonnull align 8 dereferenceable(372) %389)
  br i1 %390, label %391, label %529

391:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #14
  %392 = load i8, ptr %23, align 1, !tbaa !109, !range !116, !noundef !117
  %393 = trunc i8 %392 to i1
  %394 = zext i1 %393 to i64
  %395 = select i1 %393, float 1.000000e+00, float -1.000000e+00
  store float %395, ptr %25, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #14
  store i32 0, ptr %26, align 4, !tbaa !118
  br label %396

396:                                              ; preds = %493, %391
  %397 = load i32, ptr %26, align 4, !tbaa !118
  %398 = load ptr, ptr %22, align 8, !tbaa !5
  %399 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %398)
  %400 = icmp slt i32 %397, %399
  br i1 %400, label %402, label %401

401:                                              ; preds = %396
  store i32 11, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #14
  br label %496

402:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #14
  %403 = load ptr, ptr %22, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.ImPlotTicker, ptr %403, i32 0, i32 0
  %405 = load i32, ptr %26, align 4, !tbaa !118
  %406 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %404, i32 noundef %405)
  store ptr %406, ptr %27, align 8, !tbaa !5
  %407 = load ptr, ptr %27, align 8, !tbaa !5
  %408 = getelementptr inbounds %struct.ImPlotTick, ptr %407, i32 0, i32 7
  %409 = load i32, ptr %408, align 4, !tbaa !135
  %410 = icmp ne i32 %409, 0
  br i1 %410, label %431, label %411

411:                                              ; preds = %402
  %412 = load ptr, ptr %27, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.ImPlotTick, ptr %412, i32 0, i32 1
  %414 = load float, ptr %413, align 8, !tbaa !137
  %415 = load ptr, ptr %3, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.ImPlotPlot, ptr %415, i32 0, i32 13
  %417 = getelementptr inbounds %struct.ImRect, ptr %416, i32 0, i32 0
  %418 = getelementptr inbounds %struct.ImVec2, ptr %417, i32 0, i32 0
  %419 = load float, ptr %418, align 8, !tbaa !138
  %420 = fcmp olt float %414, %419
  br i1 %420, label %431, label %421

421:                                              ; preds = %411
  %422 = load ptr, ptr %27, align 8, !tbaa !5
  %423 = getelementptr inbounds %struct.ImPlotTick, ptr %422, i32 0, i32 1
  %424 = load float, ptr %423, align 8, !tbaa !137
  %425 = load ptr, ptr %3, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.ImPlotPlot, ptr %425, i32 0, i32 13
  %427 = getelementptr inbounds %struct.ImRect, ptr %426, i32 0, i32 1
  %428 = getelementptr inbounds %struct.ImVec2, ptr %427, i32 0, i32 0
  %429 = load float, ptr %428, align 8, !tbaa !139
  %430 = fcmp ogt float %424, %429
  br i1 %430, label %431, label %432

431:                                              ; preds = %421, %411, %402
  store i32 13, ptr %20, align 4
  br label %490

432:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #14
  %433 = load ptr, ptr %27, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.ImPlotTick, ptr %433, i32 0, i32 1
  %435 = load float, ptr %434, align 8, !tbaa !137
  %436 = load ptr, ptr %21, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.ImPlotAxis, ptr %436, i32 0, i32 30
  %438 = load float, ptr %437, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %28, float noundef %435, float noundef %438)
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #14
  %439 = load i8, ptr %24, align 1, !tbaa !109, !range !116, !noundef !117
  %440 = trunc i8 %439 to i1
  br i1 %440, label %452, label %441

441:                                              ; preds = %432
  %442 = load ptr, ptr %27, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.ImPlotTick, ptr %442, i32 0, i32 4
  %444 = load i8, ptr %443, align 8, !tbaa !141, !range !116, !noundef !117
  %445 = trunc i8 %444 to i1
  br i1 %445, label %446, label %452

446:                                              ; preds = %441
  %447 = load ptr, ptr %1, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.ImPlotContext, ptr %447, i32 0, i32 12
  %449 = getelementptr inbounds %struct.ImPlotStyle, ptr %448, i32 0, i32 11
  %450 = getelementptr inbounds %struct.ImVec2, ptr %449, i32 0, i32 0
  %451 = load float, ptr %450, align 4, !tbaa !142
  br label %458

452:                                              ; preds = %441, %432
  %453 = load ptr, ptr %1, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.ImPlotContext, ptr %453, i32 0, i32 12
  %455 = getelementptr inbounds %struct.ImPlotStyle, ptr %454, i32 0, i32 12
  %456 = getelementptr inbounds %struct.ImVec2, ptr %455, i32 0, i32 0
  %457 = load float, ptr %456, align 4, !tbaa !143
  br label %458

458:                                              ; preds = %452, %446
  %459 = phi float [ %451, %446 ], [ %457, %452 ]
  store float %459, ptr %29, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #14
  %460 = load i8, ptr %24, align 1, !tbaa !109, !range !116, !noundef !117
  %461 = trunc i8 %460 to i1
  br i1 %461, label %473, label %462

462:                                              ; preds = %458
  %463 = load ptr, ptr %27, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.ImPlotTick, ptr %463, i32 0, i32 4
  %465 = load i8, ptr %464, align 8, !tbaa !141, !range !116, !noundef !117
  %466 = trunc i8 %465 to i1
  br i1 %466, label %467, label %473

467:                                              ; preds = %462
  %468 = load ptr, ptr %1, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.ImPlotContext, ptr %468, i32 0, i32 12
  %470 = getelementptr inbounds %struct.ImPlotStyle, ptr %469, i32 0, i32 13
  %471 = getelementptr inbounds %struct.ImVec2, ptr %470, i32 0, i32 0
  %472 = load float, ptr %471, align 4, !tbaa !144
  br label %479

473:                                              ; preds = %462, %458
  %474 = load ptr, ptr %1, align 8, !tbaa !5
  %475 = getelementptr inbounds %struct.ImPlotContext, ptr %474, i32 0, i32 12
  %476 = getelementptr inbounds %struct.ImPlotStyle, ptr %475, i32 0, i32 14
  %477 = getelementptr inbounds %struct.ImVec2, ptr %476, i32 0, i32 0
  %478 = load float, ptr %477, align 4, !tbaa !145
  br label %479

479:                                              ; preds = %473, %467
  %480 = phi float [ %472, %467 ], [ %478, %473 ]
  store float %480, ptr %30, align 4, !tbaa !134
  %481 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #14
  %482 = load float, ptr %25, align 4, !tbaa !134
  %483 = load float, ptr %29, align 4, !tbaa !134
  %484 = fmul float %482, %483
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef 0.000000e+00, float noundef %484)
  %485 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %485, ptr %31, align 4
  %486 = load ptr, ptr %21, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.ImPlotAxis, ptr %486, i32 0, i32 36
  %488 = load i32, ptr %487, align 4, !tbaa !146
  %489 = load float, ptr %30, align 4, !tbaa !134
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %481, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %31, i32 noundef %488, float noundef %489)
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #14
  store i32 0, ptr %20, align 4
  br label %490

490:                                              ; preds = %479, %431
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #14
  %491 = load i32, ptr %20, align 4
  switch i32 %491, label %2222 [
    i32 0, label %492
    i32 13, label %493
  ]

492:                                              ; preds = %490
  br label %493

493:                                              ; preds = %492, %490
  %494 = load i32, ptr %26, align 4, !tbaa !118
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr %26, align 4, !tbaa !118
  br label %396, !llvm.loop !147

496:                                              ; preds = %401
  %497 = load i8, ptr %24, align 1, !tbaa !109, !range !116, !noundef !117
  %498 = trunc i8 %497 to i1
  br i1 %498, label %502, label %499

499:                                              ; preds = %496
  %500 = load i8, ptr %7, align 1, !tbaa !109, !range !116, !noundef !117
  %501 = trunc i8 %500 to i1
  br i1 %501, label %528, label %502

502:                                              ; preds = %499, %496
  %503 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #14
  %504 = load ptr, ptr %3, align 8, !tbaa !5
  %505 = getelementptr inbounds %struct.ImPlotPlot, ptr %504, i32 0, i32 13
  %506 = getelementptr inbounds %struct.ImRect, ptr %505, i32 0, i32 0
  %507 = getelementptr inbounds %struct.ImVec2, ptr %506, i32 0, i32 0
  %508 = load float, ptr %507, align 8, !tbaa !138
  %509 = load ptr, ptr %21, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.ImPlotAxis, ptr %509, i32 0, i32 30
  %511 = load float, ptr %510, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %508, float noundef %511)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #14
  %512 = load ptr, ptr %3, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.ImPlotPlot, ptr %512, i32 0, i32 13
  %514 = getelementptr inbounds %struct.ImRect, ptr %513, i32 0, i32 1
  %515 = getelementptr inbounds %struct.ImVec2, ptr %514, i32 0, i32 0
  %516 = load float, ptr %515, align 8, !tbaa !139
  %517 = load ptr, ptr %21, align 8, !tbaa !5
  %518 = getelementptr inbounds %struct.ImPlotAxis, ptr %517, i32 0, i32 30
  %519 = load float, ptr %518, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %516, float noundef %519)
  %520 = load ptr, ptr %21, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.ImPlotAxis, ptr %520, i32 0, i32 36
  %522 = load i32, ptr %521, align 4, !tbaa !146
  %523 = load ptr, ptr %1, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.ImPlotContext, ptr %523, i32 0, i32 12
  %525 = getelementptr inbounds %struct.ImPlotStyle, ptr %524, i32 0, i32 14
  %526 = getelementptr inbounds %struct.ImVec2, ptr %525, i32 0, i32 0
  %527 = load float, ptr %526, align 4, !tbaa !145
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %503, ptr noundef nonnull align 4 dereferenceable(8) %33, ptr noundef nonnull align 4 dereferenceable(8) %34, i32 noundef %522, float noundef %527)
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #14
  br label %528

528:                                              ; preds = %502, %499
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #14
  br label %529

529:                                              ; preds = %528, %386
  %530 = load i8, ptr %23, align 1, !tbaa !109, !range !116, !noundef !117
  %531 = trunc i8 %530 to i1
  %532 = xor i1 %531, true
  %533 = zext i1 %532 to i32
  %534 = load i32, ptr %17, align 4, !tbaa !118
  %535 = add nsw i32 %534, %533
  store i32 %535, ptr %17, align 4, !tbaa !118
  %536 = load i8, ptr %23, align 1, !tbaa !109, !range !116, !noundef !117
  %537 = trunc i8 %536 to i1
  %538 = zext i1 %537 to i32
  %539 = load i32, ptr %18, align 4, !tbaa !118
  %540 = add nsw i32 %539, %538
  store i32 %540, ptr %18, align 4, !tbaa !118
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #14
  store i32 0, ptr %20, align 4
  br label %541

541:                                              ; preds = %529, %366
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #14
  %542 = load i32, ptr %20, align 4
  switch i32 %542, label %2222 [
    i32 0, label %543
    i32 10, label %544
  ]

543:                                              ; preds = %541
  br label %544

544:                                              ; preds = %543, %541
  %545 = load i32, ptr %19, align 4, !tbaa !118
  %546 = add nsw i32 %545, 1
  store i32 %546, ptr %19, align 4, !tbaa !118
  br label %354, !llvm.loop !148

547:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #14
  store i32 0, ptr %35, align 4, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #14
  store i32 0, ptr %36, align 4, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #14
  store i32 0, ptr %37, align 4, !tbaa !118
  br label %548

548:                                              ; preds = %738, %547
  %549 = load i32, ptr %37, align 4, !tbaa !118
  %550 = icmp slt i32 %549, 3
  br i1 %550, label %552, label %551

551:                                              ; preds = %548
  store i32 14, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #14
  br label %741

552:                                              ; preds = %548
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #14
  %553 = load ptr, ptr %3, align 8, !tbaa !5
  %554 = load i32, ptr %37, align 4, !tbaa !118
  %555 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %553, i32 noundef %554)
  store ptr %555, ptr %38, align 8, !tbaa !5
  %556 = load ptr, ptr %38, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.ImPlotAxis, ptr %556, i32 0, i32 42
  %558 = load i8, ptr %557, align 4, !tbaa !119, !range !116, !noundef !117
  %559 = trunc i8 %558 to i1
  br i1 %559, label %561, label %560

560:                                              ; preds = %552
  store i32 16, ptr %20, align 4
  br label %735

561:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #14
  %562 = load ptr, ptr %38, align 8, !tbaa !5
  %563 = getelementptr inbounds %struct.ImPlotAxis, ptr %562, i32 0, i32 11
  store ptr %563, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #14
  %564 = load ptr, ptr %38, align 8, !tbaa !5
  %565 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %564)
  %566 = zext i1 %565 to i8
  store i8 %566, ptr %40, align 1, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #14
  %567 = load i8, ptr %40, align 1, !tbaa !109, !range !116, !noundef !117
  %568 = trunc i8 %567 to i1
  br i1 %568, label %569, label %572

569:                                              ; preds = %561
  %570 = load i32, ptr %36, align 4, !tbaa !118
  %571 = icmp sgt i32 %570, 0
  br i1 %571, label %580, label %572

572:                                              ; preds = %569, %561
  %573 = load i8, ptr %40, align 1, !tbaa !109, !range !116, !noundef !117
  %574 = trunc i8 %573 to i1
  br i1 %574, label %578, label %575

575:                                              ; preds = %572
  %576 = load i32, ptr %35, align 4, !tbaa !118
  %577 = icmp sgt i32 %576, 0
  br label %578

578:                                              ; preds = %575, %572
  %579 = phi i1 [ false, %572 ], [ %577, %575 ]
  br label %580

580:                                              ; preds = %578, %569
  %581 = phi i1 [ true, %569 ], [ %579, %578 ]
  %582 = zext i1 %581 to i8
  store i8 %582, ptr %41, align 1, !tbaa !109
  %583 = load ptr, ptr %38, align 8, !tbaa !5
  %584 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasTickMarksEv(ptr noundef nonnull align 8 dereferenceable(372) %583)
  br i1 %584, label %585, label %723

585:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #14
  %586 = load i8, ptr %40, align 1, !tbaa !109, !range !116, !noundef !117
  %587 = trunc i8 %586 to i1
  %588 = zext i1 %587 to i64
  %589 = select i1 %587, float -1.000000e+00, float 1.000000e+00
  store float %589, ptr %42, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #14
  store i32 0, ptr %43, align 4, !tbaa !118
  br label %590

590:                                              ; preds = %687, %585
  %591 = load i32, ptr %43, align 4, !tbaa !118
  %592 = load ptr, ptr %39, align 8, !tbaa !5
  %593 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %592)
  %594 = icmp slt i32 %591, %593
  br i1 %594, label %596, label %595

595:                                              ; preds = %590
  store i32 17, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #14
  br label %690

596:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #14
  %597 = load ptr, ptr %39, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.ImPlotTicker, ptr %597, i32 0, i32 0
  %599 = load i32, ptr %43, align 4, !tbaa !118
  %600 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %598, i32 noundef %599)
  store ptr %600, ptr %44, align 8, !tbaa !5
  %601 = load ptr, ptr %44, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.ImPlotTick, ptr %601, i32 0, i32 7
  %603 = load i32, ptr %602, align 4, !tbaa !135
  %604 = icmp ne i32 %603, 0
  br i1 %604, label %625, label %605

605:                                              ; preds = %596
  %606 = load ptr, ptr %44, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.ImPlotTick, ptr %606, i32 0, i32 1
  %608 = load float, ptr %607, align 8, !tbaa !137
  %609 = load ptr, ptr %3, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ImPlotPlot, ptr %609, i32 0, i32 13
  %611 = getelementptr inbounds %struct.ImRect, ptr %610, i32 0, i32 0
  %612 = getelementptr inbounds %struct.ImVec2, ptr %611, i32 0, i32 1
  %613 = load float, ptr %612, align 4, !tbaa !149
  %614 = fcmp olt float %608, %613
  br i1 %614, label %625, label %615

615:                                              ; preds = %605
  %616 = load ptr, ptr %44, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ImPlotTick, ptr %616, i32 0, i32 1
  %618 = load float, ptr %617, align 8, !tbaa !137
  %619 = load ptr, ptr %3, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.ImPlotPlot, ptr %619, i32 0, i32 13
  %621 = getelementptr inbounds %struct.ImRect, ptr %620, i32 0, i32 1
  %622 = getelementptr inbounds %struct.ImVec2, ptr %621, i32 0, i32 1
  %623 = load float, ptr %622, align 4, !tbaa !150
  %624 = fcmp ogt float %618, %623
  br i1 %624, label %625, label %626

625:                                              ; preds = %615, %605, %596
  store i32 19, ptr %20, align 4
  br label %684

626:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #14
  %627 = load ptr, ptr %38, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.ImPlotAxis, ptr %627, i32 0, i32 30
  %629 = load float, ptr %628, align 8, !tbaa !140
  %630 = load ptr, ptr %44, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.ImPlotTick, ptr %630, i32 0, i32 1
  %632 = load float, ptr %631, align 8, !tbaa !137
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %45, float noundef %629, float noundef %632)
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #14
  %633 = load i8, ptr %41, align 1, !tbaa !109, !range !116, !noundef !117
  %634 = trunc i8 %633 to i1
  br i1 %634, label %646, label %635

635:                                              ; preds = %626
  %636 = load ptr, ptr %44, align 8, !tbaa !5
  %637 = getelementptr inbounds %struct.ImPlotTick, ptr %636, i32 0, i32 4
  %638 = load i8, ptr %637, align 8, !tbaa !141, !range !116, !noundef !117
  %639 = trunc i8 %638 to i1
  br i1 %639, label %640, label %646

640:                                              ; preds = %635
  %641 = load ptr, ptr %1, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.ImPlotContext, ptr %641, i32 0, i32 12
  %643 = getelementptr inbounds %struct.ImPlotStyle, ptr %642, i32 0, i32 11
  %644 = getelementptr inbounds %struct.ImVec2, ptr %643, i32 0, i32 1
  %645 = load float, ptr %644, align 4, !tbaa !151
  br label %652

646:                                              ; preds = %635, %626
  %647 = load ptr, ptr %1, align 8, !tbaa !5
  %648 = getelementptr inbounds %struct.ImPlotContext, ptr %647, i32 0, i32 12
  %649 = getelementptr inbounds %struct.ImPlotStyle, ptr %648, i32 0, i32 12
  %650 = getelementptr inbounds %struct.ImVec2, ptr %649, i32 0, i32 1
  %651 = load float, ptr %650, align 4, !tbaa !152
  br label %652

652:                                              ; preds = %646, %640
  %653 = phi float [ %645, %640 ], [ %651, %646 ]
  store float %653, ptr %46, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #14
  %654 = load i8, ptr %41, align 1, !tbaa !109, !range !116, !noundef !117
  %655 = trunc i8 %654 to i1
  br i1 %655, label %667, label %656

656:                                              ; preds = %652
  %657 = load ptr, ptr %44, align 8, !tbaa !5
  %658 = getelementptr inbounds %struct.ImPlotTick, ptr %657, i32 0, i32 4
  %659 = load i8, ptr %658, align 8, !tbaa !141, !range !116, !noundef !117
  %660 = trunc i8 %659 to i1
  br i1 %660, label %661, label %667

661:                                              ; preds = %656
  %662 = load ptr, ptr %1, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.ImPlotContext, ptr %662, i32 0, i32 12
  %664 = getelementptr inbounds %struct.ImPlotStyle, ptr %663, i32 0, i32 13
  %665 = getelementptr inbounds %struct.ImVec2, ptr %664, i32 0, i32 1
  %666 = load float, ptr %665, align 4, !tbaa !153
  br label %673

667:                                              ; preds = %656, %652
  %668 = load ptr, ptr %1, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.ImPlotContext, ptr %668, i32 0, i32 12
  %670 = getelementptr inbounds %struct.ImPlotStyle, ptr %669, i32 0, i32 14
  %671 = getelementptr inbounds %struct.ImVec2, ptr %670, i32 0, i32 1
  %672 = load float, ptr %671, align 4, !tbaa !154
  br label %673

673:                                              ; preds = %667, %661
  %674 = phi float [ %666, %661 ], [ %672, %667 ]
  store float %674, ptr %47, align 4, !tbaa !134
  %675 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #14
  %676 = load float, ptr %42, align 4, !tbaa !134
  %677 = load float, ptr %46, align 4, !tbaa !134
  %678 = fmul float %676, %677
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %49, float noundef %678, float noundef 0.000000e+00)
  %679 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %45, ptr noundef nonnull align 4 dereferenceable(8) %49)
  store <2 x float> %679, ptr %48, align 4
  %680 = load ptr, ptr %38, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.ImPlotAxis, ptr %680, i32 0, i32 36
  %682 = load i32, ptr %681, align 4, !tbaa !146
  %683 = load float, ptr %47, align 4, !tbaa !134
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %675, ptr noundef nonnull align 4 dereferenceable(8) %45, ptr noundef nonnull align 4 dereferenceable(8) %48, i32 noundef %682, float noundef %683)
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #14
  store i32 0, ptr %20, align 4
  br label %684

684:                                              ; preds = %673, %625
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #14
  %685 = load i32, ptr %20, align 4
  switch i32 %685, label %2222 [
    i32 0, label %686
    i32 19, label %687
  ]

686:                                              ; preds = %684
  br label %687

687:                                              ; preds = %686, %684
  %688 = load i32, ptr %43, align 4, !tbaa !118
  %689 = add nsw i32 %688, 1
  store i32 %689, ptr %43, align 4, !tbaa !118
  br label %590, !llvm.loop !155

690:                                              ; preds = %595
  %691 = load i8, ptr %41, align 1, !tbaa !109, !range !116, !noundef !117
  %692 = trunc i8 %691 to i1
  br i1 %692, label %696, label %693

693:                                              ; preds = %690
  %694 = load i8, ptr %7, align 1, !tbaa !109, !range !116, !noundef !117
  %695 = trunc i8 %694 to i1
  br i1 %695, label %722, label %696

696:                                              ; preds = %693, %690
  %697 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #14
  %698 = load ptr, ptr %38, align 8, !tbaa !5
  %699 = getelementptr inbounds %struct.ImPlotAxis, ptr %698, i32 0, i32 30
  %700 = load float, ptr %699, align 8, !tbaa !140
  %701 = load ptr, ptr %3, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.ImPlotPlot, ptr %701, i32 0, i32 13
  %703 = getelementptr inbounds %struct.ImRect, ptr %702, i32 0, i32 0
  %704 = getelementptr inbounds %struct.ImVec2, ptr %703, i32 0, i32 1
  %705 = load float, ptr %704, align 4, !tbaa !149
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef %700, float noundef %705)
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #14
  %706 = load ptr, ptr %38, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.ImPlotAxis, ptr %706, i32 0, i32 30
  %708 = load float, ptr %707, align 8, !tbaa !140
  %709 = load ptr, ptr %3, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.ImPlotPlot, ptr %709, i32 0, i32 13
  %711 = getelementptr inbounds %struct.ImRect, ptr %710, i32 0, i32 1
  %712 = getelementptr inbounds %struct.ImVec2, ptr %711, i32 0, i32 1
  %713 = load float, ptr %712, align 4, !tbaa !150
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %51, float noundef %708, float noundef %713)
  %714 = load ptr, ptr %38, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.ImPlotAxis, ptr %714, i32 0, i32 36
  %716 = load i32, ptr %715, align 4, !tbaa !146
  %717 = load ptr, ptr %1, align 8, !tbaa !5
  %718 = getelementptr inbounds %struct.ImPlotContext, ptr %717, i32 0, i32 12
  %719 = getelementptr inbounds %struct.ImPlotStyle, ptr %718, i32 0, i32 14
  %720 = getelementptr inbounds %struct.ImVec2, ptr %719, i32 0, i32 1
  %721 = load float, ptr %720, align 4, !tbaa !154
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %697, ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(8) %51, i32 noundef %716, float noundef %721)
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #14
  br label %722

722:                                              ; preds = %696, %693
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #14
  br label %723

723:                                              ; preds = %722, %580
  %724 = load i8, ptr %40, align 1, !tbaa !109, !range !116, !noundef !117
  %725 = trunc i8 %724 to i1
  %726 = xor i1 %725, true
  %727 = zext i1 %726 to i32
  %728 = load i32, ptr %35, align 4, !tbaa !118
  %729 = add nsw i32 %728, %727
  store i32 %729, ptr %35, align 4, !tbaa !118
  %730 = load i8, ptr %40, align 1, !tbaa !109, !range !116, !noundef !117
  %731 = trunc i8 %730 to i1
  %732 = zext i1 %731 to i32
  %733 = load i32, ptr %36, align 4, !tbaa !118
  %734 = add nsw i32 %733, %732
  store i32 %734, ptr %36, align 4, !tbaa !118
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #14
  store i32 0, ptr %20, align 4
  br label %735

735:                                              ; preds = %723, %560
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #14
  %736 = load i32, ptr %20, align 4
  switch i32 %736, label %2222 [
    i32 0, label %737
    i32 16, label %738
  ]

737:                                              ; preds = %735
  br label %738

738:                                              ; preds = %737, %735
  %739 = load i32, ptr %37, align 4, !tbaa !118
  %740 = add nsw i32 %739, 1
  store i32 %740, ptr %37, align 4, !tbaa !118
  br label %548, !llvm.loop !156

741:                                              ; preds = %551
  call void @_ZN5ImGui11PopClipRectEv()
  call void @_ZN6ImPlot16PushPlotClipRectEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #14
  store i32 0, ptr %52, align 4, !tbaa !118
  br label %742

742:                                              ; preds = %929, %741
  %743 = load i32, ptr %52, align 4, !tbaa !118
  %744 = load ptr, ptr %1, align 8, !tbaa !5
  %745 = getelementptr inbounds %struct.ImPlotContext, ptr %744, i32 0, i32 8
  %746 = getelementptr inbounds %struct.ImPlotAnnotationCollection, ptr %745, i32 0, i32 2
  %747 = load i32, ptr %746, align 8, !tbaa !157
  %748 = icmp slt i32 %743, %747
  br i1 %748, label %750, label %749

749:                                              ; preds = %742
  store i32 20, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #14
  br label %932

750:                                              ; preds = %742
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #14
  %751 = load ptr, ptr %1, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.ImPlotContext, ptr %751, i32 0, i32 8
  %753 = load i32, ptr %52, align 4, !tbaa !118
  %754 = call noundef ptr @_ZN26ImPlotAnnotationCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36) %752, i32 noundef %753)
  store ptr %754, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #14
  %755 = load ptr, ptr %1, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.ImPlotContext, ptr %755, i32 0, i32 8
  %757 = getelementptr inbounds %struct.ImPlotAnnotationCollection, ptr %756, i32 0, i32 0
  %758 = load i32, ptr %52, align 4, !tbaa !118
  %759 = call noundef nonnull align 4 dereferenceable(29) ptr @_ZN8ImVectorI16ImPlotAnnotationEixEi(ptr noundef nonnull align 8 dereferenceable(16) %757, i32 noundef %758)
  store ptr %759, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #14
  %760 = load ptr, ptr %53, align 8, !tbaa !5
  %761 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %760, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %761, ptr %55, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #14
  %762 = load ptr, ptr %1, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.ImPlotContext, ptr %762, i32 0, i32 12
  %764 = getelementptr inbounds %struct.ImPlotStyle, ptr %763, i32 0, i32 23
  %765 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %764, float noundef 2.000000e+00)
  store <2 x float> %765, ptr %57, align 4
  %766 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %55, ptr noundef nonnull align 4 dereferenceable(8) %57)
  store <2 x float> %766, ptr %56, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #14
  %767 = load ptr, ptr %54, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %767, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %58, ptr align 4 %768, i64 8, i1 false), !tbaa.struct !158
  %769 = load ptr, ptr %54, align 8, !tbaa !5
  %770 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %769, i32 0, i32 1
  %771 = getelementptr inbounds %struct.ImVec2, ptr %770, i32 0, i32 0
  %772 = load float, ptr %771, align 4, !tbaa !159
  %773 = fcmp oeq float %772, 0.000000e+00
  br i1 %773, label %774, label %781

774:                                              ; preds = %750
  %775 = getelementptr inbounds %struct.ImVec2, ptr %56, i32 0, i32 0
  %776 = load float, ptr %775, align 4, !tbaa !132
  %777 = fdiv float %776, 2.000000e+00
  %778 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 0
  %779 = load float, ptr %778, align 4, !tbaa !132
  %780 = fsub float %779, %777
  store float %780, ptr %778, align 4, !tbaa !132
  br label %807

781:                                              ; preds = %750
  %782 = load ptr, ptr %54, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %782, i32 0, i32 1
  %784 = getelementptr inbounds %struct.ImVec2, ptr %783, i32 0, i32 0
  %785 = load float, ptr %784, align 4, !tbaa !159
  %786 = fcmp ogt float %785, 0.000000e+00
  br i1 %786, label %787, label %795

787:                                              ; preds = %781
  %788 = load ptr, ptr %54, align 8, !tbaa !5
  %789 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %788, i32 0, i32 1
  %790 = getelementptr inbounds %struct.ImVec2, ptr %789, i32 0, i32 0
  %791 = load float, ptr %790, align 4, !tbaa !159
  %792 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 0
  %793 = load float, ptr %792, align 4, !tbaa !132
  %794 = fadd float %793, %791
  store float %794, ptr %792, align 4, !tbaa !132
  br label %806

795:                                              ; preds = %781
  %796 = getelementptr inbounds %struct.ImVec2, ptr %56, i32 0, i32 0
  %797 = load float, ptr %796, align 4, !tbaa !132
  %798 = load ptr, ptr %54, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %798, i32 0, i32 1
  %800 = getelementptr inbounds %struct.ImVec2, ptr %799, i32 0, i32 0
  %801 = load float, ptr %800, align 4, !tbaa !159
  %802 = fsub float %797, %801
  %803 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 0
  %804 = load float, ptr %803, align 4, !tbaa !132
  %805 = fsub float %804, %802
  store float %805, ptr %803, align 4, !tbaa !132
  br label %806

806:                                              ; preds = %795, %787
  br label %807

807:                                              ; preds = %806, %774
  %808 = load ptr, ptr %54, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %808, i32 0, i32 1
  %810 = getelementptr inbounds %struct.ImVec2, ptr %809, i32 0, i32 1
  %811 = load float, ptr %810, align 4, !tbaa !161
  %812 = fcmp oeq float %811, 0.000000e+00
  br i1 %812, label %813, label %820

813:                                              ; preds = %807
  %814 = getelementptr inbounds %struct.ImVec2, ptr %56, i32 0, i32 1
  %815 = load float, ptr %814, align 4, !tbaa !162
  %816 = fdiv float %815, 2.000000e+00
  %817 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 1
  %818 = load float, ptr %817, align 4, !tbaa !162
  %819 = fsub float %818, %816
  store float %819, ptr %817, align 4, !tbaa !162
  br label %846

820:                                              ; preds = %807
  %821 = load ptr, ptr %54, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %821, i32 0, i32 1
  %823 = getelementptr inbounds %struct.ImVec2, ptr %822, i32 0, i32 1
  %824 = load float, ptr %823, align 4, !tbaa !161
  %825 = fcmp ogt float %824, 0.000000e+00
  br i1 %825, label %826, label %834

826:                                              ; preds = %820
  %827 = load ptr, ptr %54, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %827, i32 0, i32 1
  %829 = getelementptr inbounds %struct.ImVec2, ptr %828, i32 0, i32 1
  %830 = load float, ptr %829, align 4, !tbaa !161
  %831 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 1
  %832 = load float, ptr %831, align 4, !tbaa !162
  %833 = fadd float %832, %830
  store float %833, ptr %831, align 4, !tbaa !162
  br label %845

834:                                              ; preds = %820
  %835 = getelementptr inbounds %struct.ImVec2, ptr %56, i32 0, i32 1
  %836 = load float, ptr %835, align 4, !tbaa !162
  %837 = load ptr, ptr %54, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %837, i32 0, i32 1
  %839 = getelementptr inbounds %struct.ImVec2, ptr %838, i32 0, i32 1
  %840 = load float, ptr %839, align 4, !tbaa !161
  %841 = fsub float %836, %840
  %842 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 1
  %843 = load float, ptr %842, align 4, !tbaa !162
  %844 = fsub float %843, %841
  store float %844, ptr %842, align 4, !tbaa !162
  br label %845

845:                                              ; preds = %834, %826
  br label %846

846:                                              ; preds = %845, %813
  %847 = load ptr, ptr %54, align 8, !tbaa !5
  %848 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %847, i32 0, i32 5
  %849 = load i8, ptr %848, align 4, !tbaa !163, !range !116, !noundef !117
  %850 = trunc i8 %849 to i1
  br i1 %850, label %851, label %860

851:                                              ; preds = %846
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %60, ptr align 4 %58, i64 8, i1 false), !tbaa.struct !158
  %852 = load ptr, ptr %3, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.ImPlotPlot, ptr %852, i32 0, i32 13
  %854 = getelementptr inbounds %struct.ImRect, ptr %853, i32 0, i32 0
  %855 = load ptr, ptr %3, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.ImPlotPlot, ptr %855, i32 0, i32 13
  %857 = getelementptr inbounds %struct.ImRect, ptr %856, i32 0, i32 1
  %858 = load <2 x float>, ptr %60, align 4
  %859 = call <2 x float> @_ZN6ImPlotL13ClampLabelPosE6ImVec2RKS0_S2_S2_(<2 x float> %858, ptr noundef nonnull align 4 dereferenceable(8) %56, ptr noundef nonnull align 4 dereferenceable(8) %854, ptr noundef nonnull align 4 dereferenceable(8) %857)
  store <2 x float> %859, ptr %59, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %58, ptr align 4 %59, i64 8, i1 false), !tbaa.struct !158
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #14
  br label %860

860:                                              ; preds = %851, %846
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #14
  %861 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %56)
  store <2 x float> %861, ptr %62, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %61, ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %62)
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #14
  %862 = load ptr, ptr %54, align 8, !tbaa !5
  %863 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %862, i32 0, i32 1
  %864 = getelementptr inbounds %struct.ImVec2, ptr %863, i32 0, i32 0
  %865 = load float, ptr %864, align 4, !tbaa !159
  %866 = fcmp une float %865, 0.000000e+00
  br i1 %866, label %873, label %867

867:                                              ; preds = %860
  %868 = load ptr, ptr %54, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %868, i32 0, i32 1
  %870 = getelementptr inbounds %struct.ImVec2, ptr %869, i32 0, i32 1
  %871 = load float, ptr %870, align 4, !tbaa !161
  %872 = fcmp une float %871, 0.000000e+00
  br i1 %872, label %873, label %913

873:                                              ; preds = %867, %860
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #14
  %874 = call <2 x float> @_ZNK6ImRect5GetTLEv(ptr noundef nonnull align 4 dereferenceable(16) %61)
  store <2 x float> %874, ptr %63, align 8
  %875 = getelementptr inbounds %struct.ImVec2, ptr %63, i64 1
  %876 = call <2 x float> @_ZNK6ImRect5GetTREv(ptr noundef nonnull align 4 dereferenceable(16) %61)
  store <2 x float> %876, ptr %875, align 8
  %877 = getelementptr inbounds %struct.ImVec2, ptr %63, i64 2
  %878 = call <2 x float> @_ZNK6ImRect5GetBREv(ptr noundef nonnull align 4 dereferenceable(16) %61)
  store <2 x float> %878, ptr %877, align 8
  %879 = getelementptr inbounds %struct.ImVec2, ptr %63, i64 3
  %880 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %61)
  store <2 x float> %880, ptr %879, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #14
  store i32 0, ptr %64, align 4, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #14
  store float 0x47EFFFFFE0000000, ptr %65, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #14
  store i32 0, ptr %66, align 4, !tbaa !118
  br label %881

881:                                              ; preds = %900, %873
  %882 = load i32, ptr %66, align 4, !tbaa !118
  %883 = icmp slt i32 %882, 4
  br i1 %883, label %885, label %884

884:                                              ; preds = %881
  store i32 23, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #14
  br label %903

885:                                              ; preds = %881
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #14
  %886 = load ptr, ptr %54, align 8, !tbaa !5
  %887 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %886, i32 0, i32 0
  %888 = load i32, ptr %66, align 4, !tbaa !118
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds [4 x %struct.ImVec2], ptr %63, i64 0, i64 %889
  %891 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %887, ptr noundef nonnull align 4 dereferenceable(8) %890)
  store <2 x float> %891, ptr %68, align 4
  %892 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %68)
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #14
  store float %892, ptr %67, align 4, !tbaa !134
  %893 = load float, ptr %67, align 4, !tbaa !134
  %894 = load float, ptr %65, align 4, !tbaa !134
  %895 = fcmp olt float %893, %894
  br i1 %895, label %896, label %899

896:                                              ; preds = %885
  %897 = load i32, ptr %66, align 4, !tbaa !118
  store i32 %897, ptr %64, align 4, !tbaa !118
  %898 = load float, ptr %67, align 4, !tbaa !134
  store float %898, ptr %65, align 4, !tbaa !134
  br label %899

899:                                              ; preds = %896, %885
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #14
  br label %900

900:                                              ; preds = %899
  %901 = load i32, ptr %66, align 4, !tbaa !118
  %902 = add nsw i32 %901, 1
  store i32 %902, ptr %66, align 4, !tbaa !118
  br label %881, !llvm.loop !164

903:                                              ; preds = %884
  %904 = load ptr, ptr %5, align 8, !tbaa !5
  %905 = load ptr, ptr %54, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %905, i32 0, i32 0
  %907 = load i32, ptr %64, align 4, !tbaa !118
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds [4 x %struct.ImVec2], ptr %63, i64 0, i64 %908
  %910 = load ptr, ptr %54, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %910, i32 0, i32 2
  %912 = load i32, ptr %911, align 4, !tbaa !165
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %904, ptr noundef nonnull align 4 dereferenceable(8) %906, ptr noundef nonnull align 4 dereferenceable(8) %909, i32 noundef %912, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #14
  br label %913

913:                                              ; preds = %903, %867
  %914 = load ptr, ptr %5, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.ImRect, ptr %61, i32 0, i32 0
  %916 = getelementptr inbounds %struct.ImRect, ptr %61, i32 0, i32 1
  %917 = load ptr, ptr %54, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %917, i32 0, i32 2
  %919 = load i32, ptr %918, align 4, !tbaa !165
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %914, ptr noundef nonnull align 4 dereferenceable(8) %915, ptr noundef nonnull align 4 dereferenceable(8) %916, i32 noundef %919, float noundef 0.000000e+00, i32 noundef 0)
  %920 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #14
  %921 = load ptr, ptr %1, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.ImPlotContext, ptr %921, i32 0, i32 12
  %923 = getelementptr inbounds %struct.ImPlotStyle, ptr %922, i32 0, i32 23
  %924 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %58, ptr noundef nonnull align 4 dereferenceable(8) %923)
  store <2 x float> %924, ptr %69, align 4
  %925 = load ptr, ptr %54, align 8, !tbaa !5
  %926 = getelementptr inbounds %struct.ImPlotAnnotation, ptr %925, i32 0, i32 3
  %927 = load i32, ptr %926, align 4, !tbaa !166
  %928 = load ptr, ptr %53, align 8, !tbaa !5
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %920, ptr noundef nonnull align 4 dereferenceable(8) %69, i32 noundef %927, ptr noundef %928, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #14
  br label %929

929:                                              ; preds = %913
  %930 = load i32, ptr %52, align 4, !tbaa !118
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr %52, align 4, !tbaa !118
  br label %742, !llvm.loop !167

932:                                              ; preds = %749
  %933 = load ptr, ptr %3, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.ImPlotPlot, ptr %933, i32 0, i32 25
  %935 = load i8, ptr %934, align 1, !tbaa !168, !range !116, !noundef !117
  %936 = trunc i8 %935 to i1
  br i1 %936, label %937, label %958

937:                                              ; preds = %932
  %938 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #14
  %939 = load ptr, ptr %3, align 8, !tbaa !5
  %940 = getelementptr inbounds %struct.ImPlotPlot, ptr %939, i32 0, i32 15
  %941 = getelementptr inbounds %struct.ImRect, ptr %940, i32 0, i32 0
  %942 = load ptr, ptr %3, align 8, !tbaa !5
  %943 = getelementptr inbounds %struct.ImPlotPlot, ptr %942, i32 0, i32 13
  %944 = getelementptr inbounds %struct.ImRect, ptr %943, i32 0, i32 0
  %945 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %941, ptr noundef nonnull align 4 dereferenceable(8) %944)
  store <2 x float> %945, ptr %70, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #14
  %946 = load ptr, ptr %3, align 8, !tbaa !5
  %947 = getelementptr inbounds %struct.ImPlotPlot, ptr %946, i32 0, i32 15
  %948 = getelementptr inbounds %struct.ImRect, ptr %947, i32 0, i32 1
  %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 0
  %952 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %948, ptr noundef nonnull align 4 dereferenceable(8) %951)
  store <2 x float> %952, ptr %71, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %72) #14
  %953 = call { <2 x float>, <2 x float> } @_ZN6ImPlotL17GetStyleColorVec4Ei(i32 noundef 19)
  %954 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %72, i32 0, i32 0
  %955 = extractvalue { <2 x float>, <2 x float> } %953, 0
  store <2 x float> %955, ptr %954, align 4
  %956 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %72, i32 0, i32 1
  %957 = extractvalue { <2 x float>, <2 x float> } %953, 1
  store <2 x float> %957, ptr %956, align 4
  call void @_ZN6ImPlotL19RenderSelectionRectER10ImDrawListRK6ImVec2S4_RK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %938, ptr noundef nonnull align 4 dereferenceable(8) %70, ptr noundef nonnull align 4 dereferenceable(8) %71, ptr noundef nonnull align 4 dereferenceable(16) %72)
  call void @llvm.lifetime.end.p0(i64 16, ptr %72) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #14
  br label %958

958:                                              ; preds = %937, %932
  %959 = load ptr, ptr %3, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.ImPlotPlot, ptr %959, i32 0, i32 1
  %961 = load i32, ptr %960, align 4, !tbaa !169
  %962 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %961, i32 noundef 512)
  br i1 %962, label %963, label %1046

963:                                              ; preds = %958
  %964 = load ptr, ptr %3, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.ImPlotPlot, ptr %964, i32 0, i32 22
  %966 = load i8, ptr %965, align 8, !tbaa !170, !range !116, !noundef !117
  %967 = trunc i8 %966 to i1
  br i1 %967, label %968, label %1046

968:                                              ; preds = %963
  %969 = load i8, ptr %8, align 1, !tbaa !109, !range !116, !noundef !117
  %970 = trunc i8 %969 to i1
  br i1 %970, label %1046, label %971

971:                                              ; preds = %968
  %972 = load i8, ptr %9, align 1, !tbaa !109, !range !116, !noundef !117
  %973 = trunc i8 %972 to i1
  br i1 %973, label %1046, label %974

974:                                              ; preds = %971
  %975 = load ptr, ptr %3, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.ImPlotPlot, ptr %975, i32 0, i32 24
  %977 = load i8, ptr %976, align 2, !tbaa !171, !range !116, !noundef !117
  %978 = trunc i8 %977 to i1
  br i1 %978, label %1046, label %979

979:                                              ; preds = %974
  %980 = load ptr, ptr %3, align 8, !tbaa !5
  %981 = getelementptr inbounds %struct.ImPlotPlot, ptr %980, i32 0, i32 8
  %982 = getelementptr inbounds %struct.ImPlotItemGroup, ptr %981, i32 0, i32 2
  %983 = getelementptr inbounds %struct.ImPlotLegend, ptr %982, i32 0, i32 7
  %984 = load i8, ptr %983, align 8, !tbaa !172, !range !116, !noundef !117
  %985 = trunc i8 %984 to i1
  br i1 %985, label %1046, label %986

986:                                              ; preds = %979
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef -1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #14
  %987 = load ptr, ptr %6, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.ImGuiIO, ptr %987, i32 0, i32 36
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %73, ptr align 8 %988, i64 8, i1 false), !tbaa.struct !158
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #14
  %989 = load ptr, ptr %3, align 8, !tbaa !5
  %990 = getelementptr inbounds %struct.ImPlotPlot, ptr %989, i32 0, i32 13
  %991 = getelementptr inbounds %struct.ImRect, ptr %990, i32 0, i32 0
  %992 = getelementptr inbounds %struct.ImVec2, ptr %991, i32 0, i32 0
  %993 = load float, ptr %992, align 8, !tbaa !138
  %994 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %995 = load float, ptr %994, align 4, !tbaa !162
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %74, float noundef %993, float noundef %995)
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #14
  %996 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 0
  %997 = load float, ptr %996, align 4, !tbaa !132
  %998 = fsub float %997, 5.000000e+00
  %999 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %1000 = load float, ptr %999, align 4, !tbaa !162
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %75, float noundef %998, float noundef %1000)
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #14
  %1001 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 0
  %1002 = load float, ptr %1001, align 4, !tbaa !132
  %1003 = fadd float %1002, 5.000000e+00
  %1004 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %1005 = load float, ptr %1004, align 4, !tbaa !162
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %76, float noundef %1003, float noundef %1005)
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #14
  %1006 = load ptr, ptr %3, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.ImPlotPlot, ptr %1006, i32 0, i32 13
  %1008 = getelementptr inbounds %struct.ImRect, ptr %1007, i32 0, i32 1
  %1009 = getelementptr inbounds %struct.ImVec2, ptr %1008, i32 0, i32 0
  %1010 = load float, ptr %1009, align 8, !tbaa !139
  %1011 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %1012 = load float, ptr %1011, align 4, !tbaa !162
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %77, float noundef %1010, float noundef %1012)
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #14
  %1013 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 0
  %1014 = load float, ptr %1013, align 4, !tbaa !132
  %1015 = load ptr, ptr %3, align 8, !tbaa !5
  %1016 = getelementptr inbounds %struct.ImPlotPlot, ptr %1015, i32 0, i32 13
  %1017 = getelementptr inbounds %struct.ImRect, ptr %1016, i32 0, i32 0
  %1018 = getelementptr inbounds %struct.ImVec2, ptr %1017, i32 0, i32 1
  %1019 = load float, ptr %1018, align 4, !tbaa !149
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %78, float noundef %1014, float noundef %1019)
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #14
  %1020 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 0
  %1021 = load float, ptr %1020, align 4, !tbaa !132
  %1022 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %1023 = load float, ptr %1022, align 4, !tbaa !162
  %1024 = fsub float %1023, 5.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %79, float noundef %1021, float noundef %1024)
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #14
  %1025 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 0
  %1026 = load float, ptr %1025, align 4, !tbaa !132
  %1027 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %1028 = load float, ptr %1027, align 4, !tbaa !162
  %1029 = fadd float %1028, 5.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %80, float noundef %1026, float noundef %1029)
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #14
  %1030 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 0
  %1031 = load float, ptr %1030, align 4, !tbaa !132
  %1032 = load ptr, ptr %3, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.ImPlotPlot, ptr %1032, i32 0, i32 13
  %1034 = getelementptr inbounds %struct.ImRect, ptr %1033, i32 0, i32 1
  %1035 = getelementptr inbounds %struct.ImVec2, ptr %1034, i32 0, i32 1
  %1036 = load float, ptr %1035, align 4, !tbaa !150
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %81, float noundef %1031, float noundef %1036)
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #14
  %1037 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 20)
  store i32 %1037, ptr %82, align 4, !tbaa !118
  %1038 = load ptr, ptr %5, align 8, !tbaa !5
  %1039 = load i32, ptr %82, align 4, !tbaa !118
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1038, ptr noundef nonnull align 4 dereferenceable(8) %74, ptr noundef nonnull align 4 dereferenceable(8) %75, i32 noundef %1039, float noundef 1.000000e+00)
  %1040 = load ptr, ptr %5, align 8, !tbaa !5
  %1041 = load i32, ptr %82, align 4, !tbaa !118
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1040, ptr noundef nonnull align 4 dereferenceable(8) %76, ptr noundef nonnull align 4 dereferenceable(8) %77, i32 noundef %1041, float noundef 1.000000e+00)
  %1042 = load ptr, ptr %5, align 8, !tbaa !5
  %1043 = load i32, ptr %82, align 4, !tbaa !118
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1042, ptr noundef nonnull align 4 dereferenceable(8) %78, ptr noundef nonnull align 4 dereferenceable(8) %79, i32 noundef %1043, float noundef 1.000000e+00)
  %1044 = load ptr, ptr %5, align 8, !tbaa !5
  %1045 = load i32, ptr %82, align 4, !tbaa !118
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1044, ptr noundef nonnull align 4 dereferenceable(8) %80, ptr noundef nonnull align 4 dereferenceable(8) %81, i32 noundef %1045, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #14
  br label %1046

1046:                                             ; preds = %986, %979, %974, %971, %968, %963, %958
  %1047 = load ptr, ptr %3, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.ImPlotPlot, ptr %1047, i32 0, i32 1
  %1049 = load i32, ptr %1048, align 4, !tbaa !169
  %1050 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1049, i32 noundef 4)
  br i1 %1050, label %1207, label %1051

1051:                                             ; preds = %1046
  %1052 = load ptr, ptr %3, align 8, !tbaa !5
  %1053 = getelementptr inbounds %struct.ImPlotPlot, ptr %1052, i32 0, i32 22
  %1054 = load i8, ptr %1053, align 8, !tbaa !170, !range !116, !noundef !117
  %1055 = trunc i8 %1054 to i1
  br i1 %1055, label %1061, label %1056

1056:                                             ; preds = %1051
  %1057 = load ptr, ptr %3, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.ImPlotPlot, ptr %1057, i32 0, i32 4
  %1059 = load i32, ptr %1058, align 8, !tbaa !173
  %1060 = call noundef zeroext i1 @_ZL9ImHasFlagIi21ImPlotMouseTextFlags_EbT_T0_(i32 noundef %1059, i32 noundef 4)
  br i1 %1060, label %1061, label %1207

1061:                                             ; preds = %1056, %1051
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #14
  %1062 = load ptr, ptr %3, align 8, !tbaa !5
  %1063 = getelementptr inbounds %struct.ImPlotPlot, ptr %1062, i32 0, i32 4
  %1064 = load i32, ptr %1063, align 8, !tbaa !173
  %1065 = call noundef zeroext i1 @_ZL9ImHasFlagIi21ImPlotMouseTextFlags_EbT_T0_(i32 noundef %1064, i32 noundef 1)
  %1066 = zext i1 %1065 to i8
  store i8 %1066, ptr %83, align 1, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #14
  %1067 = load ptr, ptr %3, align 8, !tbaa !5
  %1068 = getelementptr inbounds %struct.ImPlotPlot, ptr %1067, i32 0, i32 4
  %1069 = load i32, ptr %1068, align 8, !tbaa !173
  %1070 = call noundef zeroext i1 @_ZL9ImHasFlagIi21ImPlotMouseTextFlags_EbT_T0_(i32 noundef %1069, i32 noundef 2)
  %1071 = zext i1 %1070 to i8
  store i8 %1071, ptr %84, align 1, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #14
  %1072 = load ptr, ptr %1, align 8, !tbaa !5
  %1073 = getelementptr inbounds %struct.ImPlotContext, ptr %1072, i32 0, i32 27
  store ptr %1073, ptr %85, align 8, !tbaa !5
  %1074 = load ptr, ptr %85, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %1074, i32 0, i32 0
  call void @_ZN8ImVectorIcE6shrinkEi(ptr noundef nonnull align 8 dereferenceable(16) %1075, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #14
  %1076 = load i8, ptr %83, align 1, !tbaa !109, !range !116, !noundef !117
  %1077 = trunc i8 %1076 to i1
  %1078 = zext i1 %1077 to i64
  %1079 = select i1 %1077, i32 1, i32 3
  store i32 %1079, ptr %87, align 4, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #14
  store i32 0, ptr %88, align 4, !tbaa !118
  br label %1080

1080:                                             ; preds = %1127, %1061
  %1081 = load i32, ptr %88, align 4, !tbaa !118
  %1082 = load i32, ptr %87, align 4, !tbaa !118
  %1083 = icmp slt i32 %1081, %1082
  br i1 %1083, label %1085, label %1084

1084:                                             ; preds = %1080
  store i32 26, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #14
  br label %1130

1085:                                             ; preds = %1080
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #14
  %1086 = load ptr, ptr %3, align 8, !tbaa !5
  %1087 = load i32, ptr %88, align 4, !tbaa !118
  %1088 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1086, i32 noundef %1087)
  store ptr %1088, ptr %89, align 8, !tbaa !5
  %1089 = load ptr, ptr %89, align 8, !tbaa !5
  %1090 = getelementptr inbounds %struct.ImPlotAxis, ptr %1089, i32 0, i32 42
  %1091 = load i8, ptr %1090, align 4, !tbaa !119, !range !116, !noundef !117
  %1092 = trunc i8 %1091 to i1
  br i1 %1092, label %1094, label %1093

1093:                                             ; preds = %1085
  store i32 28, ptr %20, align 4
  br label %1124

1094:                                             ; preds = %1085
  %1095 = load i32, ptr %88, align 4, !tbaa !118
  %1096 = icmp sgt i32 %1095, 0
  br i1 %1096, label %1097, label %1099

1097:                                             ; preds = %1094
  %1098 = load ptr, ptr %85, align 8, !tbaa !5
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %1098, ptr noundef @.str.150, ptr noundef null)
  br label %1099

1099:                                             ; preds = %1097, %1094
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #14
  %1100 = load ptr, ptr %89, align 8, !tbaa !5
  %1101 = load ptr, ptr %6, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.ImGuiIO, ptr %1101, i32 0, i32 36
  %1103 = getelementptr inbounds %struct.ImVec2, ptr %1102, i32 0, i32 0
  %1104 = load float, ptr %1103, align 8, !tbaa !174
  %1105 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1100, float noundef %1104)
  store double %1105, ptr %90, align 8, !tbaa !175
  %1106 = load i8, ptr %84, align 1, !tbaa !109, !range !116, !noundef !117
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1108, label %1112

1108:                                             ; preds = %1099
  %1109 = load double, ptr %90, align 8, !tbaa !175
  %1110 = getelementptr inbounds [32 x i8], ptr %86, i64 0, i64 0
  %1111 = call noundef i32 @_ZN6ImPlotL17Formatter_DefaultEdPciPv(double noundef %1109, ptr noundef %1110, i32 noundef 32, ptr noundef @.str.133)
  br label %1116

1112:                                             ; preds = %1099
  %1113 = load ptr, ptr %89, align 8, !tbaa !5
  %1114 = load double, ptr %90, align 8, !tbaa !175
  %1115 = getelementptr inbounds [32 x i8], ptr %86, i64 0, i64 0
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %1113, double noundef %1114, ptr noundef %1115, i32 noundef 32, i1 noundef zeroext true)
  br label %1116

1116:                                             ; preds = %1112, %1108
  %1117 = load ptr, ptr %85, align 8, !tbaa !5
  %1118 = getelementptr inbounds [32 x i8], ptr %86, i64 0, i64 0
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %1117, ptr noundef %1118, ptr noundef null)
  %1119 = load i32, ptr %88, align 4, !tbaa !118
  %1120 = icmp sgt i32 %1119, 0
  br i1 %1120, label %1121, label %1123

1121:                                             ; preds = %1116
  %1122 = load ptr, ptr %85, align 8, !tbaa !5
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %1122, ptr noundef @.str.151, ptr noundef null)
  br label %1123

1123:                                             ; preds = %1121, %1116
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #14
  store i32 0, ptr %20, align 4
  br label %1124

1124:                                             ; preds = %1123, %1093
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #14
  %1125 = load i32, ptr %20, align 4
  switch i32 %1125, label %2222 [
    i32 0, label %1126
    i32 28, label %1127
  ]

1126:                                             ; preds = %1124
  br label %1127

1127:                                             ; preds = %1126, %1124
  %1128 = load i32, ptr %88, align 4, !tbaa !118
  %1129 = add nsw i32 %1128, 1
  store i32 %1129, ptr %88, align 4, !tbaa !118
  br label %1080, !llvm.loop !176

1130:                                             ; preds = %1084
  %1131 = load ptr, ptr %85, align 8, !tbaa !5
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %1131, ptr noundef @.str.152, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #14
  %1132 = load i8, ptr %83, align 1, !tbaa !109, !range !116, !noundef !117
  %1133 = trunc i8 %1132 to i1
  %1134 = zext i1 %1133 to i64
  %1135 = select i1 %1133, i32 1, i32 3
  store i32 %1135, ptr %91, align 4, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #14
  store i32 0, ptr %92, align 4, !tbaa !118
  br label %1136

1136:                                             ; preds = %1183, %1130
  %1137 = load i32, ptr %92, align 4, !tbaa !118
  %1138 = load i32, ptr %91, align 4, !tbaa !118
  %1139 = icmp slt i32 %1137, %1138
  br i1 %1139, label %1141, label %1140

1140:                                             ; preds = %1136
  store i32 29, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #14
  br label %1186

1141:                                             ; preds = %1136
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #14
  %1142 = load ptr, ptr %3, align 8, !tbaa !5
  %1143 = load i32, ptr %92, align 4, !tbaa !118
  %1144 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1142, i32 noundef %1143)
  store ptr %1144, ptr %93, align 8, !tbaa !5
  %1145 = load ptr, ptr %93, align 8, !tbaa !5
  %1146 = getelementptr inbounds %struct.ImPlotAxis, ptr %1145, i32 0, i32 42
  %1147 = load i8, ptr %1146, align 4, !tbaa !119, !range !116, !noundef !117
  %1148 = trunc i8 %1147 to i1
  br i1 %1148, label %1150, label %1149

1149:                                             ; preds = %1141
  store i32 31, ptr %20, align 4
  br label %1180

1150:                                             ; preds = %1141
  %1151 = load i32, ptr %92, align 4, !tbaa !118
  %1152 = icmp sgt i32 %1151, 0
  br i1 %1152, label %1153, label %1155

1153:                                             ; preds = %1150
  %1154 = load ptr, ptr %85, align 8, !tbaa !5
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %1154, ptr noundef @.str.150, ptr noundef null)
  br label %1155

1155:                                             ; preds = %1153, %1150
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #14
  %1156 = load ptr, ptr %93, align 8, !tbaa !5
  %1157 = load ptr, ptr %6, align 8, !tbaa !5
  %1158 = getelementptr inbounds %struct.ImGuiIO, ptr %1157, i32 0, i32 36
  %1159 = getelementptr inbounds %struct.ImVec2, ptr %1158, i32 0, i32 1
  %1160 = load float, ptr %1159, align 4, !tbaa !177
  %1161 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1156, float noundef %1160)
  store double %1161, ptr %94, align 8, !tbaa !175
  %1162 = load i8, ptr %84, align 1, !tbaa !109, !range !116, !noundef !117
  %1163 = trunc i8 %1162 to i1
  br i1 %1163, label %1164, label %1168

1164:                                             ; preds = %1155
  %1165 = load double, ptr %94, align 8, !tbaa !175
  %1166 = getelementptr inbounds [32 x i8], ptr %86, i64 0, i64 0
  %1167 = call noundef i32 @_ZN6ImPlotL17Formatter_DefaultEdPciPv(double noundef %1165, ptr noundef %1166, i32 noundef 32, ptr noundef @.str.133)
  br label %1172

1168:                                             ; preds = %1155
  %1169 = load ptr, ptr %93, align 8, !tbaa !5
  %1170 = load double, ptr %94, align 8, !tbaa !175
  %1171 = getelementptr inbounds [32 x i8], ptr %86, i64 0, i64 0
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %1169, double noundef %1170, ptr noundef %1171, i32 noundef 32, i1 noundef zeroext true)
  br label %1172

1172:                                             ; preds = %1168, %1164
  %1173 = load ptr, ptr %85, align 8, !tbaa !5
  %1174 = getelementptr inbounds [32 x i8], ptr %86, i64 0, i64 0
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %1173, ptr noundef %1174, ptr noundef null)
  %1175 = load i32, ptr %92, align 4, !tbaa !118
  %1176 = icmp sgt i32 %1175, 0
  br i1 %1176, label %1177, label %1179

1177:                                             ; preds = %1172
  %1178 = load ptr, ptr %85, align 8, !tbaa !5
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %1178, ptr noundef @.str.151, ptr noundef null)
  br label %1179

1179:                                             ; preds = %1177, %1172
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #14
  store i32 0, ptr %20, align 4
  br label %1180

1180:                                             ; preds = %1179, %1149
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #14
  %1181 = load i32, ptr %20, align 4
  switch i32 %1181, label %2222 [
    i32 0, label %1182
    i32 31, label %1183
  ]

1182:                                             ; preds = %1180
  br label %1183

1183:                                             ; preds = %1182, %1180
  %1184 = load i32, ptr %92, align 4, !tbaa !118
  %1185 = add nsw i32 %1184, 1
  store i32 %1185, ptr %92, align 4, !tbaa !118
  br label %1136, !llvm.loop !178

1186:                                             ; preds = %1140
  %1187 = load ptr, ptr %85, align 8, !tbaa !5
  %1188 = call noundef zeroext i1 @_ZNK15ImGuiTextBuffer5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1187)
  br i1 %1188, label %1206, label %1189

1189:                                             ; preds = %1186
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #14
  %1190 = load ptr, ptr %85, align 8, !tbaa !5
  %1191 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %1190)
  %1192 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %1191, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %1192, ptr %95, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #14
  %1193 = load ptr, ptr %3, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.ImPlotPlot, ptr %1193, i32 0, i32 13
  %1195 = load ptr, ptr %3, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImPlotPlot, ptr %1195, i32 0, i32 3
  %1197 = load i32, ptr %1196, align 4, !tbaa !179
  %1198 = load ptr, ptr %1, align 8, !tbaa !5
  %1199 = getelementptr inbounds %struct.ImPlotContext, ptr %1198, i32 0, i32 12
  %1200 = getelementptr inbounds %struct.ImPlotStyle, ptr %1199, i32 0, i32 22
  %1201 = call <2 x float> @_ZN6ImPlot14GetLocationPosERK6ImRectRK6ImVec2iS5_(ptr noundef nonnull align 4 dereferenceable(16) %1194, ptr noundef nonnull align 4 dereferenceable(8) %95, i32 noundef %1197, ptr noundef nonnull align 4 dereferenceable(8) %1200)
  store <2 x float> %1201, ptr %96, align 4
  %1202 = load ptr, ptr %5, align 8, !tbaa !5
  %1203 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 12)
  %1204 = load ptr, ptr %85, align 8, !tbaa !5
  %1205 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %1204)
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1202, ptr noundef nonnull align 4 dereferenceable(8) %96, i32 noundef %1203, ptr noundef %1205, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #14
  br label %1206

1206:                                             ; preds = %1189, %1186
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #14
  br label %1207

1207:                                             ; preds = %1206, %1056, %1046
  call void @_ZN6ImPlot15PopPlotClipRectEv()
  %1208 = load ptr, ptr %3, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.ImPlotPlot, ptr %1208, i32 0, i32 23
  %1210 = load i8, ptr %1209, align 1, !tbaa !110, !range !116, !noundef !117
  %1211 = trunc i8 %1210 to i1
  br i1 %1211, label %1491, label %1212

1212:                                             ; preds = %1207
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #14
  %1213 = call noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv()
  %1214 = getelementptr inbounds %struct.ImGuiIO, ptr %1213, i32 0, i32 36
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %97, ptr align 8 %1214, i64 8, i1 false), !tbaa.struct !158
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #14
  %1215 = load ptr, ptr %3, align 8, !tbaa !5
  %1216 = getelementptr inbounds %struct.ImPlotPlot, ptr %1215, i32 0, i32 13
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %98, ptr align 8 %1216, i64 16, i1 false), !tbaa.struct !180
  call void @_ZN6ImRect6ExpandEf(ptr noundef nonnull align 4 dereferenceable(16) %98, float noundef -1.000000e+01)
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #14
  store i32 0, ptr %99, align 4, !tbaa !118
  br label %1217

1217:                                             ; preds = %1350, %1212
  %1218 = load i32, ptr %99, align 4, !tbaa !118
  %1219 = icmp slt i32 %1218, 3
  br i1 %1219, label %1221, label %1220

1220:                                             ; preds = %1217
  store i32 32, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #14
  br label %1353

1221:                                             ; preds = %1217
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #14
  %1222 = load ptr, ptr %3, align 8, !tbaa !5
  %1223 = load i32, ptr %99, align 4, !tbaa !118
  %1224 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1222, i32 noundef %1223)
  store ptr %1224, ptr %100, align 8, !tbaa !5
  %1225 = load ptr, ptr %100, align 8, !tbaa !5
  %1226 = getelementptr inbounds %struct.ImPlotAxis, ptr %1225, i32 0, i32 1
  %1227 = load i32, ptr %1226, align 4, !tbaa !181
  %1228 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %1227, i32 noundef 64)
  br i1 %1228, label %1229, label %1230

1229:                                             ; preds = %1221
  store i32 34, ptr %20, align 4
  br label %1347

1230:                                             ; preds = %1221
  %1231 = load ptr, ptr %100, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.ImPlotAxis, ptr %1231, i32 0, i32 49
  %1233 = load i8, ptr %1232, align 1, !tbaa !182, !range !116, !noundef !117
  %1234 = trunc i8 %1233 to i1
  br i1 %1234, label %1235, label %1346

1235:                                             ; preds = %1230
  %1236 = load ptr, ptr %3, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.ImPlotPlot, ptr %1236, i32 0, i32 13
  %1238 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %1237, ptr noundef nonnull align 4 dereferenceable(8) %97)
  br i1 %1238, label %1239, label %1346

1239:                                             ; preds = %1235
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #14
  %1240 = load ptr, ptr %100, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.ImPlotAxis, ptr %1240, i32 0, i32 1
  %1242 = load i32, ptr %1241, align 4, !tbaa !181
  %1243 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %1242, i32 noundef 256)
  %1244 = zext i1 %1243 to i8
  store i8 %1244, ptr %101, align 1, !tbaa !109
  %1245 = load i8, ptr %101, align 1, !tbaa !109, !range !116, !noundef !117
  %1246 = trunc i8 %1245 to i1
  br i1 %1246, label %1296, label %1247

1247:                                             ; preds = %1239
  call void @llvm.lifetime.start.p0(i64 16, ptr %102) #14
  %1248 = load ptr, ptr %3, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.ImPlotPlot, ptr %1248, i32 0, i32 13
  %1250 = getelementptr inbounds %struct.ImRect, ptr %1249, i32 0, i32 0
  %1251 = getelementptr inbounds %struct.ImVec2, ptr %1250, i32 0, i32 0
  %1252 = load float, ptr %1251, align 8, !tbaa !138
  %1253 = fsub float %1252, 5.000000e+00
  %1254 = load ptr, ptr %3, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.ImPlotPlot, ptr %1254, i32 0, i32 13
  %1256 = getelementptr inbounds %struct.ImRect, ptr %1255, i32 0, i32 0
  %1257 = getelementptr inbounds %struct.ImVec2, ptr %1256, i32 0, i32 1
  %1258 = load float, ptr %1257, align 4, !tbaa !149
  %1259 = fsub float %1258, 5.000000e+00
  %1260 = load ptr, ptr %3, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.ImPlotPlot, ptr %1260, i32 0, i32 13
  %1262 = getelementptr inbounds %struct.ImRect, ptr %1261, i32 0, i32 1
  %1263 = getelementptr inbounds %struct.ImVec2, ptr %1262, i32 0, i32 0
  %1264 = load float, ptr %1263, align 8, !tbaa !139
  %1265 = fadd float %1264, 5.000000e+00
  %1266 = load ptr, ptr %3, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.ImPlotPlot, ptr %1266, i32 0, i32 13
  %1268 = getelementptr inbounds %struct.ImRect, ptr %1267, i32 0, i32 0
  %1269 = getelementptr inbounds %struct.ImVec2, ptr %1268, i32 0, i32 1
  %1270 = load float, ptr %1269, align 4, !tbaa !149
  %1271 = fadd float %1270, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %102, float noundef %1253, float noundef %1259, float noundef %1265, float noundef %1271)
  %1272 = getelementptr inbounds %struct.ImVec2, ptr %97, i32 0, i32 1
  %1273 = load float, ptr %1272, align 4, !tbaa !162
  %1274 = load ptr, ptr %3, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.ImPlotPlot, ptr %1274, i32 0, i32 13
  %1276 = getelementptr inbounds %struct.ImRect, ptr %1275, i32 0, i32 1
  %1277 = getelementptr inbounds %struct.ImVec2, ptr %1276, i32 0, i32 1
  %1278 = load float, ptr %1277, align 4, !tbaa !150
  %1279 = fsub float %1278, 1.000000e+01
  %1280 = fcmp olt float %1273, %1279
  br i1 %1280, label %1281, label %1288

1281:                                             ; preds = %1247
  %1282 = load ptr, ptr %5, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.ImRect, ptr %102, i32 0, i32 0
  %1284 = getelementptr inbounds %struct.ImRect, ptr %102, i32 0, i32 1
  %1285 = load ptr, ptr %100, align 8, !tbaa !5
  %1286 = getelementptr inbounds %struct.ImPlotAxis, ptr %1285, i32 0, i32 39
  %1287 = load i32, ptr %1286, align 8, !tbaa !183
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1282, ptr noundef nonnull align 4 dereferenceable(8) %1283, ptr noundef nonnull align 4 dereferenceable(8) %1284, i32 noundef %1287, float noundef 0.000000e+00, i32 noundef 0)
  br label %1288

1288:                                             ; preds = %1281, %1247
  %1289 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %102, ptr noundef nonnull align 4 dereferenceable(8) %97)
  br i1 %1289, label %1290, label %1295

1290:                                             ; preds = %1288
  %1291 = load ptr, ptr %100, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.ImPlotAxis, ptr %1291, i32 0, i32 1
  %1293 = load i32, ptr %1292, align 4, !tbaa !181
  %1294 = or i32 %1293, 256
  store i32 %1294, ptr %1292, align 4, !tbaa !181
  br label %1295

1295:                                             ; preds = %1290, %1288
  call void @llvm.lifetime.end.p0(i64 16, ptr %102) #14
  br label %1345

1296:                                             ; preds = %1239
  call void @llvm.lifetime.start.p0(i64 16, ptr %103) #14
  %1297 = load ptr, ptr %3, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.ImPlotPlot, ptr %1297, i32 0, i32 13
  %1299 = getelementptr inbounds %struct.ImRect, ptr %1298, i32 0, i32 0
  %1300 = getelementptr inbounds %struct.ImVec2, ptr %1299, i32 0, i32 0
  %1301 = load float, ptr %1300, align 8, !tbaa !138
  %1302 = fsub float %1301, 5.000000e+00
  %1303 = load ptr, ptr %3, align 8, !tbaa !5
  %1304 = getelementptr inbounds %struct.ImPlotPlot, ptr %1303, i32 0, i32 13
  %1305 = getelementptr inbounds %struct.ImRect, ptr %1304, i32 0, i32 1
  %1306 = getelementptr inbounds %struct.ImVec2, ptr %1305, i32 0, i32 1
  %1307 = load float, ptr %1306, align 4, !tbaa !150
  %1308 = fsub float %1307, 5.000000e+00
  %1309 = load ptr, ptr %3, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.ImPlotPlot, ptr %1309, i32 0, i32 13
  %1311 = getelementptr inbounds %struct.ImRect, ptr %1310, i32 0, i32 1
  %1312 = getelementptr inbounds %struct.ImVec2, ptr %1311, i32 0, i32 0
  %1313 = load float, ptr %1312, align 8, !tbaa !139
  %1314 = fadd float %1313, 5.000000e+00
  %1315 = load ptr, ptr %3, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.ImPlotPlot, ptr %1315, i32 0, i32 13
  %1317 = getelementptr inbounds %struct.ImRect, ptr %1316, i32 0, i32 1
  %1318 = getelementptr inbounds %struct.ImVec2, ptr %1317, i32 0, i32 1
  %1319 = load float, ptr %1318, align 4, !tbaa !150
  %1320 = fadd float %1319, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %103, float noundef %1302, float noundef %1308, float noundef %1314, float noundef %1320)
  %1321 = getelementptr inbounds %struct.ImVec2, ptr %97, i32 0, i32 1
  %1322 = load float, ptr %1321, align 4, !tbaa !162
  %1323 = load ptr, ptr %3, align 8, !tbaa !5
  %1324 = getelementptr inbounds %struct.ImPlotPlot, ptr %1323, i32 0, i32 13
  %1325 = getelementptr inbounds %struct.ImRect, ptr %1324, i32 0, i32 0
  %1326 = getelementptr inbounds %struct.ImVec2, ptr %1325, i32 0, i32 1
  %1327 = load float, ptr %1326, align 4, !tbaa !149
  %1328 = fadd float %1327, 1.000000e+01
  %1329 = fcmp ogt float %1322, %1328
  br i1 %1329, label %1330, label %1337

1330:                                             ; preds = %1296
  %1331 = load ptr, ptr %5, align 8, !tbaa !5
  %1332 = getelementptr inbounds %struct.ImRect, ptr %103, i32 0, i32 0
  %1333 = getelementptr inbounds %struct.ImRect, ptr %103, i32 0, i32 1
  %1334 = load ptr, ptr %100, align 8, !tbaa !5
  %1335 = getelementptr inbounds %struct.ImPlotAxis, ptr %1334, i32 0, i32 39
  %1336 = load i32, ptr %1335, align 8, !tbaa !183
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1331, ptr noundef nonnull align 4 dereferenceable(8) %1332, ptr noundef nonnull align 4 dereferenceable(8) %1333, i32 noundef %1336, float noundef 0.000000e+00, i32 noundef 0)
  br label %1337

1337:                                             ; preds = %1330, %1296
  %1338 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %103, ptr noundef nonnull align 4 dereferenceable(8) %97)
  br i1 %1338, label %1339, label %1344

1339:                                             ; preds = %1337
  %1340 = load ptr, ptr %100, align 8, !tbaa !5
  %1341 = getelementptr inbounds %struct.ImPlotAxis, ptr %1340, i32 0, i32 1
  %1342 = load i32, ptr %1341, align 4, !tbaa !181
  %1343 = and i32 %1342, -257
  store i32 %1343, ptr %1341, align 4, !tbaa !181
  br label %1344

1344:                                             ; preds = %1339, %1337
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #14
  br label %1345

1345:                                             ; preds = %1344, %1295
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #14
  br label %1346

1346:                                             ; preds = %1345, %1235, %1230
  store i32 0, ptr %20, align 4
  br label %1347

1347:                                             ; preds = %1346, %1229
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #14
  %1348 = load i32, ptr %20, align 4
  switch i32 %1348, label %2222 [
    i32 0, label %1349
    i32 34, label %1350
  ]

1349:                                             ; preds = %1347
  br label %1350

1350:                                             ; preds = %1349, %1347
  %1351 = load i32, ptr %99, align 4, !tbaa !118
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr %99, align 4, !tbaa !118
  br label %1217, !llvm.loop !184

1353:                                             ; preds = %1220
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #14
  store i32 0, ptr %104, align 4, !tbaa !118
  br label %1354

1354:                                             ; preds = %1487, %1353
  %1355 = load i32, ptr %104, align 4, !tbaa !118
  %1356 = icmp slt i32 %1355, 3
  br i1 %1356, label %1358, label %1357

1357:                                             ; preds = %1354
  store i32 35, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #14
  br label %1490

1358:                                             ; preds = %1354
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #14
  %1359 = load ptr, ptr %3, align 8, !tbaa !5
  %1360 = load i32, ptr %104, align 4, !tbaa !118
  %1361 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1359, i32 noundef %1360)
  store ptr %1361, ptr %105, align 8, !tbaa !5
  %1362 = load ptr, ptr %105, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.ImPlotAxis, ptr %1362, i32 0, i32 1
  %1364 = load i32, ptr %1363, align 4, !tbaa !181
  %1365 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %1364, i32 noundef 64)
  br i1 %1365, label %1366, label %1367

1366:                                             ; preds = %1358
  store i32 37, ptr %20, align 4
  br label %1484

1367:                                             ; preds = %1358
  %1368 = load ptr, ptr %105, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.ImPlotAxis, ptr %1368, i32 0, i32 49
  %1370 = load i8, ptr %1369, align 1, !tbaa !182, !range !116, !noundef !117
  %1371 = trunc i8 %1370 to i1
  br i1 %1371, label %1372, label %1483

1372:                                             ; preds = %1367
  %1373 = load ptr, ptr %3, align 8, !tbaa !5
  %1374 = getelementptr inbounds %struct.ImPlotPlot, ptr %1373, i32 0, i32 13
  %1375 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %1374, ptr noundef nonnull align 4 dereferenceable(8) %97)
  br i1 %1375, label %1376, label %1483

1376:                                             ; preds = %1372
  call void @llvm.lifetime.start.p0(i64 1, ptr %106) #14
  %1377 = load ptr, ptr %105, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.ImPlotAxis, ptr %1377, i32 0, i32 1
  %1379 = load i32, ptr %1378, align 4, !tbaa !181
  %1380 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %1379, i32 noundef 256)
  %1381 = zext i1 %1380 to i8
  store i8 %1381, ptr %106, align 1, !tbaa !109
  %1382 = load i8, ptr %106, align 1, !tbaa !109, !range !116, !noundef !117
  %1383 = trunc i8 %1382 to i1
  br i1 %1383, label %1433, label %1384

1384:                                             ; preds = %1376
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #14
  %1385 = load ptr, ptr %3, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.ImPlotPlot, ptr %1385, i32 0, i32 13
  %1387 = getelementptr inbounds %struct.ImRect, ptr %1386, i32 0, i32 1
  %1388 = getelementptr inbounds %struct.ImVec2, ptr %1387, i32 0, i32 0
  %1389 = load float, ptr %1388, align 8, !tbaa !139
  %1390 = fsub float %1389, 5.000000e+00
  %1391 = load ptr, ptr %3, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.ImPlotPlot, ptr %1391, i32 0, i32 13
  %1393 = getelementptr inbounds %struct.ImRect, ptr %1392, i32 0, i32 0
  %1394 = getelementptr inbounds %struct.ImVec2, ptr %1393, i32 0, i32 1
  %1395 = load float, ptr %1394, align 4, !tbaa !149
  %1396 = fsub float %1395, 5.000000e+00
  %1397 = load ptr, ptr %3, align 8, !tbaa !5
  %1398 = getelementptr inbounds %struct.ImPlotPlot, ptr %1397, i32 0, i32 13
  %1399 = getelementptr inbounds %struct.ImRect, ptr %1398, i32 0, i32 1
  %1400 = getelementptr inbounds %struct.ImVec2, ptr %1399, i32 0, i32 0
  %1401 = load float, ptr %1400, align 8, !tbaa !139
  %1402 = fadd float %1401, 5.000000e+00
  %1403 = load ptr, ptr %3, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.ImPlotPlot, ptr %1403, i32 0, i32 13
  %1405 = getelementptr inbounds %struct.ImRect, ptr %1404, i32 0, i32 1
  %1406 = getelementptr inbounds %struct.ImVec2, ptr %1405, i32 0, i32 1
  %1407 = load float, ptr %1406, align 4, !tbaa !150
  %1408 = fadd float %1407, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %107, float noundef %1390, float noundef %1396, float noundef %1402, float noundef %1408)
  %1409 = getelementptr inbounds %struct.ImVec2, ptr %97, i32 0, i32 0
  %1410 = load float, ptr %1409, align 4, !tbaa !132
  %1411 = load ptr, ptr %3, align 8, !tbaa !5
  %1412 = getelementptr inbounds %struct.ImPlotPlot, ptr %1411, i32 0, i32 13
  %1413 = getelementptr inbounds %struct.ImRect, ptr %1412, i32 0, i32 0
  %1414 = getelementptr inbounds %struct.ImVec2, ptr %1413, i32 0, i32 0
  %1415 = load float, ptr %1414, align 8, !tbaa !138
  %1416 = fadd float %1415, 1.000000e+01
  %1417 = fcmp ogt float %1410, %1416
  br i1 %1417, label %1418, label %1425

1418:                                             ; preds = %1384
  %1419 = load ptr, ptr %5, align 8, !tbaa !5
  %1420 = getelementptr inbounds %struct.ImRect, ptr %107, i32 0, i32 0
  %1421 = getelementptr inbounds %struct.ImRect, ptr %107, i32 0, i32 1
  %1422 = load ptr, ptr %105, align 8, !tbaa !5
  %1423 = getelementptr inbounds %struct.ImPlotAxis, ptr %1422, i32 0, i32 39
  %1424 = load i32, ptr %1423, align 8, !tbaa !183
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1419, ptr noundef nonnull align 4 dereferenceable(8) %1420, ptr noundef nonnull align 4 dereferenceable(8) %1421, i32 noundef %1424, float noundef 0.000000e+00, i32 noundef 0)
  br label %1425

1425:                                             ; preds = %1418, %1384
  %1426 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %107, ptr noundef nonnull align 4 dereferenceable(8) %97)
  br i1 %1426, label %1427, label %1432

1427:                                             ; preds = %1425
  %1428 = load ptr, ptr %105, align 8, !tbaa !5
  %1429 = getelementptr inbounds %struct.ImPlotAxis, ptr %1428, i32 0, i32 1
  %1430 = load i32, ptr %1429, align 4, !tbaa !181
  %1431 = or i32 %1430, 256
  store i32 %1431, ptr %1429, align 4, !tbaa !181
  br label %1432

1432:                                             ; preds = %1427, %1425
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #14
  br label %1482

1433:                                             ; preds = %1376
  call void @llvm.lifetime.start.p0(i64 16, ptr %108) #14
  %1434 = load ptr, ptr %3, align 8, !tbaa !5
  %1435 = getelementptr inbounds %struct.ImPlotPlot, ptr %1434, i32 0, i32 13
  %1436 = getelementptr inbounds %struct.ImRect, ptr %1435, i32 0, i32 0
  %1437 = getelementptr inbounds %struct.ImVec2, ptr %1436, i32 0, i32 0
  %1438 = load float, ptr %1437, align 8, !tbaa !138
  %1439 = fsub float %1438, 5.000000e+00
  %1440 = load ptr, ptr %3, align 8, !tbaa !5
  %1441 = getelementptr inbounds %struct.ImPlotPlot, ptr %1440, i32 0, i32 13
  %1442 = getelementptr inbounds %struct.ImRect, ptr %1441, i32 0, i32 0
  %1443 = getelementptr inbounds %struct.ImVec2, ptr %1442, i32 0, i32 1
  %1444 = load float, ptr %1443, align 4, !tbaa !149
  %1445 = fsub float %1444, 5.000000e+00
  %1446 = load ptr, ptr %3, align 8, !tbaa !5
  %1447 = getelementptr inbounds %struct.ImPlotPlot, ptr %1446, i32 0, i32 13
  %1448 = getelementptr inbounds %struct.ImRect, ptr %1447, i32 0, i32 0
  %1449 = getelementptr inbounds %struct.ImVec2, ptr %1448, i32 0, i32 0
  %1450 = load float, ptr %1449, align 8, !tbaa !138
  %1451 = fadd float %1450, 5.000000e+00
  %1452 = load ptr, ptr %3, align 8, !tbaa !5
  %1453 = getelementptr inbounds %struct.ImPlotPlot, ptr %1452, i32 0, i32 13
  %1454 = getelementptr inbounds %struct.ImRect, ptr %1453, i32 0, i32 1
  %1455 = getelementptr inbounds %struct.ImVec2, ptr %1454, i32 0, i32 1
  %1456 = load float, ptr %1455, align 4, !tbaa !150
  %1457 = fadd float %1456, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %108, float noundef %1439, float noundef %1445, float noundef %1451, float noundef %1457)
  %1458 = getelementptr inbounds %struct.ImVec2, ptr %97, i32 0, i32 0
  %1459 = load float, ptr %1458, align 4, !tbaa !132
  %1460 = load ptr, ptr %3, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.ImPlotPlot, ptr %1460, i32 0, i32 13
  %1462 = getelementptr inbounds %struct.ImRect, ptr %1461, i32 0, i32 1
  %1463 = getelementptr inbounds %struct.ImVec2, ptr %1462, i32 0, i32 0
  %1464 = load float, ptr %1463, align 8, !tbaa !139
  %1465 = fsub float %1464, 1.000000e+01
  %1466 = fcmp olt float %1459, %1465
  br i1 %1466, label %1467, label %1474

1467:                                             ; preds = %1433
  %1468 = load ptr, ptr %5, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.ImRect, ptr %108, i32 0, i32 0
  %1470 = getelementptr inbounds %struct.ImRect, ptr %108, i32 0, i32 1
  %1471 = load ptr, ptr %105, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.ImPlotAxis, ptr %1471, i32 0, i32 39
  %1473 = load i32, ptr %1472, align 8, !tbaa !183
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1468, ptr noundef nonnull align 4 dereferenceable(8) %1469, ptr noundef nonnull align 4 dereferenceable(8) %1470, i32 noundef %1473, float noundef 0.000000e+00, i32 noundef 0)
  br label %1474

1474:                                             ; preds = %1467, %1433
  %1475 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %108, ptr noundef nonnull align 4 dereferenceable(8) %97)
  br i1 %1475, label %1476, label %1481

1476:                                             ; preds = %1474
  %1477 = load ptr, ptr %105, align 8, !tbaa !5
  %1478 = getelementptr inbounds %struct.ImPlotAxis, ptr %1477, i32 0, i32 1
  %1479 = load i32, ptr %1478, align 4, !tbaa !181
  %1480 = and i32 %1479, -257
  store i32 %1480, ptr %1478, align 4, !tbaa !181
  br label %1481

1481:                                             ; preds = %1476, %1474
  call void @llvm.lifetime.end.p0(i64 16, ptr %108) #14
  br label %1482

1482:                                             ; preds = %1481, %1432
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #14
  br label %1483

1483:                                             ; preds = %1482, %1372, %1367
  store i32 0, ptr %20, align 4
  br label %1484

1484:                                             ; preds = %1483, %1366
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #14
  %1485 = load i32, ptr %20, align 4
  switch i32 %1485, label %2222 [
    i32 0, label %1486
    i32 37, label %1487
  ]

1486:                                             ; preds = %1484
  br label %1487

1487:                                             ; preds = %1486, %1484
  %1488 = load i32, ptr %104, align 4, !tbaa !118
  %1489 = add nsw i32 %1488, 1
  store i32 %1489, ptr %104, align 4, !tbaa !118
  br label %1354, !llvm.loop !185

1490:                                             ; preds = %1357
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #14
  br label %1491

1491:                                             ; preds = %1490, %1207
  %1492 = load ptr, ptr %3, align 8, !tbaa !5
  %1493 = getelementptr inbounds %struct.ImPlotPlot, ptr %1492, i32 0, i32 8
  %1494 = getelementptr inbounds %struct.ImPlotItemGroup, ptr %1493, i32 0, i32 2
  %1495 = getelementptr inbounds %struct.ImPlotLegend, ptr %1494, i32 0, i32 7
  store i8 0, ptr %1495, align 8, !tbaa !172
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #14
  store i32 0, ptr %109, align 4, !tbaa !118
  br label %1496

1496:                                             ; preds = %1509, %1491
  %1497 = load i32, ptr %109, align 4, !tbaa !118
  %1498 = load ptr, ptr %3, align 8, !tbaa !5
  %1499 = getelementptr inbounds %struct.ImPlotPlot, ptr %1498, i32 0, i32 8
  %1500 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %1499)
  %1501 = icmp slt i32 %1497, %1500
  br i1 %1501, label %1503, label %1502

1502:                                             ; preds = %1496
  store i32 38, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #14
  br label %1512

1503:                                             ; preds = %1496
  %1504 = load ptr, ptr %3, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.ImPlotPlot, ptr %1504, i32 0, i32 8
  %1506 = load i32, ptr %109, align 4, !tbaa !118
  %1507 = call noundef ptr @_ZN15ImPlotItemGroup14GetItemByIndexEi(ptr noundef nonnull align 8 dereferenceable(124) %1505, i32 noundef %1506)
  %1508 = getelementptr inbounds %struct.ImPlotItem, ptr %1507, i32 0, i32 5
  store i8 0, ptr %1508, align 1, !tbaa !186
  br label %1509

1509:                                             ; preds = %1503
  %1510 = load i32, ptr %109, align 4, !tbaa !118
  %1511 = add nsw i32 %1510, 1
  store i32 %1511, ptr %109, align 4, !tbaa !118
  br label %1496, !llvm.loop !188

1512:                                             ; preds = %1502
  %1513 = load ptr, ptr %3, align 8, !tbaa !5
  %1514 = getelementptr inbounds %struct.ImPlotPlot, ptr %1513, i32 0, i32 1
  %1515 = load i32, ptr %1514, align 4, !tbaa !169
  %1516 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1515, i32 noundef 2)
  br i1 %1516, label %1674, label %1517

1517:                                             ; preds = %1512
  %1518 = load ptr, ptr %3, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.ImPlotPlot, ptr %1518, i32 0, i32 8
  %1520 = call noundef i32 @_ZNK15ImPlotItemGroup14GetLegendCountEv(ptr noundef nonnull align 8 dereferenceable(124) %1519)
  %1521 = icmp sgt i32 %1520, 0
  br i1 %1521, label %1522, label %1674

1522:                                             ; preds = %1517
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #14
  %1523 = load ptr, ptr %3, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.ImPlotPlot, ptr %1523, i32 0, i32 8
  %1525 = getelementptr inbounds %struct.ImPlotItemGroup, ptr %1524, i32 0, i32 2
  store ptr %1525, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #14
  %1526 = load ptr, ptr %110, align 8, !tbaa !5
  %1527 = getelementptr inbounds %struct.ImPlotLegend, ptr %1526, i32 0, i32 0
  %1528 = load i32, ptr %1527, align 8, !tbaa !189
  %1529 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %1528, i32 noundef 16)
  %1530 = zext i1 %1529 to i8
  store i8 %1530, ptr %111, align 1, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #14
  %1531 = load ptr, ptr %110, align 8, !tbaa !5
  %1532 = getelementptr inbounds %struct.ImPlotLegend, ptr %1531, i32 0, i32 0
  %1533 = load i32, ptr %1532, align 8, !tbaa !189
  %1534 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %1533, i32 noundef 32)
  %1535 = zext i1 %1534 to i8
  store i8 %1535, ptr %112, align 1, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #14
  %1536 = load ptr, ptr %3, align 8, !tbaa !5
  %1537 = getelementptr inbounds %struct.ImPlotPlot, ptr %1536, i32 0, i32 8
  %1538 = load ptr, ptr %1, align 8, !tbaa !5
  %1539 = getelementptr inbounds %struct.ImPlotContext, ptr %1538, i32 0, i32 12
  %1540 = getelementptr inbounds %struct.ImPlotStyle, ptr %1539, i32 0, i32 20
  %1541 = load ptr, ptr %1, align 8, !tbaa !5
  %1542 = getelementptr inbounds %struct.ImPlotContext, ptr %1541, i32 0, i32 12
  %1543 = getelementptr inbounds %struct.ImPlotStyle, ptr %1542, i32 0, i32 21
  %1544 = load i8, ptr %112, align 1, !tbaa !109, !range !116, !noundef !117
  %1545 = trunc i8 %1544 to i1
  %1546 = xor i1 %1545, true
  %1547 = call <2 x float> @_ZN6ImPlot14CalcLegendSizeER15ImPlotItemGroupRK6ImVec2S4_b(ptr noundef nonnull align 8 dereferenceable(124) %1537, ptr noundef nonnull align 4 dereferenceable(8) %1540, ptr noundef nonnull align 4 dereferenceable(8) %1543, i1 noundef zeroext %1546)
  store <2 x float> %1547, ptr %113, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #14
  %1548 = load i8, ptr %111, align 1, !tbaa !109, !range !116, !noundef !117
  %1549 = trunc i8 %1548 to i1
  br i1 %1549, label %1550, label %1553

1550:                                             ; preds = %1522
  %1551 = load ptr, ptr %3, align 8, !tbaa !5
  %1552 = getelementptr inbounds %struct.ImPlotPlot, ptr %1551, i32 0, i32 11
  br label %1556

1553:                                             ; preds = %1522
  %1554 = load ptr, ptr %3, align 8, !tbaa !5
  %1555 = getelementptr inbounds %struct.ImPlotPlot, ptr %1554, i32 0, i32 13
  br label %1556

1556:                                             ; preds = %1553, %1550
  %1557 = phi ptr [ %1552, %1550 ], [ %1555, %1553 ]
  %1558 = load ptr, ptr %110, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.ImPlotLegend, ptr %1558, i32 0, i32 2
  %1560 = load i32, ptr %1559, align 8, !tbaa !190
  %1561 = load i8, ptr %111, align 1, !tbaa !109, !range !116, !noundef !117
  %1562 = trunc i8 %1561 to i1
  br i1 %1562, label %1563, label %1567

1563:                                             ; preds = %1556
  %1564 = load ptr, ptr %1, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.ImPlotContext, ptr %1564, i32 0, i32 12
  %1566 = getelementptr inbounds %struct.ImPlotStyle, ptr %1565, i32 0, i32 17
  br label %1571

1567:                                             ; preds = %1556
  %1568 = load ptr, ptr %1, align 8, !tbaa !5
  %1569 = getelementptr inbounds %struct.ImPlotContext, ptr %1568, i32 0, i32 12
  %1570 = getelementptr inbounds %struct.ImPlotStyle, ptr %1569, i32 0, i32 19
  br label %1571

1571:                                             ; preds = %1567, %1563
  %1572 = phi ptr [ %1566, %1563 ], [ %1570, %1567 ]
  %1573 = call <2 x float> @_ZN6ImPlot14GetLocationPosERK6ImRectRK6ImVec2iS5_(ptr noundef nonnull align 4 dereferenceable(16) %1557, ptr noundef nonnull align 4 dereferenceable(8) %113, i32 noundef %1560, ptr noundef nonnull align 4 dereferenceable(8) %1572)
  store <2 x float> %1573, ptr %114, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %115) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #14
  %1574 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %114, ptr noundef nonnull align 4 dereferenceable(8) %113)
  store <2 x float> %1574, ptr %116, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %115, ptr noundef nonnull align 4 dereferenceable(8) %114, ptr noundef nonnull align 4 dereferenceable(8) %116)
  %1575 = load ptr, ptr %110, align 8, !tbaa !5
  %1576 = getelementptr inbounds %struct.ImPlotLegend, ptr %1575, i32 0, i32 6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1576, ptr align 4 %115, i64 16, i1 false), !tbaa.struct !180
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %115) #14
  %1577 = call noundef zeroext i1 @_ZN5ImGui15IsWindowHoveredEi(i32 noundef 0)
  br i1 %1577, label %1578, label %1584

1578:                                             ; preds = %1571
  %1579 = load ptr, ptr %110, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.ImPlotLegend, ptr %1579, i32 0, i32 6
  %1581 = load ptr, ptr %6, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.ImGuiIO, ptr %1581, i32 0, i32 36
  %1583 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %1580, ptr noundef nonnull align 4 dereferenceable(8) %1582)
  br label %1584

1584:                                             ; preds = %1578, %1571
  %1585 = phi i1 [ false, %1571 ], [ %1583, %1578 ]
  %1586 = load ptr, ptr %110, align 8, !tbaa !5
  %1587 = getelementptr inbounds %struct.ImPlotLegend, ptr %1586, i32 0, i32 7
  %1588 = zext i1 %1585 to i8
  store i8 %1588, ptr %1587, align 8, !tbaa !191
  %1589 = load i8, ptr %111, align 1, !tbaa !109, !range !116, !noundef !117
  %1590 = trunc i8 %1589 to i1
  br i1 %1590, label %1591, label %1598

1591:                                             ; preds = %1584
  %1592 = load ptr, ptr %3, align 8, !tbaa !5
  %1593 = getelementptr inbounds %struct.ImPlotPlot, ptr %1592, i32 0, i32 11
  %1594 = getelementptr inbounds %struct.ImRect, ptr %1593, i32 0, i32 0
  %1595 = load ptr, ptr %3, align 8, !tbaa !5
  %1596 = getelementptr inbounds %struct.ImPlotPlot, ptr %1595, i32 0, i32 11
  %1597 = getelementptr inbounds %struct.ImRect, ptr %1596, i32 0, i32 1
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %1594, ptr noundef nonnull align 4 dereferenceable(8) %1597, i1 noundef zeroext true)
  br label %1599

1598:                                             ; preds = %1584
  call void @_ZN6ImPlot16PushPlotClipRectEf(float noundef 0.000000e+00)
  br label %1599

1599:                                             ; preds = %1598, %1591
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #14
  %1600 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 8)
  store i32 %1600, ptr %117, align 4, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #14
  %1601 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 9)
  store i32 %1601, ptr %118, align 4, !tbaa !118
  %1602 = load ptr, ptr %5, align 8, !tbaa !5
  %1603 = load ptr, ptr %110, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.ImPlotLegend, ptr %1603, i32 0, i32 6
  %1605 = getelementptr inbounds %struct.ImRect, ptr %1604, i32 0, i32 0
  %1606 = load ptr, ptr %110, align 8, !tbaa !5
  %1607 = getelementptr inbounds %struct.ImPlotLegend, ptr %1606, i32 0, i32 6
  %1608 = getelementptr inbounds %struct.ImRect, ptr %1607, i32 0, i32 1
  %1609 = load i32, ptr %117, align 4, !tbaa !118
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1602, ptr noundef nonnull align 4 dereferenceable(8) %1605, ptr noundef nonnull align 4 dereferenceable(8) %1608, i32 noundef %1609, float noundef 0.000000e+00, i32 noundef 0)
  %1610 = load ptr, ptr %5, align 8, !tbaa !5
  %1611 = load ptr, ptr %110, align 8, !tbaa !5
  %1612 = getelementptr inbounds %struct.ImPlotLegend, ptr %1611, i32 0, i32 6
  %1613 = getelementptr inbounds %struct.ImRect, ptr %1612, i32 0, i32 0
  %1614 = load ptr, ptr %110, align 8, !tbaa !5
  %1615 = getelementptr inbounds %struct.ImPlotLegend, ptr %1614, i32 0, i32 6
  %1616 = getelementptr inbounds %struct.ImRect, ptr %1615, i32 0, i32 1
  %1617 = load i32, ptr %118, align 4, !tbaa !118
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1610, ptr noundef nonnull align 4 dereferenceable(8) %1613, ptr noundef nonnull align 4 dereferenceable(8) %1616, i32 noundef %1617, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #14
  %1618 = load ptr, ptr %3, align 8, !tbaa !5
  %1619 = getelementptr inbounds %struct.ImPlotPlot, ptr %1618, i32 0, i32 8
  %1620 = load ptr, ptr %110, align 8, !tbaa !5
  %1621 = getelementptr inbounds %struct.ImPlotLegend, ptr %1620, i32 0, i32 6
  %1622 = load ptr, ptr %110, align 8, !tbaa !5
  %1623 = getelementptr inbounds %struct.ImPlotLegend, ptr %1622, i32 0, i32 7
  %1624 = load i8, ptr %1623, align 8, !tbaa !191, !range !116, !noundef !117
  %1625 = trunc i8 %1624 to i1
  %1626 = load ptr, ptr %1, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.ImPlotContext, ptr %1626, i32 0, i32 12
  %1628 = getelementptr inbounds %struct.ImPlotStyle, ptr %1627, i32 0, i32 20
  %1629 = load ptr, ptr %1, align 8, !tbaa !5
  %1630 = getelementptr inbounds %struct.ImPlotContext, ptr %1629, i32 0, i32 12
  %1631 = getelementptr inbounds %struct.ImPlotStyle, ptr %1630, i32 0, i32 21
  %1632 = load i8, ptr %112, align 1, !tbaa !109, !range !116, !noundef !117
  %1633 = trunc i8 %1632 to i1
  %1634 = xor i1 %1633, true
  %1635 = load ptr, ptr %5, align 8, !tbaa !5
  %1636 = call noundef zeroext i1 @_ZN6ImPlot17ShowLegendEntriesER15ImPlotItemGroupRK6ImRectbRK6ImVec2S7_bR10ImDrawList(ptr noundef nonnull align 8 dereferenceable(124) %1619, ptr noundef nonnull align 4 dereferenceable(16) %1621, i1 noundef zeroext %1625, ptr noundef nonnull align 4 dereferenceable(8) %1628, ptr noundef nonnull align 4 dereferenceable(8) %1631, i1 noundef zeroext %1634, ptr noundef nonnull align 8 dereferenceable(196) %1635)
  br i1 %1636, label %1637, label %1643

1637:                                             ; preds = %1599
  %1638 = load ptr, ptr %110, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.ImPlotLegend, ptr %1638, i32 0, i32 0
  %1640 = load i32, ptr %1639, align 8, !tbaa !189
  %1641 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %1640, i32 noundef 8)
  %1642 = xor i1 %1641, true
  br label %1643

1643:                                             ; preds = %1637, %1599
  %1644 = phi i1 [ false, %1599 ], [ %1642, %1637 ]
  %1645 = zext i1 %1644 to i8
  store i8 %1645, ptr %119, align 1, !tbaa !109
  %1646 = load ptr, ptr %1, align 8, !tbaa !5
  %1647 = getelementptr inbounds %struct.ImPlotContext, ptr %1646, i32 0, i32 26
  %1648 = load i8, ptr %1647, align 8, !tbaa !192, !range !116, !noundef !117
  %1649 = trunc i8 %1648 to i1
  br i1 %1649, label %1650, label %1659

1650:                                             ; preds = %1643
  %1651 = load i8, ptr %119, align 1, !tbaa !109, !range !116, !noundef !117
  %1652 = trunc i8 %1651 to i1
  br i1 %1652, label %1653, label %1659

1653:                                             ; preds = %1650
  %1654 = load ptr, ptr %3, align 8, !tbaa !5
  %1655 = getelementptr inbounds %struct.ImPlotPlot, ptr %1654, i32 0, i32 1
  %1656 = load i32, ptr %1655, align 4, !tbaa !169
  %1657 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1656, i32 noundef 16)
  br i1 %1657, label %1659, label %1658

1658:                                             ; preds = %1653
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef @.str.153, i32 noundef 0)
  br label %1659

1659:                                             ; preds = %1658, %1653, %1650, %1643
  call void @_ZN5ImGui11PopClipRectEv()
  %1660 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef @.str.153, i32 noundef 0)
  br i1 %1660, label %1661, label %1673

1661:                                             ; preds = %1659
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.124)
  call void @_ZN5ImGui9SeparatorEv()
  %1662 = load ptr, ptr %110, align 8, !tbaa !5
  %1663 = load ptr, ptr %3, align 8, !tbaa !5
  %1664 = getelementptr inbounds %struct.ImPlotPlot, ptr %1663, i32 0, i32 1
  %1665 = load i32, ptr %1664, align 4, !tbaa !169
  %1666 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1665, i32 noundef 2)
  %1667 = xor i1 %1666, true
  %1668 = call noundef zeroext i1 @_ZN6ImPlot21ShowLegendContextMenuER12ImPlotLegendb(ptr noundef nonnull align 8 dereferenceable(67) %1662, i1 noundef zeroext %1667)
  br i1 %1668, label %1669, label %1672

1669:                                             ; preds = %1661
  %1670 = load ptr, ptr %3, align 8, !tbaa !5
  %1671 = getelementptr inbounds %struct.ImPlotPlot, ptr %1670, i32 0, i32 1
  call void @_ZL10ImFlipFlagIi12ImPlotFlags_EvRT_T0_(ptr noundef nonnull align 4 dereferenceable(4) %1671, i32 noundef 2)
  br label %1672

1672:                                             ; preds = %1669, %1661
  call void @_ZN5ImGui8EndPopupEv()
  br label %1673

1673:                                             ; preds = %1672, %1659
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #14
  br label %1679

1674:                                             ; preds = %1517, %1512
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #14
  call void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %120)
  %1675 = load ptr, ptr %3, align 8, !tbaa !5
  %1676 = getelementptr inbounds %struct.ImPlotPlot, ptr %1675, i32 0, i32 8
  %1677 = getelementptr inbounds %struct.ImPlotItemGroup, ptr %1676, i32 0, i32 2
  %1678 = getelementptr inbounds %struct.ImPlotLegend, ptr %1677, i32 0, i32 6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1678, ptr align 4 %120, i64 16, i1 false), !tbaa.struct !180
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #14
  br label %1679

1679:                                             ; preds = %1674, %1673
  %1680 = load i8, ptr %7, align 1, !tbaa !109, !range !116, !noundef !117
  %1681 = trunc i8 %1680 to i1
  br i1 %1681, label %1682, label %1695

1682:                                             ; preds = %1679
  %1683 = load ptr, ptr %5, align 8, !tbaa !5
  %1684 = load ptr, ptr %3, align 8, !tbaa !5
  %1685 = getelementptr inbounds %struct.ImPlotPlot, ptr %1684, i32 0, i32 13
  %1686 = getelementptr inbounds %struct.ImRect, ptr %1685, i32 0, i32 0
  %1687 = load ptr, ptr %3, align 8, !tbaa !5
  %1688 = getelementptr inbounds %struct.ImPlotPlot, ptr %1687, i32 0, i32 13
  %1689 = getelementptr inbounds %struct.ImRect, ptr %1688, i32 0, i32 1
  %1690 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 7)
  %1691 = load ptr, ptr %1, align 8, !tbaa !5
  %1692 = getelementptr inbounds %struct.ImPlotContext, ptr %1691, i32 0, i32 12
  %1693 = getelementptr inbounds %struct.ImPlotStyle, ptr %1692, i32 0, i32 9
  %1694 = load float, ptr %1693, align 4, !tbaa !107
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1683, ptr noundef nonnull align 4 dereferenceable(8) %1686, ptr noundef nonnull align 4 dereferenceable(8) %1689, i32 noundef %1690, float noundef 0.000000e+00, i32 noundef 240, float noundef %1694)
  br label %1695

1695:                                             ; preds = %1682, %1679
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #14
  store i32 0, ptr %121, align 4, !tbaa !118
  br label %1696

1696:                                             ; preds = %1893, %1695
  %1697 = load i32, ptr %121, align 4, !tbaa !118
  %1698 = load ptr, ptr %1, align 8, !tbaa !5
  %1699 = getelementptr inbounds %struct.ImPlotContext, ptr %1698, i32 0, i32 9
  %1700 = getelementptr inbounds %struct.ImPlotTagCollection, ptr %1699, i32 0, i32 2
  %1701 = load i32, ptr %1700, align 8, !tbaa !193
  %1702 = icmp slt i32 %1697, %1701
  br i1 %1702, label %1704, label %1703

1703:                                             ; preds = %1696
  store i32 41, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #14
  br label %1896

1704:                                             ; preds = %1696
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #14
  %1705 = load ptr, ptr %1, align 8, !tbaa !5
  %1706 = getelementptr inbounds %struct.ImPlotContext, ptr %1705, i32 0, i32 9
  %1707 = getelementptr inbounds %struct.ImPlotTagCollection, ptr %1706, i32 0, i32 0
  %1708 = load i32, ptr %121, align 4, !tbaa !118
  %1709 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI9ImPlotTagEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1707, i32 noundef %1708)
  store ptr %1709, ptr %122, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #14
  %1710 = load ptr, ptr %3, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.ImPlotPlot, ptr %1710, i32 0, i32 6
  %1712 = load ptr, ptr %122, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.ImPlotTag, ptr %1712, i32 0, i32 0
  %1714 = load i32, ptr %1713, align 8, !tbaa !194
  %1715 = sext i32 %1714 to i64
  %1716 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %1711, i64 0, i64 %1715
  store ptr %1716, ptr %123, align 8, !tbaa !5
  %1717 = load ptr, ptr %123, align 8, !tbaa !5
  %1718 = getelementptr inbounds %struct.ImPlotAxis, ptr %1717, i32 0, i32 42
  %1719 = load i8, ptr %1718, align 4, !tbaa !119, !range !116, !noundef !117
  %1720 = trunc i8 %1719 to i1
  br i1 %1720, label %1721, label %1728

1721:                                             ; preds = %1704
  %1722 = load ptr, ptr %123, align 8, !tbaa !5
  %1723 = getelementptr inbounds %struct.ImPlotAxis, ptr %1722, i32 0, i32 4
  %1724 = load ptr, ptr %122, align 8, !tbaa !5
  %1725 = getelementptr inbounds %struct.ImPlotTag, ptr %1724, i32 0, i32 1
  %1726 = load double, ptr %1725, align 8, !tbaa !196
  %1727 = call noundef zeroext i1 @_ZNK11ImPlotRange8ContainsEd(ptr noundef nonnull align 8 dereferenceable(16) %1723, double noundef %1726)
  br i1 %1727, label %1729, label %1728

1728:                                             ; preds = %1721, %1704
  store i32 43, ptr %20, align 4
  br label %1890

1729:                                             ; preds = %1721
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #14
  %1730 = load ptr, ptr %1, align 8, !tbaa !5
  %1731 = getelementptr inbounds %struct.ImPlotContext, ptr %1730, i32 0, i32 9
  %1732 = load i32, ptr %121, align 4, !tbaa !118
  %1733 = call noundef ptr @_ZN19ImPlotTagCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36) %1731, i32 noundef %1732)
  store ptr %1733, ptr %124, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #14
  %1734 = load ptr, ptr %124, align 8, !tbaa !5
  %1735 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %1734, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %1735, ptr %125, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #14
  %1736 = load ptr, ptr %1, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.ImPlotContext, ptr %1736, i32 0, i32 12
  %1738 = getelementptr inbounds %struct.ImPlotStyle, ptr %1737, i32 0, i32 23
  %1739 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %1738, float noundef 2.000000e+00)
  store <2 x float> %1739, ptr %127, align 4
  %1740 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %125, ptr noundef nonnull align 4 dereferenceable(8) %127)
  store <2 x float> %1740, ptr %126, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %128)
  %1741 = load ptr, ptr %123, align 8, !tbaa !5
  %1742 = getelementptr inbounds %struct.ImPlotAxis, ptr %1741, i32 0, i32 11
  call void @_ZN12ImPlotTicker16OverrideSizeLateERK6ImVec2(ptr noundef nonnull align 8 dereferenceable(52) %1742, ptr noundef nonnull align 4 dereferenceable(8) %126)
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #14
  %1743 = load ptr, ptr %123, align 8, !tbaa !5
  %1744 = load ptr, ptr %122, align 8, !tbaa !5
  %1745 = getelementptr inbounds %struct.ImPlotTag, ptr %1744, i32 0, i32 1
  %1746 = load double, ptr %1745, align 8, !tbaa !196
  %1747 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %1743, double noundef %1746)
  %1748 = fadd float %1747, 5.000000e-01
  %1749 = fptosi float %1748 to i32
  %1750 = sitofp i32 %1749 to float
  store float %1750, ptr %129, align 4, !tbaa !134
  %1751 = load ptr, ptr %123, align 8, !tbaa !5
  %1752 = getelementptr inbounds %struct.ImPlotAxis, ptr %1751, i32 0, i32 43
  %1753 = load i8, ptr %1752, align 1, !tbaa !197, !range !116, !noundef !117
  %1754 = trunc i8 %1753 to i1
  br i1 %1754, label %1755, label %1815

1755:                                             ; preds = %1729
  %1756 = load ptr, ptr %123, align 8, !tbaa !5
  %1757 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %1756)
  br i1 %1757, label %1758, label %1784

1758:                                             ; preds = %1755
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #14
  %1759 = load ptr, ptr %123, align 8, !tbaa !5
  %1760 = getelementptr inbounds %struct.ImPlotAxis, ptr %1759, i32 0, i32 30
  %1761 = load float, ptr %1760, align 8, !tbaa !140
  %1762 = load ptr, ptr %1, align 8, !tbaa !5
  %1763 = getelementptr inbounds %struct.ImPlotContext, ptr %1762, i32 0, i32 12
  %1764 = getelementptr inbounds %struct.ImPlotStyle, ptr %1763, i32 0, i32 18
  %1765 = getelementptr inbounds %struct.ImVec2, ptr %1764, i32 0, i32 0
  %1766 = load float, ptr %1765, align 4, !tbaa !198
  %1767 = fadd float %1761, %1766
  %1768 = load float, ptr %129, align 4, !tbaa !134
  %1769 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 1
  %1770 = load float, ptr %1769, align 4, !tbaa !162
  %1771 = fneg float %1770
  %1772 = call float @llvm.fmuladd.f32(float %1771, float 5.000000e-01, float %1768)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %130, float noundef %1767, float noundef %1772)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 %130, i64 8, i1 false), !tbaa.struct !158
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #14
  %1773 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #14
  %1774 = load ptr, ptr %123, align 8, !tbaa !5
  %1775 = getelementptr inbounds %struct.ImPlotAxis, ptr %1774, i32 0, i32 30
  %1776 = load float, ptr %1775, align 8, !tbaa !140
  %1777 = load float, ptr %129, align 4, !tbaa !134
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %131, float noundef %1776, float noundef %1777)
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #14
  %1778 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 1
  %1779 = load float, ptr %1778, align 4, !tbaa !162
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %133, float noundef 0.000000e+00, float noundef %1779)
  %1780 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %133)
  store <2 x float> %1780, ptr %132, align 4
  %1781 = load ptr, ptr %122, align 8, !tbaa !5
  %1782 = getelementptr inbounds %struct.ImPlotTag, ptr %1781, i32 0, i32 2
  %1783 = load i32, ptr %1782, align 8, !tbaa !199
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1773, ptr noundef nonnull align 4 dereferenceable(8) %131, ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %132, i32 noundef %1783)
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #14
  br label %1814

1784:                                             ; preds = %1755
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #14
  %1785 = load ptr, ptr %123, align 8, !tbaa !5
  %1786 = getelementptr inbounds %struct.ImPlotAxis, ptr %1785, i32 0, i32 30
  %1787 = load float, ptr %1786, align 8, !tbaa !140
  %1788 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 0
  %1789 = load float, ptr %1788, align 4, !tbaa !132
  %1790 = fsub float %1787, %1789
  %1791 = load ptr, ptr %1, align 8, !tbaa !5
  %1792 = getelementptr inbounds %struct.ImPlotContext, ptr %1791, i32 0, i32 12
  %1793 = getelementptr inbounds %struct.ImPlotStyle, ptr %1792, i32 0, i32 18
  %1794 = getelementptr inbounds %struct.ImVec2, ptr %1793, i32 0, i32 0
  %1795 = load float, ptr %1794, align 4, !tbaa !198
  %1796 = fsub float %1790, %1795
  %1797 = load float, ptr %129, align 4, !tbaa !134
  %1798 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 1
  %1799 = load float, ptr %1798, align 4, !tbaa !162
  %1800 = fneg float %1799
  %1801 = call float @llvm.fmuladd.f32(float %1800, float 5.000000e-01, float %1797)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %134, float noundef %1796, float noundef %1801)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 %134, i64 8, i1 false), !tbaa.struct !158
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #14
  %1802 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #14
  %1803 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 0
  %1804 = load float, ptr %1803, align 4, !tbaa !132
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %136, float noundef %1804, float noundef 0.000000e+00)
  %1805 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %136)
  store <2 x float> %1805, ptr %135, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #14
  %1806 = load ptr, ptr %123, align 8, !tbaa !5
  %1807 = getelementptr inbounds %struct.ImPlotAxis, ptr %1806, i32 0, i32 30
  %1808 = load float, ptr %1807, align 8, !tbaa !140
  %1809 = load float, ptr %129, align 4, !tbaa !134
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %137, float noundef %1808, float noundef %1809)
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #14
  %1810 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %126)
  store <2 x float> %1810, ptr %138, align 4
  %1811 = load ptr, ptr %122, align 8, !tbaa !5
  %1812 = getelementptr inbounds %struct.ImPlotTag, ptr %1811, i32 0, i32 2
  %1813 = load i32, ptr %1812, align 8, !tbaa !199
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1802, ptr noundef nonnull align 4 dereferenceable(8) %135, ptr noundef nonnull align 4 dereferenceable(8) %137, ptr noundef nonnull align 4 dereferenceable(8) %138, i32 noundef %1813)
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #14
  br label %1814

1814:                                             ; preds = %1784, %1758
  br label %1875

1815:                                             ; preds = %1729
  %1816 = load ptr, ptr %123, align 8, !tbaa !5
  %1817 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %1816)
  br i1 %1817, label %1818, label %1848

1818:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #14
  %1819 = load float, ptr %129, align 4, !tbaa !134
  %1820 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 0
  %1821 = load float, ptr %1820, align 4, !tbaa !132
  %1822 = fneg float %1821
  %1823 = call float @llvm.fmuladd.f32(float %1822, float 5.000000e-01, float %1819)
  %1824 = load ptr, ptr %123, align 8, !tbaa !5
  %1825 = getelementptr inbounds %struct.ImPlotAxis, ptr %1824, i32 0, i32 30
  %1826 = load float, ptr %1825, align 8, !tbaa !140
  %1827 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 1
  %1828 = load float, ptr %1827, align 4, !tbaa !162
  %1829 = fsub float %1826, %1828
  %1830 = load ptr, ptr %1, align 8, !tbaa !5
  %1831 = getelementptr inbounds %struct.ImPlotContext, ptr %1830, i32 0, i32 12
  %1832 = getelementptr inbounds %struct.ImPlotStyle, ptr %1831, i32 0, i32 18
  %1833 = getelementptr inbounds %struct.ImVec2, ptr %1832, i32 0, i32 1
  %1834 = load float, ptr %1833, align 4, !tbaa !200
  %1835 = fsub float %1829, %1834
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %139, float noundef %1823, float noundef %1835)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 %139, i64 8, i1 false), !tbaa.struct !158
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #14
  %1836 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #14
  %1837 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 1
  %1838 = load float, ptr %1837, align 4, !tbaa !162
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %141, float noundef 0.000000e+00, float noundef %1838)
  %1839 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %141)
  store <2 x float> %1839, ptr %140, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #14
  %1840 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %126)
  store <2 x float> %1840, ptr %142, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #14
  %1841 = load float, ptr %129, align 4, !tbaa !134
  %1842 = load ptr, ptr %123, align 8, !tbaa !5
  %1843 = getelementptr inbounds %struct.ImPlotAxis, ptr %1842, i32 0, i32 30
  %1844 = load float, ptr %1843, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %143, float noundef %1841, float noundef %1844)
  %1845 = load ptr, ptr %122, align 8, !tbaa !5
  %1846 = getelementptr inbounds %struct.ImPlotTag, ptr %1845, i32 0, i32 2
  %1847 = load i32, ptr %1846, align 8, !tbaa !199
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1836, ptr noundef nonnull align 4 dereferenceable(8) %140, ptr noundef nonnull align 4 dereferenceable(8) %142, ptr noundef nonnull align 4 dereferenceable(8) %143, i32 noundef %1847)
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #14
  br label %1874

1848:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #14
  %1849 = load float, ptr %129, align 4, !tbaa !134
  %1850 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 0
  %1851 = load float, ptr %1850, align 4, !tbaa !132
  %1852 = fneg float %1851
  %1853 = call float @llvm.fmuladd.f32(float %1852, float 5.000000e-01, float %1849)
  %1854 = load ptr, ptr %123, align 8, !tbaa !5
  %1855 = getelementptr inbounds %struct.ImPlotAxis, ptr %1854, i32 0, i32 30
  %1856 = load float, ptr %1855, align 8, !tbaa !140
  %1857 = load ptr, ptr %1, align 8, !tbaa !5
  %1858 = getelementptr inbounds %struct.ImPlotContext, ptr %1857, i32 0, i32 12
  %1859 = getelementptr inbounds %struct.ImPlotStyle, ptr %1858, i32 0, i32 18
  %1860 = getelementptr inbounds %struct.ImVec2, ptr %1859, i32 0, i32 1
  %1861 = load float, ptr %1860, align 4, !tbaa !200
  %1862 = fadd float %1856, %1861
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %144, float noundef %1853, float noundef %1862)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 %144, i64 8, i1 false), !tbaa.struct !158
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #14
  %1863 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #14
  %1864 = load float, ptr %129, align 4, !tbaa !134
  %1865 = load ptr, ptr %123, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.ImPlotAxis, ptr %1865, i32 0, i32 30
  %1867 = load float, ptr %1866, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %145, float noundef %1864, float noundef %1867)
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #14
  %1868 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 0
  %1869 = load float, ptr %1868, align 4, !tbaa !132
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %147, float noundef %1869, float noundef 0.000000e+00)
  %1870 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %147)
  store <2 x float> %1870, ptr %146, align 4
  %1871 = load ptr, ptr %122, align 8, !tbaa !5
  %1872 = getelementptr inbounds %struct.ImPlotTag, ptr %1871, i32 0, i32 2
  %1873 = load i32, ptr %1872, align 8, !tbaa !199
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %1863, ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %145, ptr noundef nonnull align 4 dereferenceable(8) %146, i32 noundef %1873)
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #14
  br label %1874

1874:                                             ; preds = %1848, %1818
  br label %1875

1875:                                             ; preds = %1874, %1814
  %1876 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #14
  %1877 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %126)
  store <2 x float> %1877, ptr %148, align 4
  %1878 = load ptr, ptr %122, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.ImPlotTag, ptr %1878, i32 0, i32 2
  %1880 = load i32, ptr %1879, align 8, !tbaa !199
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1876, ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %148, i32 noundef %1880, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #14
  %1881 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #14
  %1882 = load ptr, ptr %1, align 8, !tbaa !5
  %1883 = getelementptr inbounds %struct.ImPlotContext, ptr %1882, i32 0, i32 12
  %1884 = getelementptr inbounds %struct.ImPlotStyle, ptr %1883, i32 0, i32 23
  %1885 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %128, ptr noundef nonnull align 4 dereferenceable(8) %1884)
  store <2 x float> %1885, ptr %149, align 4
  %1886 = load ptr, ptr %122, align 8, !tbaa !5
  %1887 = getelementptr inbounds %struct.ImPlotTag, ptr %1886, i32 0, i32 3
  %1888 = load i32, ptr %1887, align 4, !tbaa !201
  %1889 = load ptr, ptr %124, align 8, !tbaa !5
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1881, ptr noundef nonnull align 4 dereferenceable(8) %149, i32 noundef %1888, ptr noundef %1889, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #14
  store i32 0, ptr %20, align 4
  br label %1890

1890:                                             ; preds = %1875, %1728
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #14
  %1891 = load i32, ptr %20, align 4
  switch i32 %1891, label %2222 [
    i32 0, label %1892
    i32 43, label %1893
  ]

1892:                                             ; preds = %1890
  br label %1893

1893:                                             ; preds = %1892, %1890
  %1894 = load i32, ptr %121, align 4, !tbaa !118
  %1895 = add nsw i32 %1894, 1
  store i32 %1895, ptr %121, align 4, !tbaa !118
  br label %1696, !llvm.loop !202

1896:                                             ; preds = %1703
  call void @llvm.lifetime.start.p0(i64 1, ptr %150) #14
  %1897 = load ptr, ptr %3, align 8, !tbaa !5
  %1898 = getelementptr inbounds %struct.ImPlotPlot, ptr %1897, i32 0, i32 1
  %1899 = load i32, ptr %1898, align 4, !tbaa !169
  %1900 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1899, i32 noundef 256)
  %1901 = zext i1 %1900 to i8
  store i8 %1901, ptr %150, align 1, !tbaa !109
  %1902 = load ptr, ptr %3, align 8, !tbaa !5
  %1903 = getelementptr inbounds %struct.ImPlotPlot, ptr %1902, i32 0, i32 21
  %1904 = load i8, ptr %1903, align 1, !tbaa !203, !range !116, !noundef !117
  %1905 = trunc i8 %1904 to i1
  br i1 %1905, label %1906, label %2029

1906:                                             ; preds = %1896
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #14
  store i32 0, ptr %151, align 4, !tbaa !118
  br label %1907

1907:                                             ; preds = %1963, %1906
  %1908 = load i32, ptr %151, align 4, !tbaa !118
  %1909 = icmp slt i32 %1908, 3
  br i1 %1909, label %1911, label %1910

1910:                                             ; preds = %1907
  store i32 44, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #14
  br label %1966

1911:                                             ; preds = %1907
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #14
  %1912 = load ptr, ptr %3, align 8, !tbaa !5
  %1913 = load i32, ptr %151, align 4, !tbaa !118
  %1914 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1912, i32 noundef %1913)
  store ptr %1914, ptr %152, align 8, !tbaa !5
  %1915 = load ptr, ptr %152, align 8, !tbaa !5
  %1916 = getelementptr inbounds %struct.ImPlotAxis, ptr %1915, i32 0, i32 44
  %1917 = load i8, ptr %1916, align 2, !tbaa !204, !range !116, !noundef !117
  %1918 = trunc i8 %1917 to i1
  br i1 %1918, label %1919, label %1962

1919:                                             ; preds = %1911
  %1920 = load ptr, ptr %152, align 8, !tbaa !5
  %1921 = load ptr, ptr %1, align 8, !tbaa !5
  %1922 = getelementptr inbounds %struct.ImPlotContext, ptr %1921, i32 0, i32 12
  %1923 = getelementptr inbounds %struct.ImPlotStyle, ptr %1922, i32 0, i32 24
  %1924 = getelementptr inbounds %struct.ImVec2, ptr %1923, i32 0, i32 0
  %1925 = load float, ptr %1924, align 4, !tbaa !205
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1920, float noundef %1925)
  %1926 = load i8, ptr %150, align 1, !tbaa !109, !range !116, !noundef !117
  %1927 = trunc i8 %1926 to i1
  br i1 %1927, label %1928, label %1961

1928:                                             ; preds = %1919
  %1929 = load ptr, ptr %152, align 8, !tbaa !5
  %1930 = getelementptr inbounds %struct.ImPlotAxis, ptr %1929, i32 0, i32 8
  %1931 = load ptr, ptr %1930, align 8, !tbaa !206
  %1932 = icmp ne ptr %1931, null
  br i1 %1932, label %1933, label %1961

1933:                                             ; preds = %1928
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #14
  %1934 = load ptr, ptr %152, align 8, !tbaa !5
  %1935 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1934)
  store double %1935, ptr %153, align 8, !tbaa !175
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #14
  %1936 = load ptr, ptr %152, align 8, !tbaa !5
  %1937 = getelementptr inbounds %struct.ImPlotAxis, ptr %1936, i32 0, i32 8
  %1938 = load ptr, ptr %1937, align 8, !tbaa !206
  store ptr %1938, ptr %154, align 8, !tbaa !5
  %1939 = load ptr, ptr %154, align 8, !tbaa !5
  %1940 = getelementptr inbounds %struct.ImPlotAxis, ptr %1939, i32 0, i32 44
  %1941 = load i8, ptr %1940, align 2, !tbaa !204, !range !116, !noundef !117
  %1942 = trunc i8 %1941 to i1
  br i1 %1942, label %1943, label %1956

1943:                                             ; preds = %1933
  %1944 = load ptr, ptr %154, align 8, !tbaa !5
  %1945 = load ptr, ptr %1, align 8, !tbaa !5
  %1946 = getelementptr inbounds %struct.ImPlotContext, ptr %1945, i32 0, i32 12
  %1947 = getelementptr inbounds %struct.ImPlotStyle, ptr %1946, i32 0, i32 24
  %1948 = getelementptr inbounds %struct.ImVec2, ptr %1947, i32 0, i32 1
  %1949 = load float, ptr %1948, align 4, !tbaa !207
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1944, float noundef %1949)
  %1950 = load ptr, ptr %154, align 8, !tbaa !5
  %1951 = getelementptr inbounds %struct.ImPlotAxis, ptr %1950, i32 0, i32 44
  store i8 0, ptr %1951, align 2, !tbaa !204
  %1952 = load double, ptr %153, align 8, !tbaa !175
  %1953 = load ptr, ptr %154, align 8, !tbaa !5
  %1954 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1953)
  %1955 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1952, double noundef %1954)
  store double %1955, ptr %153, align 8, !tbaa !175
  br label %1956

1956:                                             ; preds = %1943, %1933
  %1957 = load ptr, ptr %152, align 8, !tbaa !5
  %1958 = load double, ptr %153, align 8, !tbaa !175
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1957, double noundef %1958)
  %1959 = load ptr, ptr %154, align 8, !tbaa !5
  %1960 = load double, ptr %153, align 8, !tbaa !175
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1959, double noundef %1960)
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #14
  br label %1961

1961:                                             ; preds = %1956, %1928, %1919
  br label %1962

1962:                                             ; preds = %1961, %1911
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #14
  br label %1963

1963:                                             ; preds = %1962
  %1964 = load i32, ptr %151, align 4, !tbaa !118
  %1965 = add nsw i32 %1964, 1
  store i32 %1965, ptr %151, align 4, !tbaa !118
  br label %1907, !llvm.loop !208

1966:                                             ; preds = %1910
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #14
  store i32 0, ptr %155, align 4, !tbaa !118
  br label %1967

1967:                                             ; preds = %2023, %1966
  %1968 = load i32, ptr %155, align 4, !tbaa !118
  %1969 = icmp slt i32 %1968, 3
  br i1 %1969, label %1971, label %1970

1970:                                             ; preds = %1967
  store i32 47, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #14
  br label %2026

1971:                                             ; preds = %1967
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #14
  %1972 = load ptr, ptr %3, align 8, !tbaa !5
  %1973 = load i32, ptr %155, align 4, !tbaa !118
  %1974 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1972, i32 noundef %1973)
  store ptr %1974, ptr %156, align 8, !tbaa !5
  %1975 = load ptr, ptr %156, align 8, !tbaa !5
  %1976 = getelementptr inbounds %struct.ImPlotAxis, ptr %1975, i32 0, i32 44
  %1977 = load i8, ptr %1976, align 2, !tbaa !204, !range !116, !noundef !117
  %1978 = trunc i8 %1977 to i1
  br i1 %1978, label %1979, label %2022

1979:                                             ; preds = %1971
  %1980 = load ptr, ptr %156, align 8, !tbaa !5
  %1981 = load ptr, ptr %1, align 8, !tbaa !5
  %1982 = getelementptr inbounds %struct.ImPlotContext, ptr %1981, i32 0, i32 12
  %1983 = getelementptr inbounds %struct.ImPlotStyle, ptr %1982, i32 0, i32 24
  %1984 = getelementptr inbounds %struct.ImVec2, ptr %1983, i32 0, i32 1
  %1985 = load float, ptr %1984, align 4, !tbaa !207
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1980, float noundef %1985)
  %1986 = load i8, ptr %150, align 1, !tbaa !109, !range !116, !noundef !117
  %1987 = trunc i8 %1986 to i1
  br i1 %1987, label %1988, label %2021

1988:                                             ; preds = %1979
  %1989 = load ptr, ptr %156, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.ImPlotAxis, ptr %1989, i32 0, i32 8
  %1991 = load ptr, ptr %1990, align 8, !tbaa !206
  %1992 = icmp ne ptr %1991, null
  br i1 %1992, label %1993, label %2021

1993:                                             ; preds = %1988
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #14
  %1994 = load ptr, ptr %156, align 8, !tbaa !5
  %1995 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1994)
  store double %1995, ptr %157, align 8, !tbaa !175
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #14
  %1996 = load ptr, ptr %156, align 8, !tbaa !5
  %1997 = getelementptr inbounds %struct.ImPlotAxis, ptr %1996, i32 0, i32 8
  %1998 = load ptr, ptr %1997, align 8, !tbaa !206
  store ptr %1998, ptr %158, align 8, !tbaa !5
  %1999 = load ptr, ptr %158, align 8, !tbaa !5
  %2000 = getelementptr inbounds %struct.ImPlotAxis, ptr %1999, i32 0, i32 44
  %2001 = load i8, ptr %2000, align 2, !tbaa !204, !range !116, !noundef !117
  %2002 = trunc i8 %2001 to i1
  br i1 %2002, label %2003, label %2016

2003:                                             ; preds = %1993
  %2004 = load ptr, ptr %158, align 8, !tbaa !5
  %2005 = load ptr, ptr %1, align 8, !tbaa !5
  %2006 = getelementptr inbounds %struct.ImPlotContext, ptr %2005, i32 0, i32 12
  %2007 = getelementptr inbounds %struct.ImPlotStyle, ptr %2006, i32 0, i32 24
  %2008 = getelementptr inbounds %struct.ImVec2, ptr %2007, i32 0, i32 0
  %2009 = load float, ptr %2008, align 4, !tbaa !205
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %2004, float noundef %2009)
  %2010 = load ptr, ptr %158, align 8, !tbaa !5
  %2011 = getelementptr inbounds %struct.ImPlotAxis, ptr %2010, i32 0, i32 44
  store i8 0, ptr %2011, align 2, !tbaa !204
  %2012 = load ptr, ptr %158, align 8, !tbaa !5
  %2013 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %2012)
  %2014 = load double, ptr %157, align 8, !tbaa !175
  %2015 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %2013, double noundef %2014)
  store double %2015, ptr %157, align 8, !tbaa !175
  br label %2016

2016:                                             ; preds = %2003, %1993
  %2017 = load ptr, ptr %158, align 8, !tbaa !5
  %2018 = load double, ptr %157, align 8, !tbaa !175
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %2017, double noundef %2018)
  %2019 = load ptr, ptr %156, align 8, !tbaa !5
  %2020 = load double, ptr %157, align 8, !tbaa !175
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %2019, double noundef %2020)
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #14
  br label %2021

2021:                                             ; preds = %2016, %1988, %1979
  br label %2022

2022:                                             ; preds = %2021, %1971
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #14
  br label %2023

2023:                                             ; preds = %2022
  %2024 = load i32, ptr %155, align 4, !tbaa !118
  %2025 = add nsw i32 %2024, 1
  store i32 %2025, ptr %155, align 4, !tbaa !118
  br label %1967, !llvm.loop !209

2026:                                             ; preds = %1970
  %2027 = load ptr, ptr %3, align 8, !tbaa !5
  %2028 = getelementptr inbounds %struct.ImPlotPlot, ptr %2027, i32 0, i32 21
  store i8 0, ptr %2028, align 1, !tbaa !203
  br label %2029

2029:                                             ; preds = %2026, %1896
  %2030 = load ptr, ptr %3, align 8, !tbaa !5
  %2031 = getelementptr inbounds %struct.ImPlotPlot, ptr %2030, i32 0, i32 0
  %2032 = load i32, ptr %2031, align 8, !tbaa !210
  call void @_ZN5ImGui14PushOverrideIDEj(i32 noundef %2032)
  call void @llvm.lifetime.start.p0(i64 1, ptr %159) #14
  %2033 = load ptr, ptr %1, align 8, !tbaa !5
  %2034 = getelementptr inbounds %struct.ImPlotContext, ptr %2033, i32 0, i32 26
  %2035 = load i8, ptr %2034, align 8, !tbaa !192, !range !116, !noundef !117
  %2036 = trunc i8 %2035 to i1
  br i1 %2036, label %2037, label %2050

2037:                                             ; preds = %2029
  %2038 = load ptr, ptr %3, align 8, !tbaa !5
  %2039 = getelementptr inbounds %struct.ImPlotPlot, ptr %2038, i32 0, i32 1
  %2040 = load i32, ptr %2039, align 4, !tbaa !169
  %2041 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %2040, i32 noundef 16)
  br i1 %2041, label %2050, label %2042

2042:                                             ; preds = %2037
  %2043 = load ptr, ptr %3, align 8, !tbaa !5
  %2044 = getelementptr inbounds %struct.ImPlotPlot, ptr %2043, i32 0, i32 8
  %2045 = getelementptr inbounds %struct.ImPlotItemGroup, ptr %2044, i32 0, i32 2
  %2046 = getelementptr inbounds %struct.ImPlotLegend, ptr %2045, i32 0, i32 7
  %2047 = load i8, ptr %2046, align 8, !tbaa !172, !range !116, !noundef !117
  %2048 = trunc i8 %2047 to i1
  %2049 = xor i1 %2048, true
  br label %2050

2050:                                             ; preds = %2042, %2037, %2029
  %2051 = phi i1 [ false, %2037 ], [ false, %2029 ], [ %2049, %2042 ]
  %2052 = zext i1 %2051 to i8
  store i8 %2052, ptr %159, align 1, !tbaa !109
  %2053 = load i8, ptr %159, align 1, !tbaa !109, !range !116, !noundef !117
  %2054 = trunc i8 %2053 to i1
  br i1 %2054, label %2055, label %2061

2055:                                             ; preds = %2050
  %2056 = load ptr, ptr %3, align 8, !tbaa !5
  %2057 = getelementptr inbounds %struct.ImPlotPlot, ptr %2056, i32 0, i32 22
  %2058 = load i8, ptr %2057, align 8, !tbaa !170, !range !116, !noundef !117
  %2059 = trunc i8 %2058 to i1
  br i1 %2059, label %2060, label %2061

2060:                                             ; preds = %2055
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef @.str.154, i32 noundef 0)
  br label %2061

2061:                                             ; preds = %2060, %2055, %2050
  %2062 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef @.str.154, i32 noundef 0)
  br i1 %2062, label %2063, label %2065

2063:                                             ; preds = %2061
  %2064 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN6ImPlot19ShowPlotContextMenuER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533) %2064)
  call void @_ZN5ImGui8EndPopupEv()
  br label %2065

2065:                                             ; preds = %2063, %2061
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #14
  store i32 0, ptr %160, align 4, !tbaa !118
  br label %2066

2066:                                             ; preds = %2115, %2065
  %2067 = load i32, ptr %160, align 4, !tbaa !118
  %2068 = icmp slt i32 %2067, 3
  br i1 %2068, label %2070, label %2069

2069:                                             ; preds = %2066
  store i32 50, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #14
  br label %2118

2070:                                             ; preds = %2066
  %2071 = load i32, ptr %160, align 4, !tbaa !118
  call void @_ZN5ImGui6PushIDEi(i32 noundef %2071)
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #14
  %2072 = load ptr, ptr %3, align 8, !tbaa !5
  %2073 = load i32, ptr %160, align 4, !tbaa !118
  %2074 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %2072, i32 noundef %2073)
  store ptr %2074, ptr %161, align 8, !tbaa !5
  %2075 = load i8, ptr %159, align 1, !tbaa !109, !range !116, !noundef !117
  %2076 = trunc i8 %2075 to i1
  br i1 %2076, label %2077, label %2086

2077:                                             ; preds = %2070
  %2078 = load ptr, ptr %161, align 8, !tbaa !5
  %2079 = getelementptr inbounds %struct.ImPlotAxis, ptr %2078, i32 0, i32 48
  %2080 = load i8, ptr %2079, align 2, !tbaa !211, !range !116, !noundef !117
  %2081 = trunc i8 %2080 to i1
  br i1 %2081, label %2082, label %2086

2082:                                             ; preds = %2077
  %2083 = load ptr, ptr %161, align 8, !tbaa !5
  %2084 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %2083)
  br i1 %2084, label %2085, label %2086

2085:                                             ; preds = %2082
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef @.str.155, i32 noundef 0)
  br label %2086

2086:                                             ; preds = %2085, %2082, %2077, %2070
  %2087 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef @.str.155, i32 noundef 0)
  br i1 %2087, label %2088, label %2114

2088:                                             ; preds = %2086
  %2089 = load ptr, ptr %161, align 8, !tbaa !5
  %2090 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %2089)
  br i1 %2090, label %2091, label %2095

2091:                                             ; preds = %2088
  %2092 = load ptr, ptr %3, align 8, !tbaa !5
  %2093 = load ptr, ptr %161, align 8, !tbaa !5
  %2094 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %2092, ptr noundef nonnull align 8 dereferenceable(372) %2093)
  br label %2100

2095:                                             ; preds = %2088
  %2096 = load i32, ptr %160, align 4, !tbaa !118
  %2097 = icmp eq i32 %2096, 0
  %2098 = zext i1 %2097 to i64
  %2099 = select i1 %2097, ptr @.str.120, ptr @.str.121
  br label %2100

2100:                                             ; preds = %2095, %2091
  %2101 = phi ptr [ %2094, %2091 ], [ %2099, %2095 ]
  %2102 = load i32, ptr %160, align 4, !tbaa !118
  %2103 = add nsw i32 %2102, 1
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %2101, i32 noundef %2103)
  call void @_ZN5ImGui9SeparatorEv()
  %2104 = load ptr, ptr %161, align 8, !tbaa !5
  %2105 = load i8, ptr %150, align 1, !tbaa !109, !range !116, !noundef !117
  %2106 = trunc i8 %2105 to i1
  br i1 %2106, label %2107, label %2111

2107:                                             ; preds = %2100
  %2108 = load ptr, ptr %161, align 8, !tbaa !5
  %2109 = getelementptr inbounds %struct.ImPlotAxis, ptr %2108, i32 0, i32 8
  %2110 = load ptr, ptr %2109, align 8, !tbaa !206
  br label %2112

2111:                                             ; preds = %2100
  br label %2112

2112:                                             ; preds = %2111, %2107
  %2113 = phi ptr [ %2110, %2107 ], [ null, %2111 ]
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %2104, ptr noundef %2113, i1 noundef zeroext true)
  call void @_ZN5ImGui8EndPopupEv()
  br label %2114

2114:                                             ; preds = %2112, %2086
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #14
  br label %2115

2115:                                             ; preds = %2114
  %2116 = load i32, ptr %160, align 4, !tbaa !118
  %2117 = add nsw i32 %2116, 1
  store i32 %2117, ptr %160, align 4, !tbaa !118
  br label %2066, !llvm.loop !212

2118:                                             ; preds = %2069
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #14
  store i32 0, ptr %162, align 4, !tbaa !118
  br label %2119

2119:                                             ; preds = %2168, %2118
  %2120 = load i32, ptr %162, align 4, !tbaa !118
  %2121 = icmp slt i32 %2120, 3
  br i1 %2121, label %2123, label %2122

2122:                                             ; preds = %2119
  store i32 53, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #14
  br label %2171

2123:                                             ; preds = %2119
  %2124 = load i32, ptr %162, align 4, !tbaa !118
  call void @_ZN5ImGui6PushIDEi(i32 noundef %2124)
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #14
  %2125 = load ptr, ptr %3, align 8, !tbaa !5
  %2126 = load i32, ptr %162, align 4, !tbaa !118
  %2127 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %2125, i32 noundef %2126)
  store ptr %2127, ptr %163, align 8, !tbaa !5
  %2128 = load i8, ptr %159, align 1, !tbaa !109, !range !116, !noundef !117
  %2129 = trunc i8 %2128 to i1
  br i1 %2129, label %2130, label %2139

2130:                                             ; preds = %2123
  %2131 = load ptr, ptr %163, align 8, !tbaa !5
  %2132 = getelementptr inbounds %struct.ImPlotAxis, ptr %2131, i32 0, i32 48
  %2133 = load i8, ptr %2132, align 2, !tbaa !211, !range !116, !noundef !117
  %2134 = trunc i8 %2133 to i1
  br i1 %2134, label %2135, label %2139

2135:                                             ; preds = %2130
  %2136 = load ptr, ptr %163, align 8, !tbaa !5
  %2137 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %2136)
  br i1 %2137, label %2138, label %2139

2138:                                             ; preds = %2135
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef @.str.156, i32 noundef 0)
  br label %2139

2139:                                             ; preds = %2138, %2135, %2130, %2123
  %2140 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef @.str.156, i32 noundef 0)
  br i1 %2140, label %2141, label %2167

2141:                                             ; preds = %2139
  %2142 = load ptr, ptr %163, align 8, !tbaa !5
  %2143 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %2142)
  br i1 %2143, label %2144, label %2148

2144:                                             ; preds = %2141
  %2145 = load ptr, ptr %3, align 8, !tbaa !5
  %2146 = load ptr, ptr %163, align 8, !tbaa !5
  %2147 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %2145, ptr noundef nonnull align 8 dereferenceable(372) %2146)
  br label %2153

2148:                                             ; preds = %2141
  %2149 = load i32, ptr %162, align 4, !tbaa !118
  %2150 = icmp eq i32 %2149, 0
  %2151 = zext i1 %2150 to i64
  %2152 = select i1 %2150, ptr @.str.122, ptr @.str.123
  br label %2153

2153:                                             ; preds = %2148, %2144
  %2154 = phi ptr [ %2147, %2144 ], [ %2152, %2148 ]
  %2155 = load i32, ptr %162, align 4, !tbaa !118
  %2156 = add nsw i32 %2155, 1
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %2154, i32 noundef %2156)
  call void @_ZN5ImGui9SeparatorEv()
  %2157 = load ptr, ptr %163, align 8, !tbaa !5
  %2158 = load i8, ptr %150, align 1, !tbaa !109, !range !116, !noundef !117
  %2159 = trunc i8 %2158 to i1
  br i1 %2159, label %2160, label %2164

2160:                                             ; preds = %2153
  %2161 = load ptr, ptr %163, align 8, !tbaa !5
  %2162 = getelementptr inbounds %struct.ImPlotAxis, ptr %2161, i32 0, i32 8
  %2163 = load ptr, ptr %2162, align 8, !tbaa !206
  br label %2165

2164:                                             ; preds = %2153
  br label %2165

2165:                                             ; preds = %2164, %2160
  %2166 = phi ptr [ %2163, %2160 ], [ null, %2164 ]
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %2157, ptr noundef %2166, i1 noundef zeroext false)
  call void @_ZN5ImGui8EndPopupEv()
  br label %2167

2167:                                             ; preds = %2165, %2139
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #14
  br label %2168

2168:                                             ; preds = %2167
  %2169 = load i32, ptr %162, align 4, !tbaa !118
  %2170 = add nsw i32 %2169, 1
  store i32 %2170, ptr %162, align 4, !tbaa !118
  br label %2119, !llvm.loop !213

2171:                                             ; preds = %2122
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #14
  store i32 0, ptr %164, align 4, !tbaa !118
  br label %2172

2172:                                             ; preds = %2182, %2171
  %2173 = load i32, ptr %164, align 4, !tbaa !118
  %2174 = icmp slt i32 %2173, 6
  br i1 %2174, label %2176, label %2175

2175:                                             ; preds = %2172
  store i32 56, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #14
  br label %2185

2176:                                             ; preds = %2172
  %2177 = load ptr, ptr %3, align 8, !tbaa !5
  %2178 = getelementptr inbounds %struct.ImPlotPlot, ptr %2177, i32 0, i32 6
  %2179 = load i32, ptr %164, align 4, !tbaa !118
  %2180 = sext i32 %2179 to i64
  %2181 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %2178, i64 0, i64 %2180
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %2181)
  br label %2182

2182:                                             ; preds = %2176
  %2183 = load i32, ptr %164, align 4, !tbaa !118
  %2184 = add nsw i32 %2183, 1
  store i32 %2184, ptr %164, align 4, !tbaa !118
  br label %2172, !llvm.loop !214

2185:                                             ; preds = %2175
  %2186 = load ptr, ptr %1, align 8, !tbaa !5
  %2187 = getelementptr inbounds %struct.ImPlotContext, ptr %2186, i32 0, i32 4
  %2188 = load ptr, ptr %2187, align 8, !tbaa !215
  %2189 = load ptr, ptr %3, align 8, !tbaa !5
  %2190 = getelementptr inbounds %struct.ImPlotPlot, ptr %2189, i32 0, i32 8
  %2191 = icmp eq ptr %2188, %2190
  br i1 %2191, label %2192, label %2195

2192:                                             ; preds = %2185
  %2193 = load ptr, ptr %1, align 8, !tbaa !5
  %2194 = getelementptr inbounds %struct.ImPlotContext, ptr %2193, i32 0, i32 4
  store ptr null, ptr %2194, align 8, !tbaa !215
  br label %2195

2195:                                             ; preds = %2192, %2185
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #14
  store i32 0, ptr %165, align 4, !tbaa !118
  br label %2196

2196:                                             ; preds = %2209, %2195
  %2197 = load i32, ptr %165, align 4, !tbaa !118
  %2198 = load ptr, ptr %3, align 8, !tbaa !5
  %2199 = getelementptr inbounds %struct.ImPlotPlot, ptr %2198, i32 0, i32 8
  %2200 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %2199)
  %2201 = icmp slt i32 %2197, %2200
  br i1 %2201, label %2203, label %2202

2202:                                             ; preds = %2196
  store i32 59, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #14
  br label %2212

2203:                                             ; preds = %2196
  %2204 = load ptr, ptr %3, align 8, !tbaa !5
  %2205 = getelementptr inbounds %struct.ImPlotPlot, ptr %2204, i32 0, i32 8
  %2206 = load i32, ptr %165, align 4, !tbaa !118
  %2207 = call noundef ptr @_ZN15ImPlotItemGroup14GetItemByIndexEi(ptr noundef nonnull align 8 dereferenceable(124) %2205, i32 noundef %2206)
  %2208 = getelementptr inbounds %struct.ImPlotItem, ptr %2207, i32 0, i32 6
  store i8 0, ptr %2208, align 2, !tbaa !216
  br label %2209

2209:                                             ; preds = %2203
  %2210 = load i32, ptr %165, align 4, !tbaa !118
  %2211 = add nsw i32 %2210, 1
  store i32 %2211, ptr %165, align 4, !tbaa !118
  br label %2196, !llvm.loop !217

2212:                                             ; preds = %2202
  %2213 = load ptr, ptr %3, align 8, !tbaa !5
  %2214 = getelementptr inbounds %struct.ImPlotPlot, ptr %2213, i32 0, i32 19
  store i8 1, ptr %2214, align 1, !tbaa !218
  call void @_ZN5ImGui5PopIDEv()
  %2215 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  call void @_ZN6ImPlot19ResetCtxForNextPlotEP13ImPlotContext(ptr noundef %2215)
  %2216 = load ptr, ptr %1, align 8, !tbaa !5
  %2217 = getelementptr inbounds %struct.ImPlotContext, ptr %2216, i32 0, i32 3
  %2218 = load ptr, ptr %2217, align 8, !tbaa !219
  %2219 = icmp ne ptr %2218, null
  br i1 %2219, label %2220, label %2221

2220:                                             ; preds = %2212
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN6ImPlot15SubplotNextCellEv()
  br label %2221

2221:                                             ; preds = %2220, %2212
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %150) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %2) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %1) #14
  ret void

2222:                                             ; preds = %1890, %1484, %1347, %1180, %1124, %735, %684, %541, %490
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN6ImPlotL9SetupLockEv() #10

declare void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) #6

declare void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef) #6

declare void @_ZN5ImGui11PopClipRectEv() #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot16PushPlotClipRectEf(float noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN26ImPlotAnnotationCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36), i32 noundef) #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(29) ptr @_ZN8ImVectorI16ImPlotAnnotationEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #8 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN6ImPlotL19RenderSelectionRectER10ImDrawListRK6ImVec2S4_RK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(16)) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8ImVectorIcE6shrinkEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #8 align 2

declare void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK15ImGuiTextBuffer5emptyEv(ptr noundef nonnull align 8 dereferenceable(16)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot15PopPlotClipRectEv() #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124)) #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN15ImPlotItemGroup14GetItemByIndexEi(ptr noundef nonnull align 8 dereferenceable(124), i32 noundef) #7 align 2

declare noundef zeroext i1 @_ZN5ImGui15IsWindowHoveredEi(i32 noundef) #6

declare void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef, float noundef) #6

declare void @_ZN5ImGui9OpenPopupEPKci(ptr noundef, i32 noundef) #6

declare noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef, i32 noundef) #6

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

declare void @_ZN5ImGui8EndPopupEv() #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI9ImPlotTagEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN19ImPlotTagCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36), i32 noundef) #7 align 2

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

declare void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372), float noundef) #10 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot15SubplotNextCellEv() #7

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "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 nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { 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 #11 = { inlinehint mustprogress nounwind 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 #12 = { mustprogress nounwind 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 #13 = { noreturn nounwind }
attributes #14 = { 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, !6, i64 80}
!10 = !{!"_ZTS13ImPlotContext", !11, i64 0, !16, i64 40, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !18, i64 120, !24, i64 176, !26, i64 216, !28, i64 256, !29, i64 260, !30, i64 776, !31, i64 792, !32, i64 808, !34, i64 976, !36, i64 992, !38, i64 1048, !38, i64 1064, !34, i64 1080, !13, i64 1096, !13, i64 1100, !39, i64 1104, !40, i64 1336, !41, i64 1464, !28, i64 1512, !20, i64 1520, !6, i64 1536, !42, i64 1544, !6, i64 1584, !6, i64 1592}
!11 = !{!"_ZTS6ImPoolI10ImPlotPlotE", !12, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!12 = !{!"_ZTS8ImVectorI10ImPlotPlotE", !13, i64 0, !13, i64 4, !6, i64 8}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS12ImGuiStorage", !15, i64 0}
!15 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !13, i64 0, !13, i64 4, !6, i64 8}
!16 = !{!"_ZTS6ImPoolI13ImPlotSubplotE", !17, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!17 = !{!"_ZTS8ImVectorI13ImPlotSubplotE", !13, i64 0, !13, i64 4, !6, i64 8}
!18 = !{!"_ZTS12ImPlotTicker", !19, i64 0, !20, i64 16, !22, i64 32, !22, i64 40, !13, i64 48}
!19 = !{!"_ZTS8ImVectorI10ImPlotTickE", !13, i64 0, !13, i64 4, !6, i64 8}
!20 = !{!"_ZTS15ImGuiTextBuffer", !21, i64 0}
!21 = !{!"_ZTS8ImVectorIcE", !13, i64 0, !13, i64 4, !6, i64 8}
!22 = !{!"_ZTS6ImVec2", !23, i64 0, !23, i64 4}
!23 = !{!"float", !7, i64 0}
!24 = !{!"_ZTS26ImPlotAnnotationCollection", !25, i64 0, !20, i64 16, !13, i64 32}
!25 = !{!"_ZTS8ImVectorI16ImPlotAnnotationE", !13, i64 0, !13, i64 4, !6, i64 8}
!26 = !{!"_ZTS19ImPlotTagCollection", !27, i64 0, !20, i64 16, !13, i64 32}
!27 = !{!"_ZTS8ImVectorI9ImPlotTagE", !13, i64 0, !13, i64 4, !6, i64 8}
!28 = !{!"bool", !7, i64 0}
!29 = !{!"_ZTS11ImPlotStyle", !23, i64 0, !13, i64 4, !23, i64 8, !23, i64 12, !23, i64 16, !23, i64 20, !23, i64 24, !23, i64 28, !23, i64 32, !23, i64 36, !23, i64 40, !22, i64 44, !22, i64 52, !22, i64 60, !22, i64 68, !22, i64 76, !22, i64 84, !22, i64 92, !22, i64 100, !22, i64 108, !22, i64 116, !22, i64 124, !22, i64 132, !22, i64 140, !22, i64 148, !22, i64 156, !22, i64 164, !7, i64 172, !13, i64 508, !28, i64 512, !28, i64 513, !28, i64 514}
!30 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !13, i64 0, !13, i64 4, !6, i64 8}
!31 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !13, i64 0, !13, i64 4, !6, i64 8}
!32 = !{!"_ZTS18ImPlotColormapData", !33, i64 0, !34, i64 16, !34, i64 32, !33, i64 48, !34, i64 64, !34, i64 80, !20, i64 96, !34, i64 112, !35, i64 128, !14, i64 144, !13, i64 160}
!33 = !{!"_ZTS8ImVectorIjE", !13, i64 0, !13, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorIiE", !13, i64 0, !13, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorIbE", !13, i64 0, !13, i64 4, !6, i64 8}
!36 = !{!"_ZTS2tm", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !37, i64 40, !6, i64 48}
!37 = !{!"long", !7, i64 0}
!38 = !{!"_ZTS8ImVectorIdE", !13, i64 0, !13, i64 4, !6, i64 8}
!39 = !{!"_ZTS18ImPlotNextPlotData", !7, i64 0, !7, i64 24, !7, i64 120, !7, i64 126, !7, i64 136, !7, i64 184}
!40 = !{!"_ZTS18ImPlotNextItemData", !7, i64 0, !23, i64 80, !13, i64 84, !23, i64 88, !23, i64 92, !23, i64 96, !23, i64 100, !23, i64 104, !23, i64 108, !23, i64 112, !28, i64 116, !28, i64 117, !28, i64 118, !28, i64 119, !28, i64 120, !28, i64 121, !13, i64 124}
!41 = !{!"_ZTS14ImPlotInputMap", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !13, i64 40, !23, i64 44}
!42 = !{!"_ZTS6ImPoolI19ImPlotAlignmentDataE", !43, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!43 = !{!"_ZTS8ImVectorI19ImPlotAlignmentDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!44 = !{!45, !6, i64 7176}
!45 = !{!"_ZTS12ImGuiContext", !28, i64 0, !28, i64 1, !46, i64 8, !49, i64 5464, !6, i64 6512, !23, i64 6520, !23, i64 6524, !50, i64 6528, !52, i64 7040, !13, i64 7048, !13, i64 7052, !13, i64 7056, !28, i64 7060, !28, i64 7061, !28, i64 7062, !28, i64 7063, !28, i64 7064, !13, i64 7068, !6, i64 7072, !53, i64 7080, !53, i64 7096, !53, i64 7112, !54, i64 7128, !14, i64 7144, !13, i64 7160, !22, i64 7164, !6, i64 7176, !6, i64 7184, !6, i64 7192, !6, i64 7200, !6, i64 7208, !22, i64 7216, !23, i64 7224, !13, i64 7228, !13, i64 7232, !28, i64 7236, !28, i64 7237, !28, i64 7238, !28, i64 7239, !23, i64 7240, !23, i64 7244, !13, i64 7248, !13, i64 7252, !23, i64 7256, !28, i64 7260, !28, i64 7261, !28, i64 7262, !28, i64 7263, !28, i64 7264, !28, i64 7265, !28, i64 7266, !13, i64 7268, !13, i64 7272, !55, i64 7280, !22, i64 7288, !6, i64 7296, !56, i64 7304, !13, i64 7308, !13, i64 7312, !28, i64 7316, !28, i64 7317, !6, i64 7320, !13, i64 7328, !23, i64 7332, !13, i64 7336, !57, i64 7340, !58, i64 7360, !60, i64 7408, !30, i64 7520, !31, i64 7536, !61, i64 7552, !33, i64 7568, !34, i64 7584, !62, i64 7600, !63, i64 7616, !63, i64 7632, !64, i64 7648, !6, i64 7664, !13, i64 7672, !13, i64 7676, !13, i64 7680, !13, i64 7684, !13, i64 7688, !13, i64 7692, !13, i64 7696, !13, i64 7700, !13, i64 7704, !13, i64 7708, !13, i64 7712, !56, i64 7716, !59, i64 7720, !13, i64 7736, !65, i64 7740, !13, i64 7744, !28, i64 7748, !28, i64 7749, !28, i64 7750, !28, i64 7751, !28, i64 7752, !28, i64 7753, !28, i64 7754, !13, i64 7756, !59, i64 7760, !28, i64 7776, !13, i64 7780, !66, i64 7784, !13, i64 7788, !13, i64 7792, !13, i64 7796, !13, i64 7800, !67, i64 7808, !67, i64 7856, !67, i64 7904, !6, i64 7952, !13, i64 7960, !6, i64 7968, !6, i64 7976, !6, i64 7984, !23, i64 7992, !23, i64 7996, !28, i64 8000, !6, i64 8008, !6, i64 8016, !13, i64 8024, !13, i64 8028, !13, i64 8032, !13, i64 8036, !28, i64 8040, !23, i64 8044, !13, i64 8048, !28, i64 8052, !28, i64 8053, !28, i64 8054, !13, i64 8056, !13, i64 8060, !13, i64 8064, !68, i64 8072, !59, i64 8136, !13, i64 8152, !13, i64 8156, !23, i64 8160, !13, i64 8164, !13, i64 8168, !13, i64 8172, !13, i64 8176, !69, i64 8184, !7, i64 8200, !6, i64 8216, !13, i64 8224, !70, i64 8232, !72, i64 8272, !73, i64 8288, !74, i64 8304, !6, i64 8320, !75, i64 8328, !77, i64 8368, !78, i64 8384, !22, i64 8400, !79, i64 8408, !82, i64 12144, !13, i64 12256, !13, i64 12260, !23, i64 12264, !23, i64 12268, !7, i64 12272, !51, i64 12284, !84, i64 12300, !23, i64 12348, !28, i64 12352, !28, i64 12353, !23, i64 12356, !23, i64 12360, !23, i64 12364, !23, i64 12368, !13, i64 12372, !23, i64 12376, !21, i64 12384, !33, i64 12400, !22, i64 12416, !22, i64 12424, !7, i64 12432, !28, i64 12433, !23, i64 12436, !20, i64 12440, !85, i64 12456, !86, i64 12472, !87, i64 12488, !88, i64 12504, !13, i64 12520, !28, i64 12524, !89, i64 12528, !6, i64 12536, !20, i64 12544, !6, i64 12560, !6, i64 12568, !23, i64 12576, !28, i64 12580, !13, i64 12584, !13, i64 12588, !13, i64 12592, !28, i64 12596, !13, i64 12600, !90, i64 12604, !7, i64 12620, !13, i64 13100, !13, i64 13104, !23, i64 13108, !13, i64 13112, !13, i64 13116, !13, i64 13120, !7, i64 13124}
!46 = !{!"_ZTS7ImGuiIO", !13, i64 0, !13, i64 4, !22, i64 8, !23, i64 16, !23, i64 20, !6, i64 24, !6, i64 32, !23, i64 40, !23, i64 44, !23, i64 48, !7, i64 52, !23, i64 140, !23, i64 144, !6, i64 152, !6, i64 160, !23, i64 168, !28, i64 172, !6, i64 176, !22, i64 184, !28, i64 192, !28, i64 193, !28, i64 194, !28, i64 195, !28, i64 196, !28, i64 197, !23, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !22, i64 288, !7, i64 296, !23, i64 304, !23, i64 308, !28, i64 312, !28, i64 313, !28, i64 314, !28, i64 315, !7, i64 316, !7, i64 828, !28, i64 908, !28, i64 909, !28, i64 910, !28, i64 911, !28, i64 912, !28, i64 913, !28, i64 914, !23, i64 916, !13, i64 920, !13, i64 924, !13, i64 928, !13, i64 932, !13, i64 936, !22, i64 940, !13, i64 948, !13, i64 952, !22, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1076, !7, i64 1096, !7, i64 1116, !7, i64 1156, !7, i64 1176, !7, i64 3224, !7, i64 5272, !7, i64 5352, !23, i64 5432, !47, i64 5436, !48, i64 5440}
!47 = !{!"short", !7, i64 0}
!48 = !{!"_ZTS8ImVectorItE", !13, i64 0, !13, i64 4, !6, i64 8}
!49 = !{!"_ZTS10ImGuiStyle", !23, i64 0, !23, i64 4, !22, i64 8, !23, i64 16, !23, i64 20, !22, i64 24, !22, i64 32, !13, i64 40, !23, i64 44, !23, i64 48, !23, i64 52, !23, i64 56, !22, i64 60, !23, i64 68, !23, i64 72, !22, i64 76, !22, i64 84, !22, i64 92, !22, i64 100, !23, i64 108, !23, i64 112, !23, i64 116, !23, i64 120, !23, i64 124, !23, i64 128, !23, i64 132, !23, i64 136, !23, i64 140, !23, i64 144, !13, i64 148, !22, i64 152, !22, i64 160, !22, i64 168, !22, i64 176, !23, i64 184, !28, i64 188, !28, i64 189, !28, i64 190, !23, i64 192, !23, i64 196, !7, i64 200}
!50 = !{!"_ZTS20ImDrawListSharedData", !22, i64 0, !6, i64 8, !23, i64 16, !23, i64 20, !23, i64 24, !51, i64 28, !13, i64 44, !7, i64 48, !23, i64 432, !7, i64 436, !6, i64 504}
!51 = !{!"_ZTS6ImVec4", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12}
!52 = !{!"double", !7, i64 0}
!53 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !13, i64 0, !13, i64 4, !6, i64 8}
!54 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!55 = !{!"long long", !7, i64 0}
!56 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!57 = !{!"_ZTS17ImGuiNextItemData", !13, i64 0, !23, i64 4, !13, i64 8, !13, i64 12, !28, i64 16}
!58 = !{!"_ZTS17ImGuiLastItemData", !13, i64 0, !13, i64 4, !13, i64 8, !59, i64 12, !59, i64 28}
!59 = !{!"_ZTS6ImRect", !22, i64 0, !22, i64 8}
!60 = !{!"_ZTS19ImGuiNextWindowData", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !22, i64 16, !22, i64 24, !22, i64 32, !22, i64 40, !22, i64 48, !28, i64 56, !59, i64 60, !6, i64 80, !6, i64 88, !23, i64 96, !22, i64 100}
!61 = !{!"_ZTS8ImVectorIP6ImFontE", !13, i64 0, !13, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!63 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !13, i64 0, !13, i64 4, !6, i64 8}
!65 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!66 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!67 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !13, i64 8, !13, i64 12, !59, i64 16, !23, i64 32, !23, i64 36, !23, i64 40}
!68 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !7, i64 24, !28, i64 57, !28, i64 58}
!69 = !{!"_ZTS8ImVectorIhE", !13, i64 0, !13, i64 4, !6, i64 8}
!70 = !{!"_ZTS6ImPoolI10ImGuiTableE", !71, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!71 = !{!"_ZTS8ImVectorI10ImGuiTableE", !13, i64 0, !13, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorIfE", !13, i64 0, !13, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !13, i64 0, !13, i64 4, !6, i64 8}
!75 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !76, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!76 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !13, i64 0, !13, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !13, i64 0, !13, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!79 = !{!"_ZTS19ImGuiInputTextState", !13, i64 0, !13, i64 4, !13, i64 8, !48, i64 16, !21, i64 32, !21, i64 48, !28, i64 64, !13, i64 68, !23, i64 72, !80, i64 76, !23, i64 3704, !28, i64 3708, !28, i64 3709, !28, i64 3710, !13, i64 3712, !6, i64 3720, !6, i64 3728}
!80 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !13, i64 0, !13, i64 4, !13, i64 8, !7, i64 12, !13, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !23, i64 28, !81, i64 32}
!81 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !47, i64 3582, !47, i64 3584, !13, i64 3588, !13, i64 3592}
!82 = !{!"_ZTS6ImFont", !73, i64 0, !23, i64 16, !23, i64 20, !48, i64 24, !83, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !47, i64 80, !47, i64 82, !47, i64 84, !47, i64 86, !28, i64 88, !23, i64 92, !23, i64 96, !23, i64 100, !13, i64 104, !7, i64 108}
!83 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !13, i64 0, !13, i64 4, !6, i64 8}
!84 = !{!"_ZTS21ImGuiComboPreviewData", !59, i64 0, !22, i64 16, !22, i64 24, !22, i64 32, !23, i64 40, !13, i64 44}
!85 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !13, i64 0, !13, i64 4, !6, i64 8}
!86 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !21, i64 0}
!87 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !21, i64 0}
!88 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !13, i64 0, !13, i64 4, !6, i64 8}
!89 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!90 = !{!"_ZTS18ImGuiMetricsConfig", !28, i64 0, !28, i64 1, !28, i64 2, !28, i64 3, !28, i64 4, !13, i64 8, !13, i64 12}
!91 = !{!92, !6, i64 640}
!92 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !13, i64 8, !13, i64 12, !22, i64 16, !22, i64 24, !22, i64 32, !22, i64 40, !22, i64 48, !22, i64 56, !22, i64 64, !23, i64 72, !23, i64 76, !13, i64 80, !13, i64 84, !13, i64 88, !22, i64 92, !22, i64 100, !22, i64 108, !22, i64 116, !22, i64 124, !22, i64 132, !28, i64 140, !28, i64 141, !28, i64 142, !28, i64 143, !28, i64 144, !28, i64 145, !28, i64 146, !28, i64 147, !28, i64 148, !28, i64 149, !28, i64 150, !28, i64 151, !7, i64 152, !47, i64 154, !47, i64 156, !47, i64 158, !47, i64 160, !13, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !28, i64 171, !13, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !13, i64 180, !13, i64 181, !13, i64 182, !22, i64 184, !22, i64 192, !33, i64 200, !93, i64 216, !59, i64 464, !59, i64 480, !59, i64 496, !59, i64 512, !59, i64 528, !59, i64 544, !59, i64 560, !97, i64 576, !97, i64 580, !13, i64 584, !23, i64 588, !23, i64 592, !14, i64 600, !98, i64 616, !23, i64 632, !13, i64 636, !6, i64 640, !99, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !13, i64 928, !13, i64 932, !28, i64 936}
!93 = !{!"_ZTS19ImGuiWindowTempData", !22, i64 0, !22, i64 8, !22, i64 16, !22, i64 24, !22, i64 32, !22, i64 40, !22, i64 48, !23, i64 56, !23, i64 60, !94, i64 64, !94, i64 68, !94, i64 72, !65, i64 76, !47, i64 80, !47, i64 82, !13, i64 84, !28, i64 88, !28, i64 89, !28, i64 90, !22, i64 92, !95, i64 100, !13, i64 128, !13, i64 132, !53, i64 136, !6, i64 152, !6, i64 160, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !13, i64 184, !23, i64 188, !23, i64 192, !73, i64 200, !73, i64 216, !96, i64 232}
!94 = !{!"_ZTS6ImVec1", !23, i64 0}
!95 = !{!"_ZTS16ImGuiMenuColumns", !13, i64 0, !13, i64 4, !47, i64 8, !47, i64 10, !47, i64 12, !47, i64 14, !47, i64 16, !7, i64 18}
!96 = !{!"_ZTS15ImGuiStackSizes", !47, i64 0, !47, i64 2, !47, i64 4, !47, i64 6, !47, i64 8, !47, i64 10, !47, i64 12}
!97 = !{!"_ZTS8ImVec2ih", !47, i64 0, !47, i64 2}
!98 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !13, i64 0, !13, i64 4, !6, i64 8}
!99 = !{!"_ZTS10ImDrawList", !100, i64 0, !33, i64 16, !101, i64 32, !13, i64 48, !13, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !102, i64 88, !103, i64 104, !104, i64 120, !105, i64 136, !106, i64 168, !23, i64 192}
!100 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !13, i64 0, !13, i64 4, !6, i64 8}
!101 = !{!"_ZTS8ImVectorI10ImDrawVertE", !13, i64 0, !13, i64 4, !6, i64 8}
!102 = !{!"_ZTS8ImVectorI6ImVec4E", !13, i64 0, !13, i64 4, !6, i64 8}
!103 = !{!"_ZTS8ImVectorIPvE", !13, i64 0, !13, i64 4, !6, i64 8}
!104 = !{!"_ZTS8ImVectorI6ImVec2E", !13, i64 0, !13, i64 4, !6, i64 8}
!105 = !{!"_ZTS15ImDrawCmdHeader", !51, i64 0, !6, i64 16, !13, i64 24}
!106 = !{!"_ZTS18ImDrawListSplitter", !13, i64 0, !13, i64 4, !74, i64 8}
!107 = !{!10, !23, i64 296}
!108 = !{!51, !23, i64 12}
!109 = !{!28, !28, i64 0}
!110 = !{!111, !28, i64 2529}
!111 = !{!"_ZTS10ImPlotPlot", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !7, i64 24, !20, i64 2280, !112, i64 2296, !13, i64 2424, !13, i64 2428, !59, i64 2432, !59, i64 2448, !59, i64 2464, !59, i64 2480, !59, i64 2496, !22, i64 2512, !13, i64 2520, !28, i64 2524, !28, i64 2525, !28, i64 2526, !28, i64 2527, !28, i64 2528, !28, i64 2529, !28, i64 2530, !28, i64 2531, !28, i64 2532}
!112 = !{!"_ZTS15ImPlotItemGroup", !13, i64 0, !113, i64 8, !114, i64 80, !13, i64 120}
!113 = !{!"_ZTS12ImPlotLegend", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !34, i64 16, !20, i64 32, !59, i64 48, !28, i64 64, !28, i64 65, !28, i64 66}
!114 = !{!"_ZTS6ImPoolI10ImPlotItemE", !115, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!115 = !{!"_ZTS8ImVectorI10ImPlotItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!116 = !{i8 0, i8 2}
!117 = !{}
!118 = !{!13, !13, i64 0}
!119 = !{!120, !28, i64 364}
!120 = !{!"_ZTS10ImPlotAxis", !13, i64 0, !13, i64 4, !13, i64 8, !121, i64 16, !13, i64 32, !13, i64 36, !121, i64 40, !6, i64 56, !121, i64 64, !121, i64 80, !18, i64 96, !6, i64 152, !6, i64 160, !7, i64 168, !6, i64 184, !6, i64 192, !6, i64 200, !13, i64 208, !122, i64 216, !122, i64 232, !6, i64 248, !6, i64 256, !6, i64 264, !23, i64 272, !23, i64 276, !52, i64 280, !52, i64 288, !52, i64 296, !23, i64 304, !23, i64 308, !59, i64 312, !13, i64 328, !13, i64 332, !13, i64 336, !13, i64 340, !13, i64 344, !13, i64 348, !13, i64 352, !13, i64 356, !13, i64 360, !28, i64 364, !28, i64 365, !28, i64 366, !28, i64 367, !28, i64 368, !28, i64 369, !28, i64 370, !28, i64 371}
!121 = !{!"_ZTS11ImPlotRange", !52, i64 0, !52, i64 8}
!122 = !{!"_ZTS10ImPlotTime", !37, i64 0, !13, i64 8}
!123 = !{!120, !13, i64 332}
!124 = !{!120, !13, i64 336}
!125 = !{!10, !23, i64 336}
!126 = !{!10, !23, i64 344}
!127 = distinct !{!127, !128}
!128 = !{!"llvm.loop.mustprogress"}
!129 = !{!10, !23, i64 340}
!130 = !{!10, !23, i64 348}
!131 = distinct !{!131, !128}
!132 = !{!22, !23, i64 0}
!133 = !{!111, !23, i64 2452}
!134 = !{!23, !23, i64 0}
!135 = !{!136, !13, i64 28}
!136 = !{!"_ZTS10ImPlotTick", !52, i64 0, !23, i64 8, !22, i64 12, !13, i64 20, !28, i64 24, !28, i64 25, !13, i64 28, !13, i64 32}
!137 = !{!136, !23, i64 8}
!138 = !{!111, !23, i64 2464}
!139 = !{!111, !23, i64 2472}
!140 = !{!120, !23, i64 304}
!141 = !{!136, !28, i64 24}
!142 = !{!10, !23, i64 304}
!143 = !{!10, !23, i64 312}
!144 = !{!10, !23, i64 320}
!145 = !{!10, !23, i64 328}
!146 = !{!120, !13, i64 340}
!147 = distinct !{!147, !128}
!148 = distinct !{!148, !128}
!149 = !{!111, !23, i64 2468}
!150 = !{!111, !23, i64 2476}
!151 = !{!10, !23, i64 308}
!152 = !{!10, !23, i64 316}
!153 = !{!10, !23, i64 324}
!154 = !{!10, !23, i64 332}
!155 = distinct !{!155, !128}
!156 = distinct !{!156, !128}
!157 = !{!10, !13, i64 208}
!158 = !{i64 0, i64 4, !134, i64 4, i64 4, !134}
!159 = !{!160, !23, i64 8}
!160 = !{!"_ZTS16ImPlotAnnotation", !22, i64 0, !22, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !28, i64 28}
!161 = !{!160, !23, i64 12}
!162 = !{!22, !23, i64 4}
!163 = !{!160, !28, i64 28}
!164 = distinct !{!164, !128}
!165 = !{!160, !13, i64 16}
!166 = !{!160, !13, i64 20}
!167 = distinct !{!167, !128}
!168 = !{!111, !28, i64 2531}
!169 = !{!111, !13, i64 4}
!170 = !{!111, !28, i64 2528}
!171 = !{!111, !28, i64 2530}
!172 = !{!111, !28, i64 2368}
!173 = !{!111, !13, i64 16}
!174 = !{!46, !23, i64 288}
!175 = !{!52, !52, i64 0}
!176 = distinct !{!176, !128}
!177 = !{!46, !23, i64 292}
!178 = distinct !{!178, !128}
!179 = !{!111, !13, i64 12}
!180 = !{i64 0, i64 4, !134, i64 4, i64 4, !134, i64 8, i64 4, !134, i64 12, i64 4, !134}
!181 = !{!120, !13, i64 4}
!182 = !{!120, !28, i64 371}
!183 = !{!120, !13, i64 352}
!184 = distinct !{!184, !128}
!185 = distinct !{!185, !128}
!186 = !{!187, !28, i64 29}
!187 = !{!"_ZTS10ImPlotItem", !13, i64 0, !13, i64 4, !59, i64 8, !13, i64 24, !28, i64 28, !28, i64 29, !28, i64 30}
!188 = distinct !{!188, !128}
!189 = !{!113, !13, i64 0}
!190 = !{!113, !13, i64 8}
!191 = !{!113, !28, i64 64}
!192 = !{!10, !28, i64 1512}
!193 = !{!10, !13, i64 248}
!194 = !{!195, !13, i64 0}
!195 = !{!"_ZTS9ImPlotTag", !13, i64 0, !52, i64 8, !13, i64 16, !13, i64 20, !13, i64 24}
!196 = !{!195, !52, i64 8}
!197 = !{!120, !28, i64 365}
!198 = !{!10, !23, i64 360}
!199 = !{!195, !13, i64 16}
!200 = !{!10, !23, i64 364}
!201 = !{!195, !13, i64 20}
!202 = distinct !{!202, !128}
!203 = !{!111, !28, i64 2527}
!204 = !{!120, !28, i64 366}
!205 = !{!10, !23, i64 408}
!206 = !{!120, !6, i64 56}
!207 = !{!10, !23, i64 412}
!208 = distinct !{!208, !128}
!209 = distinct !{!209, !128}
!210 = !{!111, !13, i64 0}
!211 = !{!120, !28, i64 370}
!212 = distinct !{!212, !128}
!213 = distinct !{!213, !128}
!214 = distinct !{!214, !128}
!215 = !{!10, !6, i64 96}
!216 = !{!187, !28, i64 30}
!217 = distinct !{!217, !128}
!218 = !{!111, !28, i64 2525}
!219 = !{!10, !6, i64 88}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec4 = type { float, float, float, float }
%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.34, %struct.ImGuiTextBuffer, %struct.ImVec2, %struct.ImVec2, i32, [4 x i8] }>
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.20 }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImPlotTime = type <{ i64, i32, [4 x i8] }>

@GImPlot = external dso_local local_unnamed_addr global ptr, align 8
@GImGui = external local_unnamed_addr global ptr, align 8
@.str.78 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [114 x i8], align 1
@__PRETTY_FUNCTION__._ZN6ImPlot7EndPlotEv = external hidden unnamed_addr constant [23 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [11 x i8], align 1

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZN6ImPlotL17GetStyleColorVec4Ei(i32 noundef) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot15AddTextCenteredEP10ImDrawList6ImVec2jPKcS4_(ptr noundef, <2 x float>, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

declare <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #6

declare void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot19ResetCtxForNextPlotEP13ImPlotContext(ptr noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN6ImPlot14CalcLegendSizeER15ImPlotItemGroupRK6ImVec2S4_b(ptr noundef nonnull align 8 dereferenceable(124), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK15ImPlotItemGroup14GetLegendCountEv(ptr noundef nonnull align 8 dereferenceable(124)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot17ShowLegendEntriesER15ImPlotItemGroupRK6ImRectbRK6ImVec2S7_bR10ImDrawList(ptr noundef nonnull align 8 dereferenceable(124), ptr noundef nonnull align 4 dereferenceable(16), i1 noundef zeroext, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(196)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef) local_unnamed_addr #3

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

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

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

declare void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK11ImPlotRange8ContainsEd(ptr noundef nonnull align 8 dereferenceable(16), double noundef) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372), ptr noundef, i1 noundef zeroext) local_unnamed_addr #7

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

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

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

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #6

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot21ShowLegendContextMenuER12ImPlotLegendb(ptr noundef nonnull align 8 dereferenceable(67), i1 noundef zeroext) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot19ShowPlotContextMenuER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533)) local_unnamed_addr #7

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

; 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 #8 align 2

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

declare void @_ZN5ImGui6PushIDEi(i32 noundef) local_unnamed_addr #6

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

declare void @_ZN5ImGui5PopIDEv() local_unnamed_addr #6

; 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 #8 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372), double noundef, ptr noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #7

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

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

; 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 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef, i32 noundef) local_unnamed_addr #8

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

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

declare void @_ZN5ImGui14SetMouseCursorEi(i32 noundef) local_unnamed_addr #6

; 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 #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZN6ImPlotL17Formatter_DefaultEdPciPv(double noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #10

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 8 dereferenceable(52), ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef, float noundef, float noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 8 dereferenceable(52), ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef, float noundef, float noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #8 align 2

declare void @_ZN5ImGui14PushOverrideIDEj(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ImPlot7EndPlotEv() local_unnamed_addr #5 {
  %1 = alloca %struct.ImVec2, align 8
  %2 = alloca %struct.ImVec2, align 4
  %3 = alloca %struct.ImVec2, align 8
  %4 = alloca %struct.ImVec2, align 4
  %5 = alloca %struct.ImVec2, align 4
  %6 = alloca %struct.ImVec2, align 4
  %7 = alloca %struct.ImVec2, align 4
  %8 = alloca %struct.ImVec2, align 8
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca %struct.ImVec2, align 4
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImVec2, align 8
  %14 = alloca %struct.ImVec2, align 8
  %15 = alloca %struct.ImVec2, align 8
  %16 = alloca %struct.ImRect, align 4
  %17 = alloca %struct.ImVec2, align 8
  %18 = alloca [4 x %struct.ImVec2], align 16
  %19 = alloca %struct.ImVec2, align 8
  %20 = alloca %struct.ImVec2, align 8
  %21 = alloca %struct.ImVec2, align 8
  %22 = alloca %struct.ImVec2, align 8
  %23 = alloca %struct.ImVec4, align 8
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca [32 x i8], align 16
  %33 = alloca %struct.ImVec2, align 8
  %34 = alloca %struct.ImVec2, align 8
  %35 = alloca %struct.ImVec2, align 8
  %36 = alloca %struct.ImRect, align 4
  %37 = alloca %struct.ImRect, align 4
  %38 = alloca %struct.ImRect, align 4
  %39 = alloca %struct.ImRect, align 4
  %40 = alloca %struct.ImRect, align 4
  %41 = alloca %struct.ImVec2, align 8
  %42 = alloca %struct.ImVec2, align 8
  %43 = alloca %struct.ImRect, align 4
  %44 = alloca %struct.ImVec2, align 8
  %45 = alloca %struct.ImRect, align 4
  %46 = alloca %struct.ImVec2, align 8
  %47 = alloca %struct.ImVec2, align 8
  %48 = alloca %struct.ImVec2, align 8
  %49 = alloca %struct.ImVec2, align 8
  %50 = alloca %struct.ImVec2, align 8
  %51 = alloca %struct.ImVec2, align 4
  %52 = alloca %struct.ImVec2, align 8
  %53 = alloca %struct.ImVec2, align 4
  %54 = alloca %struct.ImVec2, align 8
  %55 = alloca %struct.ImVec2, align 8
  %56 = alloca %struct.ImVec2, align 4
  %57 = alloca %struct.ImVec2, align 4
  %58 = alloca %struct.ImVec2, align 8
  %59 = alloca %struct.ImVec2, align 8
  %60 = alloca %struct.ImVec2, align 8
  %61 = alloca %struct.ImVec2, align 4
  %62 = alloca %struct.ImVec2, align 8
  %63 = alloca %struct.ImVec2, align 4
  %64 = alloca %struct.ImVec2, align 8
  %65 = alloca %struct.ImVec2, align 4
  %66 = alloca %struct.ImVec2, align 8
  %67 = alloca %struct.ImVec2, align 4
  %68 = alloca %struct.ImVec2, align 8
  %69 = alloca %struct.ImVec2, align 8
  %70 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %.not = icmp eq ptr %70, null
  br i1 %.not, label %71, label %72

71:                                               ; preds = %0
  tail call void @__assert_fail(ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.78, i32 noundef 2728, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6ImPlot7EndPlotEv) #13
  unreachable

72:                                               ; preds = %0
  %73 = getelementptr inbounds i8, ptr %70, i64 80
  %74 = load ptr, ptr %73, align 8, !tbaa !9
  %.not580 = icmp eq ptr %74, null
  br i1 %.not580, label %75, label %76

75:                                               ; preds = %72
  tail call void @__assert_fail(ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.78, i32 noundef 2729, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6ImPlot7EndPlotEv) #13
  unreachable

76:                                               ; preds = %72
  tail call void @_ZN6ImPlotL9SetupLockEv()
  %77 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %78 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %79 = getelementptr inbounds i8, ptr %77, i64 80
  %80 = load ptr, ptr %79, align 8, !tbaa !9
  %81 = getelementptr inbounds i8, ptr %78, i64 7176
  %82 = load ptr, ptr %81, align 8, !tbaa !44
  %83 = getelementptr inbounds i8, ptr %82, i64 640
  %84 = load ptr, ptr %83, align 8, !tbaa !91
  %85 = tail call noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv()
  %86 = getelementptr inbounds i8, ptr %77, i64 296
  %87 = load float, ptr %86, align 4, !tbaa !107
  %88 = fcmp ogt float %87, 0.000000e+00
  br i1 %88, label %89, label %93

89:                                               ; preds = %76
  %90 = getelementptr inbounds i8, ptr %77, i64 556
  %91 = load float, ptr %90, align 4, !tbaa !108
  %92 = fcmp ogt float %91, 0.000000e+00
  br label %93

93:                                               ; preds = %89, %76
  %94 = phi i1 [ false, %76 ], [ %92, %89 ]
  %95 = getelementptr inbounds i8, ptr %80, i64 2529
  %96 = load i8, ptr %95, align 1, !tbaa !109, !range !115, !noundef !116
  %97 = trunc nuw i8 %96 to i1
  br i1 %97, label %101, label %98

98:                                               ; preds = %93
  %99 = getelementptr inbounds i8, ptr %80, i64 24
  %100 = tail call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef nonnull %99, i32 noundef 3)
  %.pre = load i8, ptr %95, align 1, !tbaa !109, !range !115
  br label %101

101:                                              ; preds = %98, %93
  %102 = phi i8 [ %96, %93 ], [ %.pre, %98 ]
  %103 = phi i1 [ true, %93 ], [ %100, %98 ]
  %104 = trunc nuw i8 %102 to i1
  br i1 %104, label %108, label %105

105:                                              ; preds = %101
  %106 = getelementptr inbounds i8, ptr %80, i64 1152
  %107 = tail call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef nonnull %106, i32 noundef 3)
  br label %108

108:                                              ; preds = %105, %101
  %109 = phi i1 [ true, %101 ], [ %107, %105 ]
  %110 = getelementptr inbounds i8, ptr %80, i64 2432
  %111 = getelementptr inbounds i8, ptr %80, i64 2440
  tail call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %110, ptr noundef nonnull align 4 dereferenceable(8) %111, i1 noundef zeroext true)
  %112 = getelementptr inbounds i8, ptr %80, i64 2464
  %113 = getelementptr inbounds i8, ptr %77, i64 336
  %114 = getelementptr inbounds i8, ptr %77, i64 344
  %115 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  %116 = getelementptr inbounds i8, ptr %115, i64 364
  %117 = load i8, ptr %116, align 4, !tbaa !117, !range !115, !noundef !116
  %118 = trunc nuw i8 %117 to i1
  br i1 %118, label %119, label %131

119:                                              ; preds = %108
  %120 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %115)
  br i1 %120, label %121, label %131

121:                                              ; preds = %119
  %122 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %115)
  br i1 %122, label %123, label %131

123:                                              ; preds = %121
  %124 = getelementptr inbounds i8, ptr %115, i64 96
  %125 = getelementptr inbounds i8, ptr %115, i64 332
  %126 = load i32, ptr %125, align 4, !tbaa !121
  %127 = getelementptr inbounds i8, ptr %115, i64 336
  %128 = load i32, ptr %127, align 8, !tbaa !122
  %129 = load float, ptr %113, align 4, !tbaa !123
  %130 = load float, ptr %114, align 4, !tbaa !124
  tail call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 8 dereferenceable(52) %124, ptr noundef nonnull align 4 dereferenceable(16) %112, i32 noundef %126, i32 noundef %128, float noundef %129, float noundef %130)
  br label %131

131:                                              ; preds = %123, %121, %119, %108
  %132 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 1)
  %133 = getelementptr inbounds i8, ptr %132, i64 364
  %134 = load i8, ptr %133, align 4, !tbaa !117, !range !115, !noundef !116
  %135 = trunc nuw i8 %134 to i1
  br i1 %135, label %136, label %148

136:                                              ; preds = %131
  %137 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %132)
  br i1 %137, label %138, label %148

138:                                              ; preds = %136
  %139 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %132)
  br i1 %139, label %140, label %148

140:                                              ; preds = %138
  %141 = getelementptr inbounds i8, ptr %132, i64 96
  %142 = getelementptr inbounds i8, ptr %132, i64 332
  %143 = load i32, ptr %142, align 4, !tbaa !121
  %144 = getelementptr inbounds i8, ptr %132, i64 336
  %145 = load i32, ptr %144, align 8, !tbaa !122
  %146 = load float, ptr %113, align 4, !tbaa !123
  %147 = load float, ptr %114, align 4, !tbaa !124
  tail call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 8 dereferenceable(52) %141, ptr noundef nonnull align 4 dereferenceable(16) %112, i32 noundef %143, i32 noundef %145, float noundef %146, float noundef %147)
  br label %148

148:                                              ; preds = %140, %138, %136, %131
  %149 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 2)
  %150 = getelementptr inbounds i8, ptr %149, i64 364
  %151 = load i8, ptr %150, align 4, !tbaa !117, !range !115, !noundef !116
  %152 = trunc nuw i8 %151 to i1
  br i1 %152, label %153, label %.preheader620

153:                                              ; preds = %148
  %154 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %149)
  br i1 %154, label %155, label %.preheader620

155:                                              ; preds = %153
  %156 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %149)
  br i1 %156, label %157, label %.preheader620

157:                                              ; preds = %155
  %158 = getelementptr inbounds i8, ptr %149, i64 96
  %159 = getelementptr inbounds i8, ptr %149, i64 332
  %160 = load i32, ptr %159, align 4, !tbaa !121
  %161 = getelementptr inbounds i8, ptr %149, i64 336
  %162 = load i32, ptr %161, align 8, !tbaa !122
  %163 = load float, ptr %113, align 4, !tbaa !123
  %164 = load float, ptr %114, align 4, !tbaa !124
  tail call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 8 dereferenceable(52) %158, ptr noundef nonnull align 4 dereferenceable(16) %112, i32 noundef %160, i32 noundef %162, float noundef %163, float noundef %164)
  br label %.preheader620

.preheader620:                                    ; preds = %157, %155, %153, %148
  %165 = getelementptr inbounds i8, ptr %77, i64 340
  %166 = getelementptr inbounds i8, ptr %77, i64 348
  %167 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  %168 = getelementptr inbounds i8, ptr %167, i64 364
  %169 = load i8, ptr %168, align 4, !tbaa !117, !range !115, !noundef !116
  %170 = trunc nuw i8 %169 to i1
  br i1 %170, label %171, label %183

171:                                              ; preds = %.preheader620
  %172 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %167)
  br i1 %172, label %173, label %183

173:                                              ; preds = %171
  %174 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %167)
  br i1 %174, label %175, label %183

175:                                              ; preds = %173
  %176 = getelementptr inbounds i8, ptr %167, i64 96
  %177 = getelementptr inbounds i8, ptr %167, i64 332
  %178 = load i32, ptr %177, align 4, !tbaa !121
  %179 = getelementptr inbounds i8, ptr %167, i64 336
  %180 = load i32, ptr %179, align 8, !tbaa !122
  %181 = load float, ptr %165, align 4, !tbaa !125
  %182 = load float, ptr %166, align 4, !tbaa !126
  tail call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 8 dereferenceable(52) %176, ptr noundef nonnull align 4 dereferenceable(16) %112, i32 noundef %178, i32 noundef %180, float noundef %181, float noundef %182)
  br label %183

183:                                              ; preds = %175, %173, %171, %.preheader620
  %184 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 1)
  %185 = getelementptr inbounds i8, ptr %184, i64 364
  %186 = load i8, ptr %185, align 4, !tbaa !117, !range !115, !noundef !116
  %187 = trunc nuw i8 %186 to i1
  br i1 %187, label %188, label %200

188:                                              ; preds = %183
  %189 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %184)
  br i1 %189, label %190, label %200

190:                                              ; preds = %188
  %191 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %184)
  br i1 %191, label %192, label %200

192:                                              ; preds = %190
  %193 = getelementptr inbounds i8, ptr %184, i64 96
  %194 = getelementptr inbounds i8, ptr %184, i64 332
  %195 = load i32, ptr %194, align 4, !tbaa !121
  %196 = getelementptr inbounds i8, ptr %184, i64 336
  %197 = load i32, ptr %196, align 8, !tbaa !122
  %198 = load float, ptr %165, align 4, !tbaa !125
  %199 = load float, ptr %166, align 4, !tbaa !126
  tail call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 8 dereferenceable(52) %193, ptr noundef nonnull align 4 dereferenceable(16) %112, i32 noundef %195, i32 noundef %197, float noundef %198, float noundef %199)
  br label %200

200:                                              ; preds = %192, %190, %188, %183
  %201 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 2)
  %202 = getelementptr inbounds i8, ptr %201, i64 364
  %203 = load i8, ptr %202, align 4, !tbaa !117, !range !115, !noundef !116
  %204 = trunc nuw i8 %203 to i1
  br i1 %204, label %205, label %217

205:                                              ; preds = %200
  %206 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %201)
  br i1 %206, label %207, label %217

207:                                              ; preds = %205
  %208 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %201)
  br i1 %208, label %209, label %217

209:                                              ; preds = %207
  %210 = getelementptr inbounds i8, ptr %201, i64 96
  %211 = getelementptr inbounds i8, ptr %201, i64 332
  %212 = load i32, ptr %211, align 4, !tbaa !121
  %213 = getelementptr inbounds i8, ptr %201, i64 336
  %214 = load i32, ptr %213, align 8, !tbaa !122
  %215 = load float, ptr %165, align 4, !tbaa !125
  %216 = load float, ptr %166, align 4, !tbaa !126
  tail call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 8 dereferenceable(52) %210, ptr noundef nonnull align 4 dereferenceable(16) %112, i32 noundef %212, i32 noundef %214, float noundef %215, float noundef %216)
  br label %217

217:                                              ; preds = %209, %207, %205, %200
  %218 = tail call noundef zeroext i1 @_ZNK10ImPlotPlot8HasTitleEv(ptr noundef nonnull align 8 dereferenceable(2533) %80)
  br i1 %218, label %219, label %226

219:                                              ; preds = %217
  %220 = tail call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 11)
  %221 = tail call <2 x float> @_ZNK6ImRect9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16) %112)
  %.sroa.0319.0.vec.extract = extractelement <2 x float> %221, i64 0
  %222 = getelementptr inbounds i8, ptr %80, i64 2452
  %223 = load float, ptr %222, align 4, !tbaa !127
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %1, float noundef %.sroa.0319.0.vec.extract, float noundef %223)
  %224 = call noundef ptr @_ZNK10ImPlotPlot8GetTitleEv(ptr noundef nonnull align 8 dereferenceable(2533) %80)
  %225 = load <2 x float>, ptr %1, align 8
  call void @_ZN6ImPlot15AddTextCenteredEP10ImDrawList6ImVec2jPKcS4_(ptr noundef %84, <2 x float> %225, i32 noundef %220, ptr noundef %224, ptr noundef null)
  br label %226

226:                                              ; preds = %219, %217
  %227 = getelementptr inbounds i8, ptr %80, i64 2472
  %228 = getelementptr inbounds i8, ptr %77, i64 320
  %229 = getelementptr inbounds i8, ptr %77, i64 312
  %230 = getelementptr inbounds i8, ptr %77, i64 328
  %.not592 = xor i1 %94, true
  br label %236

.preheader618:                                    ; preds = %318
  %231 = getelementptr inbounds i8, ptr %80, i64 2468
  %232 = getelementptr inbounds i8, ptr %80, i64 2476
  %233 = getelementptr inbounds i8, ptr %77, i64 324
  %234 = getelementptr inbounds i8, ptr %77, i64 316
  %235 = getelementptr inbounds i8, ptr %77, i64 332
  br label %331

236:                                              ; preds = %226, %318
  %.0546626 = phi i32 [ 0, %226 ], [ %.1, %318 ]
  %.0547625 = phi i32 [ 0, %226 ], [ %.1548, %318 ]
  %.0550624 = phi i32 [ 0, %226 ], [ %319, %318 ]
  %237 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef %.0550624)
  %238 = getelementptr inbounds i8, ptr %237, i64 364
  %239 = load i8, ptr %238, align 4, !tbaa !117, !range !115, !noundef !116
  %240 = trunc nuw i8 %239 to i1
  br i1 %240, label %241, label %318

241:                                              ; preds = %236
  %242 = getelementptr inbounds i8, ptr %237, i64 96
  %243 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %237)
  %244 = icmp sgt i32 %.0547625, 0
  %or.cond = select i1 %243, i1 %244, i1 false
  br i1 %or.cond, label %248, label %245

245:                                              ; preds = %241
  %246 = icmp sgt i32 %.0546626, 0
  %not.588 = xor i1 %243, true
  %247 = select i1 %not.588, i1 %246, i1 false
  br label %248

248:                                              ; preds = %241, %245
  %249 = phi i1 [ %247, %245 ], [ true, %241 ]
  %.fr = freeze i1 %249
  %250 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasTickMarksEv(ptr noundef nonnull align 8 dereferenceable(372) %237)
  br i1 %250, label %.preheader619, label %312

.preheader619:                                    ; preds = %248
  %251 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %242)
  %252 = icmp sgt i32 %251, 0
  br i1 %252, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader619
  %253 = getelementptr inbounds i8, ptr %237, i64 304
  %254 = getelementptr inbounds i8, ptr %237, i64 340
  br i1 %.fr, label %.lr.ph.split.us, label %.lr.ph.split

.lr.ph.split.us:                                  ; preds = %.lr.ph, %273
  %.0553623.us = phi i32 [ %274, %273 ], [ 0, %.lr.ph ]
  %255 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %242, i32 noundef %.0553623.us)
  %256 = getelementptr inbounds i8, ptr %255, i64 28
  %257 = load i32, ptr %256, align 4, !tbaa !128
  %.not589.us = icmp eq i32 %257, 0
  br i1 %.not589.us, label %258, label %273

258:                                              ; preds = %.lr.ph.split.us
  %259 = getelementptr inbounds i8, ptr %255, i64 8
  %260 = load float, ptr %259, align 8, !tbaa !130
  %261 = load float, ptr %112, align 8, !tbaa !131
  %262 = fcmp olt float %260, %261
  br i1 %262, label %273, label %263

263:                                              ; preds = %258
  %264 = load float, ptr %227, align 8, !tbaa !132
  %265 = fcmp ogt float %260, %264
  br i1 %265, label %273, label %.thread604.us

.thread604.us:                                    ; preds = %263
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #14
  %266 = load float, ptr %253, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef %260, float noundef %266)
  %267 = load float, ptr %229, align 4, !tbaa !134
  %268 = load float, ptr %230, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #14
  %269 = fneg float %267
  %270 = select i1 %243, float %267, float %269
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 0.000000e+00, float noundef %270)
  %271 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2, ptr noundef nonnull align 4 dereferenceable(8) %4)
  store <2 x float> %271, ptr %3, align 8
  %272 = load i32, ptr %254, align 4, !tbaa !135
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %2, ptr noundef nonnull align 4 dereferenceable(8) %3, i32 noundef %272, float noundef %268)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #14
  br label %273

273:                                              ; preds = %.thread604.us, %263, %258, %.lr.ph.split.us
  %274 = add nuw nsw i32 %.0553623.us, 1
  %275 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %242)
  %276 = icmp slt i32 %274, %275
  br i1 %276, label %.lr.ph.split.us, label %._crit_edge, !llvm.loop !136

._crit_edge:                                      ; preds = %299, %273, %.preheader619
  %brmerge = select i1 %.fr, i1 true, i1 %.not592
  br i1 %brmerge, label %303, label %312

.lr.ph.split:                                     ; preds = %.lr.ph, %299
  %.0553623 = phi i32 [ %300, %299 ], [ 0, %.lr.ph ]
  %277 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %242, i32 noundef %.0553623)
  %278 = getelementptr inbounds i8, ptr %277, i64 28
  %279 = load i32, ptr %278, align 4, !tbaa !128
  %.not589 = icmp eq i32 %279, 0
  br i1 %.not589, label %280, label %299

280:                                              ; preds = %.lr.ph.split
  %281 = getelementptr inbounds i8, ptr %277, i64 8
  %282 = load float, ptr %281, align 8, !tbaa !130
  %283 = load float, ptr %112, align 8, !tbaa !131
  %284 = fcmp olt float %282, %283
  br i1 %284, label %299, label %285

285:                                              ; preds = %280
  %286 = load float, ptr %227, align 8, !tbaa !132
  %287 = fcmp ogt float %282, %286
  br i1 %287, label %299, label %288

288:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #14
  %289 = load float, ptr %253, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef %282, float noundef %289)
  %290 = getelementptr inbounds i8, ptr %277, i64 24
  %291 = load i8, ptr %290, align 8, !tbaa !138, !range !115, !noundef !116
  %292 = trunc nuw i8 %291 to i1
  %.in613.v = select i1 %292, i64 304, i64 312
  %.in613 = getelementptr inbounds i8, ptr %77, i64 %.in613.v
  %293 = load float, ptr %.in613, align 4, !tbaa !134
  %. = select i1 %292, ptr %228, ptr %230
  %294 = load float, ptr %., align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #14
  %295 = fneg float %293
  %296 = select i1 %243, float %293, float %295
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 0.000000e+00, float noundef %296)
  %297 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2, ptr noundef nonnull align 4 dereferenceable(8) %4)
  store <2 x float> %297, ptr %3, align 8
  %298 = load i32, ptr %254, align 4, !tbaa !135
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %2, ptr noundef nonnull align 4 dereferenceable(8) %3, i32 noundef %298, float noundef %294)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #14
  br label %299

299:                                              ; preds = %.lr.ph.split, %280, %285, %288
  %300 = add nuw nsw i32 %.0553623, 1
  %301 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %242)
  %302 = icmp slt i32 %300, %301
  br i1 %302, label %.lr.ph.split, label %._crit_edge, !llvm.loop !136

303:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #14
  %304 = load float, ptr %112, align 8, !tbaa !131
  %305 = getelementptr inbounds i8, ptr %237, i64 304
  %306 = load float, ptr %305, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef %304, float noundef %306)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #14
  %307 = load float, ptr %227, align 8, !tbaa !132
  %308 = load float, ptr %305, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef %307, float noundef %308)
  %309 = getelementptr inbounds i8, ptr %237, i64 340
  %310 = load i32, ptr %309, align 4, !tbaa !135
  %311 = load float, ptr %230, align 4, !tbaa !139
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %6, i32 noundef %310, float noundef %311)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #14
  br label %312

312:                                              ; preds = %303, %._crit_edge, %248
  %313 = xor i1 %243, true
  %314 = zext i1 %313 to i32
  %315 = add nsw i32 %.0546626, %314
  %316 = zext i1 %243 to i32
  %317 = add nsw i32 %.0547625, %316
  br label %318

318:                                              ; preds = %236, %312
  %.1548 = phi i32 [ %317, %312 ], [ %.0547625, %236 ]
  %.1 = phi i32 [ %315, %312 ], [ %.0546626, %236 ]
  %319 = add nuw nsw i32 %.0550624, 1
  %exitcond.not = icmp eq i32 %319, 3
  br i1 %exitcond.not, label %.preheader618, label %236, !llvm.loop !140

320:                                              ; preds = %413
  call void @_ZN5ImGui11PopClipRectEv()
  call void @_ZN6ImPlot16PushPlotClipRectEf(float noundef 0.000000e+00)
  %321 = getelementptr inbounds i8, ptr %77, i64 208
  %322 = load i32, ptr %321, align 8, !tbaa !141
  %323 = icmp sgt i32 %322, 0
  br i1 %323, label %.lr.ph639, label %._crit_edge640

.lr.ph639:                                        ; preds = %320
  %324 = getelementptr inbounds i8, ptr %77, i64 176
  %325 = getelementptr inbounds i8, ptr %77, i64 400
  %326 = getelementptr inbounds i8, ptr %15, i64 4
  %327 = getelementptr inbounds i8, ptr %18, i64 8
  %328 = getelementptr inbounds i8, ptr %18, i64 16
  %329 = getelementptr inbounds i8, ptr %18, i64 24
  %330 = getelementptr inbounds i8, ptr %16, i64 8
  br label %418

331:                                              ; preds = %.preheader618, %413
  %.0555633 = phi i32 [ 0, %.preheader618 ], [ %.1556, %413 ]
  %.0557632 = phi i32 [ 0, %.preheader618 ], [ %.1558, %413 ]
  %.0559631 = phi i32 [ 0, %.preheader618 ], [ %414, %413 ]
  %332 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef %.0559631)
  %333 = getelementptr inbounds i8, ptr %332, i64 364
  %334 = load i8, ptr %333, align 4, !tbaa !117, !range !115, !noundef !116
  %335 = trunc nuw i8 %334 to i1
  br i1 %335, label %336, label %413

336:                                              ; preds = %331
  %337 = getelementptr inbounds i8, ptr %332, i64 96
  %338 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %332)
  %339 = icmp sgt i32 %.0557632, 0
  %or.cond4 = select i1 %338, i1 %339, i1 false
  br i1 %or.cond4, label %343, label %340

340:                                              ; preds = %336
  %341 = icmp sgt i32 %.0555633, 0
  %not. = xor i1 %338, true
  %342 = select i1 %not., i1 %341, i1 false
  br label %343

343:                                              ; preds = %336, %340
  %344 = phi i1 [ %342, %340 ], [ true, %336 ]
  %.fr630 = freeze i1 %344
  %345 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasTickMarksEv(ptr noundef nonnull align 8 dereferenceable(372) %332)
  br i1 %345, label %.preheader617, label %407

.preheader617:                                    ; preds = %343
  %346 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %337)
  %347 = icmp sgt i32 %346, 0
  br i1 %347, label %.lr.ph628, label %._crit_edge629

.lr.ph628:                                        ; preds = %.preheader617
  %348 = getelementptr inbounds i8, ptr %332, i64 304
  %349 = getelementptr inbounds i8, ptr %332, i64 340
  br i1 %.fr630, label %.lr.ph628.split.us, label %.lr.ph628.split

.lr.ph628.split.us:                               ; preds = %.lr.ph628, %368
  %.0560627.us = phi i32 [ %369, %368 ], [ 0, %.lr.ph628 ]
  %350 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %337, i32 noundef %.0560627.us)
  %351 = getelementptr inbounds i8, ptr %350, i64 28
  %352 = load i32, ptr %351, align 4, !tbaa !128
  %.not586.us = icmp eq i32 %352, 0
  br i1 %.not586.us, label %353, label %368

353:                                              ; preds = %.lr.ph628.split.us
  %354 = getelementptr inbounds i8, ptr %350, i64 8
  %355 = load float, ptr %354, align 8, !tbaa !130
  %356 = load float, ptr %231, align 4, !tbaa !142
  %357 = fcmp olt float %355, %356
  br i1 %357, label %368, label %358

358:                                              ; preds = %353
  %359 = load float, ptr %232, align 4, !tbaa !143
  %360 = fcmp ogt float %355, %359
  br i1 %360, label %368, label %.thread607.us

.thread607.us:                                    ; preds = %358
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #14
  %361 = load float, ptr %348, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef %361, float noundef %355)
  %362 = load float, ptr %234, align 4, !tbaa !134
  %363 = load float, ptr %235, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %364 = fneg float %362
  %365 = select i1 %338, float %364, float %362
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %365, float noundef 0.000000e+00)
  %366 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %366, ptr %8, align 8
  %367 = load i32, ptr %349, align 4, !tbaa !135
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %8, i32 noundef %367, float noundef %363)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #14
  br label %368

368:                                              ; preds = %.thread607.us, %358, %353, %.lr.ph628.split.us
  %369 = add nuw nsw i32 %.0560627.us, 1
  %370 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %337)
  %371 = icmp slt i32 %369, %370
  br i1 %371, label %.lr.ph628.split.us, label %._crit_edge629, !llvm.loop !144

._crit_edge629:                                   ; preds = %394, %368, %.preheader617
  %brmerge594 = select i1 %.fr630, i1 true, i1 %.not592
  br i1 %brmerge594, label %398, label %407

.lr.ph628.split:                                  ; preds = %.lr.ph628, %394
  %.0560627 = phi i32 [ %395, %394 ], [ 0, %.lr.ph628 ]
  %372 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %337, i32 noundef %.0560627)
  %373 = getelementptr inbounds i8, ptr %372, i64 28
  %374 = load i32, ptr %373, align 4, !tbaa !128
  %.not586 = icmp eq i32 %374, 0
  br i1 %.not586, label %375, label %394

375:                                              ; preds = %.lr.ph628.split
  %376 = getelementptr inbounds i8, ptr %372, i64 8
  %377 = load float, ptr %376, align 8, !tbaa !130
  %378 = load float, ptr %231, align 4, !tbaa !142
  %379 = fcmp olt float %377, %378
  br i1 %379, label %394, label %380

380:                                              ; preds = %375
  %381 = load float, ptr %232, align 4, !tbaa !143
  %382 = fcmp ogt float %377, %381
  br i1 %382, label %394, label %383

383:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #14
  %384 = load float, ptr %348, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef %384, float noundef %377)
  %385 = getelementptr inbounds i8, ptr %372, i64 24
  %386 = load i8, ptr %385, align 8, !tbaa !138, !range !115, !noundef !116
  %387 = trunc nuw i8 %386 to i1
  %.in.v = select i1 %387, i64 308, i64 316
  %.in = getelementptr inbounds i8, ptr %77, i64 %.in.v
  %388 = load float, ptr %.in, align 4, !tbaa !134
  %.662 = select i1 %387, ptr %233, ptr %235
  %389 = load float, ptr %.662, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %390 = fneg float %388
  %391 = select i1 %338, float %390, float %388
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %391, float noundef 0.000000e+00)
  %392 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %392, ptr %8, align 8
  %393 = load i32, ptr %349, align 4, !tbaa !135
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %8, i32 noundef %393, float noundef %389)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #14
  br label %394

394:                                              ; preds = %.lr.ph628.split, %375, %380, %383
  %395 = add nuw nsw i32 %.0560627, 1
  %396 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %337)
  %397 = icmp slt i32 %395, %396
  br i1 %397, label %.lr.ph628.split, label %._crit_edge629, !llvm.loop !144

398:                                              ; preds = %._crit_edge629
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  %399 = getelementptr inbounds i8, ptr %332, i64 304
  %400 = load float, ptr %399, align 8, !tbaa !133
  %401 = load float, ptr %231, align 4, !tbaa !142
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %400, float noundef %401)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #14
  %402 = load float, ptr %399, align 8, !tbaa !133
  %403 = load float, ptr %232, align 4, !tbaa !143
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef %402, float noundef %403)
  %404 = getelementptr inbounds i8, ptr %332, i64 340
  %405 = load i32, ptr %404, align 4, !tbaa !135
  %406 = load float, ptr %235, align 4, !tbaa !145
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %11, i32 noundef %405, float noundef %406)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  br label %407

407:                                              ; preds = %398, %._crit_edge629, %343
  %408 = xor i1 %338, true
  %409 = zext i1 %408 to i32
  %410 = add nsw i32 %.0555633, %409
  %411 = zext i1 %338 to i32
  %412 = add nsw i32 %.0557632, %411
  br label %413

413:                                              ; preds = %331, %407
  %.1558 = phi i32 [ %412, %407 ], [ %.0557632, %331 ]
  %.1556 = phi i32 [ %410, %407 ], [ %.0555633, %331 ]
  %414 = add nuw nsw i32 %.0559631, 1
  %exitcond665.not = icmp eq i32 %414, 3
  br i1 %exitcond665.not, label %320, label %331, !llvm.loop !146

._crit_edge640:                                   ; preds = %494, %320
  %415 = getelementptr inbounds i8, ptr %80, i64 2531
  %416 = load i8, ptr %415, align 1, !tbaa !147, !range !115, !noundef !116
  %417 = trunc nuw i8 %416 to i1
  br i1 %417, label %503, label %512

418:                                              ; preds = %.lr.ph639, %494
  %.0561637 = phi i32 [ 0, %.lr.ph639 ], [ %500, %494 ]
  %419 = call noundef ptr @_ZN26ImPlotAnnotationCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36) %324, i32 noundef %.0561637)
  %420 = call noundef nonnull align 4 dereferenceable(29) ptr @_ZN8ImVectorI16ImPlotAnnotationEixEi(ptr noundef nonnull align 8 dereferenceable(16) %324, i32 noundef %.0561637)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #14
  %421 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %419, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %421, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #14
  %422 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %325, float noundef 2.000000e+00)
  store <2 x float> %422, ptr %14, align 8
  %423 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %12, ptr noundef nonnull align 4 dereferenceable(8) %14)
  store <2 x float> %423, ptr %13, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #14
  %424 = load i64, ptr %420, align 4
  store i64 %424, ptr %15, align 8
  %425 = getelementptr inbounds i8, ptr %420, i64 8
  %426 = load float, ptr %425, align 4, !tbaa !148
  %427 = fcmp oeq float %426, 0.000000e+00
  %428 = extractelement <2 x float> %423, i64 0
  %429 = trunc i64 %424 to i32
  %430 = bitcast i32 %429 to float
  %431 = extractelement <2 x float> %423, i64 1
  %432 = lshr i64 %424, 32
  %433 = trunc nuw i64 %432 to i32
  %434 = bitcast i32 %433 to float
  br i1 %427, label %435, label %438

435:                                              ; preds = %418
  %436 = fmul float %428, 5.000000e-01
  %437 = fsub float %430, %436
  store float %437, ptr %15, align 8, !tbaa !150
  br label %445

438:                                              ; preds = %418
  %439 = fcmp ogt float %426, 0.000000e+00
  br i1 %439, label %440, label %442

440:                                              ; preds = %438
  %441 = fadd float %426, %430
  store float %441, ptr %15, align 8, !tbaa !150
  br label %445

442:                                              ; preds = %438
  %443 = fsub float %428, %426
  %444 = fsub float %430, %443
  store float %444, ptr %15, align 8, !tbaa !150
  br label %445

445:                                              ; preds = %440, %442, %435
  %446 = getelementptr inbounds i8, ptr %420, i64 12
  %447 = load float, ptr %446, align 4, !tbaa !151
  %448 = fcmp oeq float %447, 0.000000e+00
  br i1 %448, label %449, label %452

449:                                              ; preds = %445
  %450 = fmul float %431, 5.000000e-01
  %451 = fsub float %434, %450
  br label %459

452:                                              ; preds = %445
  %453 = fcmp ogt float %447, 0.000000e+00
  br i1 %453, label %454, label %456

454:                                              ; preds = %452
  %455 = fadd float %447, %434
  br label %459

456:                                              ; preds = %452
  %457 = fsub float %431, %447
  %458 = fsub float %434, %457
  br label %459

459:                                              ; preds = %454, %456, %449
  %.sink = phi float [ %455, %454 ], [ %458, %456 ], [ %451, %449 ]
  store float %.sink, ptr %326, align 4, !tbaa !152
  %460 = getelementptr inbounds i8, ptr %420, i64 28
  %461 = load i8, ptr %460, align 4, !tbaa !153, !range !115, !noundef !116
  %462 = trunc nuw i8 %461 to i1
  br i1 %462, label %463, label %465

463:                                              ; preds = %459
  %.sroa.0218.0.copyload = load <2 x float>, ptr %15, align 8
  %464 = call <2 x float> @_ZN6ImPlotL13ClampLabelPosE6ImVec2RKS0_S2_S2_(<2 x float> %.sroa.0218.0.copyload, ptr noundef nonnull align 4 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(8) %112, ptr noundef nonnull align 4 dereferenceable(8) %227)
  store <2 x float> %464, ptr %15, align 8
  br label %465

465:                                              ; preds = %463, %459
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  %466 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(8) %13)
  store <2 x float> %466, ptr %17, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %16, ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  %467 = load float, ptr %425, align 4, !tbaa !148
  %468 = fcmp une float %467, 0.000000e+00
  %469 = load float, ptr %446, align 4
  %470 = fcmp une float %469, 0.000000e+00
  %or.cond596 = select i1 %468, i1 true, i1 %470
  br i1 %or.cond596, label %471, label %494

471:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #14
  %472 = call <2 x float> @_ZNK6ImRect5GetTLEv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  store <2 x float> %472, ptr %18, align 16
  %473 = call <2 x float> @_ZNK6ImRect5GetTREv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  store <2 x float> %473, ptr %327, align 8
  %474 = call <2 x float> @_ZNK6ImRect5GetBREv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  store <2 x float> %474, ptr %328, align 16
  %475 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %16)
  store <2 x float> %475, ptr %329, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  %476 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %420, ptr noundef nonnull align 4 dereferenceable(8) %18)
  store <2 x float> %476, ptr %19, align 8
  %477 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  %478 = fcmp olt float %477, 0x47EFFFFFE0000000
  %.1566 = select i1 %478, float %477, float 0x47EFFFFFE0000000
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  %479 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %420, ptr noundef nonnull align 4 dereferenceable(8) %327)
  store <2 x float> %479, ptr %19, align 8
  %480 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  %481 = fcmp olt float %480, %.1566
  %.1566.1 = select i1 %481, float %480, float %.1566
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  %482 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %420, ptr noundef nonnull align 4 dereferenceable(8) %328)
  store <2 x float> %482, ptr %19, align 8
  %483 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  %484 = fcmp olt float %483, %.1566.1
  %.1566.2 = select i1 %484, float %483, float %.1566.1
  %485 = zext i1 %481 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  %486 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %420, ptr noundef nonnull align 4 dereferenceable(8) %329)
  store <2 x float> %486, ptr %19, align 8
  %487 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  %488 = fcmp olt float %487, %.1566.2
  %489 = select i1 %484, i64 2, i64 %485
  %490 = select i1 %488, i64 3, i64 %489
  %491 = getelementptr inbounds [4 x %struct.ImVec2], ptr %18, i64 0, i64 %490
  %492 = getelementptr inbounds i8, ptr %420, i64 16
  %493 = load i32, ptr %492, align 4, !tbaa !154
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %420, ptr noundef nonnull align 4 dereferenceable(8) %491, i32 noundef %493, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #14
  br label %494

494:                                              ; preds = %465, %471
  %495 = getelementptr inbounds i8, ptr %420, i64 16
  %496 = load i32, ptr %495, align 4, !tbaa !154
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %16, ptr noundef nonnull align 4 dereferenceable(8) %330, i32 noundef %496, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #14
  %497 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(8) %325)
  store <2 x float> %497, ptr %20, align 8
  %498 = getelementptr inbounds i8, ptr %420, i64 20
  %499 = load i32, ptr %498, align 4, !tbaa !155
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %20, i32 noundef %499, ptr noundef %419, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #14
  %500 = add nuw nsw i32 %.0561637, 1
  %501 = load i32, ptr %321, align 8, !tbaa !141
  %502 = icmp slt i32 %500, %501
  br i1 %502, label %418, label %._crit_edge640, !llvm.loop !156

503:                                              ; preds = %._crit_edge640
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #14
  %504 = getelementptr inbounds i8, ptr %80, i64 2496
  %505 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %504, ptr noundef nonnull align 4 dereferenceable(8) %112)
  store <2 x float> %505, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #14
  %506 = getelementptr inbounds i8, ptr %80, i64 2504
  %507 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %506, ptr noundef nonnull align 4 dereferenceable(8) %112)
  store <2 x float> %507, ptr %22, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #14
  %508 = call { <2 x float>, <2 x float> } @_ZN6ImPlotL17GetStyleColorVec4Ei(i32 noundef 19)
  %509 = extractvalue { <2 x float>, <2 x float> } %508, 0
  store <2 x float> %509, ptr %23, align 8
  %510 = getelementptr inbounds i8, ptr %23, i64 8
  %511 = extractvalue { <2 x float>, <2 x float> } %508, 1
  store <2 x float> %511, ptr %510, align 8
  call void @_ZN6ImPlotL19RenderSelectionRectER10ImDrawListRK6ImVec2S4_RK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(8) %22, ptr noundef nonnull align 4 dereferenceable(16) %23)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #14
  br label %512

512:                                              ; preds = %503, %._crit_edge640
  %513 = getelementptr inbounds i8, ptr %80, i64 4
  %514 = load i32, ptr %513, align 4, !tbaa !157
  %515 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %514, i32 noundef 512)
  br i1 %515, label %516, label %539

516:                                              ; preds = %512
  %517 = getelementptr inbounds i8, ptr %80, i64 2528
  %518 = load i8, ptr %517, align 8, !tbaa !158, !range !115, !noundef !116
  %519 = trunc nuw i8 %518 to i1
  %.not597 = xor i1 %519, true
  %brmerge598 = or i1 %103, %.not597
  %brmerge599 = or i1 %109, %brmerge598
  br i1 %brmerge599, label %539, label %520

520:                                              ; preds = %516
  %521 = getelementptr inbounds i8, ptr %80, i64 2530
  %522 = load i8, ptr %521, align 2, !tbaa !159, !range !115, !noundef !116
  %523 = trunc nuw i8 %522 to i1
  br i1 %523, label %539, label %524

524:                                              ; preds = %520
  %525 = getelementptr inbounds i8, ptr %80, i64 2368
  %526 = load i8, ptr %525, align 8, !tbaa !160, !range !115, !noundef !116
  %527 = trunc nuw i8 %526 to i1
  br i1 %527, label %539, label %528

528:                                              ; preds = %524
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef -1)
  %529 = getelementptr inbounds i8, ptr %85, i64 288
  %.sroa.0.0.copyload = load float, ptr %529, align 8, !tbaa !134
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %85, i64 292
  %.sroa.9.0.copyload = load float, ptr %.sroa.9.0..sroa_idx, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #14
  %530 = load float, ptr %112, align 8, !tbaa !131
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef %530, float noundef %.sroa.9.0.copyload)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #14
  %531 = fadd float %.sroa.0.0.copyload, -5.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef %531, float noundef %.sroa.9.0.copyload)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #14
  %532 = fadd float %.sroa.0.0.copyload, 5.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef %532, float noundef %.sroa.9.0.copyload)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #14
  %533 = load float, ptr %227, align 8, !tbaa !132
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef %533, float noundef %.sroa.9.0.copyload)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #14
  %534 = load float, ptr %231, align 4, !tbaa !142
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %28, float noundef %.sroa.0.0.copyload, float noundef %534)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  %535 = fadd float %.sroa.9.0.copyload, -5.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef %.sroa.0.0.copyload, float noundef %535)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #14
  %536 = fadd float %.sroa.9.0.copyload, 5.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef %.sroa.0.0.copyload, float noundef %536)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  %537 = load float, ptr %232, align 4, !tbaa !143
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %31, float noundef %.sroa.0.0.copyload, float noundef %537)
  %538 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 20)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(8) %25, i32 noundef %538, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %27, i32 noundef %538, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %29, i32 noundef %538, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %31, i32 noundef %538, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #14
  br label %539

539:                                              ; preds = %516, %528, %524, %520, %512
  %540 = load i32, ptr %513, align 4, !tbaa !157
  %541 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %540, i32 noundef 4)
  br i1 %541, label %616, label %542

542:                                              ; preds = %539
  %543 = getelementptr inbounds i8, ptr %80, i64 2528
  %544 = load i8, ptr %543, align 8, !tbaa !158, !range !115, !noundef !116
  %545 = trunc nuw i8 %544 to i1
  br i1 %545, label %.peel.begin, label %546

546:                                              ; preds = %542
  %547 = getelementptr inbounds i8, ptr %80, i64 16
  %548 = load i32, ptr %547, align 8, !tbaa !161
  %549 = call noundef zeroext i1 @_ZL9ImHasFlagIi21ImPlotMouseTextFlags_EbT_T0_(i32 noundef %548, i32 noundef 4)
  br i1 %549, label %.peel.begin, label %616

.peel.begin:                                      ; preds = %546, %542
  %550 = getelementptr inbounds i8, ptr %80, i64 16
  %551 = load i32, ptr %550, align 8, !tbaa !161
  %552 = call noundef zeroext i1 @_ZL9ImHasFlagIi21ImPlotMouseTextFlags_EbT_T0_(i32 noundef %551, i32 noundef 1)
  %553 = load i32, ptr %550, align 8, !tbaa !161
  %554 = call noundef zeroext i1 @_ZL9ImHasFlagIi21ImPlotMouseTextFlags_EbT_T0_(i32 noundef %553, i32 noundef 2)
  %555 = getelementptr inbounds i8, ptr %77, i64 1520
  call void @_ZN8ImVectorIcE6shrinkEi(ptr noundef nonnull align 8 dereferenceable(16) %555, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #14
  %556 = select i1 %552, i32 1, i32 3
  %557 = getelementptr inbounds i8, ptr %85, i64 288
  %558 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  %559 = getelementptr inbounds i8, ptr %558, i64 364
  %560 = load i8, ptr %559, align 4, !tbaa !117, !range !115, !noundef !116
  %561 = trunc nuw i8 %560 to i1
  br i1 %561, label %._crit_edge684, label %567

._crit_edge684:                                   ; preds = %.peel.begin
  %.pre685 = load float, ptr %557, align 8, !tbaa !162
  %562 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %558, float noundef %.pre685)
  br i1 %554, label %564, label %563

563:                                              ; preds = %._crit_edge684
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %558, double noundef %562, ptr noundef nonnull %32, i32 noundef 32, i1 noundef zeroext true)
  br label %566

564:                                              ; preds = %._crit_edge684
  %565 = call noundef i32 @_ZN6ImPlotL17Formatter_DefaultEdPciPv(double noundef %562, ptr noundef nonnull %32, i32 noundef 32, ptr noundef nonnull @.str.133)
  br label %566

566:                                              ; preds = %564, %563
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull %32, ptr noundef null)
  br label %567

567:                                              ; preds = %566, %.peel.begin
  br i1 %552, label %.peel.begin671, label %.peel.next

.peel.begin671:                                   ; preds = %590, %567
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull @.str.152, ptr noundef null)
  %568 = getelementptr inbounds i8, ptr %85, i64 292
  %569 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  %570 = getelementptr inbounds i8, ptr %569, i64 364
  %571 = load i8, ptr %570, align 4, !tbaa !117, !range !115, !noundef !116
  %572 = trunc nuw i8 %571 to i1
  br i1 %572, label %._crit_edge688, label %578

._crit_edge688:                                   ; preds = %.peel.begin671
  %.pre689 = load float, ptr %568, align 4, !tbaa !163
  %573 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %569, float noundef %.pre689)
  br i1 %554, label %575, label %574

574:                                              ; preds = %._crit_edge688
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %569, double noundef %573, ptr noundef nonnull %32, i32 noundef 32, i1 noundef zeroext true)
  br label %577

575:                                              ; preds = %._crit_edge688
  %576 = call noundef i32 @_ZN6ImPlotL17Formatter_DefaultEdPciPv(double noundef %573, ptr noundef nonnull %32, i32 noundef 32, ptr noundef nonnull @.str.133)
  br label %577

577:                                              ; preds = %575, %574
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull %32, ptr noundef null)
  br label %578

578:                                              ; preds = %577, %.peel.begin671
  br i1 %552, label %.loopexit675, label %.peel.next672

.peel.next:                                       ; preds = %567, %590
  %.0568641 = phi i32 [ %591, %590 ], [ 1, %567 ]
  %579 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef %.0568641)
  %580 = getelementptr inbounds i8, ptr %579, i64 364
  %581 = load i8, ptr %580, align 4, !tbaa !117, !range !115, !noundef !116
  %582 = trunc nuw i8 %581 to i1
  br i1 %582, label %583, label %590

583:                                              ; preds = %.peel.next
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull @.str.150, ptr noundef null)
  %584 = load float, ptr %557, align 8, !tbaa !162
  %585 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %579, float noundef %584)
  br i1 %554, label %586, label %588

586:                                              ; preds = %583
  %587 = call noundef i32 @_ZN6ImPlotL17Formatter_DefaultEdPciPv(double noundef %585, ptr noundef nonnull %32, i32 noundef 32, ptr noundef nonnull @.str.133)
  br label %589

588:                                              ; preds = %583
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %579, double noundef %585, ptr noundef nonnull %32, i32 noundef 32, i1 noundef zeroext true)
  br label %589

589:                                              ; preds = %586, %588
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull %32, ptr noundef null)
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull @.str.151, ptr noundef null)
  br label %590

590:                                              ; preds = %589, %.peel.next
  %591 = add nuw nsw i32 %.0568641, 1
  %exitcond668.not = icmp eq i32 %591, %556
  br i1 %exitcond668.not, label %.peel.begin671, label %.peel.next, !llvm.loop !164

.loopexit675:                                     ; preds = %604, %578
  %592 = call noundef zeroext i1 @_ZNK15ImGuiTextBuffer5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %555)
  br i1 %592, label %615, label %606

.peel.next672:                                    ; preds = %578, %604
  %.0569642 = phi i32 [ %605, %604 ], [ 1, %578 ]
  %593 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef %.0569642)
  %594 = getelementptr inbounds i8, ptr %593, i64 364
  %595 = load i8, ptr %594, align 4, !tbaa !117, !range !115, !noundef !116
  %596 = trunc nuw i8 %595 to i1
  br i1 %596, label %597, label %604

597:                                              ; preds = %.peel.next672
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull @.str.150, ptr noundef null)
  %598 = load float, ptr %568, align 4, !tbaa !163
  %599 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %593, float noundef %598)
  br i1 %554, label %600, label %602

600:                                              ; preds = %597
  %601 = call noundef i32 @_ZN6ImPlotL17Formatter_DefaultEdPciPv(double noundef %599, ptr noundef nonnull %32, i32 noundef 32, ptr noundef nonnull @.str.133)
  br label %603

602:                                              ; preds = %597
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %593, double noundef %599, ptr noundef nonnull %32, i32 noundef 32, i1 noundef zeroext true)
  br label %603

603:                                              ; preds = %600, %602
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull %32, ptr noundef null)
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %555, ptr noundef nonnull @.str.151, ptr noundef null)
  br label %604

604:                                              ; preds = %603, %.peel.next672
  %605 = add nuw nsw i32 %.0569642, 1
  %exitcond670.not = icmp eq i32 %605, %556
  br i1 %exitcond670.not, label %.loopexit675, label %.peel.next672, !llvm.loop !166

606:                                              ; preds = %.loopexit675
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #14
  %607 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %555)
  %608 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %607, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %608, ptr %33, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  %609 = getelementptr inbounds i8, ptr %80, i64 12
  %610 = load i32, ptr %609, align 4, !tbaa !167
  %611 = getelementptr inbounds i8, ptr %77, i64 392
  %612 = call <2 x float> @_ZN6ImPlot14GetLocationPosERK6ImRectRK6ImVec2iS5_(ptr noundef nonnull align 4 dereferenceable(16) %112, ptr noundef nonnull align 4 dereferenceable(8) %33, i32 noundef %610, ptr noundef nonnull align 4 dereferenceable(8) %611)
  store <2 x float> %612, ptr %34, align 8
  %613 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 12)
  %614 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %555)
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %34, i32 noundef %613, ptr noundef %614, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #14
  br label %615

615:                                              ; preds = %606, %.loopexit675
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #14
  br label %616

616:                                              ; preds = %615, %546, %539
  call void @_ZN6ImPlot15PopPlotClipRectEv()
  %617 = load i8, ptr %95, align 1, !tbaa !109, !range !115, !noundef !116
  %618 = trunc nuw i8 %617 to i1
  br i1 %618, label %963, label %619

619:                                              ; preds = %616
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  %620 = call noundef nonnull align 8 dereferenceable(5456) ptr @_ZN5ImGui5GetIOEv()
  %621 = getelementptr inbounds i8, ptr %620, i64 288
  %622 = load i64, ptr %621, align 8
  store i64 %622, ptr %35, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %112, i64 16, i1 false), !tbaa.struct !168
  call void @_ZN6ImRect6ExpandEf(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef -1.000000e+01)
  %623 = getelementptr inbounds i8, ptr %35, i64 4
  %624 = getelementptr inbounds i8, ptr %37, i64 8
  %625 = getelementptr inbounds i8, ptr %38, i64 8
  %626 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  %627 = getelementptr inbounds i8, ptr %626, i64 4
  %628 = load i32, ptr %627, align 4, !tbaa !169
  %629 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %628, i32 noundef 64)
  br i1 %629, label %681, label %630

630:                                              ; preds = %619
  %631 = getelementptr inbounds i8, ptr %626, i64 371
  %632 = load i8, ptr %631, align 1, !tbaa !170, !range !115, !noundef !116
  %633 = trunc nuw i8 %632 to i1
  br i1 %633, label %634, label %681

634:                                              ; preds = %630
  %635 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %112, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %635, label %636, label %681

636:                                              ; preds = %634
  %637 = load i32, ptr %627, align 4, !tbaa !169
  %638 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %637, i32 noundef 256)
  br i1 %638, label %660, label %639

639:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #14
  %640 = load float, ptr %112, align 8, !tbaa !131
  %641 = fadd float %640, -5.000000e+00
  %642 = load float, ptr %231, align 4, !tbaa !142
  %643 = fadd float %642, -5.000000e+00
  %644 = load float, ptr %227, align 8, !tbaa !132
  %645 = fadd float %644, 5.000000e+00
  %646 = fadd float %642, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %37, float noundef %641, float noundef %643, float noundef %645, float noundef %646)
  %647 = load float, ptr %623, align 4, !tbaa !152
  %648 = load float, ptr %232, align 4, !tbaa !143
  %649 = fadd float %648, -1.000000e+01
  %650 = fcmp olt float %647, %649
  br i1 %650, label %651, label %654

651:                                              ; preds = %639
  %652 = getelementptr inbounds i8, ptr %626, i64 352
  %653 = load i32, ptr %652, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %624, i32 noundef %653, float noundef 0.000000e+00, i32 noundef 0)
  br label %654

654:                                              ; preds = %651, %639
  %655 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %655, label %656, label %659

656:                                              ; preds = %654
  %657 = load i32, ptr %627, align 4, !tbaa !169
  %658 = or i32 %657, 256
  store i32 %658, ptr %627, align 4, !tbaa !169
  br label %659

659:                                              ; preds = %656, %654
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #14
  br label %681

660:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #14
  %661 = load float, ptr %112, align 8, !tbaa !131
  %662 = fadd float %661, -5.000000e+00
  %663 = load float, ptr %232, align 4, !tbaa !143
  %664 = fadd float %663, -5.000000e+00
  %665 = load float, ptr %227, align 8, !tbaa !132
  %666 = fadd float %665, 5.000000e+00
  %667 = fadd float %663, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %38, float noundef %662, float noundef %664, float noundef %666, float noundef %667)
  %668 = load float, ptr %623, align 4, !tbaa !152
  %669 = load float, ptr %231, align 4, !tbaa !142
  %670 = fadd float %669, 1.000000e+01
  %671 = fcmp ogt float %668, %670
  br i1 %671, label %672, label %675

672:                                              ; preds = %660
  %673 = getelementptr inbounds i8, ptr %626, i64 352
  %674 = load i32, ptr %673, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %625, i32 noundef %674, float noundef 0.000000e+00, i32 noundef 0)
  br label %675

675:                                              ; preds = %672, %660
  %676 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %38, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %676, label %677, label %680

677:                                              ; preds = %675
  %678 = load i32, ptr %627, align 4, !tbaa !169
  %679 = and i32 %678, -257
  store i32 %679, ptr %627, align 4, !tbaa !169
  br label %680

680:                                              ; preds = %677, %675
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #14
  br label %681

681:                                              ; preds = %630, %634, %680, %659, %619
  %682 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 1)
  %683 = getelementptr inbounds i8, ptr %682, i64 4
  %684 = load i32, ptr %683, align 4, !tbaa !169
  %685 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %684, i32 noundef 64)
  br i1 %685, label %737, label %686

686:                                              ; preds = %681
  %687 = getelementptr inbounds i8, ptr %682, i64 371
  %688 = load i8, ptr %687, align 1, !tbaa !170, !range !115, !noundef !116
  %689 = trunc nuw i8 %688 to i1
  br i1 %689, label %690, label %737

690:                                              ; preds = %686
  %691 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %112, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %691, label %692, label %737

692:                                              ; preds = %690
  %693 = load i32, ptr %683, align 4, !tbaa !169
  %694 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %693, i32 noundef 256)
  br i1 %694, label %716, label %695

695:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #14
  %696 = load float, ptr %112, align 8, !tbaa !131
  %697 = fadd float %696, -5.000000e+00
  %698 = load float, ptr %231, align 4, !tbaa !142
  %699 = fadd float %698, -5.000000e+00
  %700 = load float, ptr %227, align 8, !tbaa !132
  %701 = fadd float %700, 5.000000e+00
  %702 = fadd float %698, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %37, float noundef %697, float noundef %699, float noundef %701, float noundef %702)
  %703 = load float, ptr %623, align 4, !tbaa !152
  %704 = load float, ptr %232, align 4, !tbaa !143
  %705 = fadd float %704, -1.000000e+01
  %706 = fcmp olt float %703, %705
  br i1 %706, label %707, label %710

707:                                              ; preds = %695
  %708 = getelementptr inbounds i8, ptr %682, i64 352
  %709 = load i32, ptr %708, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %624, i32 noundef %709, float noundef 0.000000e+00, i32 noundef 0)
  br label %710

710:                                              ; preds = %707, %695
  %711 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %711, label %712, label %715

712:                                              ; preds = %710
  %713 = load i32, ptr %683, align 4, !tbaa !169
  %714 = or i32 %713, 256
  store i32 %714, ptr %683, align 4, !tbaa !169
  br label %715

715:                                              ; preds = %712, %710
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #14
  br label %737

716:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #14
  %717 = load float, ptr %112, align 8, !tbaa !131
  %718 = fadd float %717, -5.000000e+00
  %719 = load float, ptr %232, align 4, !tbaa !143
  %720 = fadd float %719, -5.000000e+00
  %721 = load float, ptr %227, align 8, !tbaa !132
  %722 = fadd float %721, 5.000000e+00
  %723 = fadd float %719, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %38, float noundef %718, float noundef %720, float noundef %722, float noundef %723)
  %724 = load float, ptr %623, align 4, !tbaa !152
  %725 = load float, ptr %231, align 4, !tbaa !142
  %726 = fadd float %725, 1.000000e+01
  %727 = fcmp ogt float %724, %726
  br i1 %727, label %728, label %731

728:                                              ; preds = %716
  %729 = getelementptr inbounds i8, ptr %682, i64 352
  %730 = load i32, ptr %729, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %625, i32 noundef %730, float noundef 0.000000e+00, i32 noundef 0)
  br label %731

731:                                              ; preds = %728, %716
  %732 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %38, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %732, label %733, label %736

733:                                              ; preds = %731
  %734 = load i32, ptr %683, align 4, !tbaa !169
  %735 = and i32 %734, -257
  store i32 %735, ptr %683, align 4, !tbaa !169
  br label %736

736:                                              ; preds = %733, %731
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #14
  br label %737

737:                                              ; preds = %736, %715, %690, %686, %681
  %738 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 2)
  %739 = getelementptr inbounds i8, ptr %738, i64 4
  %740 = load i32, ptr %739, align 4, !tbaa !169
  %741 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %740, i32 noundef 64)
  br i1 %741, label %.preheader616, label %742

742:                                              ; preds = %737
  %743 = getelementptr inbounds i8, ptr %738, i64 371
  %744 = load i8, ptr %743, align 1, !tbaa !170, !range !115, !noundef !116
  %745 = trunc nuw i8 %744 to i1
  br i1 %745, label %746, label %.preheader616

746:                                              ; preds = %742
  %747 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %112, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %747, label %748, label %.preheader616

748:                                              ; preds = %746
  %749 = load i32, ptr %739, align 4, !tbaa !169
  %750 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %749, i32 noundef 256)
  br i1 %750, label %772, label %751

751:                                              ; preds = %748
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #14
  %752 = load float, ptr %112, align 8, !tbaa !131
  %753 = fadd float %752, -5.000000e+00
  %754 = load float, ptr %231, align 4, !tbaa !142
  %755 = fadd float %754, -5.000000e+00
  %756 = load float, ptr %227, align 8, !tbaa !132
  %757 = fadd float %756, 5.000000e+00
  %758 = fadd float %754, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %37, float noundef %753, float noundef %755, float noundef %757, float noundef %758)
  %759 = load float, ptr %623, align 4, !tbaa !152
  %760 = load float, ptr %232, align 4, !tbaa !143
  %761 = fadd float %760, -1.000000e+01
  %762 = fcmp olt float %759, %761
  br i1 %762, label %763, label %766

763:                                              ; preds = %751
  %764 = getelementptr inbounds i8, ptr %738, i64 352
  %765 = load i32, ptr %764, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %624, i32 noundef %765, float noundef 0.000000e+00, i32 noundef 0)
  br label %766

766:                                              ; preds = %763, %751
  %767 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %767, label %768, label %771

768:                                              ; preds = %766
  %769 = load i32, ptr %739, align 4, !tbaa !169
  %770 = or i32 %769, 256
  store i32 %770, ptr %739, align 4, !tbaa !169
  br label %771

771:                                              ; preds = %768, %766
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #14
  br label %.preheader616

772:                                              ; preds = %748
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #14
  %773 = load float, ptr %112, align 8, !tbaa !131
  %774 = fadd float %773, -5.000000e+00
  %775 = load float, ptr %232, align 4, !tbaa !143
  %776 = fadd float %775, -5.000000e+00
  %777 = load float, ptr %227, align 8, !tbaa !132
  %778 = fadd float %777, 5.000000e+00
  %779 = fadd float %775, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %38, float noundef %774, float noundef %776, float noundef %778, float noundef %779)
  %780 = load float, ptr %623, align 4, !tbaa !152
  %781 = load float, ptr %231, align 4, !tbaa !142
  %782 = fadd float %781, 1.000000e+01
  %783 = fcmp ogt float %780, %782
  br i1 %783, label %784, label %787

784:                                              ; preds = %772
  %785 = getelementptr inbounds i8, ptr %738, i64 352
  %786 = load i32, ptr %785, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %625, i32 noundef %786, float noundef 0.000000e+00, i32 noundef 0)
  br label %787

787:                                              ; preds = %784, %772
  %788 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %38, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %788, label %789, label %792

789:                                              ; preds = %787
  %790 = load i32, ptr %739, align 4, !tbaa !169
  %791 = and i32 %790, -257
  store i32 %791, ptr %739, align 4, !tbaa !169
  br label %792

792:                                              ; preds = %789, %787
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #14
  br label %.preheader616

.preheader616:                                    ; preds = %792, %771, %746, %742, %737
  %793 = getelementptr inbounds i8, ptr %39, i64 8
  %794 = getelementptr inbounds i8, ptr %40, i64 8
  %795 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  %796 = getelementptr inbounds i8, ptr %795, i64 4
  %797 = load i32, ptr %796, align 4, !tbaa !169
  %798 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %797, i32 noundef 64)
  br i1 %798, label %850, label %799

799:                                              ; preds = %.preheader616
  %800 = getelementptr inbounds i8, ptr %795, i64 371
  %801 = load i8, ptr %800, align 1, !tbaa !170, !range !115, !noundef !116
  %802 = trunc nuw i8 %801 to i1
  br i1 %802, label %803, label %850

803:                                              ; preds = %799
  %804 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %112, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %804, label %805, label %850

805:                                              ; preds = %803
  %806 = load i32, ptr %796, align 4, !tbaa !169
  %807 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %806, i32 noundef 256)
  br i1 %807, label %829, label %808

808:                                              ; preds = %805
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #14
  %809 = load float, ptr %227, align 8, !tbaa !132
  %810 = fadd float %809, -5.000000e+00
  %811 = load float, ptr %231, align 4, !tbaa !142
  %812 = fadd float %811, -5.000000e+00
  %813 = fadd float %809, 5.000000e+00
  %814 = load float, ptr %232, align 4, !tbaa !143
  %815 = fadd float %814, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %39, float noundef %810, float noundef %812, float noundef %813, float noundef %815)
  %816 = load float, ptr %35, align 8, !tbaa !150
  %817 = load float, ptr %112, align 8, !tbaa !131
  %818 = fadd float %817, 1.000000e+01
  %819 = fcmp ogt float %816, %818
  br i1 %819, label %820, label %823

820:                                              ; preds = %808
  %821 = getelementptr inbounds i8, ptr %795, i64 352
  %822 = load i32, ptr %821, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %793, i32 noundef %822, float noundef 0.000000e+00, i32 noundef 0)
  br label %823

823:                                              ; preds = %820, %808
  %824 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %824, label %825, label %828

825:                                              ; preds = %823
  %826 = load i32, ptr %796, align 4, !tbaa !169
  %827 = or i32 %826, 256
  store i32 %827, ptr %796, align 4, !tbaa !169
  br label %828

828:                                              ; preds = %825, %823
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #14
  br label %850

829:                                              ; preds = %805
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #14
  %830 = load float, ptr %112, align 8, !tbaa !131
  %831 = fadd float %830, -5.000000e+00
  %832 = load float, ptr %231, align 4, !tbaa !142
  %833 = fadd float %832, -5.000000e+00
  %834 = fadd float %830, 5.000000e+00
  %835 = load float, ptr %232, align 4, !tbaa !143
  %836 = fadd float %835, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef %831, float noundef %833, float noundef %834, float noundef %836)
  %837 = load float, ptr %35, align 8, !tbaa !150
  %838 = load float, ptr %227, align 8, !tbaa !132
  %839 = fadd float %838, -1.000000e+01
  %840 = fcmp olt float %837, %839
  br i1 %840, label %841, label %844

841:                                              ; preds = %829
  %842 = getelementptr inbounds i8, ptr %795, i64 352
  %843 = load i32, ptr %842, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %794, i32 noundef %843, float noundef 0.000000e+00, i32 noundef 0)
  br label %844

844:                                              ; preds = %841, %829
  %845 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %845, label %846, label %849

846:                                              ; preds = %844
  %847 = load i32, ptr %796, align 4, !tbaa !169
  %848 = and i32 %847, -257
  store i32 %848, ptr %796, align 4, !tbaa !169
  br label %849

849:                                              ; preds = %846, %844
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #14
  br label %850

850:                                              ; preds = %799, %803, %849, %828, %.preheader616
  %851 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 1)
  %852 = getelementptr inbounds i8, ptr %851, i64 4
  %853 = load i32, ptr %852, align 4, !tbaa !169
  %854 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %853, i32 noundef 64)
  br i1 %854, label %906, label %855

855:                                              ; preds = %850
  %856 = getelementptr inbounds i8, ptr %851, i64 371
  %857 = load i8, ptr %856, align 1, !tbaa !170, !range !115, !noundef !116
  %858 = trunc nuw i8 %857 to i1
  br i1 %858, label %859, label %906

859:                                              ; preds = %855
  %860 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %112, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %860, label %861, label %906

861:                                              ; preds = %859
  %862 = load i32, ptr %852, align 4, !tbaa !169
  %863 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %862, i32 noundef 256)
  br i1 %863, label %885, label %864

864:                                              ; preds = %861
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #14
  %865 = load float, ptr %227, align 8, !tbaa !132
  %866 = fadd float %865, -5.000000e+00
  %867 = load float, ptr %231, align 4, !tbaa !142
  %868 = fadd float %867, -5.000000e+00
  %869 = fadd float %865, 5.000000e+00
  %870 = load float, ptr %232, align 4, !tbaa !143
  %871 = fadd float %870, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %39, float noundef %866, float noundef %868, float noundef %869, float noundef %871)
  %872 = load float, ptr %35, align 8, !tbaa !150
  %873 = load float, ptr %112, align 8, !tbaa !131
  %874 = fadd float %873, 1.000000e+01
  %875 = fcmp ogt float %872, %874
  br i1 %875, label %876, label %879

876:                                              ; preds = %864
  %877 = getelementptr inbounds i8, ptr %851, i64 352
  %878 = load i32, ptr %877, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %793, i32 noundef %878, float noundef 0.000000e+00, i32 noundef 0)
  br label %879

879:                                              ; preds = %876, %864
  %880 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %880, label %881, label %884

881:                                              ; preds = %879
  %882 = load i32, ptr %852, align 4, !tbaa !169
  %883 = or i32 %882, 256
  store i32 %883, ptr %852, align 4, !tbaa !169
  br label %884

884:                                              ; preds = %881, %879
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #14
  br label %906

885:                                              ; preds = %861
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #14
  %886 = load float, ptr %112, align 8, !tbaa !131
  %887 = fadd float %886, -5.000000e+00
  %888 = load float, ptr %231, align 4, !tbaa !142
  %889 = fadd float %888, -5.000000e+00
  %890 = fadd float %886, 5.000000e+00
  %891 = load float, ptr %232, align 4, !tbaa !143
  %892 = fadd float %891, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef %887, float noundef %889, float noundef %890, float noundef %892)
  %893 = load float, ptr %35, align 8, !tbaa !150
  %894 = load float, ptr %227, align 8, !tbaa !132
  %895 = fadd float %894, -1.000000e+01
  %896 = fcmp olt float %893, %895
  br i1 %896, label %897, label %900

897:                                              ; preds = %885
  %898 = getelementptr inbounds i8, ptr %851, i64 352
  %899 = load i32, ptr %898, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %794, i32 noundef %899, float noundef 0.000000e+00, i32 noundef 0)
  br label %900

900:                                              ; preds = %897, %885
  %901 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %901, label %902, label %905

902:                                              ; preds = %900
  %903 = load i32, ptr %852, align 4, !tbaa !169
  %904 = and i32 %903, -257
  store i32 %904, ptr %852, align 4, !tbaa !169
  br label %905

905:                                              ; preds = %902, %900
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #14
  br label %906

906:                                              ; preds = %905, %884, %859, %855, %850
  %907 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 2)
  %908 = getelementptr inbounds i8, ptr %907, i64 4
  %909 = load i32, ptr %908, align 4, !tbaa !169
  %910 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %909, i32 noundef 64)
  br i1 %910, label %962, label %911

911:                                              ; preds = %906
  %912 = getelementptr inbounds i8, ptr %907, i64 371
  %913 = load i8, ptr %912, align 1, !tbaa !170, !range !115, !noundef !116
  %914 = trunc nuw i8 %913 to i1
  br i1 %914, label %915, label %962

915:                                              ; preds = %911
  %916 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %112, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %916, label %917, label %962

917:                                              ; preds = %915
  %918 = load i32, ptr %908, align 4, !tbaa !169
  %919 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %918, i32 noundef 256)
  br i1 %919, label %941, label %920

920:                                              ; preds = %917
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #14
  %921 = load float, ptr %227, align 8, !tbaa !132
  %922 = fadd float %921, -5.000000e+00
  %923 = load float, ptr %231, align 4, !tbaa !142
  %924 = fadd float %923, -5.000000e+00
  %925 = fadd float %921, 5.000000e+00
  %926 = load float, ptr %232, align 4, !tbaa !143
  %927 = fadd float %926, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %39, float noundef %922, float noundef %924, float noundef %925, float noundef %927)
  %928 = load float, ptr %35, align 8, !tbaa !150
  %929 = load float, ptr %112, align 8, !tbaa !131
  %930 = fadd float %929, 1.000000e+01
  %931 = fcmp ogt float %928, %930
  br i1 %931, label %932, label %935

932:                                              ; preds = %920
  %933 = getelementptr inbounds i8, ptr %907, i64 352
  %934 = load i32, ptr %933, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %793, i32 noundef %934, float noundef 0.000000e+00, i32 noundef 0)
  br label %935

935:                                              ; preds = %932, %920
  %936 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %936, label %937, label %940

937:                                              ; preds = %935
  %938 = load i32, ptr %908, align 4, !tbaa !169
  %939 = or i32 %938, 256
  store i32 %939, ptr %908, align 4, !tbaa !169
  br label %940

940:                                              ; preds = %937, %935
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #14
  br label %962

941:                                              ; preds = %917
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #14
  %942 = load float, ptr %112, align 8, !tbaa !131
  %943 = fadd float %942, -5.000000e+00
  %944 = load float, ptr %231, align 4, !tbaa !142
  %945 = fadd float %944, -5.000000e+00
  %946 = fadd float %942, 5.000000e+00
  %947 = load float, ptr %232, align 4, !tbaa !143
  %948 = fadd float %947, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef %943, float noundef %945, float noundef %946, float noundef %948)
  %949 = load float, ptr %35, align 8, !tbaa !150
  %950 = load float, ptr %227, align 8, !tbaa !132
  %951 = fadd float %950, -1.000000e+01
  %952 = fcmp olt float %949, %951
  br i1 %952, label %953, label %956

953:                                              ; preds = %941
  %954 = getelementptr inbounds i8, ptr %907, i64 352
  %955 = load i32, ptr %954, align 8, !tbaa !171
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %794, i32 noundef %955, float noundef 0.000000e+00, i32 noundef 0)
  br label %956

956:                                              ; preds = %953, %941
  %957 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %957, label %958, label %961

958:                                              ; preds = %956
  %959 = load i32, ptr %908, align 4, !tbaa !169
  %960 = and i32 %959, -257
  store i32 %960, ptr %908, align 4, !tbaa !169
  br label %961

961:                                              ; preds = %958, %956
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #14
  br label %962

962:                                              ; preds = %961, %940, %915, %911, %906
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #14
  br label %963

963:                                              ; preds = %962, %616
  %964 = getelementptr inbounds i8, ptr %80, i64 2296
  %965 = getelementptr inbounds i8, ptr %80, i64 2304
  %966 = getelementptr inbounds i8, ptr %80, i64 2368
  store i8 0, ptr %966, align 8, !tbaa !160
  %967 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %964)
  %968 = icmp sgt i32 %967, 0
  br i1 %968, label %.lr.ph647, label %._crit_edge648

._crit_edge648:                                   ; preds = %.lr.ph647, %963
  %969 = load i32, ptr %513, align 4, !tbaa !157
  %970 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %969, i32 noundef 2)
  br i1 %970, label %1030, label %976

.lr.ph647:                                        ; preds = %963, %.lr.ph647
  %.0571645 = phi i32 [ %973, %.lr.ph647 ], [ 0, %963 ]
  %971 = call noundef ptr @_ZN15ImPlotItemGroup14GetItemByIndexEi(ptr noundef nonnull align 8 dereferenceable(124) %964, i32 noundef %.0571645)
  %972 = getelementptr inbounds i8, ptr %971, i64 29
  store i8 0, ptr %972, align 1, !tbaa !172
  %973 = add nuw nsw i32 %.0571645, 1
  %974 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %964)
  %975 = icmp slt i32 %973, %974
  br i1 %975, label %.lr.ph647, label %._crit_edge648, !llvm.loop !174

976:                                              ; preds = %._crit_edge648
  %977 = call noundef i32 @_ZNK15ImPlotItemGroup14GetLegendCountEv(ptr noundef nonnull align 8 dereferenceable(124) %964)
  %978 = icmp sgt i32 %977, 0
  br i1 %978, label %979, label %1030

979:                                              ; preds = %976
  %980 = load i32, ptr %965, align 8, !tbaa !175
  %981 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %980, i32 noundef 16)
  %982 = load i32, ptr %965, align 8, !tbaa !175
  %983 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %982, i32 noundef 32)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #14
  %984 = getelementptr inbounds i8, ptr %77, i64 376
  %985 = getelementptr inbounds i8, ptr %77, i64 384
  %986 = xor i1 %983, true
  %987 = call <2 x float> @_ZN6ImPlot14CalcLegendSizeER15ImPlotItemGroupRK6ImVec2S4_b(ptr noundef nonnull align 8 dereferenceable(124) %964, ptr noundef nonnull align 4 dereferenceable(8) %984, ptr noundef nonnull align 4 dereferenceable(8) %985, i1 noundef zeroext %986)
  store <2 x float> %987, ptr %41, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #14
  %988 = select i1 %981, ptr %110, ptr %112
  %989 = getelementptr inbounds i8, ptr %80, i64 2312
  %990 = load i32, ptr %989, align 8, !tbaa !176
  %.v = select i1 %981, i64 352, i64 368
  %991 = getelementptr inbounds i8, ptr %77, i64 %.v
  %992 = call <2 x float> @_ZN6ImPlot14GetLocationPosERK6ImRectRK6ImVec2iS5_(ptr noundef nonnull align 4 dereferenceable(16) %988, ptr noundef nonnull align 4 dereferenceable(8) %41, i32 noundef %990, ptr noundef nonnull align 4 dereferenceable(8) %991)
  store <2 x float> %992, ptr %42, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %43) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #14
  %993 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %42, ptr noundef nonnull align 4 dereferenceable(8) %41)
  store <2 x float> %993, ptr %44, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %43, ptr noundef nonnull align 4 dereferenceable(8) %42, ptr noundef nonnull align 4 dereferenceable(8) %44)
  %994 = getelementptr inbounds i8, ptr %80, i64 2352
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %994, ptr noundef nonnull align 4 dereferenceable(16) %43, i64 16, i1 false), !tbaa.struct !168
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #14
  %995 = call noundef zeroext i1 @_ZN5ImGui15IsWindowHoveredEi(i32 noundef 0)
  br i1 %995, label %996, label %999

996:                                              ; preds = %979
  %997 = getelementptr inbounds i8, ptr %85, i64 288
  %998 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %994, ptr noundef nonnull align 4 dereferenceable(8) %997)
  br label %999

999:                                              ; preds = %996, %979
  %1000 = phi i1 [ false, %979 ], [ %998, %996 ]
  %1001 = zext i1 %1000 to i8
  store i8 %1001, ptr %966, align 8, !tbaa !177
  br i1 %981, label %1002, label %1003

1002:                                             ; preds = %999
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %110, ptr noundef nonnull align 4 dereferenceable(8) %111, i1 noundef zeroext true)
  br label %1004

1003:                                             ; preds = %999
  call void @_ZN6ImPlot16PushPlotClipRectEf(float noundef 0.000000e+00)
  br label %1004

1004:                                             ; preds = %1003, %1002
  %1005 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 8)
  %1006 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 9)
  %1007 = getelementptr inbounds i8, ptr %80, i64 2360
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %994, ptr noundef nonnull align 4 dereferenceable(8) %1007, i32 noundef %1005, float noundef 0.000000e+00, i32 noundef 0)
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %994, ptr noundef nonnull align 4 dereferenceable(8) %1007, i32 noundef %1006, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  %1008 = load i8, ptr %966, align 8, !tbaa !177, !range !115, !noundef !116
  %1009 = trunc nuw i8 %1008 to i1
  %1010 = call noundef zeroext i1 @_ZN6ImPlot17ShowLegendEntriesER15ImPlotItemGroupRK6ImRectbRK6ImVec2S7_bR10ImDrawList(ptr noundef nonnull align 8 dereferenceable(124) %964, ptr noundef nonnull align 4 dereferenceable(16) %994, i1 noundef zeroext %1009, ptr noundef nonnull align 4 dereferenceable(8) %984, ptr noundef nonnull align 4 dereferenceable(8) %985, i1 noundef zeroext %986, ptr noundef nonnull align 8 dereferenceable(196) %84)
  br i1 %1010, label %1011, label %.thread608

1011:                                             ; preds = %1004
  %1012 = load i32, ptr %965, align 8, !tbaa !175
  %1013 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %1012, i32 noundef 8)
  %1014 = getelementptr inbounds i8, ptr %77, i64 1512
  %1015 = load i8, ptr %1014, align 8, !tbaa !178, !range !115, !noundef !116
  %1016 = trunc nuw i8 %1015 to i1
  %.not600 = xor i1 %1016, true
  %brmerge602 = or i1 %1013, %.not600
  br i1 %brmerge602, label %.thread608, label %1017

1017:                                             ; preds = %1011
  %1018 = load i32, ptr %513, align 4, !tbaa !157
  %1019 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1018, i32 noundef 16)
  br i1 %1019, label %.thread608, label %1020

1020:                                             ; preds = %1017
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.153, i32 noundef 0)
  br label %.thread608

.thread608:                                       ; preds = %1004, %1011, %1020, %1017
  call void @_ZN5ImGui11PopClipRectEv()
  %1021 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.153, i32 noundef 0)
  br i1 %1021, label %1022, label %1029

1022:                                             ; preds = %.thread608
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.124)
  call void @_ZN5ImGui9SeparatorEv()
  %1023 = load i32, ptr %513, align 4, !tbaa !157
  %1024 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1023, i32 noundef 2)
  %1025 = xor i1 %1024, true
  %1026 = call noundef zeroext i1 @_ZN6ImPlot21ShowLegendContextMenuER12ImPlotLegendb(ptr noundef nonnull align 8 dereferenceable(67) %965, i1 noundef zeroext %1025)
  br i1 %1026, label %1027, label %1028

1027:                                             ; preds = %1022
  call void @_ZL10ImFlipFlagIi12ImPlotFlags_EvRT_T0_(ptr noundef nonnull align 4 dereferenceable(4) %513, i32 noundef 2)
  br label %1028

1028:                                             ; preds = %1027, %1022
  call void @_ZN5ImGui8EndPopupEv()
  br label %1029

1029:                                             ; preds = %1028, %.thread608
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #14
  br label %1032

1030:                                             ; preds = %976, %._crit_edge648
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #14
  call void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %45)
  %1031 = getelementptr inbounds i8, ptr %80, i64 2352
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1031, ptr noundef nonnull align 4 dereferenceable(16) %45, i64 16, i1 false), !tbaa.struct !168
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #14
  br label %1032

1032:                                             ; preds = %1030, %1029
  br i1 %94, label %1033, label %1036

1033:                                             ; preds = %1032
  %1034 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 7)
  %1035 = load float, ptr %86, align 4, !tbaa !107
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %112, ptr noundef nonnull align 4 dereferenceable(8) %227, i32 noundef %1034, float noundef 0.000000e+00, i32 noundef 240, float noundef %1035)
  br label %1036

1036:                                             ; preds = %1033, %1032
  %1037 = getelementptr inbounds i8, ptr %77, i64 216
  %1038 = getelementptr inbounds i8, ptr %77, i64 248
  %1039 = load i32, ptr %1038, align 8, !tbaa !179
  %1040 = icmp sgt i32 %1039, 0
  br i1 %1040, label %.lr.ph651, label %._crit_edge652

.lr.ph651:                                        ; preds = %1036
  %1041 = getelementptr inbounds i8, ptr %80, i64 24
  %1042 = getelementptr inbounds i8, ptr %77, i64 400
  %1043 = getelementptr inbounds i8, ptr %77, i64 364
  %1044 = getelementptr inbounds i8, ptr %47, i64 4
  %1045 = getelementptr inbounds i8, ptr %77, i64 360
  br label %1057

._crit_edge652:                                   ; preds = %1153, %1036
  %1046 = load i32, ptr %513, align 4, !tbaa !157
  %1047 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1046, i32 noundef 256)
  %1048 = getelementptr inbounds i8, ptr %80, i64 2527
  %1049 = load i8, ptr %1048, align 1, !tbaa !180, !range !115, !noundef !116
  %1050 = trunc nuw i8 %1049 to i1
  br i1 %1050, label %.preheader615, label %1278

.preheader615:                                    ; preds = %._crit_edge652
  %1051 = getelementptr inbounds i8, ptr %77, i64 408
  %1052 = getelementptr inbounds i8, ptr %77, i64 412
  %1053 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  %1054 = getelementptr inbounds i8, ptr %1053, i64 366
  %1055 = load i8, ptr %1054, align 2, !tbaa !181, !range !115, !noundef !116
  %1056 = trunc nuw i8 %1055 to i1
  br i1 %1056, label %1157, label %1173

1057:                                             ; preds = %.lr.ph651, %1153
  %.0562649 = phi i32 [ 0, %.lr.ph651 ], [ %1154, %1153 ]
  %1058 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI9ImPlotTagEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1037, i32 noundef %.0562649)
  %1059 = load i32, ptr %1058, align 8, !tbaa !182
  %1060 = sext i32 %1059 to i64
  %1061 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %1041, i64 0, i64 %1060
  %1062 = getelementptr inbounds i8, ptr %1061, i64 364
  %1063 = load i8, ptr %1062, align 4, !tbaa !117, !range !115, !noundef !116
  %1064 = trunc nuw i8 %1063 to i1
  br i1 %1064, label %1065, label %1153

1065:                                             ; preds = %1057
  %1066 = getelementptr inbounds i8, ptr %1061, i64 16
  %1067 = getelementptr inbounds i8, ptr %1058, i64 8
  %1068 = load double, ptr %1067, align 8, !tbaa !184
  %1069 = call noundef zeroext i1 @_ZNK11ImPlotRange8ContainsEd(ptr noundef nonnull align 8 dereferenceable(16) %1066, double noundef %1068)
  br i1 %1069, label %1070, label %1153

1070:                                             ; preds = %1065
  %1071 = call noundef ptr @_ZN19ImPlotTagCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36) %1037, i32 noundef %.0562649)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  %1072 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %1071, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %1072, ptr %46, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  %1073 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %1042, float noundef 2.000000e+00)
  store <2 x float> %1073, ptr %48, align 8
  %1074 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(8) %48)
  store <2 x float> %1074, ptr %47, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %49)
  %1075 = getelementptr inbounds i8, ptr %1061, i64 96
  call void @_ZN12ImPlotTicker16OverrideSizeLateERK6ImVec2(ptr noundef nonnull align 8 dereferenceable(52) %1075, ptr noundef nonnull align 4 dereferenceable(8) %47)
  %1076 = load double, ptr %1067, align 8, !tbaa !184
  %1077 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %1061, double noundef %1076)
  %1078 = fadd float %1077, 5.000000e-01
  %1079 = fptosi float %1078 to i32
  %1080 = sitofp i32 %1079 to float
  %1081 = getelementptr inbounds i8, ptr %1061, i64 365
  %1082 = load i8, ptr %1081, align 1, !tbaa !185, !range !115, !noundef !116
  %1083 = trunc nuw i8 %1082 to i1
  %1084 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %1061)
  %1085 = getelementptr inbounds i8, ptr %1061, i64 304
  br i1 %1083, label %1086, label %1116

1086:                                             ; preds = %1070
  br i1 %1084, label %1087, label %1100

1087:                                             ; preds = %1086
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #14
  %1088 = load float, ptr %1085, align 8, !tbaa !133
  %1089 = load float, ptr %1045, align 4, !tbaa !186
  %1090 = fadd float %1088, %1089
  %1091 = load float, ptr %1044, align 4, !tbaa !152
  %1092 = fneg float %1091
  %1093 = call float @llvm.fmuladd.f32(float %1092, float 5.000000e-01, float %1080)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef %1090, float noundef %1093)
  %1094 = load i64, ptr %50, align 8
  store i64 %1094, ptr %49, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  %1095 = load float, ptr %1085, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %51, float noundef %1095, float noundef %1080)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  %1096 = load float, ptr %1044, align 4, !tbaa !152
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef 0.000000e+00, float noundef %1096)
  %1097 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %53)
  store <2 x float> %1097, ptr %52, align 8
  %1098 = getelementptr inbounds i8, ptr %1058, i64 16
  %1099 = load i32, ptr %1098, align 8, !tbaa !187
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %51, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %52, i32 noundef %1099)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  br label %1146

1100:                                             ; preds = %1086
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  %1101 = load float, ptr %1085, align 8, !tbaa !133
  %1102 = load float, ptr %47, align 8, !tbaa !150
  %1103 = fsub float %1101, %1102
  %1104 = load float, ptr %1045, align 4, !tbaa !186
  %1105 = fsub float %1103, %1104
  %1106 = load float, ptr %1044, align 4, !tbaa !152
  %1107 = fneg float %1106
  %1108 = call float @llvm.fmuladd.f32(float %1107, float 5.000000e-01, float %1080)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %54, float noundef %1105, float noundef %1108)
  %1109 = load i64, ptr %54, align 8
  store i64 %1109, ptr %49, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #14
  %1110 = load float, ptr %47, align 8, !tbaa !150
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %56, float noundef %1110, float noundef 0.000000e+00)
  %1111 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %56)
  store <2 x float> %1111, ptr %55, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #14
  %1112 = load float, ptr %1085, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %57, float noundef %1112, float noundef %1080)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #14
  %1113 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %47)
  store <2 x float> %1113, ptr %58, align 8
  %1114 = getelementptr inbounds i8, ptr %1058, i64 16
  %1115 = load i32, ptr %1114, align 8, !tbaa !187
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %55, ptr noundef nonnull align 4 dereferenceable(8) %57, ptr noundef nonnull align 4 dereferenceable(8) %58, i32 noundef %1115)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  br label %1146

1116:                                             ; preds = %1070
  br i1 %1084, label %1117, label %1133

1117:                                             ; preds = %1116
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %1118 = load float, ptr %47, align 8, !tbaa !150
  %1119 = fneg float %1118
  %1120 = call float @llvm.fmuladd.f32(float %1119, float 5.000000e-01, float %1080)
  %1121 = load float, ptr %1085, align 8, !tbaa !133
  %1122 = load float, ptr %1044, align 4, !tbaa !152
  %1123 = fsub float %1121, %1122
  %1124 = load float, ptr %1043, align 4, !tbaa !188
  %1125 = fsub float %1123, %1124
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %1120, float noundef %1125)
  %1126 = load i64, ptr %59, align 8
  store i64 %1126, ptr %49, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #14
  %1127 = load float, ptr %1044, align 4, !tbaa !152
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %61, float noundef 0.000000e+00, float noundef %1127)
  %1128 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %61)
  store <2 x float> %1128, ptr %60, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #14
  %1129 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %47)
  store <2 x float> %1129, ptr %62, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #14
  %1130 = load float, ptr %1085, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef %1080, float noundef %1130)
  %1131 = getelementptr inbounds i8, ptr %1058, i64 16
  %1132 = load i32, ptr %1131, align 8, !tbaa !187
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %60, ptr noundef nonnull align 4 dereferenceable(8) %62, ptr noundef nonnull align 4 dereferenceable(8) %63, i32 noundef %1132)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #14
  br label %1146

1133:                                             ; preds = %1116
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #14
  %1134 = load float, ptr %47, align 8, !tbaa !150
  %1135 = fneg float %1134
  %1136 = call float @llvm.fmuladd.f32(float %1135, float 5.000000e-01, float %1080)
  %1137 = load float, ptr %1085, align 8, !tbaa !133
  %1138 = load float, ptr %1043, align 4, !tbaa !188
  %1139 = fadd float %1137, %1138
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %64, float noundef %1136, float noundef %1139)
  %1140 = load i64, ptr %64, align 8
  store i64 %1140, ptr %49, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #14
  %1141 = load float, ptr %1085, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %65, float noundef %1080, float noundef %1141)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #14
  %1142 = load float, ptr %47, align 8, !tbaa !150
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %67, float noundef %1142, float noundef 0.000000e+00)
  %1143 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %67)
  store <2 x float> %1143, ptr %66, align 8
  %1144 = getelementptr inbounds i8, ptr %1058, i64 16
  %1145 = load i32, ptr %1144, align 8, !tbaa !187
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %65, ptr noundef nonnull align 4 dereferenceable(8) %66, i32 noundef %1145)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #14
  br label %1146

1146:                                             ; preds = %1117, %1133, %1087, %1100
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #14
  %1147 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %47)
  store <2 x float> %1147, ptr %68, align 8
  %1148 = getelementptr inbounds i8, ptr %1058, i64 16
  %1149 = load i32, ptr %1148, align 8, !tbaa !187
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %68, i32 noundef %1149, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #14
  %1150 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %1042)
  store <2 x float> %1150, ptr %69, align 8
  %1151 = getelementptr inbounds i8, ptr %1058, i64 20
  %1152 = load i32, ptr %1151, align 4, !tbaa !189
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %84, ptr noundef nonnull align 4 dereferenceable(8) %69, i32 noundef %1152, ptr noundef %1071, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  br label %1153

1153:                                             ; preds = %1057, %1065, %1146
  %1154 = add nuw nsw i32 %.0562649, 1
  %1155 = load i32, ptr %1038, align 8, !tbaa !179
  %1156 = icmp slt i32 %1154, %1155
  br i1 %1156, label %1057, label %._crit_edge652, !llvm.loop !190

1157:                                             ; preds = %.preheader615
  %1158 = load float, ptr %1051, align 4, !tbaa !191
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1053, float noundef %1158)
  br i1 %1047, label %1159, label %1173

1159:                                             ; preds = %1157
  %1160 = getelementptr inbounds i8, ptr %1053, i64 56
  %1161 = load ptr, ptr %1160, align 8, !tbaa !192
  %.not585 = icmp eq ptr %1161, null
  br i1 %.not585, label %1173, label %1162

1162:                                             ; preds = %1159
  %1163 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1053)
  %1164 = load ptr, ptr %1160, align 8, !tbaa !192
  %1165 = getelementptr inbounds i8, ptr %1164, i64 366
  %1166 = load i8, ptr %1165, align 2, !tbaa !181, !range !115, !noundef !116
  %1167 = trunc nuw i8 %1166 to i1
  br i1 %1167, label %1168, label %1172

1168:                                             ; preds = %1162
  %1169 = load float, ptr %1052, align 4, !tbaa !193
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1164, float noundef %1169)
  store i8 0, ptr %1165, align 2, !tbaa !181
  %1170 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1164)
  %1171 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1163, double noundef %1170)
  br label %1172

1172:                                             ; preds = %1168, %1162
  %.0552 = phi double [ %1171, %1168 ], [ %1163, %1162 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1053, double noundef %.0552)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1164, double noundef %.0552)
  br label %1173

1173:                                             ; preds = %1157, %1159, %1172, %.preheader615
  %1174 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 1)
  %1175 = getelementptr inbounds i8, ptr %1174, i64 366
  %1176 = load i8, ptr %1175, align 2, !tbaa !181, !range !115, !noundef !116
  %1177 = trunc nuw i8 %1176 to i1
  br i1 %1177, label %1178, label %1194

1178:                                             ; preds = %1173
  %1179 = load float, ptr %1051, align 4, !tbaa !191
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1174, float noundef %1179)
  br i1 %1047, label %1180, label %1194

1180:                                             ; preds = %1178
  %1181 = getelementptr inbounds i8, ptr %1174, i64 56
  %1182 = load ptr, ptr %1181, align 8, !tbaa !192
  %.not585.1 = icmp eq ptr %1182, null
  br i1 %.not585.1, label %1194, label %1183

1183:                                             ; preds = %1180
  %1184 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1174)
  %1185 = load ptr, ptr %1181, align 8, !tbaa !192
  %1186 = getelementptr inbounds i8, ptr %1185, i64 366
  %1187 = load i8, ptr %1186, align 2, !tbaa !181, !range !115, !noundef !116
  %1188 = trunc nuw i8 %1187 to i1
  br i1 %1188, label %1189, label %1193

1189:                                             ; preds = %1183
  %1190 = load float, ptr %1052, align 4, !tbaa !193
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1185, float noundef %1190)
  store i8 0, ptr %1186, align 2, !tbaa !181
  %1191 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1185)
  %1192 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1184, double noundef %1191)
  br label %1193

1193:                                             ; preds = %1189, %1183
  %.0552.1 = phi double [ %1192, %1189 ], [ %1184, %1183 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1174, double noundef %.0552.1)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1185, double noundef %.0552.1)
  br label %1194

1194:                                             ; preds = %1193, %1180, %1178, %1173
  %1195 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 2)
  %1196 = getelementptr inbounds i8, ptr %1195, i64 366
  %1197 = load i8, ptr %1196, align 2, !tbaa !181, !range !115, !noundef !116
  %1198 = trunc nuw i8 %1197 to i1
  br i1 %1198, label %1199, label %.preheader614

1199:                                             ; preds = %1194
  %1200 = load float, ptr %1051, align 4, !tbaa !191
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1195, float noundef %1200)
  br i1 %1047, label %1201, label %.preheader614

1201:                                             ; preds = %1199
  %1202 = getelementptr inbounds i8, ptr %1195, i64 56
  %1203 = load ptr, ptr %1202, align 8, !tbaa !192
  %.not585.2 = icmp eq ptr %1203, null
  br i1 %.not585.2, label %.preheader614, label %1204

1204:                                             ; preds = %1201
  %1205 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1195)
  %1206 = load ptr, ptr %1202, align 8, !tbaa !192
  %1207 = getelementptr inbounds i8, ptr %1206, i64 366
  %1208 = load i8, ptr %1207, align 2, !tbaa !181, !range !115, !noundef !116
  %1209 = trunc nuw i8 %1208 to i1
  br i1 %1209, label %1210, label %1214

1210:                                             ; preds = %1204
  %1211 = load float, ptr %1052, align 4, !tbaa !193
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1206, float noundef %1211)
  store i8 0, ptr %1207, align 2, !tbaa !181
  %1212 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1206)
  %1213 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1205, double noundef %1212)
  br label %1214

1214:                                             ; preds = %1210, %1204
  %.0552.2 = phi double [ %1213, %1210 ], [ %1205, %1204 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1195, double noundef %.0552.2)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1206, double noundef %.0552.2)
  br label %.preheader614

.preheader614:                                    ; preds = %1214, %1201, %1199, %1194
  %1215 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  %1216 = getelementptr inbounds i8, ptr %1215, i64 366
  %1217 = load i8, ptr %1216, align 2, !tbaa !181, !range !115, !noundef !116
  %1218 = trunc nuw i8 %1217 to i1
  br i1 %1218, label %1219, label %1235

1219:                                             ; preds = %.preheader614
  %1220 = load float, ptr %1052, align 4, !tbaa !193
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1215, float noundef %1220)
  br i1 %1047, label %1221, label %1235

1221:                                             ; preds = %1219
  %1222 = getelementptr inbounds i8, ptr %1215, i64 56
  %1223 = load ptr, ptr %1222, align 8, !tbaa !192
  %.not584 = icmp eq ptr %1223, null
  br i1 %.not584, label %1235, label %1224

1224:                                             ; preds = %1221
  %1225 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1215)
  %1226 = load ptr, ptr %1222, align 8, !tbaa !192
  %1227 = getelementptr inbounds i8, ptr %1226, i64 366
  %1228 = load i8, ptr %1227, align 2, !tbaa !181, !range !115, !noundef !116
  %1229 = trunc nuw i8 %1228 to i1
  br i1 %1229, label %1230, label %1234

1230:                                             ; preds = %1224
  %1231 = load float, ptr %1051, align 4, !tbaa !191
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1226, float noundef %1231)
  store i8 0, ptr %1227, align 2, !tbaa !181
  %1232 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1226)
  %1233 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1232, double noundef %1225)
  br label %1234

1234:                                             ; preds = %1230, %1224
  %.0549 = phi double [ %1233, %1230 ], [ %1225, %1224 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1226, double noundef %.0549)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1215, double noundef %.0549)
  br label %1235

1235:                                             ; preds = %1219, %1221, %1234, %.preheader614
  %1236 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 1)
  %1237 = getelementptr inbounds i8, ptr %1236, i64 366
  %1238 = load i8, ptr %1237, align 2, !tbaa !181, !range !115, !noundef !116
  %1239 = trunc nuw i8 %1238 to i1
  br i1 %1239, label %1240, label %1256

1240:                                             ; preds = %1235
  %1241 = load float, ptr %1052, align 4, !tbaa !193
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1236, float noundef %1241)
  br i1 %1047, label %1242, label %1256

1242:                                             ; preds = %1240
  %1243 = getelementptr inbounds i8, ptr %1236, i64 56
  %1244 = load ptr, ptr %1243, align 8, !tbaa !192
  %.not584.1 = icmp eq ptr %1244, null
  br i1 %.not584.1, label %1256, label %1245

1245:                                             ; preds = %1242
  %1246 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1236)
  %1247 = load ptr, ptr %1243, align 8, !tbaa !192
  %1248 = getelementptr inbounds i8, ptr %1247, i64 366
  %1249 = load i8, ptr %1248, align 2, !tbaa !181, !range !115, !noundef !116
  %1250 = trunc nuw i8 %1249 to i1
  br i1 %1250, label %1251, label %1255

1251:                                             ; preds = %1245
  %1252 = load float, ptr %1051, align 4, !tbaa !191
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1247, float noundef %1252)
  store i8 0, ptr %1248, align 2, !tbaa !181
  %1253 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1247)
  %1254 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1253, double noundef %1246)
  br label %1255

1255:                                             ; preds = %1251, %1245
  %.0549.1 = phi double [ %1254, %1251 ], [ %1246, %1245 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1247, double noundef %.0549.1)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1236, double noundef %.0549.1)
  br label %1256

1256:                                             ; preds = %1255, %1242, %1240, %1235
  %1257 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 2)
  %1258 = getelementptr inbounds i8, ptr %1257, i64 366
  %1259 = load i8, ptr %1258, align 2, !tbaa !181, !range !115, !noundef !116
  %1260 = trunc nuw i8 %1259 to i1
  br i1 %1260, label %1261, label %1277

1261:                                             ; preds = %1256
  %1262 = load float, ptr %1052, align 4, !tbaa !193
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1257, float noundef %1262)
  br i1 %1047, label %1263, label %1277

1263:                                             ; preds = %1261
  %1264 = getelementptr inbounds i8, ptr %1257, i64 56
  %1265 = load ptr, ptr %1264, align 8, !tbaa !192
  %.not584.2 = icmp eq ptr %1265, null
  br i1 %.not584.2, label %1277, label %1266

1266:                                             ; preds = %1263
  %1267 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1257)
  %1268 = load ptr, ptr %1264, align 8, !tbaa !192
  %1269 = getelementptr inbounds i8, ptr %1268, i64 366
  %1270 = load i8, ptr %1269, align 2, !tbaa !181, !range !115, !noundef !116
  %1271 = trunc nuw i8 %1270 to i1
  br i1 %1271, label %1272, label %1276

1272:                                             ; preds = %1266
  %1273 = load float, ptr %1051, align 4, !tbaa !191
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1268, float noundef %1273)
  store i8 0, ptr %1269, align 2, !tbaa !181
  %1274 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1268)
  %1275 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1274, double noundef %1267)
  br label %1276

1276:                                             ; preds = %1272, %1266
  %.0549.2 = phi double [ %1275, %1272 ], [ %1267, %1266 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1268, double noundef %.0549.2)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1257, double noundef %.0549.2)
  br label %1277

1277:                                             ; preds = %1276, %1263, %1261, %1256
  store i8 0, ptr %1048, align 1, !tbaa !180
  br label %1278

1278:                                             ; preds = %1277, %._crit_edge652
  %1279 = load i32, ptr %80, align 8, !tbaa !194
  call void @_ZN5ImGui14PushOverrideIDEj(i32 noundef %1279)
  %1280 = getelementptr inbounds i8, ptr %77, i64 1512
  %1281 = load i8, ptr %1280, align 8, !tbaa !178, !range !115, !noundef !116
  %1282 = trunc nuw i8 %1281 to i1
  br i1 %1282, label %1283, label %.thread612

1283:                                             ; preds = %1278
  %1284 = load i32, ptr %513, align 4, !tbaa !157
  %1285 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1284, i32 noundef 16)
  br i1 %1285, label %.thread612, label %1286

1286:                                             ; preds = %1283
  %1287 = load i8, ptr %966, align 8, !tbaa !160, !range !115, !noundef !116
  %1288 = trunc nuw i8 %1287 to i1
  br i1 %1288, label %.thread612, label %1289

1289:                                             ; preds = %1286
  %1290 = getelementptr inbounds i8, ptr %80, i64 2528
  %1291 = load i8, ptr %1290, align 8, !tbaa !158, !range !115, !noundef !116
  %1292 = trunc nuw i8 %1291 to i1
  br i1 %1292, label %1293, label %.thread612

1293:                                             ; preds = %1289
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.154, i32 noundef 0)
  br label %.thread612

.thread612:                                       ; preds = %1278, %1283, %1293, %1289, %1286
  %1294 = phi i1 [ true, %1293 ], [ true, %1289 ], [ false, %1286 ], [ false, %1283 ], [ false, %1278 ]
  %1295 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.154, i32 noundef 0)
  br i1 %1295, label %1296, label %1297

1296:                                             ; preds = %.thread612
  call void @_ZN6ImPlot19ShowPlotContextMenuER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533) %80)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1297

1297:                                             ; preds = %1296, %.thread612
  call void @_ZN5ImGui6PushIDEi(i32 noundef 0)
  %1298 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  br i1 %1294, label %1299, label %1306

1299:                                             ; preds = %1297
  %1300 = getelementptr inbounds i8, ptr %1298, i64 370
  %1301 = load i8, ptr %1300, align 2, !tbaa !195, !range !115, !noundef !116
  %1302 = trunc nuw i8 %1301 to i1
  br i1 %1302, label %1303, label %1306

1303:                                             ; preds = %1299
  %1304 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1298)
  br i1 %1304, label %1305, label %1306

1305:                                             ; preds = %1303
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br label %1306

1306:                                             ; preds = %1305, %1303, %1299, %1297
  %1307 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br i1 %1307, label %1308, label %1317

1308:                                             ; preds = %1306
  %1309 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1298)
  br i1 %1309, label %1310, label %1312

1310:                                             ; preds = %1308
  %1311 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %80, ptr noundef nonnull align 8 dereferenceable(372) %1298)
  br label %1312

1312:                                             ; preds = %1308, %1310
  %1313 = phi ptr [ %1311, %1310 ], [ @.str.120, %1308 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1313, i32 noundef 1)
  call void @_ZN5ImGui9SeparatorEv()
  %1314 = getelementptr inbounds i8, ptr %1298, i64 56
  %1315 = load ptr, ptr %1314, align 8
  %1316 = select i1 %1047, ptr %1315, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1298, ptr noundef %1316, i1 noundef zeroext true)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1317

1317:                                             ; preds = %1312, %1306
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 1)
  %1318 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 1)
  br i1 %1294, label %1319, label %1326

1319:                                             ; preds = %1317
  %1320 = getelementptr inbounds i8, ptr %1318, i64 370
  %1321 = load i8, ptr %1320, align 2, !tbaa !195, !range !115, !noundef !116
  %1322 = trunc nuw i8 %1321 to i1
  br i1 %1322, label %1323, label %1326

1323:                                             ; preds = %1319
  %1324 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1318)
  br i1 %1324, label %1325, label %1326

1325:                                             ; preds = %1323
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br label %1326

1326:                                             ; preds = %1325, %1323, %1319, %1317
  %1327 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br i1 %1327, label %1328, label %1337

1328:                                             ; preds = %1326
  %1329 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1318)
  br i1 %1329, label %1330, label %1332

1330:                                             ; preds = %1328
  %1331 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %80, ptr noundef nonnull align 8 dereferenceable(372) %1318)
  br label %1332

1332:                                             ; preds = %1328, %1330
  %1333 = phi ptr [ %1331, %1330 ], [ @.str.121, %1328 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1333, i32 noundef 2)
  call void @_ZN5ImGui9SeparatorEv()
  %1334 = getelementptr inbounds i8, ptr %1318, i64 56
  %1335 = load ptr, ptr %1334, align 8
  %1336 = select i1 %1047, ptr %1335, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1318, ptr noundef %1336, i1 noundef zeroext true)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1337

1337:                                             ; preds = %1332, %1326
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 2)
  %1338 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 2)
  br i1 %1294, label %1339, label %1346

1339:                                             ; preds = %1337
  %1340 = getelementptr inbounds i8, ptr %1338, i64 370
  %1341 = load i8, ptr %1340, align 2, !tbaa !195, !range !115, !noundef !116
  %1342 = trunc nuw i8 %1341 to i1
  br i1 %1342, label %1343, label %1346

1343:                                             ; preds = %1339
  %1344 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1338)
  br i1 %1344, label %1345, label %1346

1345:                                             ; preds = %1343
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br label %1346

1346:                                             ; preds = %1345, %1343, %1339, %1337
  %1347 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br i1 %1347, label %1348, label %.preheader.preheader

1348:                                             ; preds = %1346
  %1349 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1338)
  br i1 %1349, label %1350, label %1352

1350:                                             ; preds = %1348
  %1351 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %80, ptr noundef nonnull align 8 dereferenceable(372) %1338)
  br label %1352

1352:                                             ; preds = %1348, %1350
  %1353 = phi ptr [ %1351, %1350 ], [ @.str.121, %1348 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1353, i32 noundef 3)
  call void @_ZN5ImGui9SeparatorEv()
  %1354 = getelementptr inbounds i8, ptr %1338, i64 56
  %1355 = load ptr, ptr %1354, align 8
  %1356 = select i1 %1047, ptr %1355, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1338, ptr noundef %1356, i1 noundef zeroext true)
  call void @_ZN5ImGui8EndPopupEv()
  br label %.preheader.preheader

.preheader.preheader:                             ; preds = %1352, %1346
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 0)
  %1357 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 0)
  br i1 %1294, label %1358, label %1365

1358:                                             ; preds = %.preheader.preheader
  %1359 = getelementptr inbounds i8, ptr %1357, i64 370
  %1360 = load i8, ptr %1359, align 2, !tbaa !195, !range !115, !noundef !116
  %1361 = trunc nuw i8 %1360 to i1
  br i1 %1361, label %1362, label %1365

1362:                                             ; preds = %1358
  %1363 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1357)
  br i1 %1363, label %1364, label %1365

1364:                                             ; preds = %1362
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br label %1365

1365:                                             ; preds = %1364, %1362, %1358, %.preheader.preheader
  %1366 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br i1 %1366, label %1367, label %.preheader.1

1367:                                             ; preds = %1365
  %1368 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1357)
  br i1 %1368, label %1369, label %1371

1369:                                             ; preds = %1367
  %1370 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %80, ptr noundef nonnull align 8 dereferenceable(372) %1357)
  br label %1371

1371:                                             ; preds = %1367, %1369
  %1372 = phi ptr [ %1370, %1369 ], [ @.str.122, %1367 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1372, i32 noundef 1)
  call void @_ZN5ImGui9SeparatorEv()
  %1373 = getelementptr inbounds i8, ptr %1357, i64 56
  %1374 = load ptr, ptr %1373, align 8
  %1375 = select i1 %1047, ptr %1374, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1357, ptr noundef %1375, i1 noundef zeroext false)
  call void @_ZN5ImGui8EndPopupEv()
  br label %.preheader.1

.preheader.1:                                     ; preds = %1371, %1365
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 1)
  %1376 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 1)
  br i1 %1294, label %1377, label %1384

1377:                                             ; preds = %.preheader.1
  %1378 = getelementptr inbounds i8, ptr %1376, i64 370
  %1379 = load i8, ptr %1378, align 2, !tbaa !195, !range !115, !noundef !116
  %1380 = trunc nuw i8 %1379 to i1
  br i1 %1380, label %1381, label %1384

1381:                                             ; preds = %1377
  %1382 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1376)
  br i1 %1382, label %1383, label %1384

1383:                                             ; preds = %1381
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br label %1384

1384:                                             ; preds = %1383, %1381, %1377, %.preheader.1
  %1385 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br i1 %1385, label %1386, label %.preheader.2

1386:                                             ; preds = %1384
  %1387 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1376)
  br i1 %1387, label %1388, label %1390

1388:                                             ; preds = %1386
  %1389 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %80, ptr noundef nonnull align 8 dereferenceable(372) %1376)
  br label %1390

1390:                                             ; preds = %1386, %1388
  %1391 = phi ptr [ %1389, %1388 ], [ @.str.123, %1386 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1391, i32 noundef 2)
  call void @_ZN5ImGui9SeparatorEv()
  %1392 = getelementptr inbounds i8, ptr %1376, i64 56
  %1393 = load ptr, ptr %1392, align 8
  %1394 = select i1 %1047, ptr %1393, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1376, ptr noundef %1394, i1 noundef zeroext false)
  call void @_ZN5ImGui8EndPopupEv()
  br label %.preheader.2

.preheader.2:                                     ; preds = %1390, %1384
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 2)
  %1395 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %80, i32 noundef 2)
  br i1 %1294, label %1396, label %1403

1396:                                             ; preds = %.preheader.2
  %1397 = getelementptr inbounds i8, ptr %1395, i64 370
  %1398 = load i8, ptr %1397, align 2, !tbaa !195, !range !115, !noundef !116
  %1399 = trunc nuw i8 %1398 to i1
  br i1 %1399, label %1400, label %1403

1400:                                             ; preds = %1396
  %1401 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1395)
  br i1 %1401, label %1402, label %1403

1402:                                             ; preds = %1400
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br label %1403

1403:                                             ; preds = %1402, %1400, %1396, %.preheader.2
  %1404 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br i1 %1404, label %1405, label %1414

1405:                                             ; preds = %1403
  %1406 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1395)
  br i1 %1406, label %1407, label %1409

1407:                                             ; preds = %1405
  %1408 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %80, ptr noundef nonnull align 8 dereferenceable(372) %1395)
  br label %1409

1409:                                             ; preds = %1405, %1407
  %1410 = phi ptr [ %1408, %1407 ], [ @.str.123, %1405 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1410, i32 noundef 3)
  call void @_ZN5ImGui9SeparatorEv()
  %1411 = getelementptr inbounds i8, ptr %1395, i64 56
  %1412 = load ptr, ptr %1411, align 8
  %1413 = select i1 %1047, ptr %1412, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1395, ptr noundef %1413, i1 noundef zeroext false)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1414

1414:                                             ; preds = %1409, %1403
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui5PopIDEv()
  %1415 = getelementptr inbounds i8, ptr %80, i64 24
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1415)
  %1416 = getelementptr inbounds i8, ptr %80, i64 400
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1416)
  %1417 = getelementptr inbounds i8, ptr %80, i64 776
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1417)
  %1418 = getelementptr inbounds i8, ptr %80, i64 1152
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1418)
  %1419 = getelementptr inbounds i8, ptr %80, i64 1528
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1419)
  %1420 = getelementptr inbounds i8, ptr %80, i64 1904
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1420)
  %1421 = getelementptr inbounds i8, ptr %77, i64 96
  %1422 = load ptr, ptr %1421, align 8, !tbaa !196
  %1423 = icmp eq ptr %1422, %964
  br i1 %1423, label %1424, label %1425

1424:                                             ; preds = %1414
  store ptr null, ptr %1421, align 8, !tbaa !196
  br label %1425

1425:                                             ; preds = %1424, %1414
  %1426 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %964)
  %1427 = icmp sgt i32 %1426, 0
  br i1 %1427, label %.lr.ph660, label %._crit_edge661

._crit_edge661:                                   ; preds = %.lr.ph660, %1425
  %1428 = getelementptr inbounds i8, ptr %80, i64 2525
  store i8 1, ptr %1428, align 1, !tbaa !197
  call void @_ZN5ImGui5PopIDEv()
  %1429 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  call void @_ZN6ImPlot19ResetCtxForNextPlotEP13ImPlotContext(ptr noundef %1429)
  %1430 = getelementptr inbounds i8, ptr %77, i64 88
  %1431 = load ptr, ptr %1430, align 8, !tbaa !198
  %.not583 = icmp eq ptr %1431, null
  br i1 %.not583, label %1438, label %1437

.lr.ph660:                                        ; preds = %1425, %.lr.ph660
  %.0658 = phi i32 [ %1434, %.lr.ph660 ], [ 0, %1425 ]
  %1432 = call noundef ptr @_ZN15ImPlotItemGroup14GetItemByIndexEi(ptr noundef nonnull align 8 dereferenceable(124) %964, i32 noundef %.0658)
  %1433 = getelementptr inbounds i8, ptr %1432, i64 30
  store i8 0, ptr %1433, align 2, !tbaa !199
  %1434 = add nuw nsw i32 %.0658, 1
  %1435 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %964)
  %1436 = icmp slt i32 %1434, %1435
  br i1 %1436, label %.lr.ph660, label %._crit_edge661, !llvm.loop !200

1437:                                             ; preds = %._crit_edge661
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN6ImPlot15SubplotNextCellEv()
  br label %1438

1438:                                             ; preds = %1437, %._crit_edge661
  ret void
}

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN6ImPlotL9SetupLockEv() local_unnamed_addr #10

declare void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #6

declare void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef) local_unnamed_addr #6

declare void @_ZN5ImGui11PopClipRectEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot16PushPlotClipRectEf(float noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN26ImPlotAnnotationCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36), i32 noundef) local_unnamed_addr #7 align 2

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZN6ImPlotL19RenderSelectionRectER10ImDrawListRK6ImVec2S4_RK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8ImVectorIcE6shrinkEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #8 align 2

declare void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK15ImGuiTextBuffer5emptyEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot15PopPlotClipRectEv() local_unnamed_addr #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN15ImPlotItemGroup14GetItemByIndexEi(ptr noundef nonnull align 8 dereferenceable(124), i32 noundef) local_unnamed_addr #7 align 2

declare noundef zeroext i1 @_ZN5ImGui15IsWindowHoveredEi(i32 noundef) local_unnamed_addr #6

declare void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef, float noundef) local_unnamed_addr #6

declare void @_ZN5ImGui9OpenPopupEPKci(ptr noundef, i32 noundef) local_unnamed_addr #6

declare noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef, i32 noundef) local_unnamed_addr #6

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

declare void @_ZN5ImGui8EndPopupEv() local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI9ImPlotTagEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN19ImPlotTagCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36), i32 noundef) local_unnamed_addr #7 align 2

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

declare void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #6

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot15SubplotNextCellEv() local_unnamed_addr #7

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "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 nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { 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 #11 = { inlinehint mustprogress nounwind 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 #12 = { mustprogress nounwind 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 #13 = { noreturn nounwind }
attributes #14 = { 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, !6, i64 80}
!10 = !{!"_ZTS13ImPlotContext", !11, i64 0, !16, i64 40, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !18, i64 120, !24, i64 176, !26, i64 216, !28, i64 256, !29, i64 260, !30, i64 776, !31, i64 792, !32, i64 808, !34, i64 976, !36, i64 992, !38, i64 1048, !38, i64 1064, !34, i64 1080, !13, i64 1096, !13, i64 1100, !39, i64 1104, !40, i64 1336, !41, i64 1464, !28, i64 1512, !20, i64 1520, !6, i64 1536, !42, i64 1544, !6, i64 1584, !6, i64 1592}
!11 = !{!"_ZTS6ImPoolI10ImPlotPlotE", !12, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!12 = !{!"_ZTS8ImVectorI10ImPlotPlotE", !13, i64 0, !13, i64 4, !6, i64 8}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS12ImGuiStorage", !15, i64 0}
!15 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !13, i64 0, !13, i64 4, !6, i64 8}
!16 = !{!"_ZTS6ImPoolI13ImPlotSubplotE", !17, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!17 = !{!"_ZTS8ImVectorI13ImPlotSubplotE", !13, i64 0, !13, i64 4, !6, i64 8}
!18 = !{!"_ZTS12ImPlotTicker", !19, i64 0, !20, i64 16, !22, i64 32, !22, i64 40, !13, i64 48}
!19 = !{!"_ZTS8ImVectorI10ImPlotTickE", !13, i64 0, !13, i64 4, !6, i64 8}
!20 = !{!"_ZTS15ImGuiTextBuffer", !21, i64 0}
!21 = !{!"_ZTS8ImVectorIcE", !13, i64 0, !13, i64 4, !6, i64 8}
!22 = !{!"_ZTS6ImVec2", !23, i64 0, !23, i64 4}
!23 = !{!"float", !7, i64 0}
!24 = !{!"_ZTS26ImPlotAnnotationCollection", !25, i64 0, !20, i64 16, !13, i64 32}
!25 = !{!"_ZTS8ImVectorI16ImPlotAnnotationE", !13, i64 0, !13, i64 4, !6, i64 8}
!26 = !{!"_ZTS19ImPlotTagCollection", !27, i64 0, !20, i64 16, !13, i64 32}
!27 = !{!"_ZTS8ImVectorI9ImPlotTagE", !13, i64 0, !13, i64 4, !6, i64 8}
!28 = !{!"bool", !7, i64 0}
!29 = !{!"_ZTS11ImPlotStyle", !23, i64 0, !13, i64 4, !23, i64 8, !23, i64 12, !23, i64 16, !23, i64 20, !23, i64 24, !23, i64 28, !23, i64 32, !23, i64 36, !23, i64 40, !22, i64 44, !22, i64 52, !22, i64 60, !22, i64 68, !22, i64 76, !22, i64 84, !22, i64 92, !22, i64 100, !22, i64 108, !22, i64 116, !22, i64 124, !22, i64 132, !22, i64 140, !22, i64 148, !22, i64 156, !22, i64 164, !7, i64 172, !13, i64 508, !28, i64 512, !28, i64 513, !28, i64 514}
!30 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !13, i64 0, !13, i64 4, !6, i64 8}
!31 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !13, i64 0, !13, i64 4, !6, i64 8}
!32 = !{!"_ZTS18ImPlotColormapData", !33, i64 0, !34, i64 16, !34, i64 32, !33, i64 48, !34, i64 64, !34, i64 80, !20, i64 96, !34, i64 112, !35, i64 128, !14, i64 144, !13, i64 160}
!33 = !{!"_ZTS8ImVectorIjE", !13, i64 0, !13, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorIiE", !13, i64 0, !13, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorIbE", !13, i64 0, !13, i64 4, !6, i64 8}
!36 = !{!"_ZTS2tm", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !37, i64 40, !6, i64 48}
!37 = !{!"long", !7, i64 0}
!38 = !{!"_ZTS8ImVectorIdE", !13, i64 0, !13, i64 4, !6, i64 8}
!39 = !{!"_ZTS18ImPlotNextPlotData", !7, i64 0, !7, i64 24, !7, i64 120, !7, i64 126, !7, i64 136, !7, i64 184}
!40 = !{!"_ZTS18ImPlotNextItemData", !7, i64 0, !23, i64 80, !13, i64 84, !23, i64 88, !23, i64 92, !23, i64 96, !23, i64 100, !23, i64 104, !23, i64 108, !23, i64 112, !28, i64 116, !28, i64 117, !28, i64 118, !28, i64 119, !28, i64 120, !28, i64 121, !13, i64 124}
!41 = !{!"_ZTS14ImPlotInputMap", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !13, i64 40, !23, i64 44}
!42 = !{!"_ZTS6ImPoolI19ImPlotAlignmentDataE", !43, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!43 = !{!"_ZTS8ImVectorI19ImPlotAlignmentDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!44 = !{!45, !6, i64 7176}
!45 = !{!"_ZTS12ImGuiContext", !28, i64 0, !28, i64 1, !46, i64 8, !49, i64 5464, !6, i64 6512, !23, i64 6520, !23, i64 6524, !50, i64 6528, !52, i64 7040, !13, i64 7048, !13, i64 7052, !13, i64 7056, !28, i64 7060, !28, i64 7061, !28, i64 7062, !28, i64 7063, !28, i64 7064, !13, i64 7068, !6, i64 7072, !53, i64 7080, !53, i64 7096, !53, i64 7112, !54, i64 7128, !14, i64 7144, !13, i64 7160, !22, i64 7164, !6, i64 7176, !6, i64 7184, !6, i64 7192, !6, i64 7200, !6, i64 7208, !22, i64 7216, !23, i64 7224, !13, i64 7228, !13, i64 7232, !28, i64 7236, !28, i64 7237, !28, i64 7238, !28, i64 7239, !23, i64 7240, !23, i64 7244, !13, i64 7248, !13, i64 7252, !23, i64 7256, !28, i64 7260, !28, i64 7261, !28, i64 7262, !28, i64 7263, !28, i64 7264, !28, i64 7265, !28, i64 7266, !13, i64 7268, !13, i64 7272, !55, i64 7280, !22, i64 7288, !6, i64 7296, !56, i64 7304, !13, i64 7308, !13, i64 7312, !28, i64 7316, !28, i64 7317, !6, i64 7320, !13, i64 7328, !23, i64 7332, !13, i64 7336, !57, i64 7340, !58, i64 7360, !60, i64 7408, !30, i64 7520, !31, i64 7536, !61, i64 7552, !33, i64 7568, !34, i64 7584, !62, i64 7600, !63, i64 7616, !63, i64 7632, !64, i64 7648, !6, i64 7664, !13, i64 7672, !13, i64 7676, !13, i64 7680, !13, i64 7684, !13, i64 7688, !13, i64 7692, !13, i64 7696, !13, i64 7700, !13, i64 7704, !13, i64 7708, !13, i64 7712, !56, i64 7716, !59, i64 7720, !13, i64 7736, !65, i64 7740, !13, i64 7744, !28, i64 7748, !28, i64 7749, !28, i64 7750, !28, i64 7751, !28, i64 7752, !28, i64 7753, !28, i64 7754, !13, i64 7756, !59, i64 7760, !28, i64 7776, !13, i64 7780, !66, i64 7784, !13, i64 7788, !13, i64 7792, !13, i64 7796, !13, i64 7800, !67, i64 7808, !67, i64 7856, !67, i64 7904, !6, i64 7952, !13, i64 7960, !6, i64 7968, !6, i64 7976, !6, i64 7984, !23, i64 7992, !23, i64 7996, !28, i64 8000, !6, i64 8008, !6, i64 8016, !13, i64 8024, !13, i64 8028, !13, i64 8032, !13, i64 8036, !28, i64 8040, !23, i64 8044, !13, i64 8048, !28, i64 8052, !28, i64 8053, !28, i64 8054, !13, i64 8056, !13, i64 8060, !13, i64 8064, !68, i64 8072, !59, i64 8136, !13, i64 8152, !13, i64 8156, !23, i64 8160, !13, i64 8164, !13, i64 8168, !13, i64 8172, !13, i64 8176, !69, i64 8184, !7, i64 8200, !6, i64 8216, !13, i64 8224, !70, i64 8232, !72, i64 8272, !73, i64 8288, !74, i64 8304, !6, i64 8320, !75, i64 8328, !77, i64 8368, !78, i64 8384, !22, i64 8400, !79, i64 8408, !82, i64 12144, !13, i64 12256, !13, i64 12260, !23, i64 12264, !23, i64 12268, !7, i64 12272, !51, i64 12284, !84, i64 12300, !23, i64 12348, !28, i64 12352, !28, i64 12353, !23, i64 12356, !23, i64 12360, !23, i64 12364, !23, i64 12368, !13, i64 12372, !23, i64 12376, !21, i64 12384, !33, i64 12400, !22, i64 12416, !22, i64 12424, !7, i64 12432, !28, i64 12433, !23, i64 12436, !20, i64 12440, !85, i64 12456, !86, i64 12472, !87, i64 12488, !88, i64 12504, !13, i64 12520, !28, i64 12524, !89, i64 12528, !6, i64 12536, !20, i64 12544, !6, i64 12560, !6, i64 12568, !23, i64 12576, !28, i64 12580, !13, i64 12584, !13, i64 12588, !13, i64 12592, !28, i64 12596, !13, i64 12600, !90, i64 12604, !7, i64 12620, !13, i64 13100, !13, i64 13104, !23, i64 13108, !13, i64 13112, !13, i64 13116, !13, i64 13120, !7, i64 13124}
!46 = !{!"_ZTS7ImGuiIO", !13, i64 0, !13, i64 4, !22, i64 8, !23, i64 16, !23, i64 20, !6, i64 24, !6, i64 32, !23, i64 40, !23, i64 44, !23, i64 48, !7, i64 52, !23, i64 140, !23, i64 144, !6, i64 152, !6, i64 160, !23, i64 168, !28, i64 172, !6, i64 176, !22, i64 184, !28, i64 192, !28, i64 193, !28, i64 194, !28, i64 195, !28, i64 196, !28, i64 197, !23, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !22, i64 288, !7, i64 296, !23, i64 304, !23, i64 308, !28, i64 312, !28, i64 313, !28, i64 314, !28, i64 315, !7, i64 316, !7, i64 828, !28, i64 908, !28, i64 909, !28, i64 910, !28, i64 911, !28, i64 912, !28, i64 913, !28, i64 914, !23, i64 916, !13, i64 920, !13, i64 924, !13, i64 928, !13, i64 932, !13, i64 936, !22, i64 940, !13, i64 948, !13, i64 952, !22, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1076, !7, i64 1096, !7, i64 1116, !7, i64 1156, !7, i64 1176, !7, i64 3224, !7, i64 5272, !7, i64 5352, !23, i64 5432, !47, i64 5436, !48, i64 5440}
!47 = !{!"short", !7, i64 0}
!48 = !{!"_ZTS8ImVectorItE", !13, i64 0, !13, i64 4, !6, i64 8}
!49 = !{!"_ZTS10ImGuiStyle", !23, i64 0, !23, i64 4, !22, i64 8, !23, i64 16, !23, i64 20, !22, i64 24, !22, i64 32, !13, i64 40, !23, i64 44, !23, i64 48, !23, i64 52, !23, i64 56, !22, i64 60, !23, i64 68, !23, i64 72, !22, i64 76, !22, i64 84, !22, i64 92, !22, i64 100, !23, i64 108, !23, i64 112, !23, i64 116, !23, i64 120, !23, i64 124, !23, i64 128, !23, i64 132, !23, i64 136, !23, i64 140, !23, i64 144, !13, i64 148, !22, i64 152, !22, i64 160, !22, i64 168, !22, i64 176, !23, i64 184, !28, i64 188, !28, i64 189, !28, i64 190, !23, i64 192, !23, i64 196, !7, i64 200}
!50 = !{!"_ZTS20ImDrawListSharedData", !22, i64 0, !6, i64 8, !23, i64 16, !23, i64 20, !23, i64 24, !51, i64 28, !13, i64 44, !7, i64 48, !23, i64 432, !7, i64 436, !6, i64 504}
!51 = !{!"_ZTS6ImVec4", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12}
!52 = !{!"double", !7, i64 0}
!53 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !13, i64 0, !13, i64 4, !6, i64 8}
!54 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!55 = !{!"long long", !7, i64 0}
!56 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!57 = !{!"_ZTS17ImGuiNextItemData", !13, i64 0, !23, i64 4, !13, i64 8, !13, i64 12, !28, i64 16}
!58 = !{!"_ZTS17ImGuiLastItemData", !13, i64 0, !13, i64 4, !13, i64 8, !59, i64 12, !59, i64 28}
!59 = !{!"_ZTS6ImRect", !22, i64 0, !22, i64 8}
!60 = !{!"_ZTS19ImGuiNextWindowData", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !22, i64 16, !22, i64 24, !22, i64 32, !22, i64 40, !22, i64 48, !28, i64 56, !59, i64 60, !6, i64 80, !6, i64 88, !23, i64 96, !22, i64 100}
!61 = !{!"_ZTS8ImVectorIP6ImFontE", !13, i64 0, !13, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!63 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !13, i64 0, !13, i64 4, !6, i64 8}
!65 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!66 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!67 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !13, i64 8, !13, i64 12, !59, i64 16, !23, i64 32, !23, i64 36, !23, i64 40}
!68 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !7, i64 24, !28, i64 57, !28, i64 58}
!69 = !{!"_ZTS8ImVectorIhE", !13, i64 0, !13, i64 4, !6, i64 8}
!70 = !{!"_ZTS6ImPoolI10ImGuiTableE", !71, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!71 = !{!"_ZTS8ImVectorI10ImGuiTableE", !13, i64 0, !13, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorIfE", !13, i64 0, !13, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !13, i64 0, !13, i64 4, !6, i64 8}
!75 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !76, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!76 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !13, i64 0, !13, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !13, i64 0, !13, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!79 = !{!"_ZTS19ImGuiInputTextState", !13, i64 0, !13, i64 4, !13, i64 8, !48, i64 16, !21, i64 32, !21, i64 48, !28, i64 64, !13, i64 68, !23, i64 72, !80, i64 76, !23, i64 3704, !28, i64 3708, !28, i64 3709, !28, i64 3710, !13, i64 3712, !6, i64 3720, !6, i64 3728}
!80 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !13, i64 0, !13, i64 4, !13, i64 8, !7, i64 12, !13, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !23, i64 28, !81, i64 32}
!81 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !47, i64 3582, !47, i64 3584, !13, i64 3588, !13, i64 3592}
!82 = !{!"_ZTS6ImFont", !73, i64 0, !23, i64 16, !23, i64 20, !48, i64 24, !83, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !47, i64 80, !47, i64 82, !47, i64 84, !47, i64 86, !28, i64 88, !23, i64 92, !23, i64 96, !23, i64 100, !13, i64 104, !7, i64 108}
!83 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !13, i64 0, !13, i64 4, !6, i64 8}
!84 = !{!"_ZTS21ImGuiComboPreviewData", !59, i64 0, !22, i64 16, !22, i64 24, !22, i64 32, !23, i64 40, !13, i64 44}
!85 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !13, i64 0, !13, i64 4, !6, i64 8}
!86 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !21, i64 0}
!87 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !21, i64 0}
!88 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !13, i64 0, !13, i64 4, !6, i64 8}
!89 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!90 = !{!"_ZTS18ImGuiMetricsConfig", !28, i64 0, !28, i64 1, !28, i64 2, !28, i64 3, !28, i64 4, !13, i64 8, !13, i64 12}
!91 = !{!92, !6, i64 640}
!92 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !13, i64 8, !13, i64 12, !22, i64 16, !22, i64 24, !22, i64 32, !22, i64 40, !22, i64 48, !22, i64 56, !22, i64 64, !23, i64 72, !23, i64 76, !13, i64 80, !13, i64 84, !13, i64 88, !22, i64 92, !22, i64 100, !22, i64 108, !22, i64 116, !22, i64 124, !22, i64 132, !28, i64 140, !28, i64 141, !28, i64 142, !28, i64 143, !28, i64 144, !28, i64 145, !28, i64 146, !28, i64 147, !28, i64 148, !28, i64 149, !28, i64 150, !28, i64 151, !7, i64 152, !47, i64 154, !47, i64 156, !47, i64 158, !47, i64 160, !13, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !28, i64 171, !13, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !13, i64 180, !13, i64 181, !13, i64 182, !22, i64 184, !22, i64 192, !33, i64 200, !93, i64 216, !59, i64 464, !59, i64 480, !59, i64 496, !59, i64 512, !59, i64 528, !59, i64 544, !59, i64 560, !97, i64 576, !97, i64 580, !13, i64 584, !23, i64 588, !23, i64 592, !14, i64 600, !98, i64 616, !23, i64 632, !13, i64 636, !6, i64 640, !99, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !13, i64 928, !13, i64 932, !28, i64 936}
!93 = !{!"_ZTS19ImGuiWindowTempData", !22, i64 0, !22, i64 8, !22, i64 16, !22, i64 24, !22, i64 32, !22, i64 40, !22, i64 48, !23, i64 56, !23, i64 60, !94, i64 64, !94, i64 68, !94, i64 72, !65, i64 76, !47, i64 80, !47, i64 82, !13, i64 84, !28, i64 88, !28, i64 89, !28, i64 90, !22, i64 92, !95, i64 100, !13, i64 128, !13, i64 132, !53, i64 136, !6, i64 152, !6, i64 160, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !13, i64 184, !23, i64 188, !23, i64 192, !73, i64 200, !73, i64 216, !96, i64 232}
!94 = !{!"_ZTS6ImVec1", !23, i64 0}
!95 = !{!"_ZTS16ImGuiMenuColumns", !13, i64 0, !13, i64 4, !47, i64 8, !47, i64 10, !47, i64 12, !47, i64 14, !47, i64 16, !7, i64 18}
!96 = !{!"_ZTS15ImGuiStackSizes", !47, i64 0, !47, i64 2, !47, i64 4, !47, i64 6, !47, i64 8, !47, i64 10, !47, i64 12}
!97 = !{!"_ZTS8ImVec2ih", !47, i64 0, !47, i64 2}
!98 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !13, i64 0, !13, i64 4, !6, i64 8}
!99 = !{!"_ZTS10ImDrawList", !100, i64 0, !33, i64 16, !101, i64 32, !13, i64 48, !13, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !102, i64 88, !103, i64 104, !104, i64 120, !105, i64 136, !106, i64 168, !23, i64 192}
!100 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !13, i64 0, !13, i64 4, !6, i64 8}
!101 = !{!"_ZTS8ImVectorI10ImDrawVertE", !13, i64 0, !13, i64 4, !6, i64 8}
!102 = !{!"_ZTS8ImVectorI6ImVec4E", !13, i64 0, !13, i64 4, !6, i64 8}
!103 = !{!"_ZTS8ImVectorIPvE", !13, i64 0, !13, i64 4, !6, i64 8}
!104 = !{!"_ZTS8ImVectorI6ImVec2E", !13, i64 0, !13, i64 4, !6, i64 8}
!105 = !{!"_ZTS15ImDrawCmdHeader", !51, i64 0, !6, i64 16, !13, i64 24}
!106 = !{!"_ZTS18ImDrawListSplitter", !13, i64 0, !13, i64 4, !74, i64 8}
!107 = !{!10, !23, i64 296}
!108 = !{!51, !23, i64 12}
!109 = !{!110, !28, i64 2529}
!110 = !{!"_ZTS10ImPlotPlot", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !7, i64 24, !20, i64 2280, !111, i64 2296, !13, i64 2424, !13, i64 2428, !59, i64 2432, !59, i64 2448, !59, i64 2464, !59, i64 2480, !59, i64 2496, !22, i64 2512, !13, i64 2520, !28, i64 2524, !28, i64 2525, !28, i64 2526, !28, i64 2527, !28, i64 2528, !28, i64 2529, !28, i64 2530, !28, i64 2531, !28, i64 2532}
!111 = !{!"_ZTS15ImPlotItemGroup", !13, i64 0, !112, i64 8, !113, i64 80, !13, i64 120}
!112 = !{!"_ZTS12ImPlotLegend", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !34, i64 16, !20, i64 32, !59, i64 48, !28, i64 64, !28, i64 65, !28, i64 66}
!113 = !{!"_ZTS6ImPoolI10ImPlotItemE", !114, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!114 = !{!"_ZTS8ImVectorI10ImPlotItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!115 = !{i8 0, i8 2}
!116 = !{}
!117 = !{!118, !28, i64 364}
!118 = !{!"_ZTS10ImPlotAxis", !13, i64 0, !13, i64 4, !13, i64 8, !119, i64 16, !13, i64 32, !13, i64 36, !119, i64 40, !6, i64 56, !119, i64 64, !119, i64 80, !18, i64 96, !6, i64 152, !6, i64 160, !7, i64 168, !6, i64 184, !6, i64 192, !6, i64 200, !13, i64 208, !120, i64 216, !120, i64 232, !6, i64 248, !6, i64 256, !6, i64 264, !23, i64 272, !23, i64 276, !52, i64 280, !52, i64 288, !52, i64 296, !23, i64 304, !23, i64 308, !59, i64 312, !13, i64 328, !13, i64 332, !13, i64 336, !13, i64 340, !13, i64 344, !13, i64 348, !13, i64 352, !13, i64 356, !13, i64 360, !28, i64 364, !28, i64 365, !28, i64 366, !28, i64 367, !28, i64 368, !28, i64 369, !28, i64 370, !28, i64 371}
!119 = !{!"_ZTS11ImPlotRange", !52, i64 0, !52, i64 8}
!120 = !{!"_ZTS10ImPlotTime", !37, i64 0, !13, i64 8}
!121 = !{!118, !13, i64 332}
!122 = !{!118, !13, i64 336}
!123 = !{!10, !23, i64 336}
!124 = !{!10, !23, i64 344}
!125 = !{!10, !23, i64 340}
!126 = !{!10, !23, i64 348}
!127 = !{!110, !23, i64 2452}
!128 = !{!129, !13, i64 28}
!129 = !{!"_ZTS10ImPlotTick", !52, i64 0, !23, i64 8, !22, i64 12, !13, i64 20, !28, i64 24, !28, i64 25, !13, i64 28, !13, i64 32}
!130 = !{!129, !23, i64 8}
!131 = !{!110, !23, i64 2464}
!132 = !{!110, !23, i64 2472}
!133 = !{!118, !23, i64 304}
!134 = !{!23, !23, i64 0}
!135 = !{!118, !13, i64 340}
!136 = distinct !{!136, !137}
!137 = !{!"llvm.loop.mustprogress"}
!138 = !{!129, !28, i64 24}
!139 = !{!10, !23, i64 328}
!140 = distinct !{!140, !137}
!141 = !{!10, !13, i64 208}
!142 = !{!110, !23, i64 2468}
!143 = !{!110, !23, i64 2476}
!144 = distinct !{!144, !137}
!145 = !{!10, !23, i64 332}
!146 = distinct !{!146, !137}
!147 = !{!110, !28, i64 2531}
!148 = !{!149, !23, i64 8}
!149 = !{!"_ZTS16ImPlotAnnotation", !22, i64 0, !22, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !28, i64 28}
!150 = !{!22, !23, i64 0}
!151 = !{!149, !23, i64 12}
!152 = !{!22, !23, i64 4}
!153 = !{!149, !28, i64 28}
!154 = !{!149, !13, i64 16}
!155 = !{!149, !13, i64 20}
!156 = distinct !{!156, !137}
!157 = !{!110, !13, i64 4}
!158 = !{!110, !28, i64 2528}
!159 = !{!110, !28, i64 2530}
!160 = !{!110, !28, i64 2368}
!161 = !{!110, !13, i64 16}
!162 = !{!46, !23, i64 288}
!163 = !{!46, !23, i64 292}
!164 = distinct !{!164, !137, !165}
!165 = !{!"llvm.loop.peeled.count", i32 1}
!166 = distinct !{!166, !137, !165}
!167 = !{!110, !13, i64 12}
!168 = !{i64 0, i64 4, !134, i64 4, i64 4, !134, i64 8, i64 4, !134, i64 12, i64 4, !134}
!169 = !{!118, !13, i64 4}
!170 = !{!118, !28, i64 371}
!171 = !{!118, !13, i64 352}
!172 = !{!173, !28, i64 29}
!173 = !{!"_ZTS10ImPlotItem", !13, i64 0, !13, i64 4, !59, i64 8, !13, i64 24, !28, i64 28, !28, i64 29, !28, i64 30}
!174 = distinct !{!174, !137}
!175 = !{!112, !13, i64 0}
!176 = !{!112, !13, i64 8}
!177 = !{!112, !28, i64 64}
!178 = !{!10, !28, i64 1512}
!179 = !{!10, !13, i64 248}
!180 = !{!110, !28, i64 2527}
!181 = !{!118, !28, i64 366}
!182 = !{!183, !13, i64 0}
!183 = !{!"_ZTS9ImPlotTag", !13, i64 0, !52, i64 8, !13, i64 16, !13, i64 20, !13, i64 24}
!184 = !{!183, !52, i64 8}
!185 = !{!118, !28, i64 365}
!186 = !{!10, !23, i64 360}
!187 = !{!183, !13, i64 16}
!188 = !{!10, !23, i64 364}
!189 = !{!183, !13, i64 20}
!190 = distinct !{!190, !137}
!191 = !{!10, !23, i64 408}
!192 = !{!118, !6, i64 56}
!193 = !{!10, !23, i64 412}
!194 = !{!110, !13, i64 0}
!195 = !{!118, !28, i64 370}
!196 = !{!10, !6, i64 96}
!197 = !{!110, !28, i64 2525}
!198 = !{!10, !6, i64 88}
!199 = !{!173, !28, i64 30}
!200 = distinct !{!200, !137}


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