; LLVM IR from Samson-Mano/EM_Propogation_simulation :: EM_Propogation_simulation/src/ImGui/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.34, %struct.ImPool.36, ptr, ptr, ptr, ptr, ptr, %struct.ImPlotTicker, %struct.ImPlotAnnotationCollection, %struct.ImPlotTagCollection, i8, [3 x i8], %struct.ImPlotStyle, %struct.ImVector.6, %struct.ImVector.7, %struct.ImPlotColormapData, %struct.ImVector.10, %struct.tm, %struct.ImVector.42, %struct.ImVector.42, %struct.ImVector.10, i32, i32, %struct.ImPlotNextPlotData, %struct.ImPlotNextItemData, %struct.ImPlotInputMap, i8, %struct.ImGuiTextBuffer, ptr, %struct.ImPool.43, ptr, ptr }
%struct.ImPool.34 = type { %struct.ImVector.35, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.4 }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImPool.36 = type { %struct.ImVector.37, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImPlotTicker = type <{ %struct.ImVector.38, %struct.ImGuiTextBuffer, %struct.ImVec2, %struct.ImVec2, i32, [4 x i8] }>
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImPlotAnnotationCollection = type <{ %struct.ImVector.39, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImPlotTagCollection = type <{ %struct.ImVector.40, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImPlotStyle = type <{ float, i32, float, float, float, float, float, float, float, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [21 x %struct.ImVec4], i32, i8, i8, i8, i8 }>
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImPlotColormapData = type <{ %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, %struct.ImGuiTextBuffer, %struct.ImVector.10, %struct.ImVector.41, %struct.ImGuiStorage, i32, [4 x i8] }>
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr }
%struct.ImVector.42 = type { i32, i32, ptr }
%struct.ImVector.10 = 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.24 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImPool.43 = type { %struct.ImVector.44, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.1, %struct.ImVector.1, i32, i32, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.2, %struct.ImVector.3, %struct.ImGuiStorage, i32, %struct.ImVec2, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, ptr, i32, float, [140 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.12, i32, %struct.ImVector.13, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i32, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.14, [16 x i8], i32, %struct.ImVector.15, ptr, i32, %struct.ImVector.16, %struct.ImPool, %struct.ImVector.18, %struct.ImVector.19, ptr, %struct.ImPool.20, %struct.ImVector.22, %struct.ImVector.23, i32, i32, float, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, float, i8, i8, float, float, float, float, i16, i16, %struct.ImVector.24, %struct.ImVector.9, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.26, %struct.ImChunkStream, %struct.ImChunkStream.27, %struct.ImVector.28, i32, [7 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i8, i8, i8, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.24 }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, float, float, float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, float, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], ptr, %struct.ImVec2, [5 x i8], float, float, i32, i8, i8, i8, i8, i32, [652 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], i8, [5 x float], [5 x float], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.0, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [140 x i16], %struct.ImVector.5, %struct.ImVector.5 }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.17, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImPool.20 = type { %struct.ImVector.21, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector, %struct.ImVector.24, %struct.ImVector.24, i8, [3 x i8], i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.24 }
%struct.ImFont = type <{ %struct.ImVector.18, float, float, %struct.ImVector, %struct.ImVector.25, ptr, ptr, ptr, i16, i16, i16, i16, float, float, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.24 }
%struct.ImChunkStream.27 = type { %struct.ImVector.24 }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.10, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.29, i8, float }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImGuiWindow = type <{ ptr, ptr, i32, i32, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, 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, i16, i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.9, %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.45, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i32, i8, [3 x i8] }>
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.2, ptr, ptr, i32, i32, i32, float, float, %struct.ImVector.18, %struct.ImVector.18 }
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.45 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.30, %struct.ImVector, %struct.ImVector.31, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.32, %struct.ImVector.33, %struct.ImVector.0, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImVector.32 = type { i32, i32, ptr }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.19 }
%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.46, i32, [4 x i8] }>
%struct.ImPlotLegend = type <{ i32, i32, i32, i32, %struct.ImVector.10, %struct.ImGuiTextBuffer, %struct.ImRect, i8, i8, i8, [5 x i8] }>
%struct.ImPool.46 = type { %struct.ImVector.47, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.47 = 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 [118 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 [115 x i8], align 1
@__PRETTY_FUNCTION__._ZN6ImPlot7EndPlotEv = external hidden unnamed_addr constant [23 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [67 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(14280) 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 2762, ptr noundef @__PRETTY_FUNCTION__._ZN6ImPlot7EndPlotEv) #13
  unreachable

173:                                              ; No predecessors!
  br label %174

174:                                              ; preds = %173, %171
  call void @llvm.lifetime.start.p0(i64 8, ptr %1) #14
  %175 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  store ptr %175, ptr %1, align 8, !tbaa !5
  %176 = load ptr, ptr %1, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.ImPlotContext, ptr %176, i32 0, i32 2
  %178 = load ptr, ptr %177, align 8, !tbaa !9
  %179 = icmp ne ptr %178, null
  br i1 %179, label %180, label %181

180:                                              ; preds = %174
  br label %181

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

183:                                              ; preds = %181
  br label %186

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

185:                                              ; No predecessors!
  br label %186

186:                                              ; preds = %185, %183
  call void @_ZN6ImPlotL9SetupLockEv()
  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 80
  %196 = load ptr, ptr %195, align 8, !tbaa !100
  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(14280) 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 !114
  %202 = fcmp ogt float %201, 0.000000e+00
  br i1 %202, label %203, label %211

203:                                              ; preds = %186
  %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 !115
  %210 = fcmp ogt float %209, 0.000000e+00
  br label %211

211:                                              ; preds = %203, %186
  %212 = phi i1 [ false, %186 ], [ %210, %203 ]
  %213 = zext i1 %212 to i8
  store i8 %213, ptr %7, align 1, !tbaa !116
  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 !117, !range !123, !noundef !124
  %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 !116
  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 !117, !range !123, !noundef !124
  %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 !116
  %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 !125
  br label %244

244:                                              ; preds = %285, %235
  %245 = load i32, ptr %10, align 4, !tbaa !125
  %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 !125
  %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 !126, !range !123, !noundef !124
  %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 !130
  %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 !131
  %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 !132
  %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 !133
  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 !125
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr %10, align 4, !tbaa !125
  br label %244, !llvm.loop !134

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

289:                                              ; preds = %330, %288
  %290 = load i32, ptr %12, align 4, !tbaa !125
  %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 !125
  %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 !126, !range !123, !noundef !124
  %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 !130
  %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 !131
  %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 !136
  %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 !137
  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 !125
  %332 = add nsw i32 %331, 1
  store i32 %332, ptr %12, align 4, !tbaa !125
  br label %289, !llvm.loop !138

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 !125
  %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 !139
  %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 !140
  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 !125
  %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 !125
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #14
  store i32 0, ptr %18, align 4, !tbaa !125
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #14
  store i32 0, ptr %19, align 4, !tbaa !125
  br label %354

354:                                              ; preds = %544, %353
  %355 = load i32, ptr %19, align 4, !tbaa !125
  %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 !125
  %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 !126, !range !123, !noundef !124
  %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 !116
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #14
  %373 = load i8, ptr %23, align 1, !tbaa !116, !range !123, !noundef !124
  %374 = trunc i8 %373 to i1
  br i1 %374, label %375, label %378

375:                                              ; preds = %367
  %376 = load i32, ptr %18, align 4, !tbaa !125
  %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 !116, !range !123, !noundef !124
  %380 = trunc i8 %379 to i1
  br i1 %380, label %384, label %381

381:                                              ; preds = %378
  %382 = load i32, ptr %17, align 4, !tbaa !125
  %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 !116
  %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 !116, !range !123, !noundef !124
  %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 !141
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #14
  store i32 0, ptr %26, align 4, !tbaa !125
  br label %396

396:                                              ; preds = %493, %391
  %397 = load i32, ptr %26, align 4, !tbaa !125
  %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 !125
  %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 !142
  %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 !144
  %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 !145
  %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 !144
  %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 !146
  %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 !144
  %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 !147
  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 !116, !range !123, !noundef !124
  %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 !148, !range !123, !noundef !124
  %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 !149
  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 !150
  br label %458

458:                                              ; preds = %452, %446
  %459 = phi float [ %451, %446 ], [ %457, %452 ]
  store float %459, ptr %29, align 4, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #14
  %460 = load i8, ptr %24, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !148, !range !123, !noundef !124
  %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 !151
  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 !152
  br label %479

479:                                              ; preds = %473, %467
  %480 = phi float [ %472, %467 ], [ %478, %473 ]
  store float %480, ptr %30, align 4, !tbaa !141
  %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 !141
  %483 = load float, ptr %29, align 4, !tbaa !141
  %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 !153
  %489 = load float, ptr %30, align 4, !tbaa !141
  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 !125
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr %26, align 4, !tbaa !125
  br label %396, !llvm.loop !154

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

499:                                              ; preds = %496
  %500 = load i8, ptr %7, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !145
  %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 !147
  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 !146
  %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 !147
  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 !153
  %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 !152
  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 !116, !range !123, !noundef !124
  %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 !125
  %535 = add nsw i32 %534, %533
  store i32 %535, ptr %17, align 4, !tbaa !125
  %536 = load i8, ptr %23, align 1, !tbaa !116, !range !123, !noundef !124
  %537 = trunc i8 %536 to i1
  %538 = zext i1 %537 to i32
  %539 = load i32, ptr %18, align 4, !tbaa !125
  %540 = add nsw i32 %539, %538
  store i32 %540, ptr %18, align 4, !tbaa !125
  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 !125
  %546 = add nsw i32 %545, 1
  store i32 %546, ptr %19, align 4, !tbaa !125
  br label %354, !llvm.loop !155

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

548:                                              ; preds = %738, %547
  %549 = load i32, ptr %37, align 4, !tbaa !125
  %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 !125
  %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 !126, !range !123, !noundef !124
  %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 !116
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #14
  %567 = load i8, ptr %40, align 1, !tbaa !116, !range !123, !noundef !124
  %568 = trunc i8 %567 to i1
  br i1 %568, label %569, label %572

569:                                              ; preds = %561
  %570 = load i32, ptr %36, align 4, !tbaa !125
  %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 !116, !range !123, !noundef !124
  %574 = trunc i8 %573 to i1
  br i1 %574, label %578, label %575

575:                                              ; preds = %572
  %576 = load i32, ptr %35, align 4, !tbaa !125
  %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 !116
  %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 !116, !range !123, !noundef !124
  %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 !141
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #14
  store i32 0, ptr %43, align 4, !tbaa !125
  br label %590

590:                                              ; preds = %687, %585
  %591 = load i32, ptr %43, align 4, !tbaa !125
  %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 !125
  %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 !142
  %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 !144
  %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 !156
  %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 !144
  %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 !157
  %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 !147
  %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 !144
  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 !116, !range !123, !noundef !124
  %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 !148, !range !123, !noundef !124
  %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 !158
  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 !159
  br label %652

652:                                              ; preds = %646, %640
  %653 = phi float [ %645, %640 ], [ %651, %646 ]
  store float %653, ptr %46, align 4, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #14
  %654 = load i8, ptr %41, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !148, !range !123, !noundef !124
  %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 !160
  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 !161
  br label %673

673:                                              ; preds = %667, %661
  %674 = phi float [ %666, %661 ], [ %672, %667 ]
  store float %674, ptr %47, align 4, !tbaa !141
  %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 !141
  %677 = load float, ptr %46, align 4, !tbaa !141
  %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 !153
  %683 = load float, ptr %47, align 4, !tbaa !141
  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 !125
  %689 = add nsw i32 %688, 1
  store i32 %689, ptr %43, align 4, !tbaa !125
  br label %590, !llvm.loop !162

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

693:                                              ; preds = %690
  %694 = load i8, ptr %7, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !147
  %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 !156
  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 !147
  %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 !157
  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 !153
  %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 !161
  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 !116, !range !123, !noundef !124
  %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 !125
  %729 = add nsw i32 %728, %727
  store i32 %729, ptr %35, align 4, !tbaa !125
  %730 = load i8, ptr %40, align 1, !tbaa !116, !range !123, !noundef !124
  %731 = trunc i8 %730 to i1
  %732 = zext i1 %731 to i32
  %733 = load i32, ptr %36, align 4, !tbaa !125
  %734 = add nsw i32 %733, %732
  store i32 %734, ptr %36, align 4, !tbaa !125
  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 !125
  %740 = add nsw i32 %739, 1
  store i32 %740, ptr %37, align 4, !tbaa !125
  br label %548, !llvm.loop !163

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 !125
  br label %742

742:                                              ; preds = %929, %741
  %743 = load i32, ptr %52, align 4, !tbaa !125
  %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 !164
  %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 !125
  %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 !125
  %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 !165
  %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 !166
  %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 !139
  %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 !139
  %780 = fsub float %779, %777
  store float %780, ptr %778, align 4, !tbaa !139
  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 !166
  %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 !166
  %792 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 0
  %793 = load float, ptr %792, align 4, !tbaa !139
  %794 = fadd float %793, %791
  store float %794, ptr %792, align 4, !tbaa !139
  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 !139
  %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 !166
  %802 = fsub float %797, %801
  %803 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 0
  %804 = load float, ptr %803, align 4, !tbaa !139
  %805 = fsub float %804, %802
  store float %805, ptr %803, align 4, !tbaa !139
  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 !168
  %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 !169
  %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 !169
  %819 = fsub float %818, %816
  store float %819, ptr %817, align 4, !tbaa !169
  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 !168
  %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 !168
  %831 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 1
  %832 = load float, ptr %831, align 4, !tbaa !169
  %833 = fadd float %832, %830
  store float %833, ptr %831, align 4, !tbaa !169
  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 !169
  %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 !168
  %841 = fsub float %836, %840
  %842 = getelementptr inbounds %struct.ImVec2, ptr %58, i32 0, i32 1
  %843 = load float, ptr %842, align 4, !tbaa !169
  %844 = fsub float %843, %841
  store float %844, ptr %842, align 4, !tbaa !169
  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 !170, !range !123, !noundef !124
  %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 !165
  %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 !165
  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 !166
  %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 !168
  %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 !125
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #14
  store float 0x47EFFFFFE0000000, ptr %65, align 4, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #14
  store i32 0, ptr %66, align 4, !tbaa !125
  br label %881

881:                                              ; preds = %900, %873
  %882 = load i32, ptr %66, align 4, !tbaa !125
  %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 !125
  %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 !141
  %893 = load float, ptr %67, align 4, !tbaa !141
  %894 = load float, ptr %65, align 4, !tbaa !141
  %895 = fcmp olt float %893, %894
  br i1 %895, label %896, label %899

896:                                              ; preds = %885
  %897 = load i32, ptr %66, align 4, !tbaa !125
  store i32 %897, ptr %64, align 4, !tbaa !125
  %898 = load float, ptr %67, align 4, !tbaa !141
  store float %898, ptr %65, align 4, !tbaa !141
  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 !125
  %902 = add nsw i32 %901, 1
  store i32 %902, ptr %66, align 4, !tbaa !125
  br label %881, !llvm.loop !171

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 !125
  %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 !172
  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 !172
  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 !173
  %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 !125
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr %52, align 4, !tbaa !125
  br label %742, !llvm.loop !174

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 !175, !range !123, !noundef !124
  %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 !176
  %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 !177, !range !123, !noundef !124
  %967 = trunc i8 %966 to i1
  br i1 %967, label %968, label %1046

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

971:                                              ; preds = %968
  %972 = load i8, ptr %9, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !178, !range !123, !noundef !124
  %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 !179, !range !123, !noundef !124
  %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 59
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %73, ptr align 8 %988, i64 8, i1 false), !tbaa.struct !165
  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 !145
  %994 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %995 = load float, ptr %994, align 4, !tbaa !169
  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 !139
  %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 !169
  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 !139
  %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 !169
  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 !146
  %1011 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %1012 = load float, ptr %1011, align 4, !tbaa !169
  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 !139
  %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 !156
  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 !139
  %1022 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %1023 = load float, ptr %1022, align 4, !tbaa !169
  %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 !139
  %1027 = getelementptr inbounds %struct.ImVec2, ptr %73, i32 0, i32 1
  %1028 = load float, ptr %1027, align 4, !tbaa !169
  %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 !139
  %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 !157
  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 !125
  %1038 = load ptr, ptr %5, align 8, !tbaa !5
  %1039 = load i32, ptr %82, align 4, !tbaa !125
  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 !125
  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 !125
  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 !125
  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 !176
  %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 !177, !range !123, !noundef !124
  %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 !180
  %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 !180
  %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 !116
  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 !180
  %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 !116
  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 !116, !range !123, !noundef !124
  %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 !125
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #14
  store i32 0, ptr %88, align 4, !tbaa !125
  br label %1080

1080:                                             ; preds = %1127, %1061
  %1081 = load i32, ptr %88, align 4, !tbaa !125
  %1082 = load i32, ptr %87, align 4, !tbaa !125
  %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 !125
  %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 !126, !range !123, !noundef !124
  %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 !125
  %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 59
  %1103 = getelementptr inbounds %struct.ImVec2, ptr %1102, i32 0, i32 0
  %1104 = load float, ptr %1103, align 8, !tbaa !181
  %1105 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1100, float noundef %1104)
  store double %1105, ptr %90, align 8, !tbaa !182
  %1106 = load i8, ptr %84, align 1, !tbaa !116, !range !123, !noundef !124
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1108, label %1112

1108:                                             ; preds = %1099
  %1109 = load double, ptr %90, align 8, !tbaa !182
  %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 !182
  %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 !125
  %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 !125
  %1129 = add nsw i32 %1128, 1
  store i32 %1129, ptr %88, align 4, !tbaa !125
  br label %1080, !llvm.loop !183

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 !116, !range !123, !noundef !124
  %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 !125
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #14
  store i32 0, ptr %92, align 4, !tbaa !125
  br label %1136

1136:                                             ; preds = %1183, %1130
  %1137 = load i32, ptr %92, align 4, !tbaa !125
  %1138 = load i32, ptr %91, align 4, !tbaa !125
  %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 !125
  %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 !126, !range !123, !noundef !124
  %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 !125
  %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 59
  %1159 = getelementptr inbounds %struct.ImVec2, ptr %1158, i32 0, i32 1
  %1160 = load float, ptr %1159, align 4, !tbaa !184
  %1161 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %1156, float noundef %1160)
  store double %1161, ptr %94, align 8, !tbaa !182
  %1162 = load i8, ptr %84, align 1, !tbaa !116, !range !123, !noundef !124
  %1163 = trunc i8 %1162 to i1
  br i1 %1163, label %1164, label %1168

1164:                                             ; preds = %1155
  %1165 = load double, ptr %94, align 8, !tbaa !182
  %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 !182
  %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 !125
  %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 !125
  %1185 = add nsw i32 %1184, 1
  store i32 %1185, ptr %92, align 4, !tbaa !125
  br label %1136, !llvm.loop !185

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 !186
  %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 !117, !range !123, !noundef !124
  %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(14280) ptr @_ZN5ImGui5GetIOEv()
  %1214 = getelementptr inbounds %struct.ImGuiIO, ptr %1213, i32 0, i32 59
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %97, ptr align 8 %1214, i64 8, i1 false), !tbaa.struct !165
  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 !187
  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 !125
  br label %1217

1217:                                             ; preds = %1350, %1212
  %1218 = load i32, ptr %99, align 4, !tbaa !125
  %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 !125
  %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 !188
  %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 !189, !range !123, !noundef !124
  %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 !188
  %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 !116
  %1245 = load i8, ptr %101, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !145
  %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 !156
  %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 !146
  %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 !156
  %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 !169
  %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 !157
  %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 !190
  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 !188
  %1294 = or i32 %1293, 256
  store i32 %1294, ptr %1292, align 4, !tbaa !188
  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 !145
  %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 !157
  %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 !146
  %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 !157
  %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 !169
  %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 !156
  %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 !190
  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 !188
  %1343 = and i32 %1342, -257
  store i32 %1343, ptr %1341, align 4, !tbaa !188
  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 !125
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr %99, align 4, !tbaa !125
  br label %1217, !llvm.loop !191

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

1354:                                             ; preds = %1487, %1353
  %1355 = load i32, ptr %104, align 4, !tbaa !125
  %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 !125
  %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 !188
  %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 !189, !range !123, !noundef !124
  %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 !188
  %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 !116
  %1382 = load i8, ptr %106, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !146
  %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 !156
  %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 !146
  %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 !157
  %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 !139
  %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 !145
  %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 !190
  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 !188
  %1431 = or i32 %1430, 256
  store i32 %1431, ptr %1429, align 4, !tbaa !188
  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 !145
  %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 !156
  %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 !145
  %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 !157
  %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 !139
  %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 !146
  %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 !190
  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 !188
  %1480 = and i32 %1479, -257
  store i32 %1480, ptr %1478, align 4, !tbaa !188
  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 !125
  %1489 = add nsw i32 %1488, 1
  store i32 %1489, ptr %104, align 4, !tbaa !125
  br label %1354, !llvm.loop !192

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 !179
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #14
  store i32 0, ptr %109, align 4, !tbaa !125
  br label %1496

1496:                                             ; preds = %1509, %1491
  %1497 = load i32, ptr %109, align 4, !tbaa !125
  %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 !125
  %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 !193
  br label %1509

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

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 !176
  %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 !196
  %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 !116
  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 !196
  %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 !116
  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 !116, !range !123, !noundef !124
  %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 !116, !range !123, !noundef !124
  %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 !197
  %1561 = load i8, ptr %111, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !187
  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 59
  %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 !198
  %1589 = load i8, ptr %111, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !125
  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 !125
  %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 !125
  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 !125
  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 !198, !range !123, !noundef !124
  %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 !116, !range !123, !noundef !124
  %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 !196
  %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 !116
  %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 !199, !range !123, !noundef !124
  %1649 = trunc i8 %1648 to i1
  br i1 %1649, label %1650, label %1659

1650:                                             ; preds = %1643
  %1651 = load i8, ptr %119, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !176
  %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 !176
  %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 !187
  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 !116, !range !123, !noundef !124
  %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 !114
  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 !125
  br label %1696

1696:                                             ; preds = %1893, %1695
  %1697 = load i32, ptr %121, align 4, !tbaa !125
  %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 !200
  %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 !125
  %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 !201
  %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 !126, !range !123, !noundef !124
  %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 !203
  %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 !125
  %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 !203
  %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 !141
  %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 !204, !range !123, !noundef !124
  %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 !147
  %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 !205
  %1767 = fadd float %1761, %1766
  %1768 = load float, ptr %129, align 4, !tbaa !141
  %1769 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 1
  %1770 = load float, ptr %1769, align 4, !tbaa !169
  %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 !165
  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 !147
  %1777 = load float, ptr %129, align 4, !tbaa !141
  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 !169
  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 !206
  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 !147
  %1788 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 0
  %1789 = load float, ptr %1788, align 4, !tbaa !139
  %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 !205
  %1796 = fsub float %1790, %1795
  %1797 = load float, ptr %129, align 4, !tbaa !141
  %1798 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 1
  %1799 = load float, ptr %1798, align 4, !tbaa !169
  %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 !165
  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 !139
  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 !147
  %1809 = load float, ptr %129, align 4, !tbaa !141
  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 !206
  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 !141
  %1820 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 0
  %1821 = load float, ptr %1820, align 4, !tbaa !139
  %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 !147
  %1827 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 1
  %1828 = load float, ptr %1827, align 4, !tbaa !169
  %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 !207
  %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 !165
  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 !169
  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 !141
  %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 !147
  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 !206
  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 !141
  %1850 = getelementptr inbounds %struct.ImVec2, ptr %126, i32 0, i32 0
  %1851 = load float, ptr %1850, align 4, !tbaa !139
  %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 !147
  %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 !207
  %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 !165
  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 !141
  %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 !147
  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 !139
  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 !206
  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 !206
  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 !208
  %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 !125
  %1895 = add nsw i32 %1894, 1
  store i32 %1895, ptr %121, align 4, !tbaa !125
  br label %1696, !llvm.loop !209

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 !176
  %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 !116
  %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 !210, !range !123, !noundef !124
  %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 !125
  br label %1907

1907:                                             ; preds = %1963, %1906
  %1908 = load i32, ptr %151, align 4, !tbaa !125
  %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 !125
  %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 !211, !range !123, !noundef !124
  %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 !212
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1920, float noundef %1925)
  %1926 = load i8, ptr %150, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !213
  %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 !182
  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 !213
  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 !211, !range !123, !noundef !124
  %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 !214
  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 !211
  %1952 = load double, ptr %153, align 8, !tbaa !182
  %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 !182
  br label %1956

1956:                                             ; preds = %1943, %1933
  %1957 = load ptr, ptr %152, align 8, !tbaa !5
  %1958 = load double, ptr %153, align 8, !tbaa !182
  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 !182
  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 !125
  %1965 = add nsw i32 %1964, 1
  store i32 %1965, ptr %151, align 4, !tbaa !125
  br label %1907, !llvm.loop !215

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

1967:                                             ; preds = %2023, %1966
  %1968 = load i32, ptr %155, align 4, !tbaa !125
  %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 !125
  %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 !211, !range !123, !noundef !124
  %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 !214
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1980, float noundef %1985)
  %1986 = load i8, ptr %150, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !213
  %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 !182
  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 !213
  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 !211, !range !123, !noundef !124
  %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 !212
  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 !211
  %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 !182
  %2015 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %2013, double noundef %2014)
  store double %2015, ptr %157, align 8, !tbaa !182
  br label %2016

2016:                                             ; preds = %2003, %1993
  %2017 = load ptr, ptr %158, align 8, !tbaa !5
  %2018 = load double, ptr %157, align 8, !tbaa !182
  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 !182
  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 !125
  %2025 = add nsw i32 %2024, 1
  store i32 %2025, ptr %155, align 4, !tbaa !125
  br label %1967, !llvm.loop !216

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 !210
  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 !217
  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 !199, !range !123, !noundef !124
  %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 !176
  %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 !179, !range !123, !noundef !124
  %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 !116
  %2053 = load i8, ptr %159, align 1, !tbaa !116, !range !123, !noundef !124
  %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 !177, !range !123, !noundef !124
  %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 !125
  br label %2066

2066:                                             ; preds = %2115, %2065
  %2067 = load i32, ptr %160, align 4, !tbaa !125
  %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 !125
  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 !125
  %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 !116, !range !123, !noundef !124
  %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 !218, !range !123, !noundef !124
  %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 !125
  %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 !125
  %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 !116, !range !123, !noundef !124
  %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 !213
  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 !125
  %2117 = add nsw i32 %2116, 1
  store i32 %2117, ptr %160, align 4, !tbaa !125
  br label %2066, !llvm.loop !219

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

2119:                                             ; preds = %2168, %2118
  %2120 = load i32, ptr %162, align 4, !tbaa !125
  %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 !125
  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 !125
  %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 !116, !range !123, !noundef !124
  %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 !218, !range !123, !noundef !124
  %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 !125
  %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 !125
  %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 !116, !range !123, !noundef !124
  %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 !213
  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 !125
  %2170 = add nsw i32 %2169, 1
  store i32 %2170, ptr %162, align 4, !tbaa !125
  br label %2119, !llvm.loop !220

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 !125
  br label %2172

2172:                                             ; preds = %2182, %2171
  %2173 = load i32, ptr %164, align 4, !tbaa !125
  %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 !125
  %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 !125
  %2184 = add nsw i32 %2183, 1
  store i32 %2184, ptr %164, align 4, !tbaa !125
  br label %2172, !llvm.loop !221

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 !222
  %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 !222
  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 !125
  br label %2196

2196:                                             ; preds = %2209, %2195
  %2197 = load i32, ptr %165, align 4, !tbaa !125
  %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 !125
  %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 !223
  br label %2209

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

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 !225
  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 !226
  %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 16080}
!45 = !{!"_ZTS12ImGuiContext", !28, i64 0, !28, i64 1, !46, i64 8, !50, i64 14288, !6, i64 15360, !23, i64 15368, !23, i64 15372, !51, i64 15376, !54, i64 15904, !13, i64 15912, !13, i64 15916, !13, i64 15920, !28, i64 15924, !28, i64 15925, !28, i64 15926, !28, i64 15927, !28, i64 15928, !6, i64 15936, !55, i64 15944, !55, i64 15960, !47, i64 15976, !13, i64 15980, !56, i64 15984, !56, i64 16000, !56, i64 16016, !57, i64 16032, !14, i64 16048, !13, i64 16064, !22, i64 16068, !6, i64 16080, !6, i64 16088, !6, i64 16096, !6, i64 16104, !6, i64 16112, !22, i64 16120, !13, i64 16128, !23, i64 16132, !22, i64 16136, !22, i64 16144, !13, i64 16152, !13, i64 16156, !13, i64 16160, !28, i64 16164, !28, i64 16165, !23, i64 16168, !23, i64 16172, !13, i64 16176, !13, i64 16180, !23, i64 16184, !28, i64 16188, !28, i64 16189, !28, i64 16190, !28, i64 16191, !28, i64 16192, !28, i64 16193, !22, i64 16196, !6, i64 16208, !58, i64 16216, !13, i64 16220, !13, i64 16224, !28, i64 16228, !28, i64 16229, !6, i64 16232, !13, i64 16240, !23, i64 16244, !7, i64 16248, !59, i64 17928, !13, i64 18240, !28, i64 18244, !13, i64 18248, !13, i64 18252, !13, i64 18256, !13, i64 18260, !61, i64 18264, !62, i64 18284, !64, i64 18344, !30, i64 18456, !31, i64 18472, !65, i64 18488, !33, i64 18504, !34, i64 18520, !66, i64 18536, !67, i64 18552, !67, i64 18568, !13, i64 18584, !68, i64 18592, !6, i64 18608, !13, i64 18616, !13, i64 18620, !13, i64 18624, !13, i64 18628, !13, i64 18632, !13, i64 18636, !13, i64 18640, !13, i64 18644, !13, i64 18648, !13, i64 18652, !13, i64 18656, !58, i64 18660, !69, i64 18664, !28, i64 18668, !28, i64 18669, !28, i64 18670, !28, i64 18671, !28, i64 18672, !28, i64 18673, !28, i64 18674, !13, i64 18676, !63, i64 18680, !28, i64 18696, !28, i64 18697, !28, i64 18698, !13, i64 18700, !13, i64 18704, !13, i64 18708, !13, i64 18712, !13, i64 18716, !13, i64 18720, !63, i64 18724, !63, i64 18740, !13, i64 18756, !13, i64 18760, !13, i64 18764, !70, i64 18768, !70, i64 18816, !70, i64 18864, !70, i64 18912, !13, i64 18960, !13, i64 18964, !6, i64 18968, !6, i64 18976, !6, i64 18984, !23, i64 18992, !23, i64 18996, !28, i64 19000, !22, i64 19004, !22, i64 19012, !23, i64 19020, !13, i64 19024, !28, i64 19028, !28, i64 19029, !28, i64 19030, !13, i64 19032, !13, i64 19036, !13, i64 19040, !71, i64 19048, !63, i64 19112, !13, i64 19128, !13, i64 19132, !23, i64 19136, !13, i64 19140, !13, i64 19144, !13, i64 19148, !13, i64 19152, !72, i64 19160, !7, i64 19176, !13, i64 19192, !73, i64 19200, !6, i64 19216, !13, i64 19224, !74, i64 19232, !75, i64 19248, !77, i64 19288, !78, i64 19304, !6, i64 19320, !79, i64 19328, !81, i64 19368, !82, i64 19384, !13, i64 19400, !13, i64 19404, !23, i64 19408, !23, i64 19412, !22, i64 19416, !83, i64 19424, !86, i64 23152, !87, i64 23176, !13, i64 23296, !13, i64 23300, !13, i64 23304, !13, i64 23308, !23, i64 23312, !23, i64 23316, !13, i64 23320, !52, i64 23324, !89, i64 23340, !23, i64 23388, !23, i64 23392, !28, i64 23396, !28, i64 23397, !23, i64 23400, !23, i64 23404, !23, i64 23408, !23, i64 23412, !48, i64 23416, !48, i64 23418, !21, i64 23424, !33, i64 23440, !90, i64 23456, !90, i64 23472, !7, i64 23488, !28, i64 23489, !23, i64 23492, !20, i64 23496, !91, i64 23512, !92, i64 23528, !93, i64 23544, !94, i64 23560, !13, i64 23576, !7, i64 23584, !28, i64 23640, !95, i64 23644, !6, i64 23648, !20, i64 23656, !6, i64 23672, !6, i64 23680, !23, i64 23688, !28, i64 23692, !13, i64 23696, !13, i64 23700, !13, i64 23704, !13, i64 23708, !20, i64 23712, !96, i64 23728, !7, i64 23752, !7, i64 23753, !7, i64 23754, !28, i64 23755, !7, i64 23756, !13, i64 23760, !97, i64 23764, !98, i64 23784, !7, i64 23824, !13, i64 24064, !13, i64 24068, !23, i64 24072, !13, i64 24076, !13, i64 24080, !13, i64 24084, !21, i64 24088}
!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, !23, i64 52, !23, i64 56, !23, i64 60, !23, i64 64, !6, i64 72, !6, i64 80, !23, i64 88, !28, i64 92, !6, i64 96, !22, i64 104, !28, i64 112, !28, i64 113, !28, i64 114, !28, i64 115, !28, i64 116, !28, i64 117, !28, i64 118, !28, i64 119, !23, i64 120, !28, i64 124, !28, i64 125, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !28, i64 208, !28, i64 209, !28, i64 210, !28, i64 211, !28, i64 212, !28, i64 213, !28, i64 214, !23, i64 216, !13, i64 220, !13, i64 224, !13, i64 228, !13, i64 232, !13, i64 236, !22, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !22, i64 3584, !7, i64 3592, !23, i64 3600, !23, i64 3604, !47, i64 3608, !28, i64 3612, !28, i64 3613, !28, i64 3614, !28, i64 3615, !13, i64 3616, !7, i64 3620, !28, i64 14052, !22, i64 14056, !7, i64 14064, !7, i64 14104, !7, i64 14144, !7, i64 14149, !7, i64 14154, !7, i64 14164, !7, i64 14174, !7, i64 14179, !7, i64 14184, !28, i64 14189, !7, i64 14192, !7, i64 14212, !7, i64 14232, !23, i64 14252, !28, i64 14256, !28, i64 14257, !7, i64 14258, !28, i64 14259, !48, i64 14260, !49, i64 14264}
!47 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!48 = !{!"short", !7, i64 0}
!49 = !{!"_ZTS8ImVectorItE", !13, i64 0, !13, i64 4, !6, i64 8}
!50 = !{!"_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, !23, i64 168, !22, i64 172, !22, i64 180, !22, i64 188, !22, i64 196, !23, i64 204, !28, i64 208, !28, i64 209, !28, i64 210, !23, i64 212, !23, i64 216, !7, i64 220}
!51 = !{!"_ZTS20ImDrawListSharedData", !22, i64 0, !6, i64 8, !23, i64 16, !23, i64 20, !23, i64 24, !52, i64 28, !13, i64 44, !53, i64 48, !7, i64 64, !23, i64 448, !7, i64 452, !6, i64 520}
!52 = !{!"_ZTS6ImVec4", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12}
!53 = !{!"_ZTS8ImVectorI6ImVec2E", !13, i64 0, !13, i64 4, !6, i64 8}
!54 = !{!"double", !7, i64 0}
!55 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !13, i64 0, !13, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !13, i64 0, !13, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!58 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!59 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !60, i64 280, !60, i64 296}
!60 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!61 = !{!"_ZTS17ImGuiNextItemData", !13, i64 0, !23, i64 4, !13, i64 8, !13, i64 12, !28, i64 16}
!62 = !{!"_ZTS17ImGuiLastItemData", !13, i64 0, !13, i64 4, !13, i64 8, !63, i64 12, !63, i64 28, !63, i64 44}
!63 = !{!"_ZTS6ImRect", !22, i64 0, !22, i64 8}
!64 = !{!"_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, !63, i64 60, !6, i64 80, !6, i64 88, !23, i64 96, !22, i64 100}
!65 = !{!"_ZTS8ImVectorIP6ImFontE", !13, i64 0, !13, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !13, i64 0, !13, i64 4, !6, i64 8}
!69 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!70 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !13, i64 8, !13, i64 12, !63, i64 16, !13, i64 32, !23, i64 36, !23, i64 40, !23, i64 44}
!71 = !{!"_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}
!72 = !{!"_ZTS8ImVectorIhE", !13, i64 0, !13, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!75 = !{!"_ZTS6ImPoolI10ImGuiTableE", !76, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!76 = !{!"_ZTS8ImVectorI10ImGuiTableE", !13, i64 0, !13, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorIfE", !13, i64 0, !13, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !13, i64 0, !13, i64 4, !6, i64 8}
!79 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !80, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!80 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !13, i64 0, !13, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !13, i64 0, !13, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!83 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !49, i64 24, !21, i64 40, !21, i64 56, !28, i64 72, !13, i64 76, !23, i64 80, !84, i64 84, !23, i64 3712, !28, i64 3716, !28, i64 3717, !28, i64 3718, !13, i64 3720}
!84 = !{!"_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, !85, i64 32}
!85 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !48, i64 3582, !48, i64 3584, !13, i64 3588, !13, i64 3592}
!86 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !13, i64 0, !21, i64 8}
!87 = !{!"_ZTS6ImFont", !77, i64 0, !23, i64 16, !23, i64 20, !49, i64 24, !88, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !48, i64 80, !48, i64 82, !48, i64 84, !48, i64 86, !23, i64 88, !23, i64 92, !28, i64 96, !23, i64 100, !23, i64 104, !23, i64 108, !13, i64 112, !7, i64 116}
!88 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !13, i64 0, !13, i64 4, !6, i64 8}
!89 = !{!"_ZTS21ImGuiComboPreviewData", !63, i64 0, !22, i64 16, !22, i64 24, !22, i64 32, !23, i64 40, !13, i64 44}
!90 = !{!"_ZTS20ImGuiPlatformImeData", !28, i64 0, !22, i64 4, !23, i64 12}
!91 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !13, i64 0, !13, i64 4, !6, i64 8}
!92 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !21, i64 0}
!93 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !21, i64 0}
!94 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !13, i64 0, !13, i64 4, !6, i64 8}
!95 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!96 = !{!"_ZTS14ImGuiTextIndex", !34, i64 0, !13, i64 16}
!97 = !{!"_ZTS18ImGuiMetricsConfig", !28, i64 0, !28, i64 1, !28, i64 2, !28, i64 3, !28, i64 4, !28, i64 5, !28, i64 6, !28, i64 7, !13, i64 8, !13, i64 12}
!98 = !{!"_ZTS14ImGuiStackTool", !13, i64 0, !13, i64 4, !13, i64 8, !99, i64 16, !28, i64 32, !23, i64 36}
!99 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !13, i64 0, !13, i64 4, !6, i64 8}
!100 = !{!101, !6, i64 664}
!101 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !6, i64 24, !22, i64 32, !22, i64 40, !22, i64 48, !22, i64 56, !22, i64 64, !22, i64 72, !22, i64 80, !23, i64 88, !23, i64 92, !23, i64 96, !23, i64 100, !23, i64 104, !23, i64 108, !23, i64 112, !23, i64 116, !13, i64 120, !13, i64 124, !13, i64 128, !22, i64 132, !22, i64 140, !22, i64 148, !22, i64 156, !22, i64 164, !22, i64 172, !28, i64 180, !28, i64 181, !28, i64 182, !28, i64 183, !28, i64 184, !28, i64 185, !28, i64 186, !28, i64 187, !28, i64 188, !28, i64 189, !28, i64 190, !28, i64 191, !28, i64 192, !7, i64 193, !48, i64 194, !48, i64 196, !48, i64 198, !48, i64 200, !48, i64 202, !13, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !28, i64 211, !13, i64 212, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !13, i64 220, !13, i64 221, !13, i64 222, !22, i64 224, !22, i64 232, !33, i64 240, !102, i64 256, !63, i64 488, !63, i64 504, !63, i64 520, !63, i64 536, !63, i64 552, !63, i64 568, !63, i64 584, !105, i64 600, !105, i64 604, !13, i64 608, !23, i64 612, !23, i64 616, !14, i64 624, !106, i64 640, !23, i64 656, !13, i64 660, !6, i64 664, !107, i64 672, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !7, i64 928, !7, i64 936, !13, i64 968, !13, i64 972, !13, i64 976, !28, i64 980}
!102 = !{!"_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, !28, i64 64, !28, i64 65, !103, i64 68, !103, i64 72, !103, i64 76, !22, i64 80, !69, i64 88, !48, i64 92, !48, i64 94, !28, i64 96, !28, i64 97, !28, i64 98, !28, i64 99, !22, i64 100, !104, i64 108, !13, i64 136, !13, i64 140, !56, i64 144, !6, i64 160, !6, i64 168, !13, i64 176, !13, i64 180, !13, i64 184, !23, i64 188, !23, i64 192, !77, i64 200, !77, i64 216}
!103 = !{!"_ZTS6ImVec1", !23, i64 0}
!104 = !{!"_ZTS16ImGuiMenuColumns", !13, i64 0, !13, i64 4, !48, i64 8, !48, i64 10, !48, i64 12, !48, i64 14, !48, i64 16, !7, i64 18}
!105 = !{!"_ZTS8ImVec2ih", !48, i64 0, !48, i64 2}
!106 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !13, i64 0, !13, i64 4, !6, i64 8}
!107 = !{!"_ZTS10ImDrawList", !108, i64 0, !49, i64 16, !109, i64 32, !13, i64 48, !13, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !110, i64 88, !111, i64 104, !53, i64 120, !112, i64 136, !113, i64 168, !23, i64 192}
!108 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !13, i64 0, !13, i64 4, !6, i64 8}
!109 = !{!"_ZTS8ImVectorI10ImDrawVertE", !13, i64 0, !13, i64 4, !6, i64 8}
!110 = !{!"_ZTS8ImVectorI6ImVec4E", !13, i64 0, !13, i64 4, !6, i64 8}
!111 = !{!"_ZTS8ImVectorIPvE", !13, i64 0, !13, i64 4, !6, i64 8}
!112 = !{!"_ZTS15ImDrawCmdHeader", !52, i64 0, !6, i64 16, !13, i64 24}
!113 = !{!"_ZTS18ImDrawListSplitter", !13, i64 0, !13, i64 4, !78, i64 8}
!114 = !{!10, !23, i64 296}
!115 = !{!52, !23, i64 12}
!116 = !{!28, !28, i64 0}
!117 = !{!118, !28, i64 2529}
!118 = !{!"_ZTS10ImPlotPlot", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !7, i64 24, !20, i64 2280, !119, i64 2296, !13, i64 2424, !13, i64 2428, !63, i64 2432, !63, i64 2448, !63, i64 2464, !63, i64 2480, !63, 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}
!119 = !{!"_ZTS15ImPlotItemGroup", !13, i64 0, !120, i64 8, !121, i64 80, !13, i64 120}
!120 = !{!"_ZTS12ImPlotLegend", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !34, i64 16, !20, i64 32, !63, i64 48, !28, i64 64, !28, i64 65, !28, i64 66}
!121 = !{!"_ZTS6ImPoolI10ImPlotItemE", !122, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!122 = !{!"_ZTS8ImVectorI10ImPlotItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!123 = !{i8 0, i8 2}
!124 = !{}
!125 = !{!13, !13, i64 0}
!126 = !{!127, !28, i64 364}
!127 = !{!"_ZTS10ImPlotAxis", !13, i64 0, !13, i64 4, !13, i64 8, !128, i64 16, !13, i64 32, !13, i64 36, !128, i64 40, !6, i64 56, !128, i64 64, !128, 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, !129, i64 216, !129, i64 232, !6, i64 248, !6, i64 256, !6, i64 264, !23, i64 272, !23, i64 276, !54, i64 280, !54, i64 288, !54, i64 296, !23, i64 304, !23, i64 308, !63, 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}
!128 = !{!"_ZTS11ImPlotRange", !54, i64 0, !54, i64 8}
!129 = !{!"_ZTS10ImPlotTime", !37, i64 0, !13, i64 8}
!130 = !{!127, !13, i64 332}
!131 = !{!127, !13, i64 336}
!132 = !{!10, !23, i64 336}
!133 = !{!10, !23, i64 344}
!134 = distinct !{!134, !135}
!135 = !{!"llvm.loop.mustprogress"}
!136 = !{!10, !23, i64 340}
!137 = !{!10, !23, i64 348}
!138 = distinct !{!138, !135}
!139 = !{!22, !23, i64 0}
!140 = !{!118, !23, i64 2452}
!141 = !{!23, !23, i64 0}
!142 = !{!143, !13, i64 28}
!143 = !{!"_ZTS10ImPlotTick", !54, i64 0, !23, i64 8, !22, i64 12, !13, i64 20, !28, i64 24, !28, i64 25, !13, i64 28, !13, i64 32}
!144 = !{!143, !23, i64 8}
!145 = !{!118, !23, i64 2464}
!146 = !{!118, !23, i64 2472}
!147 = !{!127, !23, i64 304}
!148 = !{!143, !28, i64 24}
!149 = !{!10, !23, i64 304}
!150 = !{!10, !23, i64 312}
!151 = !{!10, !23, i64 320}
!152 = !{!10, !23, i64 328}
!153 = !{!127, !13, i64 340}
!154 = distinct !{!154, !135}
!155 = distinct !{!155, !135}
!156 = !{!118, !23, i64 2468}
!157 = !{!118, !23, i64 2476}
!158 = !{!10, !23, i64 308}
!159 = !{!10, !23, i64 316}
!160 = !{!10, !23, i64 324}
!161 = !{!10, !23, i64 332}
!162 = distinct !{!162, !135}
!163 = distinct !{!163, !135}
!164 = !{!10, !13, i64 208}
!165 = !{i64 0, i64 4, !141, i64 4, i64 4, !141}
!166 = !{!167, !23, i64 8}
!167 = !{!"_ZTS16ImPlotAnnotation", !22, i64 0, !22, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !28, i64 28}
!168 = !{!167, !23, i64 12}
!169 = !{!22, !23, i64 4}
!170 = !{!167, !28, i64 28}
!171 = distinct !{!171, !135}
!172 = !{!167, !13, i64 16}
!173 = !{!167, !13, i64 20}
!174 = distinct !{!174, !135}
!175 = !{!118, !28, i64 2531}
!176 = !{!118, !13, i64 4}
!177 = !{!118, !28, i64 2528}
!178 = !{!118, !28, i64 2530}
!179 = !{!118, !28, i64 2368}
!180 = !{!118, !13, i64 16}
!181 = !{!46, !23, i64 3584}
!182 = !{!54, !54, i64 0}
!183 = distinct !{!183, !135}
!184 = !{!46, !23, i64 3588}
!185 = distinct !{!185, !135}
!186 = !{!118, !13, i64 12}
!187 = !{i64 0, i64 4, !141, i64 4, i64 4, !141, i64 8, i64 4, !141, i64 12, i64 4, !141}
!188 = !{!127, !13, i64 4}
!189 = !{!127, !28, i64 371}
!190 = !{!127, !13, i64 352}
!191 = distinct !{!191, !135}
!192 = distinct !{!192, !135}
!193 = !{!194, !28, i64 29}
!194 = !{!"_ZTS10ImPlotItem", !13, i64 0, !13, i64 4, !63, i64 8, !13, i64 24, !28, i64 28, !28, i64 29, !28, i64 30}
!195 = distinct !{!195, !135}
!196 = !{!120, !13, i64 0}
!197 = !{!120, !13, i64 8}
!198 = !{!120, !28, i64 64}
!199 = !{!10, !28, i64 1512}
!200 = !{!10, !13, i64 248}
!201 = !{!202, !13, i64 0}
!202 = !{!"_ZTS9ImPlotTag", !13, i64 0, !54, i64 8, !13, i64 16, !13, i64 20, !13, i64 24}
!203 = !{!202, !54, i64 8}
!204 = !{!127, !28, i64 365}
!205 = !{!10, !23, i64 360}
!206 = !{!202, !13, i64 16}
!207 = !{!10, !23, i64 364}
!208 = !{!202, !13, i64 20}
!209 = distinct !{!209, !135}
!210 = !{!118, !28, i64 2527}
!211 = !{!127, !28, i64 366}
!212 = !{!10, !23, i64 408}
!213 = !{!127, !6, i64 56}
!214 = !{!10, !23, i64 412}
!215 = distinct !{!215, !135}
!216 = distinct !{!216, !135}
!217 = !{!118, !13, i64 0}
!218 = !{!127, !28, i64 370}
!219 = distinct !{!219, !135}
!220 = distinct !{!220, !135}
!221 = distinct !{!221, !135}
!222 = !{!10, !6, i64 96}
!223 = !{!194, !28, i64 30}
!224 = distinct !{!224, !135}
!225 = !{!118, !28, i64 2525}
!226 = !{!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.38, %struct.ImGuiTextBuffer, %struct.ImVec2, %struct.ImVec2, i32, [4 x i8] }>
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.24 }
%struct.ImVector.24 = 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 [118 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 [115 x i8], align 1
@__PRETTY_FUNCTION__._ZN6ImPlot7EndPlotEv = external hidden unnamed_addr constant [23 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [67 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(14280) 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 2762, 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
  %.not581 = icmp eq ptr %74, null
  br i1 %.not581, label %75, label %76

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

76:                                               ; preds = %72
  tail call void @_ZN6ImPlotL9SetupLockEv()
  %77 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %78 = load ptr, ptr %73, align 8, !tbaa !9
  %79 = getelementptr inbounds i8, ptr %77, i64 16080
  %80 = load ptr, ptr %79, align 8, !tbaa !44
  %81 = getelementptr inbounds i8, ptr %80, i64 664
  %82 = load ptr, ptr %81, align 8, !tbaa !100
  %83 = tail call noundef nonnull align 8 dereferenceable(14280) ptr @_ZN5ImGui5GetIOEv()
  %84 = getelementptr inbounds i8, ptr %70, i64 296
  %85 = load float, ptr %84, align 4, !tbaa !114
  %86 = fcmp ogt float %85, 0.000000e+00
  br i1 %86, label %87, label %91

87:                                               ; preds = %76
  %88 = getelementptr inbounds i8, ptr %70, i64 556
  %89 = load float, ptr %88, align 4, !tbaa !115
  %90 = fcmp ogt float %89, 0.000000e+00
  br label %91

91:                                               ; preds = %87, %76
  %92 = phi i1 [ false, %76 ], [ %90, %87 ]
  %93 = getelementptr inbounds i8, ptr %78, i64 2529
  %94 = load i8, ptr %93, align 1, !tbaa !116, !range !122, !noundef !123
  %95 = trunc nuw i8 %94 to i1
  br i1 %95, label %99, label %96

96:                                               ; preds = %91
  %97 = getelementptr inbounds i8, ptr %78, i64 24
  %98 = tail call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef nonnull %97, i32 noundef 3)
  %.pre = load i8, ptr %93, align 1, !tbaa !116, !range !122
  br label %99

99:                                               ; preds = %96, %91
  %100 = phi i8 [ %94, %91 ], [ %.pre, %96 ]
  %101 = phi i1 [ true, %91 ], [ %98, %96 ]
  %102 = trunc nuw i8 %100 to i1
  br i1 %102, label %106, label %103

103:                                              ; preds = %99
  %104 = getelementptr inbounds i8, ptr %78, i64 1152
  %105 = tail call noundef zeroext i1 @_ZN6ImPlotL11AnyAxesHeldEP10ImPlotAxisi(ptr noundef nonnull %104, i32 noundef 3)
  br label %106

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

117:                                              ; preds = %106
  %118 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %113)
  br i1 %118, label %119, label %129

119:                                              ; preds = %117
  %120 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %113)
  br i1 %120, label %121, label %129

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

129:                                              ; preds = %121, %119, %117, %106
  %130 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 1)
  %131 = getelementptr inbounds i8, ptr %130, i64 364
  %132 = load i8, ptr %131, align 4, !tbaa !124, !range !122, !noundef !123
  %133 = trunc nuw i8 %132 to i1
  br i1 %133, label %134, label %146

134:                                              ; preds = %129
  %135 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %130)
  br i1 %135, label %136, label %146

136:                                              ; preds = %134
  %137 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %130)
  br i1 %137, label %138, label %146

138:                                              ; preds = %136
  %139 = getelementptr inbounds i8, ptr %130, i64 96
  %140 = getelementptr inbounds i8, ptr %130, i64 332
  %141 = load i32, ptr %140, align 4, !tbaa !128
  %142 = getelementptr inbounds i8, ptr %130, i64 336
  %143 = load i32, ptr %142, align 8, !tbaa !129
  %144 = load float, ptr %111, align 4, !tbaa !130
  %145 = load float, ptr %112, align 4, !tbaa !131
  tail call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 8 dereferenceable(52) %139, ptr noundef nonnull align 4 dereferenceable(16) %110, i32 noundef %141, i32 noundef %143, float noundef %144, float noundef %145)
  br label %146

146:                                              ; preds = %138, %136, %134, %129
  %147 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 2)
  %148 = getelementptr inbounds i8, ptr %147, i64 364
  %149 = load i8, ptr %148, align 4, !tbaa !124, !range !122, !noundef !123
  %150 = trunc nuw i8 %149 to i1
  br i1 %150, label %151, label %.preheader621

151:                                              ; preds = %146
  %152 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %147)
  br i1 %152, label %153, label %.preheader621

153:                                              ; preds = %151
  %154 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %147)
  br i1 %154, label %155, label %.preheader621

155:                                              ; preds = %153
  %156 = getelementptr inbounds i8, ptr %147, i64 96
  %157 = getelementptr inbounds i8, ptr %147, i64 332
  %158 = load i32, ptr %157, align 4, !tbaa !128
  %159 = getelementptr inbounds i8, ptr %147, i64 336
  %160 = load i32, ptr %159, align 8, !tbaa !129
  %161 = load float, ptr %111, align 4, !tbaa !130
  %162 = load float, ptr %112, align 4, !tbaa !131
  tail call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 8 dereferenceable(52) %156, ptr noundef nonnull align 4 dereferenceable(16) %110, i32 noundef %158, i32 noundef %160, float noundef %161, float noundef %162)
  br label %.preheader621

.preheader621:                                    ; preds = %155, %153, %151, %146
  %163 = getelementptr inbounds i8, ptr %70, i64 340
  %164 = getelementptr inbounds i8, ptr %70, i64 348
  %165 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 0)
  %166 = getelementptr inbounds i8, ptr %165, i64 364
  %167 = load i8, ptr %166, align 4, !tbaa !124, !range !122, !noundef !123
  %168 = trunc nuw i8 %167 to i1
  br i1 %168, label %169, label %181

169:                                              ; preds = %.preheader621
  %170 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %165)
  br i1 %170, label %171, label %181

171:                                              ; preds = %169
  %172 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %165)
  br i1 %172, label %173, label %181

173:                                              ; preds = %171
  %174 = getelementptr inbounds i8, ptr %165, i64 96
  %175 = getelementptr inbounds i8, ptr %165, i64 332
  %176 = load i32, ptr %175, align 4, !tbaa !128
  %177 = getelementptr inbounds i8, ptr %165, i64 336
  %178 = load i32, ptr %177, align 8, !tbaa !129
  %179 = load float, ptr %163, align 4, !tbaa !132
  %180 = load float, ptr %164, align 4, !tbaa !133
  tail call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 8 dereferenceable(52) %174, ptr noundef nonnull align 4 dereferenceable(16) %110, i32 noundef %176, i32 noundef %178, float noundef %179, float noundef %180)
  br label %181

181:                                              ; preds = %173, %171, %169, %.preheader621
  %182 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 1)
  %183 = getelementptr inbounds i8, ptr %182, i64 364
  %184 = load i8, ptr %183, align 4, !tbaa !124, !range !122, !noundef !123
  %185 = trunc nuw i8 %184 to i1
  br i1 %185, label %186, label %198

186:                                              ; preds = %181
  %187 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %182)
  br i1 %187, label %188, label %198

188:                                              ; preds = %186
  %189 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %182)
  br i1 %189, label %190, label %198

190:                                              ; preds = %188
  %191 = getelementptr inbounds i8, ptr %182, i64 96
  %192 = getelementptr inbounds i8, ptr %182, i64 332
  %193 = load i32, ptr %192, align 4, !tbaa !128
  %194 = getelementptr inbounds i8, ptr %182, i64 336
  %195 = load i32, ptr %194, align 8, !tbaa !129
  %196 = load float, ptr %163, align 4, !tbaa !132
  %197 = load float, ptr %164, align 4, !tbaa !133
  tail call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 8 dereferenceable(52) %191, ptr noundef nonnull align 4 dereferenceable(16) %110, i32 noundef %193, i32 noundef %195, float noundef %196, float noundef %197)
  br label %198

198:                                              ; preds = %190, %188, %186, %181
  %199 = tail call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 2)
  %200 = getelementptr inbounds i8, ptr %199, i64 364
  %201 = load i8, ptr %200, align 4, !tbaa !124, !range !122, !noundef !123
  %202 = trunc nuw i8 %201 to i1
  br i1 %202, label %203, label %215

203:                                              ; preds = %198
  %204 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %199)
  br i1 %204, label %205, label %215

205:                                              ; preds = %203
  %206 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %199)
  br i1 %206, label %207, label %215

207:                                              ; preds = %205
  %208 = getelementptr inbounds i8, ptr %199, i64 96
  %209 = getelementptr inbounds i8, ptr %199, i64 332
  %210 = load i32, ptr %209, align 4, !tbaa !128
  %211 = getelementptr inbounds i8, ptr %199, i64 336
  %212 = load i32, ptr %211, align 8, !tbaa !129
  %213 = load float, ptr %163, align 4, !tbaa !132
  %214 = load float, ptr %164, align 4, !tbaa !133
  tail call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 8 dereferenceable(52) %208, ptr noundef nonnull align 4 dereferenceable(16) %110, i32 noundef %210, i32 noundef %212, float noundef %213, float noundef %214)
  br label %215

215:                                              ; preds = %207, %205, %203, %198
  %216 = tail call noundef zeroext i1 @_ZNK10ImPlotPlot8HasTitleEv(ptr noundef nonnull align 8 dereferenceable(2533) %78)
  br i1 %216, label %217, label %224

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

224:                                              ; preds = %217, %215
  %225 = getelementptr inbounds i8, ptr %78, i64 2472
  %226 = getelementptr inbounds i8, ptr %70, i64 320
  %227 = getelementptr inbounds i8, ptr %70, i64 312
  %228 = getelementptr inbounds i8, ptr %70, i64 328
  %.not593 = xor i1 %92, true
  br label %234

.preheader619:                                    ; preds = %316
  %229 = getelementptr inbounds i8, ptr %78, i64 2468
  %230 = getelementptr inbounds i8, ptr %78, i64 2476
  %231 = getelementptr inbounds i8, ptr %70, i64 324
  %232 = getelementptr inbounds i8, ptr %70, i64 316
  %233 = getelementptr inbounds i8, ptr %70, i64 332
  br label %329

234:                                              ; preds = %224, %316
  %.0547627 = phi i32 [ 0, %224 ], [ %.1, %316 ]
  %.0548626 = phi i32 [ 0, %224 ], [ %.1549, %316 ]
  %.0551625 = phi i32 [ 0, %224 ], [ %317, %316 ]
  %235 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef %.0551625)
  %236 = getelementptr inbounds i8, ptr %235, i64 364
  %237 = load i8, ptr %236, align 4, !tbaa !124, !range !122, !noundef !123
  %238 = trunc nuw i8 %237 to i1
  br i1 %238, label %239, label %316

239:                                              ; preds = %234
  %240 = getelementptr inbounds i8, ptr %235, i64 96
  %241 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %235)
  %242 = icmp sgt i32 %.0548626, 0
  %or.cond = select i1 %241, i1 %242, i1 false
  br i1 %or.cond, label %246, label %243

243:                                              ; preds = %239
  %244 = icmp sgt i32 %.0547627, 0
  %not.589 = xor i1 %241, true
  %245 = select i1 %not.589, i1 %244, i1 false
  br label %246

246:                                              ; preds = %239, %243
  %247 = phi i1 [ %245, %243 ], [ true, %239 ]
  %.fr = freeze i1 %247
  %248 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasTickMarksEv(ptr noundef nonnull align 8 dereferenceable(372) %235)
  br i1 %248, label %.preheader620, label %310

.preheader620:                                    ; preds = %246
  %249 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %240)
  %250 = icmp sgt i32 %249, 0
  br i1 %250, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader620
  %251 = getelementptr inbounds i8, ptr %235, i64 304
  %252 = getelementptr inbounds i8, ptr %235, i64 340
  br i1 %.fr, label %.lr.ph.split.us, label %.lr.ph.split

.lr.ph.split.us:                                  ; preds = %.lr.ph, %271
  %.0554624.us = phi i32 [ %272, %271 ], [ 0, %.lr.ph ]
  %253 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %240, i32 noundef %.0554624.us)
  %254 = getelementptr inbounds i8, ptr %253, i64 28
  %255 = load i32, ptr %254, align 4, !tbaa !135
  %.not590.us = icmp eq i32 %255, 0
  br i1 %.not590.us, label %256, label %271

256:                                              ; preds = %.lr.ph.split.us
  %257 = getelementptr inbounds i8, ptr %253, i64 8
  %258 = load float, ptr %257, align 8, !tbaa !137
  %259 = load float, ptr %110, align 8, !tbaa !138
  %260 = fcmp olt float %258, %259
  br i1 %260, label %271, label %261

261:                                              ; preds = %256
  %262 = load float, ptr %225, align 8, !tbaa !139
  %263 = fcmp ogt float %258, %262
  br i1 %263, label %271, label %.thread605.us

.thread605.us:                                    ; preds = %261
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #14
  %264 = load float, ptr %251, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef %258, float noundef %264)
  %265 = load float, ptr %227, align 4, !tbaa !141
  %266 = load float, ptr %228, align 4, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #14
  %267 = fneg float %265
  %268 = select i1 %241, float %265, float %267
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 0.000000e+00, float noundef %268)
  %269 = 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> %269, ptr %3, align 8
  %270 = load i32, ptr %252, align 4, !tbaa !142
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %2, ptr noundef nonnull align 4 dereferenceable(8) %3, i32 noundef %270, float noundef %266)
  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 %271

271:                                              ; preds = %.thread605.us, %261, %256, %.lr.ph.split.us
  %272 = add nuw nsw i32 %.0554624.us, 1
  %273 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %240)
  %274 = icmp slt i32 %272, %273
  br i1 %274, label %.lr.ph.split.us, label %._crit_edge, !llvm.loop !143

._crit_edge:                                      ; preds = %297, %271, %.preheader620
  %brmerge = select i1 %.fr, i1 true, i1 %.not593
  br i1 %brmerge, label %301, label %310

.lr.ph.split:                                     ; preds = %.lr.ph, %297
  %.0554624 = phi i32 [ %298, %297 ], [ 0, %.lr.ph ]
  %275 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %240, i32 noundef %.0554624)
  %276 = getelementptr inbounds i8, ptr %275, i64 28
  %277 = load i32, ptr %276, align 4, !tbaa !135
  %.not590 = icmp eq i32 %277, 0
  br i1 %.not590, label %278, label %297

278:                                              ; preds = %.lr.ph.split
  %279 = getelementptr inbounds i8, ptr %275, i64 8
  %280 = load float, ptr %279, align 8, !tbaa !137
  %281 = load float, ptr %110, align 8, !tbaa !138
  %282 = fcmp olt float %280, %281
  br i1 %282, label %297, label %283

283:                                              ; preds = %278
  %284 = load float, ptr %225, align 8, !tbaa !139
  %285 = fcmp ogt float %280, %284
  br i1 %285, label %297, label %286

286:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #14
  %287 = load float, ptr %251, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %2, float noundef %280, float noundef %287)
  %288 = getelementptr inbounds i8, ptr %275, i64 24
  %289 = load i8, ptr %288, align 8, !tbaa !145, !range !122, !noundef !123
  %290 = trunc nuw i8 %289 to i1
  %.in614.v = select i1 %290, i64 304, i64 312
  %.in614 = getelementptr inbounds i8, ptr %70, i64 %.in614.v
  %291 = load float, ptr %.in614, align 4, !tbaa !141
  %. = select i1 %290, ptr %226, ptr %228
  %292 = load float, ptr %., align 4, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #14
  %293 = fneg float %291
  %294 = select i1 %241, float %291, float %293
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 0.000000e+00, float noundef %294)
  %295 = 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> %295, ptr %3, align 8
  %296 = load i32, ptr %252, align 4, !tbaa !142
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %2, ptr noundef nonnull align 4 dereferenceable(8) %3, i32 noundef %296, float noundef %292)
  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 %297

297:                                              ; preds = %.lr.ph.split, %278, %283, %286
  %298 = add nuw nsw i32 %.0554624, 1
  %299 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %240)
  %300 = icmp slt i32 %298, %299
  br i1 %300, label %.lr.ph.split, label %._crit_edge, !llvm.loop !143

301:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #14
  %302 = load float, ptr %110, align 8, !tbaa !138
  %303 = getelementptr inbounds i8, ptr %235, i64 304
  %304 = load float, ptr %303, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef %302, float noundef %304)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #14
  %305 = load float, ptr %225, align 8, !tbaa !139
  %306 = load float, ptr %303, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef %305, float noundef %306)
  %307 = getelementptr inbounds i8, ptr %235, i64 340
  %308 = load i32, ptr %307, align 4, !tbaa !142
  %309 = load float, ptr %228, align 4, !tbaa !146
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %5, ptr noundef nonnull align 4 dereferenceable(8) %6, i32 noundef %308, float noundef %309)
  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 %310

310:                                              ; preds = %301, %._crit_edge, %246
  %311 = xor i1 %241, true
  %312 = zext i1 %311 to i32
  %313 = add nsw i32 %.0547627, %312
  %314 = zext i1 %241 to i32
  %315 = add nsw i32 %.0548626, %314
  br label %316

316:                                              ; preds = %234, %310
  %.1549 = phi i32 [ %315, %310 ], [ %.0548626, %234 ]
  %.1 = phi i32 [ %313, %310 ], [ %.0547627, %234 ]
  %317 = add nuw nsw i32 %.0551625, 1
  %exitcond.not = icmp eq i32 %317, 3
  br i1 %exitcond.not, label %.preheader619, label %234, !llvm.loop !147

318:                                              ; preds = %411
  call void @_ZN5ImGui11PopClipRectEv()
  call void @_ZN6ImPlot16PushPlotClipRectEf(float noundef 0.000000e+00)
  %319 = getelementptr inbounds i8, ptr %70, i64 208
  %320 = load i32, ptr %319, align 8, !tbaa !148
  %321 = icmp sgt i32 %320, 0
  br i1 %321, label %.lr.ph640, label %._crit_edge641

.lr.ph640:                                        ; preds = %318
  %322 = getelementptr inbounds i8, ptr %70, i64 176
  %323 = getelementptr inbounds i8, ptr %70, i64 400
  %324 = getelementptr inbounds i8, ptr %15, i64 4
  %325 = getelementptr inbounds i8, ptr %18, i64 8
  %326 = getelementptr inbounds i8, ptr %18, i64 16
  %327 = getelementptr inbounds i8, ptr %18, i64 24
  %328 = getelementptr inbounds i8, ptr %16, i64 8
  br label %416

329:                                              ; preds = %.preheader619, %411
  %.0556634 = phi i32 [ 0, %.preheader619 ], [ %.1557, %411 ]
  %.0558633 = phi i32 [ 0, %.preheader619 ], [ %.1559, %411 ]
  %.0560632 = phi i32 [ 0, %.preheader619 ], [ %412, %411 ]
  %330 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef %.0560632)
  %331 = getelementptr inbounds i8, ptr %330, i64 364
  %332 = load i8, ptr %331, align 4, !tbaa !124, !range !122, !noundef !123
  %333 = trunc nuw i8 %332 to i1
  br i1 %333, label %334, label %411

334:                                              ; preds = %329
  %335 = getelementptr inbounds i8, ptr %330, i64 96
  %336 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %330)
  %337 = icmp sgt i32 %.0558633, 0
  %or.cond4 = select i1 %336, i1 %337, i1 false
  br i1 %or.cond4, label %341, label %338

338:                                              ; preds = %334
  %339 = icmp sgt i32 %.0556634, 0
  %not. = xor i1 %336, true
  %340 = select i1 %not., i1 %339, i1 false
  br label %341

341:                                              ; preds = %334, %338
  %342 = phi i1 [ %340, %338 ], [ true, %334 ]
  %.fr631 = freeze i1 %342
  %343 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasTickMarksEv(ptr noundef nonnull align 8 dereferenceable(372) %330)
  br i1 %343, label %.preheader618, label %405

.preheader618:                                    ; preds = %341
  %344 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %335)
  %345 = icmp sgt i32 %344, 0
  br i1 %345, label %.lr.ph629, label %._crit_edge630

.lr.ph629:                                        ; preds = %.preheader618
  %346 = getelementptr inbounds i8, ptr %330, i64 304
  %347 = getelementptr inbounds i8, ptr %330, i64 340
  br i1 %.fr631, label %.lr.ph629.split.us, label %.lr.ph629.split

.lr.ph629.split.us:                               ; preds = %.lr.ph629, %366
  %.0561628.us = phi i32 [ %367, %366 ], [ 0, %.lr.ph629 ]
  %348 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %335, i32 noundef %.0561628.us)
  %349 = getelementptr inbounds i8, ptr %348, i64 28
  %350 = load i32, ptr %349, align 4, !tbaa !135
  %.not587.us = icmp eq i32 %350, 0
  br i1 %.not587.us, label %351, label %366

351:                                              ; preds = %.lr.ph629.split.us
  %352 = getelementptr inbounds i8, ptr %348, i64 8
  %353 = load float, ptr %352, align 8, !tbaa !137
  %354 = load float, ptr %229, align 4, !tbaa !149
  %355 = fcmp olt float %353, %354
  br i1 %355, label %366, label %356

356:                                              ; preds = %351
  %357 = load float, ptr %230, align 4, !tbaa !150
  %358 = fcmp ogt float %353, %357
  br i1 %358, label %366, label %.thread608.us

.thread608.us:                                    ; preds = %356
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #14
  %359 = load float, ptr %346, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef %359, float noundef %353)
  %360 = load float, ptr %232, align 4, !tbaa !141
  %361 = load float, ptr %233, align 4, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %362 = fneg float %360
  %363 = select i1 %336, float %362, float %360
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %363, float noundef 0.000000e+00)
  %364 = 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> %364, ptr %8, align 8
  %365 = load i32, ptr %347, align 4, !tbaa !142
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %8, i32 noundef %365, float noundef %361)
  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 %366

366:                                              ; preds = %.thread608.us, %356, %351, %.lr.ph629.split.us
  %367 = add nuw nsw i32 %.0561628.us, 1
  %368 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %335)
  %369 = icmp slt i32 %367, %368
  br i1 %369, label %.lr.ph629.split.us, label %._crit_edge630, !llvm.loop !151

._crit_edge630:                                   ; preds = %392, %366, %.preheader618
  %brmerge595 = select i1 %.fr631, i1 true, i1 %.not593
  br i1 %brmerge595, label %396, label %405

.lr.ph629.split:                                  ; preds = %.lr.ph629, %392
  %.0561628 = phi i32 [ %393, %392 ], [ 0, %.lr.ph629 ]
  %370 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %335, i32 noundef %.0561628)
  %371 = getelementptr inbounds i8, ptr %370, i64 28
  %372 = load i32, ptr %371, align 4, !tbaa !135
  %.not587 = icmp eq i32 %372, 0
  br i1 %.not587, label %373, label %392

373:                                              ; preds = %.lr.ph629.split
  %374 = getelementptr inbounds i8, ptr %370, i64 8
  %375 = load float, ptr %374, align 8, !tbaa !137
  %376 = load float, ptr %229, align 4, !tbaa !149
  %377 = fcmp olt float %375, %376
  br i1 %377, label %392, label %378

378:                                              ; preds = %373
  %379 = load float, ptr %230, align 4, !tbaa !150
  %380 = fcmp ogt float %375, %379
  br i1 %380, label %392, label %381

381:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #14
  %382 = load float, ptr %346, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef %382, float noundef %375)
  %383 = getelementptr inbounds i8, ptr %370, i64 24
  %384 = load i8, ptr %383, align 8, !tbaa !145, !range !122, !noundef !123
  %385 = trunc nuw i8 %384 to i1
  %.in.v = select i1 %385, i64 308, i64 316
  %.in = getelementptr inbounds i8, ptr %70, i64 %.in.v
  %386 = load float, ptr %.in, align 4, !tbaa !141
  %.663 = select i1 %385, ptr %231, ptr %233
  %387 = load float, ptr %.663, align 4, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %388 = fneg float %386
  %389 = select i1 %336, float %388, float %386
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %389, float noundef 0.000000e+00)
  %390 = 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> %390, ptr %8, align 8
  %391 = load i32, ptr %347, align 4, !tbaa !142
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %7, ptr noundef nonnull align 4 dereferenceable(8) %8, i32 noundef %391, float noundef %387)
  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 %392

392:                                              ; preds = %.lr.ph629.split, %373, %378, %381
  %393 = add nuw nsw i32 %.0561628, 1
  %394 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %335)
  %395 = icmp slt i32 %393, %394
  br i1 %395, label %.lr.ph629.split, label %._crit_edge630, !llvm.loop !151

396:                                              ; preds = %._crit_edge630
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  %397 = getelementptr inbounds i8, ptr %330, i64 304
  %398 = load float, ptr %397, align 8, !tbaa !140
  %399 = load float, ptr %229, align 4, !tbaa !149
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %398, float noundef %399)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #14
  %400 = load float, ptr %397, align 8, !tbaa !140
  %401 = load float, ptr %230, align 4, !tbaa !150
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef %400, float noundef %401)
  %402 = getelementptr inbounds i8, ptr %330, i64 340
  %403 = load i32, ptr %402, align 4, !tbaa !142
  %404 = load float, ptr %233, align 4, !tbaa !152
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %11, i32 noundef %403, float noundef %404)
  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 %405

405:                                              ; preds = %396, %._crit_edge630, %341
  %406 = xor i1 %336, true
  %407 = zext i1 %406 to i32
  %408 = add nsw i32 %.0556634, %407
  %409 = zext i1 %336 to i32
  %410 = add nsw i32 %.0558633, %409
  br label %411

411:                                              ; preds = %329, %405
  %.1559 = phi i32 [ %410, %405 ], [ %.0558633, %329 ]
  %.1557 = phi i32 [ %408, %405 ], [ %.0556634, %329 ]
  %412 = add nuw nsw i32 %.0560632, 1
  %exitcond666.not = icmp eq i32 %412, 3
  br i1 %exitcond666.not, label %318, label %329, !llvm.loop !153

._crit_edge641:                                   ; preds = %492, %318
  %413 = getelementptr inbounds i8, ptr %78, i64 2531
  %414 = load i8, ptr %413, align 1, !tbaa !154, !range !122, !noundef !123
  %415 = trunc nuw i8 %414 to i1
  br i1 %415, label %501, label %510

416:                                              ; preds = %.lr.ph640, %492
  %.0562638 = phi i32 [ 0, %.lr.ph640 ], [ %498, %492 ]
  %417 = call noundef ptr @_ZN26ImPlotAnnotationCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36) %322, i32 noundef %.0562638)
  %418 = call noundef nonnull align 4 dereferenceable(29) ptr @_ZN8ImVectorI16ImPlotAnnotationEixEi(ptr noundef nonnull align 8 dereferenceable(16) %322, i32 noundef %.0562638)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #14
  %419 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %417, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %419, 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
  %420 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %323, float noundef 2.000000e+00)
  store <2 x float> %420, ptr %14, align 8
  %421 = 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> %421, 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
  %422 = load i64, ptr %418, align 4
  store i64 %422, ptr %15, align 8
  %423 = getelementptr inbounds i8, ptr %418, i64 8
  %424 = load float, ptr %423, align 4, !tbaa !155
  %425 = fcmp oeq float %424, 0.000000e+00
  %426 = extractelement <2 x float> %421, i64 0
  %427 = trunc i64 %422 to i32
  %428 = bitcast i32 %427 to float
  %429 = extractelement <2 x float> %421, i64 1
  %430 = lshr i64 %422, 32
  %431 = trunc nuw i64 %430 to i32
  %432 = bitcast i32 %431 to float
  br i1 %425, label %433, label %436

433:                                              ; preds = %416
  %434 = fmul float %426, 5.000000e-01
  %435 = fsub float %428, %434
  store float %435, ptr %15, align 8, !tbaa !157
  br label %443

436:                                              ; preds = %416
  %437 = fcmp ogt float %424, 0.000000e+00
  br i1 %437, label %438, label %440

438:                                              ; preds = %436
  %439 = fadd float %424, %428
  store float %439, ptr %15, align 8, !tbaa !157
  br label %443

440:                                              ; preds = %436
  %441 = fsub float %426, %424
  %442 = fsub float %428, %441
  store float %442, ptr %15, align 8, !tbaa !157
  br label %443

443:                                              ; preds = %438, %440, %433
  %444 = getelementptr inbounds i8, ptr %418, i64 12
  %445 = load float, ptr %444, align 4, !tbaa !158
  %446 = fcmp oeq float %445, 0.000000e+00
  br i1 %446, label %447, label %450

447:                                              ; preds = %443
  %448 = fmul float %429, 5.000000e-01
  %449 = fsub float %432, %448
  br label %457

450:                                              ; preds = %443
  %451 = fcmp ogt float %445, 0.000000e+00
  br i1 %451, label %452, label %454

452:                                              ; preds = %450
  %453 = fadd float %445, %432
  br label %457

454:                                              ; preds = %450
  %455 = fsub float %429, %445
  %456 = fsub float %432, %455
  br label %457

457:                                              ; preds = %452, %454, %447
  %.sink = phi float [ %453, %452 ], [ %456, %454 ], [ %449, %447 ]
  store float %.sink, ptr %324, align 4, !tbaa !159
  %458 = getelementptr inbounds i8, ptr %418, i64 28
  %459 = load i8, ptr %458, align 4, !tbaa !160, !range !122, !noundef !123
  %460 = trunc nuw i8 %459 to i1
  br i1 %460, label %461, label %463

461:                                              ; preds = %457
  %.sroa.0218.0.copyload = load <2 x float>, ptr %15, align 8
  %462 = 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) %110, ptr noundef nonnull align 4 dereferenceable(8) %225)
  store <2 x float> %462, ptr %15, align 8
  br label %463

463:                                              ; preds = %461, %457
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  %464 = 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> %464, 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
  %465 = load float, ptr %423, align 4, !tbaa !155
  %466 = fcmp une float %465, 0.000000e+00
  %467 = load float, ptr %444, align 4
  %468 = fcmp une float %467, 0.000000e+00
  %or.cond597 = select i1 %466, i1 true, i1 %468
  br i1 %or.cond597, label %469, label %492

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

492:                                              ; preds = %463, %469
  %493 = getelementptr inbounds i8, ptr %418, i64 16
  %494 = load i32, ptr %493, align 4, !tbaa !161
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %16, ptr noundef nonnull align 4 dereferenceable(8) %328, i32 noundef %494, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #14
  %495 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(8) %323)
  store <2 x float> %495, ptr %20, align 8
  %496 = getelementptr inbounds i8, ptr %418, i64 20
  %497 = load i32, ptr %496, align 4, !tbaa !162
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %20, i32 noundef %497, ptr noundef %417, 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
  %498 = add nuw nsw i32 %.0562638, 1
  %499 = load i32, ptr %319, align 8, !tbaa !148
  %500 = icmp slt i32 %498, %499
  br i1 %500, label %416, label %._crit_edge641, !llvm.loop !163

501:                                              ; preds = %._crit_edge641
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #14
  %502 = getelementptr inbounds i8, ptr %78, i64 2496
  %503 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %502, ptr noundef nonnull align 4 dereferenceable(8) %110)
  store <2 x float> %503, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #14
  %504 = getelementptr inbounds i8, ptr %78, i64 2504
  %505 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %504, ptr noundef nonnull align 4 dereferenceable(8) %110)
  store <2 x float> %505, ptr %22, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #14
  %506 = call { <2 x float>, <2 x float> } @_ZN6ImPlotL17GetStyleColorVec4Ei(i32 noundef 19)
  %507 = extractvalue { <2 x float>, <2 x float> } %506, 0
  store <2 x float> %507, ptr %23, align 8
  %508 = getelementptr inbounds i8, ptr %23, i64 8
  %509 = extractvalue { <2 x float>, <2 x float> } %506, 1
  store <2 x float> %509, ptr %508, align 8
  call void @_ZN6ImPlotL19RenderSelectionRectER10ImDrawListRK6ImVec2S4_RK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %82, 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 %510

510:                                              ; preds = %501, %._crit_edge641
  %511 = getelementptr inbounds i8, ptr %78, i64 4
  %512 = load i32, ptr %511, align 4, !tbaa !164
  %513 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %512, i32 noundef 512)
  br i1 %513, label %514, label %537

514:                                              ; preds = %510
  %515 = getelementptr inbounds i8, ptr %78, i64 2528
  %516 = load i8, ptr %515, align 8, !tbaa !165, !range !122, !noundef !123
  %517 = trunc nuw i8 %516 to i1
  %.not598 = xor i1 %517, true
  %brmerge599 = or i1 %101, %.not598
  %brmerge600 = or i1 %107, %brmerge599
  br i1 %brmerge600, label %537, label %518

518:                                              ; preds = %514
  %519 = getelementptr inbounds i8, ptr %78, i64 2530
  %520 = load i8, ptr %519, align 2, !tbaa !166, !range !122, !noundef !123
  %521 = trunc nuw i8 %520 to i1
  br i1 %521, label %537, label %522

522:                                              ; preds = %518
  %523 = getelementptr inbounds i8, ptr %78, i64 2368
  %524 = load i8, ptr %523, align 8, !tbaa !167, !range !122, !noundef !123
  %525 = trunc nuw i8 %524 to i1
  br i1 %525, label %537, label %526

526:                                              ; preds = %522
  call void @_ZN5ImGui14SetMouseCursorEi(i32 noundef -1)
  %527 = getelementptr inbounds i8, ptr %83, i64 3584
  %.sroa.0.0.copyload = load float, ptr %527, align 8, !tbaa !141
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %83, i64 3588
  %.sroa.9.0.copyload = load float, ptr %.sroa.9.0..sroa_idx, align 4, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #14
  %528 = load float, ptr %110, align 8, !tbaa !138
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef %528, float noundef %.sroa.9.0.copyload)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #14
  %529 = fadd float %.sroa.0.0.copyload, -5.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %25, float noundef %529, float noundef %.sroa.9.0.copyload)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #14
  %530 = fadd float %.sroa.0.0.copyload, 5.000000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef %530, float noundef %.sroa.9.0.copyload)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #14
  %531 = load float, ptr %225, align 8, !tbaa !139
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef %531, float noundef %.sroa.9.0.copyload)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #14
  %532 = load float, ptr %229, align 4, !tbaa !149
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %28, float noundef %.sroa.0.0.copyload, float noundef %532)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  %533 = 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 %533)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #14
  %534 = 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 %534)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  %535 = load float, ptr %230, align 4, !tbaa !150
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %31, float noundef %.sroa.0.0.copyload, float noundef %535)
  %536 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 20)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(8) %25, i32 noundef %536, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %27, i32 noundef %536, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %29, i32 noundef %536, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %30, ptr noundef nonnull align 4 dereferenceable(8) %31, i32 noundef %536, 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 %537

537:                                              ; preds = %514, %526, %522, %518, %510
  %538 = load i32, ptr %511, align 4, !tbaa !164
  %539 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %538, i32 noundef 4)
  br i1 %539, label %614, label %540

540:                                              ; preds = %537
  %541 = getelementptr inbounds i8, ptr %78, i64 2528
  %542 = load i8, ptr %541, align 8, !tbaa !165, !range !122, !noundef !123
  %543 = trunc nuw i8 %542 to i1
  br i1 %543, label %.peel.begin, label %544

544:                                              ; preds = %540
  %545 = getelementptr inbounds i8, ptr %78, i64 16
  %546 = load i32, ptr %545, align 8, !tbaa !168
  %547 = call noundef zeroext i1 @_ZL9ImHasFlagIi21ImPlotMouseTextFlags_EbT_T0_(i32 noundef %546, i32 noundef 4)
  br i1 %547, label %.peel.begin, label %614

.peel.begin:                                      ; preds = %544, %540
  %548 = getelementptr inbounds i8, ptr %78, i64 16
  %549 = load i32, ptr %548, align 8, !tbaa !168
  %550 = call noundef zeroext i1 @_ZL9ImHasFlagIi21ImPlotMouseTextFlags_EbT_T0_(i32 noundef %549, i32 noundef 1)
  %551 = load i32, ptr %548, align 8, !tbaa !168
  %552 = call noundef zeroext i1 @_ZL9ImHasFlagIi21ImPlotMouseTextFlags_EbT_T0_(i32 noundef %551, i32 noundef 2)
  %553 = getelementptr inbounds i8, ptr %70, i64 1520
  call void @_ZN8ImVectorIcE6shrinkEi(ptr noundef nonnull align 8 dereferenceable(16) %553, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #14
  %554 = select i1 %550, i32 1, i32 3
  %555 = getelementptr inbounds i8, ptr %83, i64 3584
  %556 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 0)
  %557 = getelementptr inbounds i8, ptr %556, i64 364
  %558 = load i8, ptr %557, align 4, !tbaa !124, !range !122, !noundef !123
  %559 = trunc nuw i8 %558 to i1
  br i1 %559, label %._crit_edge685, label %565

._crit_edge685:                                   ; preds = %.peel.begin
  %.pre686 = load float, ptr %555, align 8, !tbaa !169
  %560 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %556, float noundef %.pre686)
  br i1 %552, label %562, label %561

561:                                              ; preds = %._crit_edge685
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %556, double noundef %560, ptr noundef nonnull %32, i32 noundef 32, i1 noundef zeroext true)
  br label %564

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

564:                                              ; preds = %562, %561
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %553, ptr noundef nonnull %32, ptr noundef null)
  br label %565

565:                                              ; preds = %564, %.peel.begin
  br i1 %550, label %.peel.begin672, label %.peel.next

.peel.begin672:                                   ; preds = %588, %565
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %553, ptr noundef nonnull @.str.152, ptr noundef null)
  %566 = getelementptr inbounds i8, ptr %83, i64 3588
  %567 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 0)
  %568 = getelementptr inbounds i8, ptr %567, i64 364
  %569 = load i8, ptr %568, align 4, !tbaa !124, !range !122, !noundef !123
  %570 = trunc nuw i8 %569 to i1
  br i1 %570, label %._crit_edge689, label %576

._crit_edge689:                                   ; preds = %.peel.begin672
  %.pre690 = load float, ptr %566, align 4, !tbaa !170
  %571 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %567, float noundef %.pre690)
  br i1 %552, label %573, label %572

572:                                              ; preds = %._crit_edge689
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %567, double noundef %571, ptr noundef nonnull %32, i32 noundef 32, i1 noundef zeroext true)
  br label %575

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

575:                                              ; preds = %573, %572
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %553, ptr noundef nonnull %32, ptr noundef null)
  br label %576

576:                                              ; preds = %575, %.peel.begin672
  br i1 %550, label %.loopexit676, label %.peel.next673

.peel.next:                                       ; preds = %565, %588
  %.0569642 = phi i32 [ %589, %588 ], [ 1, %565 ]
  %577 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef %.0569642)
  %578 = getelementptr inbounds i8, ptr %577, i64 364
  %579 = load i8, ptr %578, align 4, !tbaa !124, !range !122, !noundef !123
  %580 = trunc nuw i8 %579 to i1
  br i1 %580, label %581, label %588

581:                                              ; preds = %.peel.next
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %553, ptr noundef nonnull @.str.150, ptr noundef null)
  %582 = load float, ptr %555, align 8, !tbaa !169
  %583 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %577, float noundef %582)
  br i1 %552, label %584, label %586

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

586:                                              ; preds = %581
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %577, double noundef %583, ptr noundef nonnull %32, i32 noundef 32, i1 noundef zeroext true)
  br label %587

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

588:                                              ; preds = %587, %.peel.next
  %589 = add nuw nsw i32 %.0569642, 1
  %exitcond669.not = icmp eq i32 %589, %554
  br i1 %exitcond669.not, label %.peel.begin672, label %.peel.next, !llvm.loop !171

.loopexit676:                                     ; preds = %602, %576
  %590 = call noundef zeroext i1 @_ZNK15ImGuiTextBuffer5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %553)
  br i1 %590, label %613, label %604

.peel.next673:                                    ; preds = %576, %602
  %.0570643 = phi i32 [ %603, %602 ], [ 1, %576 ]
  %591 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef %.0570643)
  %592 = getelementptr inbounds i8, ptr %591, i64 364
  %593 = load i8, ptr %592, align 4, !tbaa !124, !range !122, !noundef !123
  %594 = trunc nuw i8 %593 to i1
  br i1 %594, label %595, label %602

595:                                              ; preds = %.peel.next673
  call void @_ZN15ImGuiTextBuffer6appendEPKcS1_(ptr noundef nonnull align 8 dereferenceable(16) %553, ptr noundef nonnull @.str.150, ptr noundef null)
  %596 = load float, ptr %566, align 4, !tbaa !170
  %597 = call noundef double @_ZNK10ImPlotAxis12PixelsToPlotEf(ptr noundef nonnull align 8 dereferenceable(372) %591, float noundef %596)
  br i1 %552, label %598, label %600

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

600:                                              ; preds = %595
  call void @_ZN6ImPlot14LabelAxisValueERK10ImPlotAxisdPcib(ptr noundef nonnull align 8 dereferenceable(372) %591, double noundef %597, ptr noundef nonnull %32, i32 noundef 32, i1 noundef zeroext true)
  br label %601

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

602:                                              ; preds = %601, %.peel.next673
  %603 = add nuw nsw i32 %.0570643, 1
  %exitcond671.not = icmp eq i32 %603, %554
  br i1 %exitcond671.not, label %.loopexit676, label %.peel.next673, !llvm.loop !173

604:                                              ; preds = %.loopexit676
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #14
  %605 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %553)
  %606 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %605, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %606, ptr %33, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  %607 = getelementptr inbounds i8, ptr %78, i64 12
  %608 = load i32, ptr %607, align 4, !tbaa !174
  %609 = getelementptr inbounds i8, ptr %70, i64 392
  %610 = call <2 x float> @_ZN6ImPlot14GetLocationPosERK6ImRectRK6ImVec2iS5_(ptr noundef nonnull align 4 dereferenceable(16) %110, ptr noundef nonnull align 4 dereferenceable(8) %33, i32 noundef %608, ptr noundef nonnull align 4 dereferenceable(8) %609)
  store <2 x float> %610, ptr %34, align 8
  %611 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 12)
  %612 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %553)
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %34, i32 noundef %611, ptr noundef %612, 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 %613

613:                                              ; preds = %604, %.loopexit676
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #14
  br label %614

614:                                              ; preds = %613, %544, %537
  call void @_ZN6ImPlot15PopPlotClipRectEv()
  %615 = load i8, ptr %93, align 1, !tbaa !116, !range !122, !noundef !123
  %616 = trunc nuw i8 %615 to i1
  br i1 %616, label %961, label %617

617:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  %618 = call noundef nonnull align 8 dereferenceable(14280) ptr @_ZN5ImGui5GetIOEv()
  %619 = getelementptr inbounds i8, ptr %618, i64 3584
  %620 = load i64, ptr %619, align 8
  store i64 %620, 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) %110, i64 16, i1 false), !tbaa.struct !175
  call void @_ZN6ImRect6ExpandEf(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef -1.000000e+01)
  %621 = getelementptr inbounds i8, ptr %35, i64 4
  %622 = getelementptr inbounds i8, ptr %37, i64 8
  %623 = getelementptr inbounds i8, ptr %38, i64 8
  %624 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 0)
  %625 = getelementptr inbounds i8, ptr %624, i64 4
  %626 = load i32, ptr %625, align 4, !tbaa !176
  %627 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %626, i32 noundef 64)
  br i1 %627, label %679, label %628

628:                                              ; preds = %617
  %629 = getelementptr inbounds i8, ptr %624, i64 371
  %630 = load i8, ptr %629, align 1, !tbaa !177, !range !122, !noundef !123
  %631 = trunc nuw i8 %630 to i1
  br i1 %631, label %632, label %679

632:                                              ; preds = %628
  %633 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %110, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %633, label %634, label %679

634:                                              ; preds = %632
  %635 = load i32, ptr %625, align 4, !tbaa !176
  %636 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %635, i32 noundef 256)
  br i1 %636, label %658, label %637

637:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #14
  %638 = load float, ptr %110, align 8, !tbaa !138
  %639 = fadd float %638, -5.000000e+00
  %640 = load float, ptr %229, align 4, !tbaa !149
  %641 = fadd float %640, -5.000000e+00
  %642 = load float, ptr %225, align 8, !tbaa !139
  %643 = fadd float %642, 5.000000e+00
  %644 = fadd float %640, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %37, float noundef %639, float noundef %641, float noundef %643, float noundef %644)
  %645 = load float, ptr %621, align 4, !tbaa !159
  %646 = load float, ptr %230, align 4, !tbaa !150
  %647 = fadd float %646, -1.000000e+01
  %648 = fcmp olt float %645, %647
  br i1 %648, label %649, label %652

649:                                              ; preds = %637
  %650 = getelementptr inbounds i8, ptr %624, i64 352
  %651 = load i32, ptr %650, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %622, i32 noundef %651, float noundef 0.000000e+00, i32 noundef 0)
  br label %652

652:                                              ; preds = %649, %637
  %653 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %653, label %654, label %657

654:                                              ; preds = %652
  %655 = load i32, ptr %625, align 4, !tbaa !176
  %656 = or i32 %655, 256
  store i32 %656, ptr %625, align 4, !tbaa !176
  br label %657

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

658:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #14
  %659 = load float, ptr %110, align 8, !tbaa !138
  %660 = fadd float %659, -5.000000e+00
  %661 = load float, ptr %230, align 4, !tbaa !150
  %662 = fadd float %661, -5.000000e+00
  %663 = load float, ptr %225, align 8, !tbaa !139
  %664 = fadd float %663, 5.000000e+00
  %665 = fadd float %661, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %38, float noundef %660, float noundef %662, float noundef %664, float noundef %665)
  %666 = load float, ptr %621, align 4, !tbaa !159
  %667 = load float, ptr %229, align 4, !tbaa !149
  %668 = fadd float %667, 1.000000e+01
  %669 = fcmp ogt float %666, %668
  br i1 %669, label %670, label %673

670:                                              ; preds = %658
  %671 = getelementptr inbounds i8, ptr %624, i64 352
  %672 = load i32, ptr %671, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %623, i32 noundef %672, float noundef 0.000000e+00, i32 noundef 0)
  br label %673

673:                                              ; preds = %670, %658
  %674 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %38, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %674, label %675, label %678

675:                                              ; preds = %673
  %676 = load i32, ptr %625, align 4, !tbaa !176
  %677 = and i32 %676, -257
  store i32 %677, ptr %625, align 4, !tbaa !176
  br label %678

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

679:                                              ; preds = %628, %632, %678, %657, %617
  %680 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 1)
  %681 = getelementptr inbounds i8, ptr %680, i64 4
  %682 = load i32, ptr %681, align 4, !tbaa !176
  %683 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %682, i32 noundef 64)
  br i1 %683, label %735, label %684

684:                                              ; preds = %679
  %685 = getelementptr inbounds i8, ptr %680, i64 371
  %686 = load i8, ptr %685, align 1, !tbaa !177, !range !122, !noundef !123
  %687 = trunc nuw i8 %686 to i1
  br i1 %687, label %688, label %735

688:                                              ; preds = %684
  %689 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %110, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %689, label %690, label %735

690:                                              ; preds = %688
  %691 = load i32, ptr %681, align 4, !tbaa !176
  %692 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %691, i32 noundef 256)
  br i1 %692, label %714, label %693

693:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #14
  %694 = load float, ptr %110, align 8, !tbaa !138
  %695 = fadd float %694, -5.000000e+00
  %696 = load float, ptr %229, align 4, !tbaa !149
  %697 = fadd float %696, -5.000000e+00
  %698 = load float, ptr %225, align 8, !tbaa !139
  %699 = fadd float %698, 5.000000e+00
  %700 = fadd float %696, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %37, float noundef %695, float noundef %697, float noundef %699, float noundef %700)
  %701 = load float, ptr %621, align 4, !tbaa !159
  %702 = load float, ptr %230, align 4, !tbaa !150
  %703 = fadd float %702, -1.000000e+01
  %704 = fcmp olt float %701, %703
  br i1 %704, label %705, label %708

705:                                              ; preds = %693
  %706 = getelementptr inbounds i8, ptr %680, i64 352
  %707 = load i32, ptr %706, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %622, i32 noundef %707, float noundef 0.000000e+00, i32 noundef 0)
  br label %708

708:                                              ; preds = %705, %693
  %709 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %709, label %710, label %713

710:                                              ; preds = %708
  %711 = load i32, ptr %681, align 4, !tbaa !176
  %712 = or i32 %711, 256
  store i32 %712, ptr %681, align 4, !tbaa !176
  br label %713

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

714:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #14
  %715 = load float, ptr %110, align 8, !tbaa !138
  %716 = fadd float %715, -5.000000e+00
  %717 = load float, ptr %230, align 4, !tbaa !150
  %718 = fadd float %717, -5.000000e+00
  %719 = load float, ptr %225, align 8, !tbaa !139
  %720 = fadd float %719, 5.000000e+00
  %721 = fadd float %717, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %38, float noundef %716, float noundef %718, float noundef %720, float noundef %721)
  %722 = load float, ptr %621, align 4, !tbaa !159
  %723 = load float, ptr %229, align 4, !tbaa !149
  %724 = fadd float %723, 1.000000e+01
  %725 = fcmp ogt float %722, %724
  br i1 %725, label %726, label %729

726:                                              ; preds = %714
  %727 = getelementptr inbounds i8, ptr %680, i64 352
  %728 = load i32, ptr %727, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %623, i32 noundef %728, float noundef 0.000000e+00, i32 noundef 0)
  br label %729

729:                                              ; preds = %726, %714
  %730 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %38, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %730, label %731, label %734

731:                                              ; preds = %729
  %732 = load i32, ptr %681, align 4, !tbaa !176
  %733 = and i32 %732, -257
  store i32 %733, ptr %681, align 4, !tbaa !176
  br label %734

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

735:                                              ; preds = %734, %713, %688, %684, %679
  %736 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 2)
  %737 = getelementptr inbounds i8, ptr %736, i64 4
  %738 = load i32, ptr %737, align 4, !tbaa !176
  %739 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %738, i32 noundef 64)
  br i1 %739, label %.preheader617, label %740

740:                                              ; preds = %735
  %741 = getelementptr inbounds i8, ptr %736, i64 371
  %742 = load i8, ptr %741, align 1, !tbaa !177, !range !122, !noundef !123
  %743 = trunc nuw i8 %742 to i1
  br i1 %743, label %744, label %.preheader617

744:                                              ; preds = %740
  %745 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %110, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %745, label %746, label %.preheader617

746:                                              ; preds = %744
  %747 = load i32, ptr %737, align 4, !tbaa !176
  %748 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %747, i32 noundef 256)
  br i1 %748, label %770, label %749

749:                                              ; preds = %746
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #14
  %750 = load float, ptr %110, align 8, !tbaa !138
  %751 = fadd float %750, -5.000000e+00
  %752 = load float, ptr %229, align 4, !tbaa !149
  %753 = fadd float %752, -5.000000e+00
  %754 = load float, ptr %225, align 8, !tbaa !139
  %755 = fadd float %754, 5.000000e+00
  %756 = fadd float %752, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %37, float noundef %751, float noundef %753, float noundef %755, float noundef %756)
  %757 = load float, ptr %621, align 4, !tbaa !159
  %758 = load float, ptr %230, align 4, !tbaa !150
  %759 = fadd float %758, -1.000000e+01
  %760 = fcmp olt float %757, %759
  br i1 %760, label %761, label %764

761:                                              ; preds = %749
  %762 = getelementptr inbounds i8, ptr %736, i64 352
  %763 = load i32, ptr %762, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %622, i32 noundef %763, float noundef 0.000000e+00, i32 noundef 0)
  br label %764

764:                                              ; preds = %761, %749
  %765 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %765, label %766, label %769

766:                                              ; preds = %764
  %767 = load i32, ptr %737, align 4, !tbaa !176
  %768 = or i32 %767, 256
  store i32 %768, ptr %737, align 4, !tbaa !176
  br label %769

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

770:                                              ; preds = %746
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #14
  %771 = load float, ptr %110, align 8, !tbaa !138
  %772 = fadd float %771, -5.000000e+00
  %773 = load float, ptr %230, align 4, !tbaa !150
  %774 = fadd float %773, -5.000000e+00
  %775 = load float, ptr %225, align 8, !tbaa !139
  %776 = fadd float %775, 5.000000e+00
  %777 = fadd float %773, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %38, float noundef %772, float noundef %774, float noundef %776, float noundef %777)
  %778 = load float, ptr %621, align 4, !tbaa !159
  %779 = load float, ptr %229, align 4, !tbaa !149
  %780 = fadd float %779, 1.000000e+01
  %781 = fcmp ogt float %778, %780
  br i1 %781, label %782, label %785

782:                                              ; preds = %770
  %783 = getelementptr inbounds i8, ptr %736, i64 352
  %784 = load i32, ptr %783, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %38, ptr noundef nonnull align 4 dereferenceable(8) %623, i32 noundef %784, float noundef 0.000000e+00, i32 noundef 0)
  br label %785

785:                                              ; preds = %782, %770
  %786 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %38, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %786, label %787, label %790

787:                                              ; preds = %785
  %788 = load i32, ptr %737, align 4, !tbaa !176
  %789 = and i32 %788, -257
  store i32 %789, ptr %737, align 4, !tbaa !176
  br label %790

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

.preheader617:                                    ; preds = %790, %769, %744, %740, %735
  %791 = getelementptr inbounds i8, ptr %39, i64 8
  %792 = getelementptr inbounds i8, ptr %40, i64 8
  %793 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 0)
  %794 = getelementptr inbounds i8, ptr %793, i64 4
  %795 = load i32, ptr %794, align 4, !tbaa !176
  %796 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %795, i32 noundef 64)
  br i1 %796, label %848, label %797

797:                                              ; preds = %.preheader617
  %798 = getelementptr inbounds i8, ptr %793, i64 371
  %799 = load i8, ptr %798, align 1, !tbaa !177, !range !122, !noundef !123
  %800 = trunc nuw i8 %799 to i1
  br i1 %800, label %801, label %848

801:                                              ; preds = %797
  %802 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %110, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %802, label %803, label %848

803:                                              ; preds = %801
  %804 = load i32, ptr %794, align 4, !tbaa !176
  %805 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %804, i32 noundef 256)
  br i1 %805, label %827, label %806

806:                                              ; preds = %803
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #14
  %807 = load float, ptr %225, align 8, !tbaa !139
  %808 = fadd float %807, -5.000000e+00
  %809 = load float, ptr %229, align 4, !tbaa !149
  %810 = fadd float %809, -5.000000e+00
  %811 = fadd float %807, 5.000000e+00
  %812 = load float, ptr %230, align 4, !tbaa !150
  %813 = fadd float %812, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %39, float noundef %808, float noundef %810, float noundef %811, float noundef %813)
  %814 = load float, ptr %35, align 8, !tbaa !157
  %815 = load float, ptr %110, align 8, !tbaa !138
  %816 = fadd float %815, 1.000000e+01
  %817 = fcmp ogt float %814, %816
  br i1 %817, label %818, label %821

818:                                              ; preds = %806
  %819 = getelementptr inbounds i8, ptr %793, i64 352
  %820 = load i32, ptr %819, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %791, i32 noundef %820, float noundef 0.000000e+00, i32 noundef 0)
  br label %821

821:                                              ; preds = %818, %806
  %822 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %822, label %823, label %826

823:                                              ; preds = %821
  %824 = load i32, ptr %794, align 4, !tbaa !176
  %825 = or i32 %824, 256
  store i32 %825, ptr %794, align 4, !tbaa !176
  br label %826

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

827:                                              ; preds = %803
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #14
  %828 = load float, ptr %110, align 8, !tbaa !138
  %829 = fadd float %828, -5.000000e+00
  %830 = load float, ptr %229, align 4, !tbaa !149
  %831 = fadd float %830, -5.000000e+00
  %832 = fadd float %828, 5.000000e+00
  %833 = load float, ptr %230, align 4, !tbaa !150
  %834 = fadd float %833, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef %829, float noundef %831, float noundef %832, float noundef %834)
  %835 = load float, ptr %35, align 8, !tbaa !157
  %836 = load float, ptr %225, align 8, !tbaa !139
  %837 = fadd float %836, -1.000000e+01
  %838 = fcmp olt float %835, %837
  br i1 %838, label %839, label %842

839:                                              ; preds = %827
  %840 = getelementptr inbounds i8, ptr %793, i64 352
  %841 = load i32, ptr %840, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %792, i32 noundef %841, float noundef 0.000000e+00, i32 noundef 0)
  br label %842

842:                                              ; preds = %839, %827
  %843 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %843, label %844, label %847

844:                                              ; preds = %842
  %845 = load i32, ptr %794, align 4, !tbaa !176
  %846 = and i32 %845, -257
  store i32 %846, ptr %794, align 4, !tbaa !176
  br label %847

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

848:                                              ; preds = %797, %801, %847, %826, %.preheader617
  %849 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 1)
  %850 = getelementptr inbounds i8, ptr %849, i64 4
  %851 = load i32, ptr %850, align 4, !tbaa !176
  %852 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %851, i32 noundef 64)
  br i1 %852, label %904, label %853

853:                                              ; preds = %848
  %854 = getelementptr inbounds i8, ptr %849, i64 371
  %855 = load i8, ptr %854, align 1, !tbaa !177, !range !122, !noundef !123
  %856 = trunc nuw i8 %855 to i1
  br i1 %856, label %857, label %904

857:                                              ; preds = %853
  %858 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %110, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %858, label %859, label %904

859:                                              ; preds = %857
  %860 = load i32, ptr %850, align 4, !tbaa !176
  %861 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %860, i32 noundef 256)
  br i1 %861, label %883, label %862

862:                                              ; preds = %859
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #14
  %863 = load float, ptr %225, align 8, !tbaa !139
  %864 = fadd float %863, -5.000000e+00
  %865 = load float, ptr %229, align 4, !tbaa !149
  %866 = fadd float %865, -5.000000e+00
  %867 = fadd float %863, 5.000000e+00
  %868 = load float, ptr %230, align 4, !tbaa !150
  %869 = fadd float %868, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %39, float noundef %864, float noundef %866, float noundef %867, float noundef %869)
  %870 = load float, ptr %35, align 8, !tbaa !157
  %871 = load float, ptr %110, align 8, !tbaa !138
  %872 = fadd float %871, 1.000000e+01
  %873 = fcmp ogt float %870, %872
  br i1 %873, label %874, label %877

874:                                              ; preds = %862
  %875 = getelementptr inbounds i8, ptr %849, i64 352
  %876 = load i32, ptr %875, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %791, i32 noundef %876, float noundef 0.000000e+00, i32 noundef 0)
  br label %877

877:                                              ; preds = %874, %862
  %878 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %878, label %879, label %882

879:                                              ; preds = %877
  %880 = load i32, ptr %850, align 4, !tbaa !176
  %881 = or i32 %880, 256
  store i32 %881, ptr %850, align 4, !tbaa !176
  br label %882

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

883:                                              ; preds = %859
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #14
  %884 = load float, ptr %110, align 8, !tbaa !138
  %885 = fadd float %884, -5.000000e+00
  %886 = load float, ptr %229, align 4, !tbaa !149
  %887 = fadd float %886, -5.000000e+00
  %888 = fadd float %884, 5.000000e+00
  %889 = load float, ptr %230, align 4, !tbaa !150
  %890 = fadd float %889, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef %885, float noundef %887, float noundef %888, float noundef %890)
  %891 = load float, ptr %35, align 8, !tbaa !157
  %892 = load float, ptr %225, align 8, !tbaa !139
  %893 = fadd float %892, -1.000000e+01
  %894 = fcmp olt float %891, %893
  br i1 %894, label %895, label %898

895:                                              ; preds = %883
  %896 = getelementptr inbounds i8, ptr %849, i64 352
  %897 = load i32, ptr %896, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %792, i32 noundef %897, float noundef 0.000000e+00, i32 noundef 0)
  br label %898

898:                                              ; preds = %895, %883
  %899 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %899, label %900, label %903

900:                                              ; preds = %898
  %901 = load i32, ptr %850, align 4, !tbaa !176
  %902 = and i32 %901, -257
  store i32 %902, ptr %850, align 4, !tbaa !176
  br label %903

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

904:                                              ; preds = %903, %882, %857, %853, %848
  %905 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 2)
  %906 = getelementptr inbounds i8, ptr %905, i64 4
  %907 = load i32, ptr %906, align 4, !tbaa !176
  %908 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %907, i32 noundef 64)
  br i1 %908, label %960, label %909

909:                                              ; preds = %904
  %910 = getelementptr inbounds i8, ptr %905, i64 371
  %911 = load i8, ptr %910, align 1, !tbaa !177, !range !122, !noundef !123
  %912 = trunc nuw i8 %911 to i1
  br i1 %912, label %913, label %960

913:                                              ; preds = %909
  %914 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %110, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %914, label %915, label %960

915:                                              ; preds = %913
  %916 = load i32, ptr %906, align 4, !tbaa !176
  %917 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %916, i32 noundef 256)
  br i1 %917, label %939, label %918

918:                                              ; preds = %915
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #14
  %919 = load float, ptr %225, align 8, !tbaa !139
  %920 = fadd float %919, -5.000000e+00
  %921 = load float, ptr %229, align 4, !tbaa !149
  %922 = fadd float %921, -5.000000e+00
  %923 = fadd float %919, 5.000000e+00
  %924 = load float, ptr %230, align 4, !tbaa !150
  %925 = fadd float %924, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %39, float noundef %920, float noundef %922, float noundef %923, float noundef %925)
  %926 = load float, ptr %35, align 8, !tbaa !157
  %927 = load float, ptr %110, align 8, !tbaa !138
  %928 = fadd float %927, 1.000000e+01
  %929 = fcmp ogt float %926, %928
  br i1 %929, label %930, label %933

930:                                              ; preds = %918
  %931 = getelementptr inbounds i8, ptr %905, i64 352
  %932 = load i32, ptr %931, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %791, i32 noundef %932, float noundef 0.000000e+00, i32 noundef 0)
  br label %933

933:                                              ; preds = %930, %918
  %934 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %934, label %935, label %938

935:                                              ; preds = %933
  %936 = load i32, ptr %906, align 4, !tbaa !176
  %937 = or i32 %936, 256
  store i32 %937, ptr %906, align 4, !tbaa !176
  br label %938

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

939:                                              ; preds = %915
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #14
  %940 = load float, ptr %110, align 8, !tbaa !138
  %941 = fadd float %940, -5.000000e+00
  %942 = load float, ptr %229, align 4, !tbaa !149
  %943 = fadd float %942, -5.000000e+00
  %944 = fadd float %940, 5.000000e+00
  %945 = load float, ptr %230, align 4, !tbaa !150
  %946 = fadd float %945, 5.000000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %40, float noundef %941, float noundef %943, float noundef %944, float noundef %946)
  %947 = load float, ptr %35, align 8, !tbaa !157
  %948 = load float, ptr %225, align 8, !tbaa !139
  %949 = fadd float %948, -1.000000e+01
  %950 = fcmp olt float %947, %949
  br i1 %950, label %951, label %954

951:                                              ; preds = %939
  %952 = getelementptr inbounds i8, ptr %905, i64 352
  %953 = load i32, ptr %952, align 8, !tbaa !178
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %792, i32 noundef %953, float noundef 0.000000e+00, i32 noundef 0)
  br label %954

954:                                              ; preds = %951, %939
  %955 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %40, ptr noundef nonnull align 4 dereferenceable(8) %35)
  br i1 %955, label %956, label %959

956:                                              ; preds = %954
  %957 = load i32, ptr %906, align 4, !tbaa !176
  %958 = and i32 %957, -257
  store i32 %958, ptr %906, align 4, !tbaa !176
  br label %959

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

960:                                              ; preds = %959, %938, %913, %909, %904
  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 %961

961:                                              ; preds = %960, %614
  %962 = getelementptr inbounds i8, ptr %78, i64 2296
  %963 = getelementptr inbounds i8, ptr %78, i64 2304
  %964 = getelementptr inbounds i8, ptr %78, i64 2368
  store i8 0, ptr %964, align 8, !tbaa !167
  %965 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %962)
  %966 = icmp sgt i32 %965, 0
  br i1 %966, label %.lr.ph648, label %._crit_edge649

._crit_edge649:                                   ; preds = %.lr.ph648, %961
  %967 = load i32, ptr %511, align 4, !tbaa !164
  %968 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %967, i32 noundef 2)
  br i1 %968, label %1028, label %974

.lr.ph648:                                        ; preds = %961, %.lr.ph648
  %.0572646 = phi i32 [ %971, %.lr.ph648 ], [ 0, %961 ]
  %969 = call noundef ptr @_ZN15ImPlotItemGroup14GetItemByIndexEi(ptr noundef nonnull align 8 dereferenceable(124) %962, i32 noundef %.0572646)
  %970 = getelementptr inbounds i8, ptr %969, i64 29
  store i8 0, ptr %970, align 1, !tbaa !179
  %971 = add nuw nsw i32 %.0572646, 1
  %972 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %962)
  %973 = icmp slt i32 %971, %972
  br i1 %973, label %.lr.ph648, label %._crit_edge649, !llvm.loop !181

974:                                              ; preds = %._crit_edge649
  %975 = call noundef i32 @_ZNK15ImPlotItemGroup14GetLegendCountEv(ptr noundef nonnull align 8 dereferenceable(124) %962)
  %976 = icmp sgt i32 %975, 0
  br i1 %976, label %977, label %1028

977:                                              ; preds = %974
  %978 = load i32, ptr %963, align 8, !tbaa !182
  %979 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %978, i32 noundef 16)
  %980 = load i32, ptr %963, align 8, !tbaa !182
  %981 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %980, i32 noundef 32)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #14
  %982 = getelementptr inbounds i8, ptr %70, i64 376
  %983 = getelementptr inbounds i8, ptr %70, i64 384
  %984 = xor i1 %981, true
  %985 = call <2 x float> @_ZN6ImPlot14CalcLegendSizeER15ImPlotItemGroupRK6ImVec2S4_b(ptr noundef nonnull align 8 dereferenceable(124) %962, ptr noundef nonnull align 4 dereferenceable(8) %982, ptr noundef nonnull align 4 dereferenceable(8) %983, i1 noundef zeroext %984)
  store <2 x float> %985, ptr %41, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #14
  %986 = select i1 %979, ptr %108, ptr %110
  %987 = getelementptr inbounds i8, ptr %78, i64 2312
  %988 = load i32, ptr %987, align 8, !tbaa !183
  %.v = select i1 %979, i64 352, i64 368
  %989 = getelementptr inbounds i8, ptr %70, i64 %.v
  %990 = call <2 x float> @_ZN6ImPlot14GetLocationPosERK6ImRectRK6ImVec2iS5_(ptr noundef nonnull align 4 dereferenceable(16) %986, ptr noundef nonnull align 4 dereferenceable(8) %41, i32 noundef %988, ptr noundef nonnull align 4 dereferenceable(8) %989)
  store <2 x float> %990, 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
  %991 = 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> %991, 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)
  %992 = getelementptr inbounds i8, ptr %78, i64 2352
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %992, ptr noundef nonnull align 4 dereferenceable(16) %43, i64 16, i1 false), !tbaa.struct !175
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #14
  %993 = call noundef zeroext i1 @_ZN5ImGui15IsWindowHoveredEi(i32 noundef 0)
  br i1 %993, label %994, label %997

994:                                              ; preds = %977
  %995 = getelementptr inbounds i8, ptr %83, i64 3584
  %996 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(16) %992, ptr noundef nonnull align 4 dereferenceable(8) %995)
  br label %997

997:                                              ; preds = %994, %977
  %998 = phi i1 [ false, %977 ], [ %996, %994 ]
  %999 = zext i1 %998 to i8
  store i8 %999, ptr %964, align 8, !tbaa !184
  br i1 %979, label %1000, label %1001

1000:                                             ; preds = %997
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %108, ptr noundef nonnull align 4 dereferenceable(8) %109, i1 noundef zeroext true)
  br label %1002

1001:                                             ; preds = %997
  call void @_ZN6ImPlot16PushPlotClipRectEf(float noundef 0.000000e+00)
  br label %1002

1002:                                             ; preds = %1001, %1000
  %1003 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 8)
  %1004 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 9)
  %1005 = getelementptr inbounds i8, ptr %78, i64 2360
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %992, ptr noundef nonnull align 4 dereferenceable(8) %1005, i32 noundef %1003, float noundef 0.000000e+00, i32 noundef 0)
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %992, ptr noundef nonnull align 4 dereferenceable(8) %1005, i32 noundef %1004, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  %1006 = load i8, ptr %964, align 8, !tbaa !184, !range !122, !noundef !123
  %1007 = trunc nuw i8 %1006 to i1
  %1008 = call noundef zeroext i1 @_ZN6ImPlot17ShowLegendEntriesER15ImPlotItemGroupRK6ImRectbRK6ImVec2S7_bR10ImDrawList(ptr noundef nonnull align 8 dereferenceable(124) %962, ptr noundef nonnull align 4 dereferenceable(16) %992, i1 noundef zeroext %1007, ptr noundef nonnull align 4 dereferenceable(8) %982, ptr noundef nonnull align 4 dereferenceable(8) %983, i1 noundef zeroext %984, ptr noundef nonnull align 8 dereferenceable(196) %82)
  br i1 %1008, label %1009, label %.thread609

1009:                                             ; preds = %1002
  %1010 = load i32, ptr %963, align 8, !tbaa !182
  %1011 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %1010, i32 noundef 8)
  %1012 = getelementptr inbounds i8, ptr %70, i64 1512
  %1013 = load i8, ptr %1012, align 8, !tbaa !185, !range !122, !noundef !123
  %1014 = trunc nuw i8 %1013 to i1
  %.not601 = xor i1 %1014, true
  %brmerge603 = or i1 %1011, %.not601
  br i1 %brmerge603, label %.thread609, label %1015

1015:                                             ; preds = %1009
  %1016 = load i32, ptr %511, align 4, !tbaa !164
  %1017 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1016, i32 noundef 16)
  br i1 %1017, label %.thread609, label %1018

1018:                                             ; preds = %1015
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.153, i32 noundef 0)
  br label %.thread609

.thread609:                                       ; preds = %1002, %1009, %1018, %1015
  call void @_ZN5ImGui11PopClipRectEv()
  %1019 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.153, i32 noundef 0)
  br i1 %1019, label %1020, label %1027

1020:                                             ; preds = %.thread609
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.124)
  call void @_ZN5ImGui9SeparatorEv()
  %1021 = load i32, ptr %511, align 4, !tbaa !164
  %1022 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1021, i32 noundef 2)
  %1023 = xor i1 %1022, true
  %1024 = call noundef zeroext i1 @_ZN6ImPlot21ShowLegendContextMenuER12ImPlotLegendb(ptr noundef nonnull align 8 dereferenceable(67) %963, i1 noundef zeroext %1023)
  br i1 %1024, label %1025, label %1026

1025:                                             ; preds = %1020
  call void @_ZL10ImFlipFlagIi12ImPlotFlags_EvRT_T0_(ptr noundef nonnull align 4 dereferenceable(4) %511, i32 noundef 2)
  br label %1026

1026:                                             ; preds = %1025, %1020
  call void @_ZN5ImGui8EndPopupEv()
  br label %1027

1027:                                             ; preds = %1026, %.thread609
  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 %1030

1028:                                             ; preds = %974, %._crit_edge649
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #14
  call void @_ZN6ImRectC2Ev(ptr noundef nonnull align 4 dereferenceable(16) %45)
  %1029 = getelementptr inbounds i8, ptr %78, i64 2352
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1029, ptr noundef nonnull align 4 dereferenceable(16) %45, i64 16, i1 false), !tbaa.struct !175
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #14
  br label %1030

1030:                                             ; preds = %1028, %1027
  br i1 %92, label %1031, label %1034

1031:                                             ; preds = %1030
  %1032 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 7)
  %1033 = load float, ptr %84, align 4, !tbaa !114
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %110, ptr noundef nonnull align 4 dereferenceable(8) %225, i32 noundef %1032, float noundef 0.000000e+00, i32 noundef 240, float noundef %1033)
  br label %1034

1034:                                             ; preds = %1031, %1030
  %1035 = getelementptr inbounds i8, ptr %70, i64 216
  %1036 = getelementptr inbounds i8, ptr %70, i64 248
  %1037 = load i32, ptr %1036, align 8, !tbaa !186
  %1038 = icmp sgt i32 %1037, 0
  br i1 %1038, label %.lr.ph652, label %._crit_edge653

.lr.ph652:                                        ; preds = %1034
  %1039 = getelementptr inbounds i8, ptr %78, i64 24
  %1040 = getelementptr inbounds i8, ptr %70, i64 400
  %1041 = getelementptr inbounds i8, ptr %70, i64 364
  %1042 = getelementptr inbounds i8, ptr %47, i64 4
  %1043 = getelementptr inbounds i8, ptr %70, i64 360
  br label %1055

._crit_edge653:                                   ; preds = %1151, %1034
  %1044 = load i32, ptr %511, align 4, !tbaa !164
  %1045 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1044, i32 noundef 256)
  %1046 = getelementptr inbounds i8, ptr %78, i64 2527
  %1047 = load i8, ptr %1046, align 1, !tbaa !187, !range !122, !noundef !123
  %1048 = trunc nuw i8 %1047 to i1
  br i1 %1048, label %.preheader616, label %1276

.preheader616:                                    ; preds = %._crit_edge653
  %1049 = getelementptr inbounds i8, ptr %70, i64 408
  %1050 = getelementptr inbounds i8, ptr %70, i64 412
  %1051 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 0)
  %1052 = getelementptr inbounds i8, ptr %1051, i64 366
  %1053 = load i8, ptr %1052, align 2, !tbaa !188, !range !122, !noundef !123
  %1054 = trunc nuw i8 %1053 to i1
  br i1 %1054, label %1155, label %1171

1055:                                             ; preds = %.lr.ph652, %1151
  %.0563650 = phi i32 [ 0, %.lr.ph652 ], [ %1152, %1151 ]
  %1056 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN8ImVectorI9ImPlotTagEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1035, i32 noundef %.0563650)
  %1057 = load i32, ptr %1056, align 8, !tbaa !189
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %1039, i64 0, i64 %1058
  %1060 = getelementptr inbounds i8, ptr %1059, i64 364
  %1061 = load i8, ptr %1060, align 4, !tbaa !124, !range !122, !noundef !123
  %1062 = trunc nuw i8 %1061 to i1
  br i1 %1062, label %1063, label %1151

1063:                                             ; preds = %1055
  %1064 = getelementptr inbounds i8, ptr %1059, i64 16
  %1065 = getelementptr inbounds i8, ptr %1056, i64 8
  %1066 = load double, ptr %1065, align 8, !tbaa !191
  %1067 = call noundef zeroext i1 @_ZNK11ImPlotRange8ContainsEd(ptr noundef nonnull align 8 dereferenceable(16) %1064, double noundef %1066)
  br i1 %1067, label %1068, label %1151

1068:                                             ; preds = %1063
  %1069 = call noundef ptr @_ZN19ImPlotTagCollection7GetTextEi(ptr noundef nonnull align 8 dereferenceable(36) %1035, i32 noundef %.0563650)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  %1070 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %1069, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %1070, 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
  %1071 = call <2 x float> @_ZmlRK6ImVec2f(ptr noundef nonnull align 4 dereferenceable(8) %1040, float noundef 2.000000e+00)
  store <2 x float> %1071, ptr %48, align 8
  %1072 = 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> %1072, 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)
  %1073 = getelementptr inbounds i8, ptr %1059, i64 96
  call void @_ZN12ImPlotTicker16OverrideSizeLateERK6ImVec2(ptr noundef nonnull align 8 dereferenceable(52) %1073, ptr noundef nonnull align 4 dereferenceable(8) %47)
  %1074 = load double, ptr %1065, align 8, !tbaa !191
  %1075 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %1059, double noundef %1074)
  %1076 = fadd float %1075, 5.000000e-01
  %1077 = fptosi float %1076 to i32
  %1078 = sitofp i32 %1077 to float
  %1079 = getelementptr inbounds i8, ptr %1059, i64 365
  %1080 = load i8, ptr %1079, align 1, !tbaa !192, !range !122, !noundef !123
  %1081 = trunc nuw i8 %1080 to i1
  %1082 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %1059)
  %1083 = getelementptr inbounds i8, ptr %1059, i64 304
  br i1 %1081, label %1084, label %1114

1084:                                             ; preds = %1068
  br i1 %1082, label %1085, label %1098

1085:                                             ; preds = %1084
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #14
  %1086 = load float, ptr %1083, align 8, !tbaa !140
  %1087 = load float, ptr %1043, align 4, !tbaa !193
  %1088 = fadd float %1086, %1087
  %1089 = load float, ptr %1042, align 4, !tbaa !159
  %1090 = fneg float %1089
  %1091 = call float @llvm.fmuladd.f32(float %1090, float 5.000000e-01, float %1078)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef %1088, float noundef %1091)
  %1092 = load i64, ptr %50, align 8
  store i64 %1092, 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
  %1093 = load float, ptr %1083, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %51, float noundef %1093, float noundef %1078)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  %1094 = load float, ptr %1042, align 4, !tbaa !159
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef 0.000000e+00, float noundef %1094)
  %1095 = 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> %1095, ptr %52, align 8
  %1096 = getelementptr inbounds i8, ptr %1056, i64 16
  %1097 = load i32, ptr %1096, align 8, !tbaa !194
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %82, 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 %1097)
  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 %1144

1098:                                             ; preds = %1084
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  %1099 = load float, ptr %1083, align 8, !tbaa !140
  %1100 = load float, ptr %47, align 8, !tbaa !157
  %1101 = fsub float %1099, %1100
  %1102 = load float, ptr %1043, align 4, !tbaa !193
  %1103 = fsub float %1101, %1102
  %1104 = load float, ptr %1042, align 4, !tbaa !159
  %1105 = fneg float %1104
  %1106 = call float @llvm.fmuladd.f32(float %1105, float 5.000000e-01, float %1078)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %54, float noundef %1103, float noundef %1106)
  %1107 = load i64, ptr %54, align 8
  store i64 %1107, 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
  %1108 = load float, ptr %47, align 8, !tbaa !157
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %56, float noundef %1108, float noundef 0.000000e+00)
  %1109 = 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> %1109, ptr %55, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #14
  %1110 = load float, ptr %1083, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %57, float noundef %1110, float noundef %1078)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #14
  %1111 = 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> %1111, ptr %58, align 8
  %1112 = getelementptr inbounds i8, ptr %1056, i64 16
  %1113 = load i32, ptr %1112, align 8, !tbaa !194
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %82, 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 %1113)
  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 %1144

1114:                                             ; preds = %1068
  br i1 %1082, label %1115, label %1131

1115:                                             ; preds = %1114
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %1116 = load float, ptr %47, align 8, !tbaa !157
  %1117 = fneg float %1116
  %1118 = call float @llvm.fmuladd.f32(float %1117, float 5.000000e-01, float %1078)
  %1119 = load float, ptr %1083, align 8, !tbaa !140
  %1120 = load float, ptr %1042, align 4, !tbaa !159
  %1121 = fsub float %1119, %1120
  %1122 = load float, ptr %1041, align 4, !tbaa !195
  %1123 = fsub float %1121, %1122
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %1118, float noundef %1123)
  %1124 = load i64, ptr %59, align 8
  store i64 %1124, 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
  %1125 = load float, ptr %1042, align 4, !tbaa !159
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %61, float noundef 0.000000e+00, float noundef %1125)
  %1126 = 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> %1126, ptr %60, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #14
  %1127 = 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> %1127, ptr %62, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #14
  %1128 = load float, ptr %1083, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %63, float noundef %1078, float noundef %1128)
  %1129 = getelementptr inbounds i8, ptr %1056, i64 16
  %1130 = load i32, ptr %1129, align 8, !tbaa !194
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %82, 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 %1130)
  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 %1144

1131:                                             ; preds = %1114
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #14
  %1132 = load float, ptr %47, align 8, !tbaa !157
  %1133 = fneg float %1132
  %1134 = call float @llvm.fmuladd.f32(float %1133, float 5.000000e-01, float %1078)
  %1135 = load float, ptr %1083, align 8, !tbaa !140
  %1136 = load float, ptr %1041, align 4, !tbaa !195
  %1137 = fadd float %1135, %1136
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %64, float noundef %1134, float noundef %1137)
  %1138 = load i64, ptr %64, align 8
  store i64 %1138, 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
  %1139 = load float, ptr %1083, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %65, float noundef %1078, float noundef %1139)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #14
  %1140 = load float, ptr %47, align 8, !tbaa !157
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %67, float noundef %1140, float noundef 0.000000e+00)
  %1141 = 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> %1141, ptr %66, align 8
  %1142 = getelementptr inbounds i8, ptr %1056, i64 16
  %1143 = load i32, ptr %1142, align 8, !tbaa !194
  call void @_ZN10ImDrawList17AddTriangleFilledERK6ImVec2S2_S2_j(ptr noundef nonnull align 8 dereferenceable(196) %82, 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 %1143)
  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 %1144

1144:                                             ; preds = %1115, %1131, %1085, %1098
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #14
  %1145 = 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> %1145, ptr %68, align 8
  %1146 = getelementptr inbounds i8, ptr %1056, i64 16
  %1147 = load i32, ptr %1146, align 8, !tbaa !194
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %68, i32 noundef %1147, 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
  %1148 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %1040)
  store <2 x float> %1148, ptr %69, align 8
  %1149 = getelementptr inbounds i8, ptr %1056, i64 20
  %1150 = load i32, ptr %1149, align 4, !tbaa !196
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %82, ptr noundef nonnull align 4 dereferenceable(8) %69, i32 noundef %1150, ptr noundef %1069, 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 %1151

1151:                                             ; preds = %1055, %1063, %1144
  %1152 = add nuw nsw i32 %.0563650, 1
  %1153 = load i32, ptr %1036, align 8, !tbaa !186
  %1154 = icmp slt i32 %1152, %1153
  br i1 %1154, label %1055, label %._crit_edge653, !llvm.loop !197

1155:                                             ; preds = %.preheader616
  %1156 = load float, ptr %1049, align 4, !tbaa !198
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1051, float noundef %1156)
  br i1 %1045, label %1157, label %1171

1157:                                             ; preds = %1155
  %1158 = getelementptr inbounds i8, ptr %1051, i64 56
  %1159 = load ptr, ptr %1158, align 8, !tbaa !199
  %.not586 = icmp eq ptr %1159, null
  br i1 %.not586, label %1171, label %1160

1160:                                             ; preds = %1157
  %1161 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1051)
  %1162 = load ptr, ptr %1158, align 8, !tbaa !199
  %1163 = getelementptr inbounds i8, ptr %1162, i64 366
  %1164 = load i8, ptr %1163, align 2, !tbaa !188, !range !122, !noundef !123
  %1165 = trunc nuw i8 %1164 to i1
  br i1 %1165, label %1166, label %1170

1166:                                             ; preds = %1160
  %1167 = load float, ptr %1050, align 4, !tbaa !200
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1162, float noundef %1167)
  store i8 0, ptr %1163, align 2, !tbaa !188
  %1168 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1162)
  %1169 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1161, double noundef %1168)
  br label %1170

1170:                                             ; preds = %1166, %1160
  %.0553 = phi double [ %1169, %1166 ], [ %1161, %1160 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1051, double noundef %.0553)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1162, double noundef %.0553)
  br label %1171

1171:                                             ; preds = %1155, %1157, %1170, %.preheader616
  %1172 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 1)
  %1173 = getelementptr inbounds i8, ptr %1172, i64 366
  %1174 = load i8, ptr %1173, align 2, !tbaa !188, !range !122, !noundef !123
  %1175 = trunc nuw i8 %1174 to i1
  br i1 %1175, label %1176, label %1192

1176:                                             ; preds = %1171
  %1177 = load float, ptr %1049, align 4, !tbaa !198
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1172, float noundef %1177)
  br i1 %1045, label %1178, label %1192

1178:                                             ; preds = %1176
  %1179 = getelementptr inbounds i8, ptr %1172, i64 56
  %1180 = load ptr, ptr %1179, align 8, !tbaa !199
  %.not586.1 = icmp eq ptr %1180, null
  br i1 %.not586.1, label %1192, label %1181

1181:                                             ; preds = %1178
  %1182 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1172)
  %1183 = load ptr, ptr %1179, align 8, !tbaa !199
  %1184 = getelementptr inbounds i8, ptr %1183, i64 366
  %1185 = load i8, ptr %1184, align 2, !tbaa !188, !range !122, !noundef !123
  %1186 = trunc nuw i8 %1185 to i1
  br i1 %1186, label %1187, label %1191

1187:                                             ; preds = %1181
  %1188 = load float, ptr %1050, align 4, !tbaa !200
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1183, float noundef %1188)
  store i8 0, ptr %1184, align 2, !tbaa !188
  %1189 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1183)
  %1190 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1182, double noundef %1189)
  br label %1191

1191:                                             ; preds = %1187, %1181
  %.0553.1 = phi double [ %1190, %1187 ], [ %1182, %1181 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1172, double noundef %.0553.1)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1183, double noundef %.0553.1)
  br label %1192

1192:                                             ; preds = %1191, %1178, %1176, %1171
  %1193 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 2)
  %1194 = getelementptr inbounds i8, ptr %1193, i64 366
  %1195 = load i8, ptr %1194, align 2, !tbaa !188, !range !122, !noundef !123
  %1196 = trunc nuw i8 %1195 to i1
  br i1 %1196, label %1197, label %.preheader615

1197:                                             ; preds = %1192
  %1198 = load float, ptr %1049, align 4, !tbaa !198
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1193, float noundef %1198)
  br i1 %1045, label %1199, label %.preheader615

1199:                                             ; preds = %1197
  %1200 = getelementptr inbounds i8, ptr %1193, i64 56
  %1201 = load ptr, ptr %1200, align 8, !tbaa !199
  %.not586.2 = icmp eq ptr %1201, null
  br i1 %.not586.2, label %.preheader615, label %1202

1202:                                             ; preds = %1199
  %1203 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1193)
  %1204 = load ptr, ptr %1200, align 8, !tbaa !199
  %1205 = getelementptr inbounds i8, ptr %1204, i64 366
  %1206 = load i8, ptr %1205, align 2, !tbaa !188, !range !122, !noundef !123
  %1207 = trunc nuw i8 %1206 to i1
  br i1 %1207, label %1208, label %1212

1208:                                             ; preds = %1202
  %1209 = load float, ptr %1050, align 4, !tbaa !200
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1204, float noundef %1209)
  store i8 0, ptr %1205, align 2, !tbaa !188
  %1210 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1204)
  %1211 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1203, double noundef %1210)
  br label %1212

1212:                                             ; preds = %1208, %1202
  %.0553.2 = phi double [ %1211, %1208 ], [ %1203, %1202 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1193, double noundef %.0553.2)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1204, double noundef %.0553.2)
  br label %.preheader615

.preheader615:                                    ; preds = %1212, %1199, %1197, %1192
  %1213 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 0)
  %1214 = getelementptr inbounds i8, ptr %1213, i64 366
  %1215 = load i8, ptr %1214, align 2, !tbaa !188, !range !122, !noundef !123
  %1216 = trunc nuw i8 %1215 to i1
  br i1 %1216, label %1217, label %1233

1217:                                             ; preds = %.preheader615
  %1218 = load float, ptr %1050, align 4, !tbaa !200
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1213, float noundef %1218)
  br i1 %1045, label %1219, label %1233

1219:                                             ; preds = %1217
  %1220 = getelementptr inbounds i8, ptr %1213, i64 56
  %1221 = load ptr, ptr %1220, align 8, !tbaa !199
  %.not585 = icmp eq ptr %1221, null
  br i1 %.not585, label %1233, label %1222

1222:                                             ; preds = %1219
  %1223 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1213)
  %1224 = load ptr, ptr %1220, align 8, !tbaa !199
  %1225 = getelementptr inbounds i8, ptr %1224, i64 366
  %1226 = load i8, ptr %1225, align 2, !tbaa !188, !range !122, !noundef !123
  %1227 = trunc nuw i8 %1226 to i1
  br i1 %1227, label %1228, label %1232

1228:                                             ; preds = %1222
  %1229 = load float, ptr %1049, align 4, !tbaa !198
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1224, float noundef %1229)
  store i8 0, ptr %1225, align 2, !tbaa !188
  %1230 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1224)
  %1231 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1230, double noundef %1223)
  br label %1232

1232:                                             ; preds = %1228, %1222
  %.0550 = phi double [ %1231, %1228 ], [ %1223, %1222 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1224, double noundef %.0550)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1213, double noundef %.0550)
  br label %1233

1233:                                             ; preds = %1217, %1219, %1232, %.preheader615
  %1234 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 1)
  %1235 = getelementptr inbounds i8, ptr %1234, i64 366
  %1236 = load i8, ptr %1235, align 2, !tbaa !188, !range !122, !noundef !123
  %1237 = trunc nuw i8 %1236 to i1
  br i1 %1237, label %1238, label %1254

1238:                                             ; preds = %1233
  %1239 = load float, ptr %1050, align 4, !tbaa !200
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1234, float noundef %1239)
  br i1 %1045, label %1240, label %1254

1240:                                             ; preds = %1238
  %1241 = getelementptr inbounds i8, ptr %1234, i64 56
  %1242 = load ptr, ptr %1241, align 8, !tbaa !199
  %.not585.1 = icmp eq ptr %1242, null
  br i1 %.not585.1, label %1254, label %1243

1243:                                             ; preds = %1240
  %1244 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1234)
  %1245 = load ptr, ptr %1241, align 8, !tbaa !199
  %1246 = getelementptr inbounds i8, ptr %1245, i64 366
  %1247 = load i8, ptr %1246, align 2, !tbaa !188, !range !122, !noundef !123
  %1248 = trunc nuw i8 %1247 to i1
  br i1 %1248, label %1249, label %1253

1249:                                             ; preds = %1243
  %1250 = load float, ptr %1049, align 4, !tbaa !198
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1245, float noundef %1250)
  store i8 0, ptr %1246, align 2, !tbaa !188
  %1251 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1245)
  %1252 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1251, double noundef %1244)
  br label %1253

1253:                                             ; preds = %1249, %1243
  %.0550.1 = phi double [ %1252, %1249 ], [ %1244, %1243 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1245, double noundef %.0550.1)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1234, double noundef %.0550.1)
  br label %1254

1254:                                             ; preds = %1253, %1240, %1238, %1233
  %1255 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 2)
  %1256 = getelementptr inbounds i8, ptr %1255, i64 366
  %1257 = load i8, ptr %1256, align 2, !tbaa !188, !range !122, !noundef !123
  %1258 = trunc nuw i8 %1257 to i1
  br i1 %1258, label %1259, label %1275

1259:                                             ; preds = %1254
  %1260 = load float, ptr %1050, align 4, !tbaa !200
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1255, float noundef %1260)
  br i1 %1045, label %1261, label %1275

1261:                                             ; preds = %1259
  %1262 = getelementptr inbounds i8, ptr %1255, i64 56
  %1263 = load ptr, ptr %1262, align 8, !tbaa !199
  %.not585.2 = icmp eq ptr %1263, null
  br i1 %.not585.2, label %1275, label %1264

1264:                                             ; preds = %1261
  %1265 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1255)
  %1266 = load ptr, ptr %1262, align 8, !tbaa !199
  %1267 = getelementptr inbounds i8, ptr %1266, i64 366
  %1268 = load i8, ptr %1267, align 2, !tbaa !188, !range !122, !noundef !123
  %1269 = trunc nuw i8 %1268 to i1
  br i1 %1269, label %1270, label %1274

1270:                                             ; preds = %1264
  %1271 = load float, ptr %1049, align 4, !tbaa !198
  call void @_ZN10ImPlotAxis8ApplyFitEf(ptr noundef nonnull align 8 dereferenceable(372) %1266, float noundef %1271)
  store i8 0, ptr %1267, align 2, !tbaa !188
  %1272 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %1266)
  %1273 = call noundef double @_ZL5ImMaxIdET_S0_S0_(double noundef %1272, double noundef %1265)
  br label %1274

1274:                                             ; preds = %1270, %1264
  %.0550.2 = phi double [ %1273, %1270 ], [ %1265, %1264 ]
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1266, double noundef %.0550.2)
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %1255, double noundef %.0550.2)
  br label %1275

1275:                                             ; preds = %1274, %1261, %1259, %1254
  store i8 0, ptr %1046, align 1, !tbaa !187
  br label %1276

1276:                                             ; preds = %1275, %._crit_edge653
  %1277 = load i32, ptr %78, align 8, !tbaa !201
  call void @_ZN5ImGui14PushOverrideIDEj(i32 noundef %1277)
  %1278 = getelementptr inbounds i8, ptr %70, i64 1512
  %1279 = load i8, ptr %1278, align 8, !tbaa !185, !range !122, !noundef !123
  %1280 = trunc nuw i8 %1279 to i1
  br i1 %1280, label %1281, label %.thread613

1281:                                             ; preds = %1276
  %1282 = load i32, ptr %511, align 4, !tbaa !164
  %1283 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %1282, i32 noundef 16)
  br i1 %1283, label %.thread613, label %1284

1284:                                             ; preds = %1281
  %1285 = load i8, ptr %964, align 8, !tbaa !167, !range !122, !noundef !123
  %1286 = trunc nuw i8 %1285 to i1
  br i1 %1286, label %.thread613, label %1287

1287:                                             ; preds = %1284
  %1288 = getelementptr inbounds i8, ptr %78, i64 2528
  %1289 = load i8, ptr %1288, align 8, !tbaa !165, !range !122, !noundef !123
  %1290 = trunc nuw i8 %1289 to i1
  br i1 %1290, label %1291, label %.thread613

1291:                                             ; preds = %1287
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.154, i32 noundef 0)
  br label %.thread613

.thread613:                                       ; preds = %1276, %1281, %1291, %1287, %1284
  %1292 = phi i1 [ true, %1291 ], [ true, %1287 ], [ false, %1284 ], [ false, %1281 ], [ false, %1276 ]
  %1293 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.154, i32 noundef 0)
  br i1 %1293, label %1294, label %1295

1294:                                             ; preds = %.thread613
  call void @_ZN6ImPlot19ShowPlotContextMenuER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533) %78)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1295

1295:                                             ; preds = %1294, %.thread613
  call void @_ZN5ImGui6PushIDEi(i32 noundef 0)
  %1296 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 0)
  br i1 %1292, label %1297, label %1304

1297:                                             ; preds = %1295
  %1298 = getelementptr inbounds i8, ptr %1296, i64 370
  %1299 = load i8, ptr %1298, align 2, !tbaa !202, !range !122, !noundef !123
  %1300 = trunc nuw i8 %1299 to i1
  br i1 %1300, label %1301, label %1304

1301:                                             ; preds = %1297
  %1302 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1296)
  br i1 %1302, label %1303, label %1304

1303:                                             ; preds = %1301
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br label %1304

1304:                                             ; preds = %1303, %1301, %1297, %1295
  %1305 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br i1 %1305, label %1306, label %1315

1306:                                             ; preds = %1304
  %1307 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1296)
  br i1 %1307, label %1308, label %1310

1308:                                             ; preds = %1306
  %1309 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %78, ptr noundef nonnull align 8 dereferenceable(372) %1296)
  br label %1310

1310:                                             ; preds = %1306, %1308
  %1311 = phi ptr [ %1309, %1308 ], [ @.str.120, %1306 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1311, i32 noundef 1)
  call void @_ZN5ImGui9SeparatorEv()
  %1312 = getelementptr inbounds i8, ptr %1296, i64 56
  %1313 = load ptr, ptr %1312, align 8
  %1314 = select i1 %1045, ptr %1313, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1296, ptr noundef %1314, i1 noundef zeroext true)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1315

1315:                                             ; preds = %1310, %1304
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 1)
  %1316 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 1)
  br i1 %1292, label %1317, label %1324

1317:                                             ; preds = %1315
  %1318 = getelementptr inbounds i8, ptr %1316, i64 370
  %1319 = load i8, ptr %1318, align 2, !tbaa !202, !range !122, !noundef !123
  %1320 = trunc nuw i8 %1319 to i1
  br i1 %1320, label %1321, label %1324

1321:                                             ; preds = %1317
  %1322 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1316)
  br i1 %1322, label %1323, label %1324

1323:                                             ; preds = %1321
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br label %1324

1324:                                             ; preds = %1323, %1321, %1317, %1315
  %1325 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br i1 %1325, label %1326, label %1335

1326:                                             ; preds = %1324
  %1327 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1316)
  br i1 %1327, label %1328, label %1330

1328:                                             ; preds = %1326
  %1329 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %78, ptr noundef nonnull align 8 dereferenceable(372) %1316)
  br label %1330

1330:                                             ; preds = %1326, %1328
  %1331 = phi ptr [ %1329, %1328 ], [ @.str.121, %1326 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1331, i32 noundef 2)
  call void @_ZN5ImGui9SeparatorEv()
  %1332 = getelementptr inbounds i8, ptr %1316, i64 56
  %1333 = load ptr, ptr %1332, align 8
  %1334 = select i1 %1045, ptr %1333, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1316, ptr noundef %1334, i1 noundef zeroext true)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1335

1335:                                             ; preds = %1330, %1324
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 2)
  %1336 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 2)
  br i1 %1292, label %1337, label %1344

1337:                                             ; preds = %1335
  %1338 = getelementptr inbounds i8, ptr %1336, i64 370
  %1339 = load i8, ptr %1338, align 2, !tbaa !202, !range !122, !noundef !123
  %1340 = trunc nuw i8 %1339 to i1
  br i1 %1340, label %1341, label %1344

1341:                                             ; preds = %1337
  %1342 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1336)
  br i1 %1342, label %1343, label %1344

1343:                                             ; preds = %1341
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br label %1344

1344:                                             ; preds = %1343, %1341, %1337, %1335
  %1345 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.155, i32 noundef 0)
  br i1 %1345, label %1346, label %.preheader.preheader

1346:                                             ; preds = %1344
  %1347 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1336)
  br i1 %1347, label %1348, label %1350

1348:                                             ; preds = %1346
  %1349 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %78, ptr noundef nonnull align 8 dereferenceable(372) %1336)
  br label %1350

1350:                                             ; preds = %1346, %1348
  %1351 = phi ptr [ %1349, %1348 ], [ @.str.121, %1346 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1351, i32 noundef 3)
  call void @_ZN5ImGui9SeparatorEv()
  %1352 = getelementptr inbounds i8, ptr %1336, i64 56
  %1353 = load ptr, ptr %1352, align 8
  %1354 = select i1 %1045, ptr %1353, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1336, ptr noundef %1354, i1 noundef zeroext true)
  call void @_ZN5ImGui8EndPopupEv()
  br label %.preheader.preheader

.preheader.preheader:                             ; preds = %1350, %1344
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 0)
  %1355 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 0)
  br i1 %1292, label %1356, label %1363

1356:                                             ; preds = %.preheader.preheader
  %1357 = getelementptr inbounds i8, ptr %1355, i64 370
  %1358 = load i8, ptr %1357, align 2, !tbaa !202, !range !122, !noundef !123
  %1359 = trunc nuw i8 %1358 to i1
  br i1 %1359, label %1360, label %1363

1360:                                             ; preds = %1356
  %1361 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1355)
  br i1 %1361, label %1362, label %1363

1362:                                             ; preds = %1360
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br label %1363

1363:                                             ; preds = %1362, %1360, %1356, %.preheader.preheader
  %1364 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br i1 %1364, label %1365, label %.preheader.1

1365:                                             ; preds = %1363
  %1366 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1355)
  br i1 %1366, label %1367, label %1369

1367:                                             ; preds = %1365
  %1368 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %78, ptr noundef nonnull align 8 dereferenceable(372) %1355)
  br label %1369

1369:                                             ; preds = %1365, %1367
  %1370 = phi ptr [ %1368, %1367 ], [ @.str.122, %1365 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1370, i32 noundef 1)
  call void @_ZN5ImGui9SeparatorEv()
  %1371 = getelementptr inbounds i8, ptr %1355, i64 56
  %1372 = load ptr, ptr %1371, align 8
  %1373 = select i1 %1045, ptr %1372, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1355, ptr noundef %1373, i1 noundef zeroext false)
  call void @_ZN5ImGui8EndPopupEv()
  br label %.preheader.1

.preheader.1:                                     ; preds = %1369, %1363
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 1)
  %1374 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 1)
  br i1 %1292, label %1375, label %1382

1375:                                             ; preds = %.preheader.1
  %1376 = getelementptr inbounds i8, ptr %1374, i64 370
  %1377 = load i8, ptr %1376, align 2, !tbaa !202, !range !122, !noundef !123
  %1378 = trunc nuw i8 %1377 to i1
  br i1 %1378, label %1379, label %1382

1379:                                             ; preds = %1375
  %1380 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1374)
  br i1 %1380, label %1381, label %1382

1381:                                             ; preds = %1379
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br label %1382

1382:                                             ; preds = %1381, %1379, %1375, %.preheader.1
  %1383 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br i1 %1383, label %1384, label %.preheader.2

1384:                                             ; preds = %1382
  %1385 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1374)
  br i1 %1385, label %1386, label %1388

1386:                                             ; preds = %1384
  %1387 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %78, ptr noundef nonnull align 8 dereferenceable(372) %1374)
  br label %1388

1388:                                             ; preds = %1384, %1386
  %1389 = phi ptr [ %1387, %1386 ], [ @.str.123, %1384 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1389, i32 noundef 2)
  call void @_ZN5ImGui9SeparatorEv()
  %1390 = getelementptr inbounds i8, ptr %1374, i64 56
  %1391 = load ptr, ptr %1390, align 8
  %1392 = select i1 %1045, ptr %1391, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1374, ptr noundef %1392, i1 noundef zeroext false)
  call void @_ZN5ImGui8EndPopupEv()
  br label %.preheader.2

.preheader.2:                                     ; preds = %1388, %1382
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui6PushIDEi(i32 noundef 2)
  %1393 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %78, i32 noundef 2)
  br i1 %1292, label %1394, label %1401

1394:                                             ; preds = %.preheader.2
  %1395 = getelementptr inbounds i8, ptr %1393, i64 370
  %1396 = load i8, ptr %1395, align 2, !tbaa !202, !range !122, !noundef !123
  %1397 = trunc nuw i8 %1396 to i1
  br i1 %1397, label %1398, label %1401

1398:                                             ; preds = %1394
  %1399 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasMenusEv(ptr noundef nonnull align 8 dereferenceable(372) %1393)
  br i1 %1399, label %1400, label %1401

1400:                                             ; preds = %1398
  call void @_ZN5ImGui9OpenPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br label %1401

1401:                                             ; preds = %1400, %1398, %1394, %.preheader.2
  %1402 = call noundef zeroext i1 @_ZN5ImGui10BeginPopupEPKci(ptr noundef nonnull @.str.156, i32 noundef 0)
  br i1 %1402, label %1403, label %1412

1403:                                             ; preds = %1401
  %1404 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1393)
  br i1 %1404, label %1405, label %1407

1405:                                             ; preds = %1403
  %1406 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %78, ptr noundef nonnull align 8 dereferenceable(372) %1393)
  br label %1407

1407:                                             ; preds = %1403, %1405
  %1408 = phi ptr [ %1406, %1405 ], [ @.str.123, %1403 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef %1408, i32 noundef 3)
  call void @_ZN5ImGui9SeparatorEv()
  %1409 = getelementptr inbounds i8, ptr %1393, i64 56
  %1410 = load ptr, ptr %1409, align 8
  %1411 = select i1 %1045, ptr %1410, ptr null
  call void @_ZN6ImPlot19ShowAxisContextMenuER10ImPlotAxisPS0_b(ptr noundef nonnull align 8 dereferenceable(372) %1393, ptr noundef %1411, i1 noundef zeroext false)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1412

1412:                                             ; preds = %1407, %1401
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN5ImGui5PopIDEv()
  %1413 = getelementptr inbounds i8, ptr %78, i64 24
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1413)
  %1414 = getelementptr inbounds i8, ptr %78, i64 400
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1414)
  %1415 = getelementptr inbounds i8, ptr %78, i64 776
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1415)
  %1416 = getelementptr inbounds i8, ptr %78, i64 1152
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1416)
  %1417 = getelementptr inbounds i8, ptr %78, i64 1528
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1417)
  %1418 = getelementptr inbounds i8, ptr %78, i64 1904
  call void @_ZN10ImPlotAxis9PushLinksEv(ptr noundef nonnull align 8 dereferenceable(372) %1418)
  %1419 = getelementptr inbounds i8, ptr %70, i64 96
  %1420 = load ptr, ptr %1419, align 8, !tbaa !203
  %1421 = icmp eq ptr %1420, %962
  br i1 %1421, label %1422, label %1423

1422:                                             ; preds = %1412
  store ptr null, ptr %1419, align 8, !tbaa !203
  br label %1423

1423:                                             ; preds = %1422, %1412
  %1424 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %962)
  %1425 = icmp sgt i32 %1424, 0
  br i1 %1425, label %.lr.ph661, label %._crit_edge662

._crit_edge662:                                   ; preds = %.lr.ph661, %1423
  %1426 = getelementptr inbounds i8, ptr %78, i64 2525
  store i8 1, ptr %1426, align 1, !tbaa !204
  call void @_ZN5ImGui5PopIDEv()
  %1427 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  call void @_ZN6ImPlot19ResetCtxForNextPlotEP13ImPlotContext(ptr noundef %1427)
  %1428 = getelementptr inbounds i8, ptr %70, i64 88
  %1429 = load ptr, ptr %1428, align 8, !tbaa !205
  %.not584 = icmp eq ptr %1429, null
  br i1 %.not584, label %1436, label %1435

.lr.ph661:                                        ; preds = %1423, %.lr.ph661
  %.0659 = phi i32 [ %1432, %.lr.ph661 ], [ 0, %1423 ]
  %1430 = call noundef ptr @_ZN15ImPlotItemGroup14GetItemByIndexEi(ptr noundef nonnull align 8 dereferenceable(124) %962, i32 noundef %.0659)
  %1431 = getelementptr inbounds i8, ptr %1430, i64 30
  store i8 0, ptr %1431, align 2, !tbaa !206
  %1432 = add nuw nsw i32 %.0659, 1
  %1433 = call noundef i32 @_ZNK15ImPlotItemGroup12GetItemCountEv(ptr noundef nonnull align 8 dereferenceable(124) %962)
  %1434 = icmp slt i32 %1432, %1433
  br i1 %1434, label %.lr.ph661, label %._crit_edge662, !llvm.loop !207

1435:                                             ; preds = %._crit_edge662
  call void @_ZN5ImGui5PopIDEv()
  call void @_ZN6ImPlot15SubplotNextCellEv()
  br label %1436

1436:                                             ; preds = %1435, %._crit_edge662
  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 16080}
!45 = !{!"_ZTS12ImGuiContext", !28, i64 0, !28, i64 1, !46, i64 8, !50, i64 14288, !6, i64 15360, !23, i64 15368, !23, i64 15372, !51, i64 15376, !54, i64 15904, !13, i64 15912, !13, i64 15916, !13, i64 15920, !28, i64 15924, !28, i64 15925, !28, i64 15926, !28, i64 15927, !28, i64 15928, !6, i64 15936, !55, i64 15944, !55, i64 15960, !47, i64 15976, !13, i64 15980, !56, i64 15984, !56, i64 16000, !56, i64 16016, !57, i64 16032, !14, i64 16048, !13, i64 16064, !22, i64 16068, !6, i64 16080, !6, i64 16088, !6, i64 16096, !6, i64 16104, !6, i64 16112, !22, i64 16120, !13, i64 16128, !23, i64 16132, !22, i64 16136, !22, i64 16144, !13, i64 16152, !13, i64 16156, !13, i64 16160, !28, i64 16164, !28, i64 16165, !23, i64 16168, !23, i64 16172, !13, i64 16176, !13, i64 16180, !23, i64 16184, !28, i64 16188, !28, i64 16189, !28, i64 16190, !28, i64 16191, !28, i64 16192, !28, i64 16193, !22, i64 16196, !6, i64 16208, !58, i64 16216, !13, i64 16220, !13, i64 16224, !28, i64 16228, !28, i64 16229, !6, i64 16232, !13, i64 16240, !23, i64 16244, !7, i64 16248, !59, i64 17928, !13, i64 18240, !28, i64 18244, !13, i64 18248, !13, i64 18252, !13, i64 18256, !13, i64 18260, !61, i64 18264, !62, i64 18284, !64, i64 18344, !30, i64 18456, !31, i64 18472, !65, i64 18488, !33, i64 18504, !34, i64 18520, !66, i64 18536, !67, i64 18552, !67, i64 18568, !13, i64 18584, !68, i64 18592, !6, i64 18608, !13, i64 18616, !13, i64 18620, !13, i64 18624, !13, i64 18628, !13, i64 18632, !13, i64 18636, !13, i64 18640, !13, i64 18644, !13, i64 18648, !13, i64 18652, !13, i64 18656, !58, i64 18660, !69, i64 18664, !28, i64 18668, !28, i64 18669, !28, i64 18670, !28, i64 18671, !28, i64 18672, !28, i64 18673, !28, i64 18674, !13, i64 18676, !63, i64 18680, !28, i64 18696, !28, i64 18697, !28, i64 18698, !13, i64 18700, !13, i64 18704, !13, i64 18708, !13, i64 18712, !13, i64 18716, !13, i64 18720, !63, i64 18724, !63, i64 18740, !13, i64 18756, !13, i64 18760, !13, i64 18764, !70, i64 18768, !70, i64 18816, !70, i64 18864, !70, i64 18912, !13, i64 18960, !13, i64 18964, !6, i64 18968, !6, i64 18976, !6, i64 18984, !23, i64 18992, !23, i64 18996, !28, i64 19000, !22, i64 19004, !22, i64 19012, !23, i64 19020, !13, i64 19024, !28, i64 19028, !28, i64 19029, !28, i64 19030, !13, i64 19032, !13, i64 19036, !13, i64 19040, !71, i64 19048, !63, i64 19112, !13, i64 19128, !13, i64 19132, !23, i64 19136, !13, i64 19140, !13, i64 19144, !13, i64 19148, !13, i64 19152, !72, i64 19160, !7, i64 19176, !13, i64 19192, !73, i64 19200, !6, i64 19216, !13, i64 19224, !74, i64 19232, !75, i64 19248, !77, i64 19288, !78, i64 19304, !6, i64 19320, !79, i64 19328, !81, i64 19368, !82, i64 19384, !13, i64 19400, !13, i64 19404, !23, i64 19408, !23, i64 19412, !22, i64 19416, !83, i64 19424, !86, i64 23152, !87, i64 23176, !13, i64 23296, !13, i64 23300, !13, i64 23304, !13, i64 23308, !23, i64 23312, !23, i64 23316, !13, i64 23320, !52, i64 23324, !89, i64 23340, !23, i64 23388, !23, i64 23392, !28, i64 23396, !28, i64 23397, !23, i64 23400, !23, i64 23404, !23, i64 23408, !23, i64 23412, !48, i64 23416, !48, i64 23418, !21, i64 23424, !33, i64 23440, !90, i64 23456, !90, i64 23472, !7, i64 23488, !28, i64 23489, !23, i64 23492, !20, i64 23496, !91, i64 23512, !92, i64 23528, !93, i64 23544, !94, i64 23560, !13, i64 23576, !7, i64 23584, !28, i64 23640, !95, i64 23644, !6, i64 23648, !20, i64 23656, !6, i64 23672, !6, i64 23680, !23, i64 23688, !28, i64 23692, !13, i64 23696, !13, i64 23700, !13, i64 23704, !13, i64 23708, !20, i64 23712, !96, i64 23728, !7, i64 23752, !7, i64 23753, !7, i64 23754, !28, i64 23755, !7, i64 23756, !13, i64 23760, !97, i64 23764, !98, i64 23784, !7, i64 23824, !13, i64 24064, !13, i64 24068, !23, i64 24072, !13, i64 24076, !13, i64 24080, !13, i64 24084, !21, i64 24088}
!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, !23, i64 52, !23, i64 56, !23, i64 60, !23, i64 64, !6, i64 72, !6, i64 80, !23, i64 88, !28, i64 92, !6, i64 96, !22, i64 104, !28, i64 112, !28, i64 113, !28, i64 114, !28, i64 115, !28, i64 116, !28, i64 117, !28, i64 118, !28, i64 119, !23, i64 120, !28, i64 124, !28, i64 125, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !28, i64 208, !28, i64 209, !28, i64 210, !28, i64 211, !28, i64 212, !28, i64 213, !28, i64 214, !23, i64 216, !13, i64 220, !13, i64 224, !13, i64 228, !13, i64 232, !13, i64 236, !22, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !22, i64 3584, !7, i64 3592, !23, i64 3600, !23, i64 3604, !47, i64 3608, !28, i64 3612, !28, i64 3613, !28, i64 3614, !28, i64 3615, !13, i64 3616, !7, i64 3620, !28, i64 14052, !22, i64 14056, !7, i64 14064, !7, i64 14104, !7, i64 14144, !7, i64 14149, !7, i64 14154, !7, i64 14164, !7, i64 14174, !7, i64 14179, !7, i64 14184, !28, i64 14189, !7, i64 14192, !7, i64 14212, !7, i64 14232, !23, i64 14252, !28, i64 14256, !28, i64 14257, !7, i64 14258, !28, i64 14259, !48, i64 14260, !49, i64 14264}
!47 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!48 = !{!"short", !7, i64 0}
!49 = !{!"_ZTS8ImVectorItE", !13, i64 0, !13, i64 4, !6, i64 8}
!50 = !{!"_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, !23, i64 168, !22, i64 172, !22, i64 180, !22, i64 188, !22, i64 196, !23, i64 204, !28, i64 208, !28, i64 209, !28, i64 210, !23, i64 212, !23, i64 216, !7, i64 220}
!51 = !{!"_ZTS20ImDrawListSharedData", !22, i64 0, !6, i64 8, !23, i64 16, !23, i64 20, !23, i64 24, !52, i64 28, !13, i64 44, !53, i64 48, !7, i64 64, !23, i64 448, !7, i64 452, !6, i64 520}
!52 = !{!"_ZTS6ImVec4", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12}
!53 = !{!"_ZTS8ImVectorI6ImVec2E", !13, i64 0, !13, i64 4, !6, i64 8}
!54 = !{!"double", !7, i64 0}
!55 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !13, i64 0, !13, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !13, i64 0, !13, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!58 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!59 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !60, i64 280, !60, i64 296}
!60 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!61 = !{!"_ZTS17ImGuiNextItemData", !13, i64 0, !23, i64 4, !13, i64 8, !13, i64 12, !28, i64 16}
!62 = !{!"_ZTS17ImGuiLastItemData", !13, i64 0, !13, i64 4, !13, i64 8, !63, i64 12, !63, i64 28, !63, i64 44}
!63 = !{!"_ZTS6ImRect", !22, i64 0, !22, i64 8}
!64 = !{!"_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, !63, i64 60, !6, i64 80, !6, i64 88, !23, i64 96, !22, i64 100}
!65 = !{!"_ZTS8ImVectorIP6ImFontE", !13, i64 0, !13, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !13, i64 0, !13, i64 4, !6, i64 8}
!69 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!70 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !13, i64 8, !13, i64 12, !63, i64 16, !13, i64 32, !23, i64 36, !23, i64 40, !23, i64 44}
!71 = !{!"_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}
!72 = !{!"_ZTS8ImVectorIhE", !13, i64 0, !13, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!74 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!75 = !{!"_ZTS6ImPoolI10ImGuiTableE", !76, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!76 = !{!"_ZTS8ImVectorI10ImGuiTableE", !13, i64 0, !13, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorIfE", !13, i64 0, !13, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !13, i64 0, !13, i64 4, !6, i64 8}
!79 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !80, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!80 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !13, i64 0, !13, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !13, i64 0, !13, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!83 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !49, i64 24, !21, i64 40, !21, i64 56, !28, i64 72, !13, i64 76, !23, i64 80, !84, i64 84, !23, i64 3712, !28, i64 3716, !28, i64 3717, !28, i64 3718, !13, i64 3720}
!84 = !{!"_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, !85, i64 32}
!85 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !48, i64 3582, !48, i64 3584, !13, i64 3588, !13, i64 3592}
!86 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !13, i64 0, !21, i64 8}
!87 = !{!"_ZTS6ImFont", !77, i64 0, !23, i64 16, !23, i64 20, !49, i64 24, !88, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !48, i64 80, !48, i64 82, !48, i64 84, !48, i64 86, !23, i64 88, !23, i64 92, !28, i64 96, !23, i64 100, !23, i64 104, !23, i64 108, !13, i64 112, !7, i64 116}
!88 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !13, i64 0, !13, i64 4, !6, i64 8}
!89 = !{!"_ZTS21ImGuiComboPreviewData", !63, i64 0, !22, i64 16, !22, i64 24, !22, i64 32, !23, i64 40, !13, i64 44}
!90 = !{!"_ZTS20ImGuiPlatformImeData", !28, i64 0, !22, i64 4, !23, i64 12}
!91 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !13, i64 0, !13, i64 4, !6, i64 8}
!92 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !21, i64 0}
!93 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !21, i64 0}
!94 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !13, i64 0, !13, i64 4, !6, i64 8}
!95 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!96 = !{!"_ZTS14ImGuiTextIndex", !34, i64 0, !13, i64 16}
!97 = !{!"_ZTS18ImGuiMetricsConfig", !28, i64 0, !28, i64 1, !28, i64 2, !28, i64 3, !28, i64 4, !28, i64 5, !28, i64 6, !28, i64 7, !13, i64 8, !13, i64 12}
!98 = !{!"_ZTS14ImGuiStackTool", !13, i64 0, !13, i64 4, !13, i64 8, !99, i64 16, !28, i64 32, !23, i64 36}
!99 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !13, i64 0, !13, i64 4, !6, i64 8}
!100 = !{!101, !6, i64 664}
!101 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !6, i64 24, !22, i64 32, !22, i64 40, !22, i64 48, !22, i64 56, !22, i64 64, !22, i64 72, !22, i64 80, !23, i64 88, !23, i64 92, !23, i64 96, !23, i64 100, !23, i64 104, !23, i64 108, !23, i64 112, !23, i64 116, !13, i64 120, !13, i64 124, !13, i64 128, !22, i64 132, !22, i64 140, !22, i64 148, !22, i64 156, !22, i64 164, !22, i64 172, !28, i64 180, !28, i64 181, !28, i64 182, !28, i64 183, !28, i64 184, !28, i64 185, !28, i64 186, !28, i64 187, !28, i64 188, !28, i64 189, !28, i64 190, !28, i64 191, !28, i64 192, !7, i64 193, !48, i64 194, !48, i64 196, !48, i64 198, !48, i64 200, !48, i64 202, !13, i64 204, !7, i64 208, !7, i64 209, !7, i64 210, !28, i64 211, !13, i64 212, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !13, i64 220, !13, i64 221, !13, i64 222, !22, i64 224, !22, i64 232, !33, i64 240, !102, i64 256, !63, i64 488, !63, i64 504, !63, i64 520, !63, i64 536, !63, i64 552, !63, i64 568, !63, i64 584, !105, i64 600, !105, i64 604, !13, i64 608, !23, i64 612, !23, i64 616, !14, i64 624, !106, i64 640, !23, i64 656, !13, i64 660, !6, i64 664, !107, i64 672, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !7, i64 928, !7, i64 936, !13, i64 968, !13, i64 972, !13, i64 976, !28, i64 980}
!102 = !{!"_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, !28, i64 64, !28, i64 65, !103, i64 68, !103, i64 72, !103, i64 76, !22, i64 80, !69, i64 88, !48, i64 92, !48, i64 94, !28, i64 96, !28, i64 97, !28, i64 98, !28, i64 99, !22, i64 100, !104, i64 108, !13, i64 136, !13, i64 140, !56, i64 144, !6, i64 160, !6, i64 168, !13, i64 176, !13, i64 180, !13, i64 184, !23, i64 188, !23, i64 192, !77, i64 200, !77, i64 216}
!103 = !{!"_ZTS6ImVec1", !23, i64 0}
!104 = !{!"_ZTS16ImGuiMenuColumns", !13, i64 0, !13, i64 4, !48, i64 8, !48, i64 10, !48, i64 12, !48, i64 14, !48, i64 16, !7, i64 18}
!105 = !{!"_ZTS8ImVec2ih", !48, i64 0, !48, i64 2}
!106 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !13, i64 0, !13, i64 4, !6, i64 8}
!107 = !{!"_ZTS10ImDrawList", !108, i64 0, !49, i64 16, !109, i64 32, !13, i64 48, !13, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !110, i64 88, !111, i64 104, !53, i64 120, !112, i64 136, !113, i64 168, !23, i64 192}
!108 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !13, i64 0, !13, i64 4, !6, i64 8}
!109 = !{!"_ZTS8ImVectorI10ImDrawVertE", !13, i64 0, !13, i64 4, !6, i64 8}
!110 = !{!"_ZTS8ImVectorI6ImVec4E", !13, i64 0, !13, i64 4, !6, i64 8}
!111 = !{!"_ZTS8ImVectorIPvE", !13, i64 0, !13, i64 4, !6, i64 8}
!112 = !{!"_ZTS15ImDrawCmdHeader", !52, i64 0, !6, i64 16, !13, i64 24}
!113 = !{!"_ZTS18ImDrawListSplitter", !13, i64 0, !13, i64 4, !78, i64 8}
!114 = !{!10, !23, i64 296}
!115 = !{!52, !23, i64 12}
!116 = !{!117, !28, i64 2529}
!117 = !{!"_ZTS10ImPlotPlot", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !7, i64 24, !20, i64 2280, !118, i64 2296, !13, i64 2424, !13, i64 2428, !63, i64 2432, !63, i64 2448, !63, i64 2464, !63, i64 2480, !63, 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}
!118 = !{!"_ZTS15ImPlotItemGroup", !13, i64 0, !119, i64 8, !120, i64 80, !13, i64 120}
!119 = !{!"_ZTS12ImPlotLegend", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !34, i64 16, !20, i64 32, !63, i64 48, !28, i64 64, !28, i64 65, !28, i64 66}
!120 = !{!"_ZTS6ImPoolI10ImPlotItemE", !121, i64 0, !14, i64 16, !13, i64 32, !13, i64 36}
!121 = !{!"_ZTS8ImVectorI10ImPlotItemE", !13, i64 0, !13, i64 4, !6, i64 8}
!122 = !{i8 0, i8 2}
!123 = !{}
!124 = !{!125, !28, i64 364}
!125 = !{!"_ZTS10ImPlotAxis", !13, i64 0, !13, i64 4, !13, i64 8, !126, i64 16, !13, i64 32, !13, i64 36, !126, i64 40, !6, i64 56, !126, i64 64, !126, 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, !127, i64 216, !127, i64 232, !6, i64 248, !6, i64 256, !6, i64 264, !23, i64 272, !23, i64 276, !54, i64 280, !54, i64 288, !54, i64 296, !23, i64 304, !23, i64 308, !63, 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}
!126 = !{!"_ZTS11ImPlotRange", !54, i64 0, !54, i64 8}
!127 = !{!"_ZTS10ImPlotTime", !37, i64 0, !13, i64 8}
!128 = !{!125, !13, i64 332}
!129 = !{!125, !13, i64 336}
!130 = !{!10, !23, i64 336}
!131 = !{!10, !23, i64 344}
!132 = !{!10, !23, i64 340}
!133 = !{!10, !23, i64 348}
!134 = !{!117, !23, i64 2452}
!135 = !{!136, !13, i64 28}
!136 = !{!"_ZTS10ImPlotTick", !54, 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 = !{!117, !23, i64 2464}
!139 = !{!117, !23, i64 2472}
!140 = !{!125, !23, i64 304}
!141 = !{!23, !23, i64 0}
!142 = !{!125, !13, i64 340}
!143 = distinct !{!143, !144}
!144 = !{!"llvm.loop.mustprogress"}
!145 = !{!136, !28, i64 24}
!146 = !{!10, !23, i64 328}
!147 = distinct !{!147, !144}
!148 = !{!10, !13, i64 208}
!149 = !{!117, !23, i64 2468}
!150 = !{!117, !23, i64 2476}
!151 = distinct !{!151, !144}
!152 = !{!10, !23, i64 332}
!153 = distinct !{!153, !144}
!154 = !{!117, !28, i64 2531}
!155 = !{!156, !23, i64 8}
!156 = !{!"_ZTS16ImPlotAnnotation", !22, i64 0, !22, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !28, i64 28}
!157 = !{!22, !23, i64 0}
!158 = !{!156, !23, i64 12}
!159 = !{!22, !23, i64 4}
!160 = !{!156, !28, i64 28}
!161 = !{!156, !13, i64 16}
!162 = !{!156, !13, i64 20}
!163 = distinct !{!163, !144}
!164 = !{!117, !13, i64 4}
!165 = !{!117, !28, i64 2528}
!166 = !{!117, !28, i64 2530}
!167 = !{!117, !28, i64 2368}
!168 = !{!117, !13, i64 16}
!169 = !{!46, !23, i64 3584}
!170 = !{!46, !23, i64 3588}
!171 = distinct !{!171, !144, !172}
!172 = !{!"llvm.loop.peeled.count", i32 1}
!173 = distinct !{!173, !144, !172}
!174 = !{!117, !13, i64 12}
!175 = !{i64 0, i64 4, !141, i64 4, i64 4, !141, i64 8, i64 4, !141, i64 12, i64 4, !141}
!176 = !{!125, !13, i64 4}
!177 = !{!125, !28, i64 371}
!178 = !{!125, !13, i64 352}
!179 = !{!180, !28, i64 29}
!180 = !{!"_ZTS10ImPlotItem", !13, i64 0, !13, i64 4, !63, i64 8, !13, i64 24, !28, i64 28, !28, i64 29, !28, i64 30}
!181 = distinct !{!181, !144}
!182 = !{!119, !13, i64 0}
!183 = !{!119, !13, i64 8}
!184 = !{!119, !28, i64 64}
!185 = !{!10, !28, i64 1512}
!186 = !{!10, !13, i64 248}
!187 = !{!117, !28, i64 2527}
!188 = !{!125, !28, i64 366}
!189 = !{!190, !13, i64 0}
!190 = !{!"_ZTS9ImPlotTag", !13, i64 0, !54, i64 8, !13, i64 16, !13, i64 20, !13, i64 24}
!191 = !{!190, !54, i64 8}
!192 = !{!125, !28, i64 365}
!193 = !{!10, !23, i64 360}
!194 = !{!190, !13, i64 16}
!195 = !{!10, !23, i64 364}
!196 = !{!190, !13, i64 20}
!197 = distinct !{!197, !144}
!198 = !{!10, !23, i64 408}
!199 = !{!125, !6, i64 56}
!200 = !{!10, !23, i64 412}
!201 = !{!117, !13, i64 0}
!202 = !{!125, !28, i64 370}
!203 = !{!10, !6, i64 96}
!204 = !{!117, !28, i64 2525}
!205 = !{!10, !6, i64 88}
!206 = !{!180, !28, i64 30}
!207 = distinct !{!207, !144}


; 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