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

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

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

@GImPlot = external dso_local global ptr, align 8
@GImGui = external global ptr, align 8
@.str.78 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [114 x i8], align 1
@__PRETTY_FUNCTION__._ZN6ImPlot11SetupFinishEv = external hidden unnamed_addr constant [27 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [86 x i8], align 1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #1 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) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot15AddTextVerticalEP10ImDrawList6ImVec2jPKcS4_(ptr noundef, <2 x float>, i32 noundef, ptr noundef, ptr 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)) #4

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

declare noundef float @_ZN5ImGui17GetTextLineHeightEv() #6

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: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef, i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16)) #3 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) #3

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

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

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

; 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 #1 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 uwtable
declare dso_local void @_ZN6ImPlot15Locator_DefaultER12ImPlotTickerRK11ImPlotRangefbPFidPciPvES6_(ptr noundef nonnull align 8 dereferenceable(52), ptr noundef nonnull align 8 dereferenceable(16), float noundef, i1 noundef zeroext, ptr noundef, ptr noundef) #8

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

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

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

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

; 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 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372)) #10 align 2

; 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef, i32 noundef) #7

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

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

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

; 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 nounwind uwtable
declare dso_local noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16)) #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot11UpdateInputER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533)) #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ImPlot11SetupFinishEv() #3 {
  %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 i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i8, align 1
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %struct.ImRect, align 4
  %14 = alloca %struct.ImVec2, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i8, align 1
  %18 = alloca %struct.ImVec2, align 4
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca float, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca %struct.ImRect, align 4
  %36 = alloca %struct.ImVec2, align 4
  %37 = alloca %struct.ImVec2, align 4
  %38 = alloca %struct.ImVec2, align 4
  %39 = alloca %struct.ImVec2, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca %struct.ImRect, align 4
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca %struct.ImRect, align 4
  %48 = alloca %struct.ImVec2, align 4
  %49 = alloca %struct.ImVec2, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca ptr, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca i32, align 4
  %56 = alloca float, align 4
  %57 = alloca %struct.ImVec2, align 4
  %58 = alloca %struct.ImVec2, align 4
  %59 = alloca i32, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca i32, align 4
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca i8, align 1
  %71 = alloca ptr, align 8
  %72 = alloca %struct.ImVec2, align 4
  %73 = alloca float, align 4
  %74 = alloca %struct.ImVec2, align 4
  %75 = alloca %struct.ImVec2, align 4
  %76 = alloca i32, align 4
  %77 = alloca ptr, align 8
  %78 = alloca float, align 4
  %79 = alloca %struct.ImVec2, align 4
  %80 = alloca i32, align 4
  %81 = alloca ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca i8, align 1
  %84 = alloca ptr, align 8
  %85 = alloca %struct.ImVec2, align 4
  %86 = alloca float, align 4
  %87 = alloca %struct.ImVec2, align 4
  %88 = alloca %struct.ImVec2, align 4
  %89 = alloca %struct.ImVec2, align 4
  %90 = alloca i32, align 4
  %91 = alloca ptr, align 8
  %92 = alloca float, align 4
  %93 = alloca %struct.ImVec2, align 4
  %94 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %95 = icmp ne ptr %94, null
  br i1 %95, label %96, label %97

96:                                               ; preds = %0
  br label %97

97:                                               ; preds = %96, %0
  %98 = phi i1 [ false, %0 ], [ true, %96 ]
  br i1 %98, label %99, label %100

99:                                               ; preds = %97
  br label %102

100:                                              ; preds = %97
  call void @__assert_fail(ptr noundef @.str.144, ptr noundef @.str.78, i32 noundef 2428, ptr noundef @__PRETTY_FUNCTION__._ZN6ImPlot11SetupFinishEv) #11
  unreachable

101:                                              ; No predecessors!
  br label %102

102:                                              ; preds = %101, %99
  %103 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.ImPlotContext, ptr %103, i32 0, i32 2
  %105 = load ptr, ptr %104, align 8, !tbaa !9
  %106 = icmp ne ptr %105, null
  br i1 %106, label %107, label %108

107:                                              ; preds = %102
  br label %108

108:                                              ; preds = %107, %102
  %109 = phi i1 [ false, %102 ], [ true, %107 ]
  br i1 %109, label %110, label %111

110:                                              ; preds = %108
  br label %113

111:                                              ; preds = %108
  call void @__assert_fail(ptr noundef @.str.148, ptr noundef @.str.78, i32 noundef 2429, ptr noundef @__PRETTY_FUNCTION__._ZN6ImPlot11SetupFinishEv) #11
  unreachable

112:                                              ; No predecessors!
  br label %113

113:                                              ; preds = %112, %110
  call void @llvm.lifetime.start.p0(i64 8, ptr %1) #12
  %114 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  store ptr %114, ptr %1, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %2) #12
  %115 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %115, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #12
  %116 = load ptr, ptr %2, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.ImGuiContext, ptr %116, i32 0, i32 29
  %118 = load ptr, ptr %117, align 8, !tbaa !44
  %119 = getelementptr inbounds %struct.ImGuiWindow, ptr %118, i32 0, i32 72
  %120 = load ptr, ptr %119, align 8, !tbaa !91
  store ptr %120, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #12
  %121 = load ptr, ptr %2, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.ImGuiContext, ptr %121, i32 0, i32 4
  store ptr %122, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #12
  %123 = load ptr, ptr %1, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct.ImPlotContext, ptr %123, i32 0, i32 2
  %125 = load ptr, ptr %124, align 8, !tbaa !9
  store ptr %125, ptr %5, align 8, !tbaa !5
  %126 = load ptr, ptr %5, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.ImPlotPlot, ptr %126, i32 0, i32 20
  store i8 1, ptr %127, align 2, !tbaa !107
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #12
  store i32 0, ptr %6, align 4, !tbaa !113
  br label %128

128:                                              ; preds = %188, %113
  %129 = load i32, ptr %6, align 4, !tbaa !113
  %130 = icmp slt i32 %129, 6
  br i1 %130, label %132, label %131

131:                                              ; preds = %128
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #12
  br label %191

132:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #12
  %133 = load ptr, ptr %5, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.ImPlotPlot, ptr %133, i32 0, i32 6
  %135 = load i32, ptr %6, align 4, !tbaa !113
  %136 = sext i32 %135 to i64
  %137 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %134, i64 0, i64 %136
  store ptr %137, ptr %7, align 8, !tbaa !5
  %138 = load ptr, ptr %7, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.ImPlotAxis, ptr %138, i32 0, i32 42
  %140 = load i8, ptr %139, align 4, !tbaa !114, !range !118, !noundef !119
  %141 = trunc i8 %140 to i1
  br i1 %141, label %142, label %157

142:                                              ; preds = %132
  %143 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN10ImPlotAxis9ConstrainEv(ptr noundef nonnull align 8 dereferenceable(372) %143)
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.ImPlotPlot, ptr %144, i32 0, i32 19
  %146 = load i8, ptr %145, align 1, !tbaa !120, !range !118, !noundef !119
  %147 = trunc i8 %146 to i1
  br i1 %147, label %156, label %148

148:                                              ; preds = %142
  %149 = load ptr, ptr %7, align 8, !tbaa !5
  %150 = call noundef zeroext i1 @_ZNK10ImPlotAxis10CanInitFitEv(ptr noundef nonnull align 8 dereferenceable(372) %149)
  br i1 %150, label %151, label %156

151:                                              ; preds = %148
  %152 = load ptr, ptr %7, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.ImPlotAxis, ptr %152, i32 0, i32 44
  store i8 1, ptr %153, align 2, !tbaa !121
  %154 = load ptr, ptr %5, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.ImPlotPlot, ptr %154, i32 0, i32 21
  store i8 1, ptr %155, align 1, !tbaa !122
  br label %156

156:                                              ; preds = %151, %148, %142
  br label %157

157:                                              ; preds = %156, %132
  %158 = load ptr, ptr %7, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.ImPlotAxis, ptr %158, i32 0, i32 12
  %160 = load ptr, ptr %159, align 8, !tbaa !123
  %161 = icmp eq ptr %160, null
  br i1 %161, label %162, label %179

162:                                              ; preds = %157
  %163 = load ptr, ptr %7, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.ImPlotAxis, ptr %163, i32 0, i32 12
  store ptr @_ZN6ImPlotL17Formatter_DefaultEdPciPv, ptr %164, align 8, !tbaa !123
  %165 = load ptr, ptr %7, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.ImPlotAxis, ptr %165, i32 0, i32 46
  %167 = load i8, ptr %166, align 8, !tbaa !124, !range !118, !noundef !119
  %168 = trunc i8 %167 to i1
  br i1 %168, label %169, label %175

169:                                              ; preds = %162
  %170 = load ptr, ptr %7, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.ImPlotAxis, ptr %170, i32 0, i32 14
  %172 = getelementptr inbounds [16 x i8], ptr %171, i64 0, i64 0
  %173 = load ptr, ptr %7, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.ImPlotAxis, ptr %173, i32 0, i32 13
  store ptr %172, ptr %174, align 8, !tbaa !125
  br label %178

175:                                              ; preds = %162
  %176 = load ptr, ptr %7, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.ImPlotAxis, ptr %176, i32 0, i32 13
  store ptr @.str.133, ptr %177, align 8, !tbaa !125
  br label %178

178:                                              ; preds = %175, %169
  br label %179

179:                                              ; preds = %178, %157
  %180 = load ptr, ptr %7, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.ImPlotAxis, ptr %180, i32 0, i32 15
  %182 = load ptr, ptr %181, align 8, !tbaa !126
  %183 = icmp eq ptr %182, null
  br i1 %183, label %184, label %187

184:                                              ; preds = %179
  %185 = load ptr, ptr %7, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.ImPlotAxis, ptr %185, i32 0, i32 15
  store ptr @_ZN6ImPlot15Locator_DefaultER12ImPlotTickerRK11ImPlotRangefbPFidPciPvES6_, ptr %186, align 8, !tbaa !126
  br label %187

187:                                              ; preds = %184, %179
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #12
  br label %188

188:                                              ; preds = %187
  %189 = load i32, ptr %6, align 4, !tbaa !113
  %190 = add nsw i32 %189, 1
  store i32 %190, ptr %6, align 4, !tbaa !113
  br label %128, !llvm.loop !127

191:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #12
  %192 = load ptr, ptr %5, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.ImPlotPlot, ptr %192, i32 0, i32 1
  %194 = load i32, ptr %193, align 4, !tbaa !129
  %195 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %194, i32 noundef 256)
  %196 = zext i1 %195 to i8
  store i8 %196, ptr %8, align 1, !tbaa !130
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #12
  store i32 0, ptr %9, align 4, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #12
  store i32 3, ptr %10, align 4, !tbaa !113
  br label %197

197:                                              ; preds = %288, %191
  %198 = load i32, ptr %9, align 4, !tbaa !113
  %199 = icmp slt i32 %198, 3
  br i1 %199, label %203, label %200

200:                                              ; preds = %197
  %201 = load i32, ptr %10, align 4, !tbaa !113
  %202 = icmp slt i32 %201, 6
  br label %203

203:                                              ; preds = %200, %197
  %204 = phi i1 [ true, %197 ], [ %202, %200 ]
  br i1 %204, label %206, label %205

205:                                              ; preds = %203
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #12
  br label %293

206:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #12
  %207 = load ptr, ptr %5, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.ImPlotPlot, ptr %207, i32 0, i32 6
  %209 = load i32, ptr %9, align 4, !tbaa !113
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %208, i64 0, i64 %210
  store ptr %211, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #12
  %212 = load ptr, ptr %5, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.ImPlotPlot, ptr %212, i32 0, i32 6
  %214 = load i32, ptr %10, align 4, !tbaa !113
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %213, i64 0, i64 %215
  store ptr %216, ptr %12, align 8, !tbaa !5
  %217 = load ptr, ptr %11, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.ImPlotAxis, ptr %217, i32 0, i32 42
  %219 = load i8, ptr %218, align 4, !tbaa !114, !range !118, !noundef !119
  %220 = trunc i8 %219 to i1
  br i1 %220, label %221, label %245

221:                                              ; preds = %206
  %222 = load ptr, ptr %12, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.ImPlotAxis, ptr %222, i32 0, i32 42
  %224 = load i8, ptr %223, align 4, !tbaa !114, !range !118, !noundef !119
  %225 = trunc i8 %224 to i1
  br i1 %225, label %226, label %245

226:                                              ; preds = %221
  %227 = load ptr, ptr %11, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.ImPlotAxis, ptr %227, i32 0, i32 8
  %229 = load ptr, ptr %228, align 8, !tbaa !131
  %230 = icmp eq ptr %229, null
  br i1 %230, label %231, label %235

231:                                              ; preds = %226
  %232 = load ptr, ptr %12, align 8, !tbaa !5
  %233 = load ptr, ptr %11, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.ImPlotAxis, ptr %233, i32 0, i32 8
  store ptr %232, ptr %234, align 8, !tbaa !131
  br label %235

235:                                              ; preds = %231, %226
  %236 = load ptr, ptr %12, align 8, !tbaa !5
  %237 = getelementptr inbounds %struct.ImPlotAxis, ptr %236, i32 0, i32 8
  %238 = load ptr, ptr %237, align 8, !tbaa !131
  %239 = icmp eq ptr %238, null
  br i1 %239, label %240, label %244

240:                                              ; preds = %235
  %241 = load ptr, ptr %11, align 8, !tbaa !5
  %242 = load ptr, ptr %12, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.ImPlotAxis, ptr %242, i32 0, i32 8
  store ptr %241, ptr %243, align 8, !tbaa !131
  br label %244

244:                                              ; preds = %240, %235
  br label %287

245:                                              ; preds = %221, %206
  %246 = load ptr, ptr %11, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.ImPlotAxis, ptr %246, i32 0, i32 42
  %248 = load i8, ptr %247, align 4, !tbaa !114, !range !118, !noundef !119
  %249 = trunc i8 %248 to i1
  br i1 %249, label %250, label %265

250:                                              ; preds = %245
  %251 = load ptr, ptr %11, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.ImPlotAxis, ptr %251, i32 0, i32 8
  %253 = load ptr, ptr %252, align 8, !tbaa !131
  %254 = icmp eq ptr %253, null
  br i1 %254, label %255, label %264

255:                                              ; preds = %250
  %256 = load i8, ptr %8, align 1, !tbaa !130, !range !118, !noundef !119
  %257 = trunc i8 %256 to i1
  br i1 %257, label %264, label %258

258:                                              ; preds = %255
  %259 = load ptr, ptr %5, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.ImPlotPlot, ptr %259, i32 0, i32 6
  %261 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %260, i64 0, i64 3
  %262 = load ptr, ptr %11, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImPlotAxis, ptr %262, i32 0, i32 8
  store ptr %261, ptr %263, align 8, !tbaa !131
  br label %264

264:                                              ; preds = %258, %255, %250
  br label %286

265:                                              ; preds = %245
  %266 = load ptr, ptr %12, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.ImPlotAxis, ptr %266, i32 0, i32 42
  %268 = load i8, ptr %267, align 4, !tbaa !114, !range !118, !noundef !119
  %269 = trunc i8 %268 to i1
  br i1 %269, label %270, label %285

270:                                              ; preds = %265
  %271 = load ptr, ptr %12, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ImPlotAxis, ptr %271, i32 0, i32 8
  %273 = load ptr, ptr %272, align 8, !tbaa !131
  %274 = icmp eq ptr %273, null
  br i1 %274, label %275, label %284

275:                                              ; preds = %270
  %276 = load i8, ptr %8, align 1, !tbaa !130, !range !118, !noundef !119
  %277 = trunc i8 %276 to i1
  br i1 %277, label %284, label %278

278:                                              ; preds = %275
  %279 = load ptr, ptr %5, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.ImPlotPlot, ptr %279, i32 0, i32 6
  %281 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %280, i64 0, i64 0
  %282 = load ptr, ptr %12, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.ImPlotAxis, ptr %282, i32 0, i32 8
  store ptr %281, ptr %283, align 8, !tbaa !131
  br label %284

284:                                              ; preds = %278, %275, %270
  br label %285

285:                                              ; preds = %284, %265
  br label %286

286:                                              ; preds = %285, %264
  br label %287

287:                                              ; preds = %286, %244
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #12
  br label %288

288:                                              ; preds = %287
  %289 = load i32, ptr %9, align 4, !tbaa !113
  %290 = add nsw i32 %289, 1
  store i32 %290, ptr %9, align 4, !tbaa !113
  %291 = load i32, ptr %10, align 4, !tbaa !113
  %292 = add nsw i32 %291, 1
  store i32 %292, ptr %10, align 4, !tbaa !113
  br label %197, !llvm.loop !132

293:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #12
  %294 = load ptr, ptr %5, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.ImPlotPlot, ptr %294, i32 0, i32 11
  %296 = getelementptr inbounds %struct.ImRect, ptr %295, i32 0, i32 0
  %297 = load ptr, ptr %1, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.ImPlotContext, ptr %297, i32 0, i32 12
  %299 = getelementptr inbounds %struct.ImPlotStyle, ptr %298, i32 0, i32 17
  %300 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %296, ptr noundef nonnull align 4 dereferenceable(8) %299)
  store <2 x float> %300, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #12
  %301 = load ptr, ptr %5, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.ImPlotPlot, ptr %301, i32 0, i32 11
  %303 = getelementptr inbounds %struct.ImRect, ptr %302, i32 0, i32 1
  %304 = load ptr, ptr %1, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.ImPlotContext, ptr %304, i32 0, i32 12
  %306 = getelementptr inbounds %struct.ImPlotStyle, ptr %305, i32 0, i32 17
  %307 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %303, ptr noundef nonnull align 4 dereferenceable(8) %306)
  store <2 x float> %307, ptr %15, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %13, ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(8) %15)
  %308 = load ptr, ptr %5, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.ImPlotPlot, ptr %308, i32 0, i32 12
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %309, ptr align 4 %13, i64 16, i1 false), !tbaa.struct !133
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #12
  %310 = load ptr, ptr %5, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImPlotPlot, ptr %310, i32 0, i32 11
  %312 = load ptr, ptr %5, align 8, !tbaa !5
  %313 = getelementptr inbounds %struct.ImPlotPlot, ptr %312, i32 0, i32 14
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %313, ptr align 8 %311, i64 16, i1 false), !tbaa.struct !133
  %314 = load ptr, ptr %5, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.ImPlotPlot, ptr %314, i32 0, i32 1
  %316 = load i32, ptr %315, align 4, !tbaa !129
  %317 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %316, i32 noundef 2)
  br i1 %317, label %591, label %318

318:                                              ; preds = %293
  %319 = load ptr, ptr %5, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.ImPlotPlot, ptr %319, i32 0, i32 8
  %321 = call noundef i32 @_ZNK15ImPlotItemGroup14GetLegendCountEv(ptr noundef nonnull align 8 dereferenceable(124) %320)
  %322 = icmp sgt i32 %321, 0
  br i1 %322, label %323, label %591

323:                                              ; preds = %318
  %324 = load ptr, ptr %5, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.ImPlotPlot, ptr %324, i32 0, i32 8
  %326 = getelementptr inbounds %struct.ImPlotItemGroup, ptr %325, i32 0, i32 2
  %327 = getelementptr inbounds %struct.ImPlotLegend, ptr %326, i32 0, i32 0
  %328 = load i32, ptr %327, align 8, !tbaa !135
  %329 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %328, i32 noundef 16)
  br i1 %329, label %330, label %591

330:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #12
  %331 = load ptr, ptr %5, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.ImPlotPlot, ptr %331, i32 0, i32 8
  %333 = getelementptr inbounds %struct.ImPlotItemGroup, ptr %332, i32 0, i32 2
  store ptr %333, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #12
  %334 = load ptr, ptr %16, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.ImPlotLegend, ptr %334, i32 0, i32 0
  %336 = load i32, ptr %335, align 8, !tbaa !136
  %337 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %336, i32 noundef 32)
  %338 = zext i1 %337 to i8
  store i8 %338, ptr %17, align 1, !tbaa !130
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #12
  %339 = load ptr, ptr %5, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ImPlotPlot, ptr %339, i32 0, i32 8
  %341 = load ptr, ptr %1, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.ImPlotContext, ptr %341, i32 0, i32 12
  %343 = getelementptr inbounds %struct.ImPlotStyle, ptr %342, i32 0, i32 20
  %344 = load ptr, ptr %1, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImPlotContext, ptr %344, i32 0, i32 12
  %346 = getelementptr inbounds %struct.ImPlotStyle, ptr %345, i32 0, i32 21
  %347 = load i8, ptr %17, align 1, !tbaa !130, !range !118, !noundef !119
  %348 = trunc i8 %347 to i1
  %349 = xor i1 %348, true
  %350 = call <2 x float> @_ZN6ImPlot14CalcLegendSizeER15ImPlotItemGroupRK6ImVec2S4_b(ptr noundef nonnull align 8 dereferenceable(124) %340, ptr noundef nonnull align 4 dereferenceable(8) %343, ptr noundef nonnull align 4 dereferenceable(8) %346, i1 noundef zeroext %349)
  store <2 x float> %350, ptr %18, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #12
  %351 = load ptr, ptr %16, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.ImPlotLegend, ptr %351, i32 0, i32 2
  %353 = load i32, ptr %352, align 8, !tbaa !137
  %354 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %353, i32 noundef 4)
  br i1 %354, label %355, label %361

355:                                              ; preds = %330
  %356 = load ptr, ptr %16, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.ImPlotLegend, ptr %356, i32 0, i32 2
  %358 = load i32, ptr %357, align 8, !tbaa !137
  %359 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %358, i32 noundef 8)
  %360 = xor i1 %359, true
  br label %361

361:                                              ; preds = %355, %330
  %362 = phi i1 [ false, %330 ], [ %360, %355 ]
  %363 = zext i1 %362 to i8
  store i8 %363, ptr %19, align 1, !tbaa !130
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #12
  %364 = load ptr, ptr %16, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.ImPlotLegend, ptr %364, i32 0, i32 2
  %366 = load i32, ptr %365, align 8, !tbaa !137
  %367 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %366, i32 noundef 8)
  br i1 %367, label %368, label %374

368:                                              ; preds = %361
  %369 = load ptr, ptr %16, align 8, !tbaa !5
  %370 = getelementptr inbounds %struct.ImPlotLegend, ptr %369, i32 0, i32 2
  %371 = load i32, ptr %370, align 8, !tbaa !137
  %372 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %371, i32 noundef 4)
  %373 = xor i1 %372, true
  br label %374

374:                                              ; preds = %368, %361
  %375 = phi i1 [ false, %361 ], [ %373, %368 ]
  %376 = zext i1 %375 to i8
  store i8 %376, ptr %20, align 1, !tbaa !130
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #12
  %377 = load ptr, ptr %16, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.ImPlotLegend, ptr %377, i32 0, i32 2
  %379 = load i32, ptr %378, align 8, !tbaa !137
  %380 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %379, i32 noundef 1)
  br i1 %380, label %381, label %387

381:                                              ; preds = %374
  %382 = load ptr, ptr %16, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.ImPlotLegend, ptr %382, i32 0, i32 2
  %384 = load i32, ptr %383, align 8, !tbaa !137
  %385 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %384, i32 noundef 2)
  %386 = xor i1 %385, true
  br label %387

387:                                              ; preds = %381, %374
  %388 = phi i1 [ false, %374 ], [ %386, %381 ]
  %389 = zext i1 %388 to i8
  store i8 %389, ptr %21, align 1, !tbaa !130
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #12
  %390 = load ptr, ptr %16, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.ImPlotLegend, ptr %390, i32 0, i32 2
  %392 = load i32, ptr %391, align 8, !tbaa !137
  %393 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %392, i32 noundef 2)
  br i1 %393, label %394, label %400

394:                                              ; preds = %387
  %395 = load ptr, ptr %16, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.ImPlotLegend, ptr %395, i32 0, i32 2
  %397 = load i32, ptr %396, align 8, !tbaa !137
  %398 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %397, i32 noundef 1)
  %399 = xor i1 %398, true
  br label %400

400:                                              ; preds = %394, %387
  %401 = phi i1 [ false, %387 ], [ %399, %394 ]
  %402 = zext i1 %401 to i8
  store i8 %402, ptr %22, align 1, !tbaa !130
  %403 = load i8, ptr %19, align 1, !tbaa !130, !range !118, !noundef !119
  %404 = trunc i8 %403 to i1
  br i1 %404, label %405, label %408

405:                                              ; preds = %400
  %406 = load i8, ptr %17, align 1, !tbaa !130, !range !118, !noundef !119
  %407 = trunc i8 %406 to i1
  br i1 %407, label %408, label %420

408:                                              ; preds = %405, %400
  %409 = load i8, ptr %19, align 1, !tbaa !130, !range !118, !noundef !119
  %410 = trunc i8 %409 to i1
  br i1 %410, label %411, label %449

411:                                              ; preds = %408
  %412 = load i8, ptr %17, align 1, !tbaa !130, !range !118, !noundef !119
  %413 = trunc i8 %412 to i1
  br i1 %413, label %414, label %449

414:                                              ; preds = %411
  %415 = load i8, ptr %21, align 1, !tbaa !130, !range !118, !noundef !119
  %416 = trunc i8 %415 to i1
  br i1 %416, label %449, label %417

417:                                              ; preds = %414
  %418 = load i8, ptr %22, align 1, !tbaa !130, !range !118, !noundef !119
  %419 = trunc i8 %418 to i1
  br i1 %419, label %449, label %420

420:                                              ; preds = %417, %405
  %421 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 0
  %422 = load float, ptr %421, align 4, !tbaa !138
  %423 = load ptr, ptr %1, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.ImPlotContext, ptr %423, i32 0, i32 12
  %425 = getelementptr inbounds %struct.ImPlotStyle, ptr %424, i32 0, i32 19
  %426 = getelementptr inbounds %struct.ImVec2, ptr %425, i32 0, i32 0
  %427 = load float, ptr %426, align 4, !tbaa !139
  %428 = fadd float %422, %427
  %429 = load ptr, ptr %5, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.ImPlotPlot, ptr %429, i32 0, i32 12
  %431 = getelementptr inbounds %struct.ImRect, ptr %430, i32 0, i32 0
  %432 = getelementptr inbounds %struct.ImVec2, ptr %431, i32 0, i32 0
  %433 = load float, ptr %432, align 8, !tbaa !140
  %434 = fadd float %433, %428
  store float %434, ptr %432, align 8, !tbaa !140
  %435 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 0
  %436 = load float, ptr %435, align 4, !tbaa !138
  %437 = load ptr, ptr %1, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.ImPlotContext, ptr %437, i32 0, i32 12
  %439 = getelementptr inbounds %struct.ImPlotStyle, ptr %438, i32 0, i32 17
  %440 = getelementptr inbounds %struct.ImVec2, ptr %439, i32 0, i32 0
  %441 = load float, ptr %440, align 4, !tbaa !141
  %442 = fadd float %436, %441
  %443 = load ptr, ptr %5, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.ImPlotPlot, ptr %443, i32 0, i32 14
  %445 = getelementptr inbounds %struct.ImRect, ptr %444, i32 0, i32 0
  %446 = getelementptr inbounds %struct.ImVec2, ptr %445, i32 0, i32 0
  %447 = load float, ptr %446, align 8, !tbaa !142
  %448 = fadd float %447, %442
  store float %448, ptr %446, align 8, !tbaa !142
  br label %449

449:                                              ; preds = %420, %417, %414, %411, %408
  %450 = load i8, ptr %20, align 1, !tbaa !130, !range !118, !noundef !119
  %451 = trunc i8 %450 to i1
  br i1 %451, label %452, label %455

452:                                              ; preds = %449
  %453 = load i8, ptr %17, align 1, !tbaa !130, !range !118, !noundef !119
  %454 = trunc i8 %453 to i1
  br i1 %454, label %455, label %467

455:                                              ; preds = %452, %449
  %456 = load i8, ptr %20, align 1, !tbaa !130, !range !118, !noundef !119
  %457 = trunc i8 %456 to i1
  br i1 %457, label %458, label %496

458:                                              ; preds = %455
  %459 = load i8, ptr %17, align 1, !tbaa !130, !range !118, !noundef !119
  %460 = trunc i8 %459 to i1
  br i1 %460, label %461, label %496

461:                                              ; preds = %458
  %462 = load i8, ptr %21, align 1, !tbaa !130, !range !118, !noundef !119
  %463 = trunc i8 %462 to i1
  br i1 %463, label %496, label %464

464:                                              ; preds = %461
  %465 = load i8, ptr %22, align 1, !tbaa !130, !range !118, !noundef !119
  %466 = trunc i8 %465 to i1
  br i1 %466, label %496, label %467

467:                                              ; preds = %464, %452
  %468 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 0
  %469 = load float, ptr %468, align 4, !tbaa !138
  %470 = load ptr, ptr %1, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.ImPlotContext, ptr %470, i32 0, i32 12
  %472 = getelementptr inbounds %struct.ImPlotStyle, ptr %471, i32 0, i32 19
  %473 = getelementptr inbounds %struct.ImVec2, ptr %472, i32 0, i32 0
  %474 = load float, ptr %473, align 4, !tbaa !139
  %475 = fadd float %469, %474
  %476 = load ptr, ptr %5, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.ImPlotPlot, ptr %476, i32 0, i32 12
  %478 = getelementptr inbounds %struct.ImRect, ptr %477, i32 0, i32 1
  %479 = getelementptr inbounds %struct.ImVec2, ptr %478, i32 0, i32 0
  %480 = load float, ptr %479, align 8, !tbaa !143
  %481 = fsub float %480, %475
  store float %481, ptr %479, align 8, !tbaa !143
  %482 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 0
  %483 = load float, ptr %482, align 4, !tbaa !138
  %484 = load ptr, ptr %1, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.ImPlotContext, ptr %484, i32 0, i32 12
  %486 = getelementptr inbounds %struct.ImPlotStyle, ptr %485, i32 0, i32 17
  %487 = getelementptr inbounds %struct.ImVec2, ptr %486, i32 0, i32 0
  %488 = load float, ptr %487, align 4, !tbaa !141
  %489 = fadd float %483, %488
  %490 = load ptr, ptr %5, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.ImPlotPlot, ptr %490, i32 0, i32 14
  %492 = getelementptr inbounds %struct.ImRect, ptr %491, i32 0, i32 1
  %493 = getelementptr inbounds %struct.ImVec2, ptr %492, i32 0, i32 0
  %494 = load float, ptr %493, align 8, !tbaa !144
  %495 = fsub float %494, %489
  store float %495, ptr %493, align 8, !tbaa !144
  br label %496

496:                                              ; preds = %467, %464, %461, %458, %455
  %497 = load i8, ptr %21, align 1, !tbaa !130, !range !118, !noundef !119
  %498 = trunc i8 %497 to i1
  br i1 %498, label %499, label %502

499:                                              ; preds = %496
  %500 = load i8, ptr %17, align 1, !tbaa !130, !range !118, !noundef !119
  %501 = trunc i8 %500 to i1
  br i1 %501, label %514, label %502

502:                                              ; preds = %499, %496
  %503 = load i8, ptr %21, align 1, !tbaa !130, !range !118, !noundef !119
  %504 = trunc i8 %503 to i1
  br i1 %504, label %505, label %543

505:                                              ; preds = %502
  %506 = load i8, ptr %17, align 1, !tbaa !130, !range !118, !noundef !119
  %507 = trunc i8 %506 to i1
  br i1 %507, label %543, label %508

508:                                              ; preds = %505
  %509 = load i8, ptr %19, align 1, !tbaa !130, !range !118, !noundef !119
  %510 = trunc i8 %509 to i1
  br i1 %510, label %543, label %511

511:                                              ; preds = %508
  %512 = load i8, ptr %20, align 1, !tbaa !130, !range !118, !noundef !119
  %513 = trunc i8 %512 to i1
  br i1 %513, label %543, label %514

514:                                              ; preds = %511, %499
  %515 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 1
  %516 = load float, ptr %515, align 4, !tbaa !145
  %517 = load ptr, ptr %1, align 8, !tbaa !5
  %518 = getelementptr inbounds %struct.ImPlotContext, ptr %517, i32 0, i32 12
  %519 = getelementptr inbounds %struct.ImPlotStyle, ptr %518, i32 0, i32 19
  %520 = getelementptr inbounds %struct.ImVec2, ptr %519, i32 0, i32 1
  %521 = load float, ptr %520, align 4, !tbaa !146
  %522 = fadd float %516, %521
  %523 = load ptr, ptr %5, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.ImPlotPlot, ptr %523, i32 0, i32 12
  %525 = getelementptr inbounds %struct.ImRect, ptr %524, i32 0, i32 0
  %526 = getelementptr inbounds %struct.ImVec2, ptr %525, i32 0, i32 1
  %527 = load float, ptr %526, align 4, !tbaa !147
  %528 = fadd float %527, %522
  store float %528, ptr %526, align 4, !tbaa !147
  %529 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 1
  %530 = load float, ptr %529, align 4, !tbaa !145
  %531 = load ptr, ptr %1, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.ImPlotContext, ptr %531, i32 0, i32 12
  %533 = getelementptr inbounds %struct.ImPlotStyle, ptr %532, i32 0, i32 17
  %534 = getelementptr inbounds %struct.ImVec2, ptr %533, i32 0, i32 1
  %535 = load float, ptr %534, align 4, !tbaa !148
  %536 = fadd float %530, %535
  %537 = load ptr, ptr %5, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.ImPlotPlot, ptr %537, i32 0, i32 14
  %539 = getelementptr inbounds %struct.ImRect, ptr %538, i32 0, i32 0
  %540 = getelementptr inbounds %struct.ImVec2, ptr %539, i32 0, i32 1
  %541 = load float, ptr %540, align 4, !tbaa !149
  %542 = fadd float %541, %536
  store float %542, ptr %540, align 4, !tbaa !149
  br label %543

543:                                              ; preds = %514, %511, %508, %505, %502
  %544 = load i8, ptr %22, align 1, !tbaa !130, !range !118, !noundef !119
  %545 = trunc i8 %544 to i1
  br i1 %545, label %546, label %549

546:                                              ; preds = %543
  %547 = load i8, ptr %17, align 1, !tbaa !130, !range !118, !noundef !119
  %548 = trunc i8 %547 to i1
  br i1 %548, label %561, label %549

549:                                              ; preds = %546, %543
  %550 = load i8, ptr %22, align 1, !tbaa !130, !range !118, !noundef !119
  %551 = trunc i8 %550 to i1
  br i1 %551, label %552, label %590

552:                                              ; preds = %549
  %553 = load i8, ptr %17, align 1, !tbaa !130, !range !118, !noundef !119
  %554 = trunc i8 %553 to i1
  br i1 %554, label %590, label %555

555:                                              ; preds = %552
  %556 = load i8, ptr %19, align 1, !tbaa !130, !range !118, !noundef !119
  %557 = trunc i8 %556 to i1
  br i1 %557, label %590, label %558

558:                                              ; preds = %555
  %559 = load i8, ptr %20, align 1, !tbaa !130, !range !118, !noundef !119
  %560 = trunc i8 %559 to i1
  br i1 %560, label %590, label %561

561:                                              ; preds = %558, %546
  %562 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 1
  %563 = load float, ptr %562, align 4, !tbaa !145
  %564 = load ptr, ptr %1, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.ImPlotContext, ptr %564, i32 0, i32 12
  %566 = getelementptr inbounds %struct.ImPlotStyle, ptr %565, i32 0, i32 19
  %567 = getelementptr inbounds %struct.ImVec2, ptr %566, i32 0, i32 1
  %568 = load float, ptr %567, align 4, !tbaa !146
  %569 = fadd float %563, %568
  %570 = load ptr, ptr %5, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.ImPlotPlot, ptr %570, i32 0, i32 12
  %572 = getelementptr inbounds %struct.ImRect, ptr %571, i32 0, i32 1
  %573 = getelementptr inbounds %struct.ImVec2, ptr %572, i32 0, i32 1
  %574 = load float, ptr %573, align 4, !tbaa !150
  %575 = fsub float %574, %569
  store float %575, ptr %573, align 4, !tbaa !150
  %576 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 1
  %577 = load float, ptr %576, align 4, !tbaa !145
  %578 = load ptr, ptr %1, align 8, !tbaa !5
  %579 = getelementptr inbounds %struct.ImPlotContext, ptr %578, i32 0, i32 12
  %580 = getelementptr inbounds %struct.ImPlotStyle, ptr %579, i32 0, i32 17
  %581 = getelementptr inbounds %struct.ImVec2, ptr %580, i32 0, i32 1
  %582 = load float, ptr %581, align 4, !tbaa !148
  %583 = fadd float %577, %582
  %584 = load ptr, ptr %5, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.ImPlotPlot, ptr %584, i32 0, i32 14
  %586 = getelementptr inbounds %struct.ImRect, ptr %585, i32 0, i32 1
  %587 = getelementptr inbounds %struct.ImVec2, ptr %586, i32 0, i32 1
  %588 = load float, ptr %587, align 4, !tbaa !151
  %589 = fsub float %588, %583
  store float %589, ptr %587, align 4, !tbaa !151
  br label %590

590:                                              ; preds = %561, %558, %555, %552, %549
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #12
  br label %591

591:                                              ; preds = %590, %323, %318, %293
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #12
  store float 0.000000e+00, ptr %23, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #12
  store float 0.000000e+00, ptr %24, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #12
  store float 0.000000e+00, ptr %25, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #12
  store float 0.000000e+00, ptr %26, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %592 = load ptr, ptr %5, align 8, !tbaa !5
  %593 = call noundef zeroext i1 @_ZNK10ImPlotPlot8HasTitleEv(ptr noundef nonnull align 8 dereferenceable(2533) %592)
  br i1 %593, label %594, label %598

594:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #12
  %595 = load ptr, ptr %5, align 8, !tbaa !5
  %596 = call noundef ptr @_ZNK10ImPlotPlot8GetTitleEv(ptr noundef nonnull align 8 dereferenceable(2533) %595)
  %597 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %596, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  store <2 x float> %597, ptr %28, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %27, ptr align 4 %28, i64 8, i1 false), !tbaa.struct !152
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #12
  br label %598

598:                                              ; preds = %594, %591
  %599 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %600 = load float, ptr %599, align 4, !tbaa !138
  %601 = fcmp ogt float %600, 0.000000e+00
  br i1 %601, label %602, label %626

602:                                              ; preds = %598
  %603 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 1
  %604 = load float, ptr %603, align 4, !tbaa !145
  %605 = load ptr, ptr %1, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.ImPlotContext, ptr %605, i32 0, i32 12
  %607 = getelementptr inbounds %struct.ImPlotStyle, ptr %606, i32 0, i32 18
  %608 = getelementptr inbounds %struct.ImVec2, ptr %607, i32 0, i32 1
  %609 = load float, ptr %608, align 4, !tbaa !153
  %610 = fadd float %604, %609
  %611 = load float, ptr %23, align 4, !tbaa !134
  %612 = fadd float %611, %610
  store float %612, ptr %23, align 4, !tbaa !134
  %613 = load ptr, ptr %1, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.ImPlotContext, ptr %613, i32 0, i32 12
  %615 = getelementptr inbounds %struct.ImPlotStyle, ptr %614, i32 0, i32 17
  %616 = getelementptr inbounds %struct.ImVec2, ptr %615, i32 0, i32 1
  %617 = load float, ptr %616, align 4, !tbaa !148
  %618 = load float, ptr %23, align 4, !tbaa !134
  %619 = fadd float %617, %618
  %620 = load ptr, ptr %5, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.ImPlotPlot, ptr %620, i32 0, i32 14
  %622 = getelementptr inbounds %struct.ImRect, ptr %621, i32 0, i32 0
  %623 = getelementptr inbounds %struct.ImVec2, ptr %622, i32 0, i32 1
  %624 = load float, ptr %623, align 4, !tbaa !149
  %625 = fadd float %624, %619
  store float %625, ptr %623, align 4, !tbaa !149
  br label %626

626:                                              ; preds = %602, %598
  %627 = load ptr, ptr %5, align 8, !tbaa !5
  %628 = load ptr, ptr %1, align 8, !tbaa !5
  %629 = getelementptr inbounds %struct.ImPlotContext, ptr %628, i32 0, i32 30
  %630 = load ptr, ptr %629, align 8, !tbaa !154
  call void @_ZN6ImPlot16PadAndDatumAxesXER10ImPlotPlotRfS2_P19ImPlotAlignmentData(ptr noundef nonnull align 8 dereferenceable(2533) %627, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef %630)
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #12
  %631 = load ptr, ptr %5, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.ImPlotPlot, ptr %631, i32 0, i32 12
  %633 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %632)
  %634 = load float, ptr %23, align 4, !tbaa !134
  %635 = fsub float %633, %634
  %636 = load float, ptr %24, align 4, !tbaa !134
  %637 = fsub float %635, %636
  store float %637, ptr %29, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #12
  store i32 0, ptr %30, align 4, !tbaa !113
  br label %638

638:                                              ; preds = %669, %626
  %639 = load i32, ptr %30, align 4, !tbaa !113
  %640 = icmp slt i32 %639, 3
  br i1 %640, label %642, label %641

641:                                              ; preds = %638
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %672

642:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #12
  %643 = load ptr, ptr %5, align 8, !tbaa !5
  %644 = load i32, ptr %30, align 4, !tbaa !113
  %645 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %643, i32 noundef %644)
  store ptr %645, ptr %31, align 8, !tbaa !5
  %646 = load ptr, ptr %31, align 8, !tbaa !5
  %647 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %646)
  br i1 %647, label %648, label %668

648:                                              ; preds = %642
  %649 = load ptr, ptr %31, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct.ImPlotAxis, ptr %649, i32 0, i32 47
  %651 = load i8, ptr %650, align 1, !tbaa !155, !range !118, !noundef !119
  %652 = trunc i8 %651 to i1
  br i1 %652, label %653, label %668

653:                                              ; preds = %648
  %654 = load ptr, ptr %31, align 8, !tbaa !5
  %655 = getelementptr inbounds %struct.ImPlotAxis, ptr %654, i32 0, i32 15
  %656 = load ptr, ptr %655, align 8, !tbaa !126
  %657 = load ptr, ptr %31, align 8, !tbaa !5
  %658 = getelementptr inbounds %struct.ImPlotAxis, ptr %657, i32 0, i32 11
  %659 = load ptr, ptr %31, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.ImPlotAxis, ptr %659, i32 0, i32 4
  %661 = load float, ptr %29, align 4, !tbaa !134
  %662 = load ptr, ptr %31, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.ImPlotAxis, ptr %662, i32 0, i32 12
  %664 = load ptr, ptr %663, align 8, !tbaa !123
  %665 = load ptr, ptr %31, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.ImPlotAxis, ptr %665, i32 0, i32 13
  %667 = load ptr, ptr %666, align 8, !tbaa !125
  call void %656(ptr noundef nonnull align 8 dereferenceable(52) %658, ptr noundef nonnull align 8 dereferenceable(16) %660, float noundef %661, i1 noundef zeroext true, ptr noundef %664, ptr noundef %667)
  br label %668

668:                                              ; preds = %653, %648, %642
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #12
  br label %669

669:                                              ; preds = %668
  %670 = load i32, ptr %30, align 4, !tbaa !113
  %671 = add nsw i32 %670, 1
  store i32 %671, ptr %30, align 4, !tbaa !113
  br label %638, !llvm.loop !156

672:                                              ; preds = %641
  %673 = load ptr, ptr %5, align 8, !tbaa !5
  %674 = load ptr, ptr %1, align 8, !tbaa !5
  %675 = getelementptr inbounds %struct.ImPlotContext, ptr %674, i32 0, i32 31
  %676 = load ptr, ptr %675, align 8, !tbaa !157
  call void @_ZN6ImPlot16PadAndDatumAxesYER10ImPlotPlotRfS2_P19ImPlotAlignmentData(ptr noundef nonnull align 8 dereferenceable(2533) %673, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef %676)
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #12
  %677 = load ptr, ptr %5, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.ImPlotPlot, ptr %677, i32 0, i32 12
  %679 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %678)
  %680 = load float, ptr %25, align 4, !tbaa !134
  %681 = fsub float %679, %680
  %682 = load float, ptr %26, align 4, !tbaa !134
  %683 = fsub float %681, %682
  store float %683, ptr %32, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #12
  store i32 0, ptr %33, align 4, !tbaa !113
  br label %684

684:                                              ; preds = %715, %672
  %685 = load i32, ptr %33, align 4, !tbaa !113
  %686 = icmp slt i32 %685, 3
  br i1 %686, label %688, label %687

687:                                              ; preds = %684
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #12
  br label %718

688:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #12
  %689 = load ptr, ptr %5, align 8, !tbaa !5
  %690 = load i32, ptr %33, align 4, !tbaa !113
  %691 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %689, i32 noundef %690)
  store ptr %691, ptr %34, align 8, !tbaa !5
  %692 = load ptr, ptr %34, align 8, !tbaa !5
  %693 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %692)
  br i1 %693, label %694, label %714

694:                                              ; preds = %688
  %695 = load ptr, ptr %34, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.ImPlotAxis, ptr %695, i32 0, i32 47
  %697 = load i8, ptr %696, align 1, !tbaa !155, !range !118, !noundef !119
  %698 = trunc i8 %697 to i1
  br i1 %698, label %699, label %714

699:                                              ; preds = %694
  %700 = load ptr, ptr %34, align 8, !tbaa !5
  %701 = getelementptr inbounds %struct.ImPlotAxis, ptr %700, i32 0, i32 15
  %702 = load ptr, ptr %701, align 8, !tbaa !126
  %703 = load ptr, ptr %34, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.ImPlotAxis, ptr %703, i32 0, i32 11
  %705 = load ptr, ptr %34, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.ImPlotAxis, ptr %705, i32 0, i32 4
  %707 = load float, ptr %32, align 4, !tbaa !134
  %708 = load ptr, ptr %34, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.ImPlotAxis, ptr %708, i32 0, i32 12
  %710 = load ptr, ptr %709, align 8, !tbaa !123
  %711 = load ptr, ptr %34, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.ImPlotAxis, ptr %711, i32 0, i32 13
  %713 = load ptr, ptr %712, align 8, !tbaa !125
  call void %702(ptr noundef nonnull align 8 dereferenceable(52) %704, ptr noundef nonnull align 8 dereferenceable(16) %706, float noundef %707, i1 noundef zeroext false, ptr noundef %710, ptr noundef %713)
  br label %714

714:                                              ; preds = %699, %694, %688
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #12
  br label %715

715:                                              ; preds = %714
  %716 = load i32, ptr %33, align 4, !tbaa !113
  %717 = add nsw i32 %716, 1
  store i32 %717, ptr %33, align 4, !tbaa !113
  br label %684, !llvm.loop !158

718:                                              ; preds = %687
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #12
  %719 = load ptr, ptr %5, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.ImPlotPlot, ptr %719, i32 0, i32 12
  %721 = getelementptr inbounds %struct.ImRect, ptr %720, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #12
  %722 = load float, ptr %25, align 4, !tbaa !134
  %723 = load float, ptr %23, align 4, !tbaa !134
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %37, float noundef %722, float noundef %723)
  %724 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %721, ptr noundef nonnull align 4 dereferenceable(8) %37)
  store <2 x float> %724, ptr %36, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #12
  %725 = load ptr, ptr %5, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.ImPlotPlot, ptr %725, i32 0, i32 12
  %727 = getelementptr inbounds %struct.ImRect, ptr %726, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #12
  %728 = load float, ptr %26, align 4, !tbaa !134
  %729 = load float, ptr %24, align 4, !tbaa !134
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef %728, float noundef %729)
  %730 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %727, ptr noundef nonnull align 4 dereferenceable(8) %39)
  store <2 x float> %730, ptr %38, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %35, ptr noundef nonnull align 4 dereferenceable(8) %36, ptr noundef nonnull align 4 dereferenceable(8) %38)
  %731 = load ptr, ptr %5, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.ImPlotPlot, ptr %731, i32 0, i32 13
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %732, ptr align 4 %35, i64 16, i1 false), !tbaa.struct !133
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #12
  store i32 0, ptr %40, align 4, !tbaa !113
  br label %733

733:                                              ; preds = %804, %718
  %734 = load i32, ptr %40, align 4, !tbaa !113
  %735 = icmp slt i32 %734, 3
  br i1 %735, label %737, label %736

736:                                              ; preds = %733
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #12
  br label %807

737:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #12
  %738 = load ptr, ptr %5, align 8, !tbaa !5
  %739 = load i32, ptr %40, align 4, !tbaa !113
  %740 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %738, i32 noundef %739)
  store ptr %740, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %42) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #12
  %741 = load ptr, ptr %5, align 8, !tbaa !5
  %742 = getelementptr inbounds %struct.ImPlotPlot, ptr %741, i32 0, i32 13
  %743 = getelementptr inbounds %struct.ImRect, ptr %742, i32 0, i32 0
  %744 = getelementptr inbounds %struct.ImVec2, ptr %743, i32 0, i32 0
  %745 = load float, ptr %744, align 8, !tbaa !159
  %746 = load ptr, ptr %41, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.ImPlotAxis, ptr %746, i32 0, i32 30
  %748 = load float, ptr %747, align 8, !tbaa !160
  %749 = load ptr, ptr %41, align 8, !tbaa !5
  %750 = getelementptr inbounds %struct.ImPlotAxis, ptr %749, i32 0, i32 31
  %751 = load float, ptr %750, align 4, !tbaa !161
  %752 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %748, float noundef %751)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef %745, float noundef %752)
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #12
  %753 = load ptr, ptr %5, align 8, !tbaa !5
  %754 = getelementptr inbounds %struct.ImPlotPlot, ptr %753, i32 0, i32 13
  %755 = getelementptr inbounds %struct.ImRect, ptr %754, i32 0, i32 1
  %756 = getelementptr inbounds %struct.ImVec2, ptr %755, i32 0, i32 0
  %757 = load float, ptr %756, align 8, !tbaa !162
  %758 = load ptr, ptr %41, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.ImPlotAxis, ptr %758, i32 0, i32 30
  %760 = load float, ptr %759, align 8, !tbaa !160
  %761 = load ptr, ptr %41, align 8, !tbaa !5
  %762 = getelementptr inbounds %struct.ImPlotAxis, ptr %761, i32 0, i32 31
  %763 = load float, ptr %762, align 4, !tbaa !161
  %764 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %760, float noundef %763)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %757, float noundef %764)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %42, ptr noundef nonnull align 4 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(8) %44)
  %765 = load ptr, ptr %41, align 8, !tbaa !5
  %766 = getelementptr inbounds %struct.ImPlotAxis, ptr %765, i32 0, i32 32
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %766, ptr align 4 %42, i64 16, i1 false), !tbaa.struct !133
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %42) #12
  %767 = load ptr, ptr %41, align 8, !tbaa !5
  %768 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %767)
  br i1 %768, label %769, label %775

769:                                              ; preds = %737
  %770 = load ptr, ptr %5, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.ImPlotPlot, ptr %770, i32 0, i32 13
  %772 = getelementptr inbounds %struct.ImRect, ptr %771, i32 0, i32 1
  %773 = getelementptr inbounds %struct.ImVec2, ptr %772, i32 0, i32 0
  %774 = load float, ptr %773, align 8, !tbaa !162
  br label %781

775:                                              ; preds = %737
  %776 = load ptr, ptr %5, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.ImPlotPlot, ptr %776, i32 0, i32 13
  %778 = getelementptr inbounds %struct.ImRect, ptr %777, i32 0, i32 0
  %779 = getelementptr inbounds %struct.ImVec2, ptr %778, i32 0, i32 0
  %780 = load float, ptr %779, align 8, !tbaa !159
  br label %781

781:                                              ; preds = %775, %769
  %782 = phi float [ %774, %769 ], [ %780, %775 ]
  %783 = load ptr, ptr %41, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImPlotAxis, ptr %783, i32 0, i32 25
  store float %782, ptr %784, align 8, !tbaa !163
  %785 = load ptr, ptr %41, align 8, !tbaa !5
  %786 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %785)
  br i1 %786, label %787, label %793

787:                                              ; preds = %781
  %788 = load ptr, ptr %5, align 8, !tbaa !5
  %789 = getelementptr inbounds %struct.ImPlotPlot, ptr %788, i32 0, i32 13
  %790 = getelementptr inbounds %struct.ImRect, ptr %789, i32 0, i32 0
  %791 = getelementptr inbounds %struct.ImVec2, ptr %790, i32 0, i32 0
  %792 = load float, ptr %791, align 8, !tbaa !159
  br label %799

793:                                              ; preds = %781
  %794 = load ptr, ptr %5, align 8, !tbaa !5
  %795 = getelementptr inbounds %struct.ImPlotPlot, ptr %794, i32 0, i32 13
  %796 = getelementptr inbounds %struct.ImRect, ptr %795, i32 0, i32 1
  %797 = getelementptr inbounds %struct.ImVec2, ptr %796, i32 0, i32 0
  %798 = load float, ptr %797, align 8, !tbaa !162
  br label %799

799:                                              ; preds = %793, %787
  %800 = phi float [ %792, %787 ], [ %798, %793 ]
  %801 = load ptr, ptr %41, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.ImPlotAxis, ptr %801, i32 0, i32 26
  store float %800, ptr %802, align 4, !tbaa !164
  %803 = load ptr, ptr %41, align 8, !tbaa !5
  call void @_ZN10ImPlotAxis20UpdateTransformCacheEv(ptr noundef nonnull align 8 dereferenceable(372) %803)
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #12
  br label %804

804:                                              ; preds = %799
  %805 = load i32, ptr %40, align 4, !tbaa !113
  %806 = add nsw i32 %805, 1
  store i32 %806, ptr %40, align 4, !tbaa !113
  br label %733, !llvm.loop !165

807:                                              ; preds = %736
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #12
  store i32 0, ptr %45, align 4, !tbaa !113
  br label %808

808:                                              ; preds = %879, %807
  %809 = load i32, ptr %45, align 4, !tbaa !113
  %810 = icmp slt i32 %809, 3
  br i1 %810, label %812, label %811

811:                                              ; preds = %808
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #12
  br label %882

812:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #12
  %813 = load ptr, ptr %5, align 8, !tbaa !5
  %814 = load i32, ptr %45, align 4, !tbaa !113
  %815 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %813, i32 noundef %814)
  store ptr %815, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #12
  %816 = load ptr, ptr %46, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImPlotAxis, ptr %816, i32 0, i32 30
  %818 = load float, ptr %817, align 8, !tbaa !160
  %819 = load ptr, ptr %46, align 8, !tbaa !5
  %820 = getelementptr inbounds %struct.ImPlotAxis, ptr %819, i32 0, i32 31
  %821 = load float, ptr %820, align 4, !tbaa !161
  %822 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %818, float noundef %821)
  %823 = load ptr, ptr %5, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.ImPlotPlot, ptr %823, i32 0, i32 13
  %825 = getelementptr inbounds %struct.ImRect, ptr %824, i32 0, i32 0
  %826 = getelementptr inbounds %struct.ImVec2, ptr %825, i32 0, i32 1
  %827 = load float, ptr %826, align 4, !tbaa !166
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %48, float noundef %822, float noundef %827)
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #12
  %828 = load ptr, ptr %46, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.ImPlotAxis, ptr %828, i32 0, i32 30
  %830 = load float, ptr %829, align 8, !tbaa !160
  %831 = load ptr, ptr %46, align 8, !tbaa !5
  %832 = getelementptr inbounds %struct.ImPlotAxis, ptr %831, i32 0, i32 31
  %833 = load float, ptr %832, align 4, !tbaa !161
  %834 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %830, float noundef %833)
  %835 = load ptr, ptr %5, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.ImPlotPlot, ptr %835, i32 0, i32 13
  %837 = getelementptr inbounds %struct.ImRect, ptr %836, i32 0, i32 1
  %838 = getelementptr inbounds %struct.ImVec2, ptr %837, i32 0, i32 1
  %839 = load float, ptr %838, align 4, !tbaa !167
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %49, float noundef %834, float noundef %839)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %47, ptr noundef nonnull align 4 dereferenceable(8) %48, ptr noundef nonnull align 4 dereferenceable(8) %49)
  %840 = load ptr, ptr %46, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.ImPlotAxis, ptr %840, i32 0, i32 32
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %841, ptr align 4 %47, i64 16, i1 false), !tbaa.struct !133
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #12
  %842 = load ptr, ptr %46, align 8, !tbaa !5
  %843 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %842)
  br i1 %843, label %844, label %850

844:                                              ; preds = %812
  %845 = load ptr, ptr %5, align 8, !tbaa !5
  %846 = getelementptr inbounds %struct.ImPlotPlot, ptr %845, i32 0, i32 13
  %847 = getelementptr inbounds %struct.ImRect, ptr %846, i32 0, i32 0
  %848 = getelementptr inbounds %struct.ImVec2, ptr %847, i32 0, i32 1
  %849 = load float, ptr %848, align 4, !tbaa !166
  br label %856

850:                                              ; preds = %812
  %851 = load ptr, ptr %5, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.ImPlotPlot, ptr %851, i32 0, i32 13
  %853 = getelementptr inbounds %struct.ImRect, ptr %852, i32 0, i32 1
  %854 = getelementptr inbounds %struct.ImVec2, ptr %853, i32 0, i32 1
  %855 = load float, ptr %854, align 4, !tbaa !167
  br label %856

856:                                              ; preds = %850, %844
  %857 = phi float [ %849, %844 ], [ %855, %850 ]
  %858 = load ptr, ptr %46, align 8, !tbaa !5
  %859 = getelementptr inbounds %struct.ImPlotAxis, ptr %858, i32 0, i32 25
  store float %857, ptr %859, align 8, !tbaa !163
  %860 = load ptr, ptr %46, align 8, !tbaa !5
  %861 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %860)
  br i1 %861, label %862, label %868

862:                                              ; preds = %856
  %863 = load ptr, ptr %5, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.ImPlotPlot, ptr %863, i32 0, i32 13
  %865 = getelementptr inbounds %struct.ImRect, ptr %864, i32 0, i32 1
  %866 = getelementptr inbounds %struct.ImVec2, ptr %865, i32 0, i32 1
  %867 = load float, ptr %866, align 4, !tbaa !167
  br label %874

868:                                              ; preds = %856
  %869 = load ptr, ptr %5, align 8, !tbaa !5
  %870 = getelementptr inbounds %struct.ImPlotPlot, ptr %869, i32 0, i32 13
  %871 = getelementptr inbounds %struct.ImRect, ptr %870, i32 0, i32 0
  %872 = getelementptr inbounds %struct.ImVec2, ptr %871, i32 0, i32 1
  %873 = load float, ptr %872, align 4, !tbaa !166
  br label %874

874:                                              ; preds = %868, %862
  %875 = phi float [ %867, %862 ], [ %873, %868 ]
  %876 = load ptr, ptr %46, align 8, !tbaa !5
  %877 = getelementptr inbounds %struct.ImPlotAxis, ptr %876, i32 0, i32 26
  store float %875, ptr %877, align 4, !tbaa !164
  %878 = load ptr, ptr %46, align 8, !tbaa !5
  call void @_ZN10ImPlotAxis20UpdateTransformCacheEv(ptr noundef nonnull align 8 dereferenceable(372) %878)
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #12
  br label %879

879:                                              ; preds = %874
  %880 = load i32, ptr %45, align 4, !tbaa !113
  %881 = add nsw i32 %880, 1
  store i32 %881, ptr %45, align 4, !tbaa !113
  br label %808, !llvm.loop !168

882:                                              ; preds = %811
  %883 = load i8, ptr %8, align 1, !tbaa !130, !range !118, !noundef !119
  %884 = trunc i8 %883 to i1
  br i1 %884, label %885, label %936

885:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #12
  store i32 0, ptr %50, align 4, !tbaa !113
  br label %886

886:                                              ; preds = %932, %885
  %887 = load i32, ptr %50, align 4, !tbaa !113
  %888 = icmp slt i32 %887, 3
  br i1 %888, label %890, label %889

889:                                              ; preds = %886
  store i32 20, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #12
  br label %935

890:                                              ; preds = %886
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #12
  %891 = load ptr, ptr %5, align 8, !tbaa !5
  %892 = load i32, ptr %50, align 4, !tbaa !113
  %893 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %891, i32 noundef %892)
  store ptr %893, ptr %52, align 8, !tbaa !5
  %894 = load ptr, ptr %52, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.ImPlotAxis, ptr %894, i32 0, i32 8
  %896 = load ptr, ptr %895, align 8, !tbaa !131
  %897 = icmp eq ptr %896, null
  br i1 %897, label %898, label %899

898:                                              ; preds = %890
  store i32 22, ptr %51, align 4
  br label %929

899:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #12
  %900 = load ptr, ptr %52, align 8, !tbaa !5
  %901 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %900)
  store double %901, ptr %53, align 8, !tbaa !169
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #12
  %902 = load ptr, ptr %52, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.ImPlotAxis, ptr %902, i32 0, i32 8
  %904 = load ptr, ptr %903, align 8, !tbaa !131
  %905 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %904)
  store double %905, ptr %54, align 8, !tbaa !169
  %906 = load ptr, ptr %52, align 8, !tbaa !5
  %907 = getelementptr inbounds %struct.ImPlotAxis, ptr %906, i32 0, i32 45
  %908 = load i8, ptr %907, align 1, !tbaa !170, !range !118, !noundef !119
  %909 = trunc i8 %908 to i1
  br i1 %909, label %910, label %915

910:                                              ; preds = %899
  %911 = load ptr, ptr %52, align 8, !tbaa !5
  %912 = getelementptr inbounds %struct.ImPlotAxis, ptr %911, i32 0, i32 8
  %913 = load ptr, ptr %912, align 8, !tbaa !131
  %914 = load double, ptr %53, align 8, !tbaa !169
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %913, double noundef %914)
  br label %928

915:                                              ; preds = %899
  %916 = load double, ptr %53, align 8, !tbaa !169
  %917 = load double, ptr %54, align 8, !tbaa !169
  %918 = call noundef zeroext i1 @_ZL13ImAlmostEqualddi(double noundef %916, double noundef %917, i32 noundef 2)
  br i1 %918, label %927, label %919

919:                                              ; preds = %915
  %920 = load ptr, ptr %52, align 8, !tbaa !5
  %921 = getelementptr inbounds %struct.ImPlotAxis, ptr %920, i32 0, i32 8
  %922 = load ptr, ptr %921, align 8, !tbaa !131
  %923 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %922)
  br i1 %923, label %927, label %924

924:                                              ; preds = %919
  %925 = load ptr, ptr %52, align 8, !tbaa !5
  %926 = load double, ptr %54, align 8, !tbaa !169
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %925, double noundef %926)
  br label %927

927:                                              ; preds = %924, %919, %915
  br label %928

928:                                              ; preds = %927, %910
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #12
  store i32 0, ptr %51, align 4
  br label %929

929:                                              ; preds = %928, %898
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #12
  %930 = load i32, ptr %51, align 4
  switch i32 %930, label %1698 [
    i32 0, label %931
    i32 22, label %932
  ]

931:                                              ; preds = %929
  br label %932

932:                                              ; preds = %931, %929
  %933 = load i32, ptr %50, align 4, !tbaa !113
  %934 = add nsw i32 %933, 1
  store i32 %934, ptr %50, align 4, !tbaa !113
  br label %886, !llvm.loop !171

935:                                              ; preds = %889
  br label %936

936:                                              ; preds = %935, %882
  %937 = load ptr, ptr %5, align 8, !tbaa !5
  %938 = getelementptr inbounds %struct.ImPlotPlot, ptr %937, i32 0, i32 1
  %939 = load i32, ptr %938, align 4, !tbaa !129
  %940 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %939, i32 noundef 8)
  br i1 %940, label %944, label %941

941:                                              ; preds = %936
  %942 = load ptr, ptr %5, align 8, !tbaa !5
  %943 = call noundef zeroext i1 @_ZN6ImPlot11UpdateInputER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533) %942)
  br label %944

944:                                              ; preds = %941, %936
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #12
  store i32 0, ptr %55, align 4, !tbaa !113
  br label %945

945:                                              ; preds = %975, %944
  %946 = load i32, ptr %55, align 4, !tbaa !113
  %947 = icmp slt i32 %946, 6
  br i1 %947, label %949, label %948

948:                                              ; preds = %945
  store i32 23, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #12
  br label %978

949:                                              ; preds = %945
  %950 = load ptr, ptr %1, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImPlotContext, ptr %950, i32 0, i32 23
  %952 = getelementptr inbounds %struct.ImPlotNextPlotData, ptr %951, i32 0, i32 3
  %953 = load i32, ptr %55, align 4, !tbaa !113
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds [6 x i8], ptr %952, i64 0, i64 %954
  %956 = load i8, ptr %955, align 1, !tbaa !130, !range !118, !noundef !119
  %957 = trunc i8 %956 to i1
  br i1 %957, label %965, label %958

958:                                              ; preds = %949
  %959 = load ptr, ptr %5, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.ImPlotPlot, ptr %959, i32 0, i32 6
  %961 = load i32, ptr %55, align 4, !tbaa !113
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %960, i64 0, i64 %962
  %964 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsAutoFittingEv(ptr noundef nonnull align 8 dereferenceable(372) %963)
  br i1 %964, label %965, label %974

965:                                              ; preds = %958, %949
  %966 = load ptr, ptr %5, align 8, !tbaa !5
  %967 = getelementptr inbounds %struct.ImPlotPlot, ptr %966, i32 0, i32 21
  store i8 1, ptr %967, align 1, !tbaa !122
  %968 = load ptr, ptr %5, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.ImPlotPlot, ptr %968, i32 0, i32 6
  %970 = load i32, ptr %55, align 4, !tbaa !113
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %969, i64 0, i64 %971
  %973 = getelementptr inbounds %struct.ImPlotAxis, ptr %972, i32 0, i32 44
  store i8 1, ptr %973, align 2, !tbaa !121
  br label %974

974:                                              ; preds = %965, %958
  br label %975

975:                                              ; preds = %974
  %976 = load i32, ptr %55, align 4, !tbaa !113
  %977 = add nsw i32 %976, 1
  store i32 %977, ptr %55, align 4, !tbaa !113
  br label %945, !llvm.loop !172

978:                                              ; preds = %948
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #12
  %979 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  store float %979, ptr %56, align 4, !tbaa !134
  %980 = load ptr, ptr %5, align 8, !tbaa !5
  %981 = getelementptr inbounds %struct.ImPlotPlot, ptr %980, i32 0, i32 1
  %982 = load i32, ptr %981, align 4, !tbaa !129
  %983 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %982, i32 noundef 128)
  br i1 %983, label %997, label %984

984:                                              ; preds = %978
  %985 = load ptr, ptr %5, align 8, !tbaa !5
  %986 = getelementptr inbounds %struct.ImPlotPlot, ptr %985, i32 0, i32 11
  %987 = getelementptr inbounds %struct.ImRect, ptr %986, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %57, ptr align 8 %987, i64 8, i1 false), !tbaa.struct !152
  %988 = load ptr, ptr %5, align 8, !tbaa !5
  %989 = getelementptr inbounds %struct.ImPlotPlot, ptr %988, i32 0, i32 11
  %990 = getelementptr inbounds %struct.ImRect, ptr %989, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %58, ptr align 8 %990, i64 8, i1 false), !tbaa.struct !152
  %991 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 5)
  %992 = load ptr, ptr %4, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.ImGuiStyle, ptr %992, i32 0, i32 13
  %994 = load float, ptr %993, align 4, !tbaa !173
  %995 = load <2 x float>, ptr %57, align 4
  %996 = load <2 x float>, ptr %58, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %995, <2 x float> %996, i32 noundef %991, i1 noundef zeroext true, float noundef %994)
  br label %997

997:                                              ; preds = %984, %978
  %998 = load ptr, ptr %3, align 8, !tbaa !5
  %999 = load ptr, ptr %5, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.ImPlotPlot, ptr %999, i32 0, i32 13
  %1001 = getelementptr inbounds %struct.ImRect, ptr %1000, i32 0, i32 0
  %1002 = load ptr, ptr %5, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.ImPlotPlot, ptr %1002, i32 0, i32 13
  %1004 = getelementptr inbounds %struct.ImRect, ptr %1003, i32 0, i32 1
  %1005 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 6)
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %998, ptr noundef nonnull align 4 dereferenceable(8) %1001, ptr noundef nonnull align 4 dereferenceable(8) %1004, i32 noundef %1005, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #12
  store i32 0, ptr %59, align 4, !tbaa !113
  br label %1006

1006:                                             ; preds = %1047, %997
  %1007 = load i32, ptr %59, align 4, !tbaa !113
  %1008 = icmp slt i32 %1007, 6
  br i1 %1008, label %1010, label %1009

1009:                                             ; preds = %1006
  store i32 26, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #12
  br label %1050

1010:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #12
  %1011 = load ptr, ptr %5, align 8, !tbaa !5
  %1012 = getelementptr inbounds %struct.ImPlotPlot, ptr %1011, i32 0, i32 6
  %1013 = load i32, ptr %59, align 4, !tbaa !113
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds [6 x %struct.ImPlotAxis], ptr %1012, i64 0, i64 %1014
  store ptr %1015, ptr %60, align 8, !tbaa !5
  %1016 = load ptr, ptr %60, align 8, !tbaa !5
  %1017 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %1016)
  br i1 %1017, label %1018, label %1046

1018:                                             ; preds = %1010
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #12
  store i32 0, ptr %61, align 4, !tbaa !113
  br label %1019

1019:                                             ; preds = %1042, %1018
  %1020 = load i32, ptr %61, align 4, !tbaa !113
  %1021 = load ptr, ptr %60, align 8, !tbaa !5
  %1022 = getelementptr inbounds %struct.ImPlotAxis, ptr %1021, i32 0, i32 11
  %1023 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %1022)
  %1024 = icmp slt i32 %1020, %1023
  br i1 %1024, label %1026, label %1025

1025:                                             ; preds = %1019
  store i32 29, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #12
  br label %1045

1026:                                             ; preds = %1019
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #12
  %1027 = load ptr, ptr %60, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.ImPlotAxis, ptr %1027, i32 0, i32 11
  %1029 = getelementptr inbounds %struct.ImPlotTicker, ptr %1028, i32 0, i32 0
  %1030 = load i32, ptr %61, align 4, !tbaa !113
  %1031 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1029, i32 noundef %1030)
  store ptr %1031, ptr %62, align 8, !tbaa !5
  %1032 = load ptr, ptr %60, align 8, !tbaa !5
  %1033 = load ptr, ptr %62, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.ImPlotTick, ptr %1033, i32 0, i32 0
  %1035 = load double, ptr %1034, align 8, !tbaa !174
  %1036 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %1032, double noundef %1035)
  %1037 = fadd float %1036, 5.000000e-01
  %1038 = fptosi float %1037 to i32
  %1039 = sitofp i32 %1038 to float
  %1040 = load ptr, ptr %62, align 8, !tbaa !5
  %1041 = getelementptr inbounds %struct.ImPlotTick, ptr %1040, i32 0, i32 1
  store float %1039, ptr %1041, align 8, !tbaa !176
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #12
  br label %1042

1042:                                             ; preds = %1026
  %1043 = load i32, ptr %61, align 4, !tbaa !113
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr %61, align 4, !tbaa !113
  br label %1019, !llvm.loop !177

1045:                                             ; preds = %1025
  br label %1046

1046:                                             ; preds = %1045, %1010
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #12
  br label %1047

1047:                                             ; preds = %1046
  %1048 = load i32, ptr %59, align 4, !tbaa !113
  %1049 = add nsw i32 %1048, 1
  store i32 %1049, ptr %59, align 4, !tbaa !113
  br label %1006, !llvm.loop !178

1050:                                             ; preds = %1009
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #12
  store i32 0, ptr %63, align 4, !tbaa !113
  br label %1051

1051:                                             ; preds = %1092, %1050
  %1052 = load i32, ptr %63, align 4, !tbaa !113
  %1053 = icmp slt i32 %1052, 3
  br i1 %1053, label %1055, label %1054

1054:                                             ; preds = %1051
  store i32 32, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #12
  br label %1095

1055:                                             ; preds = %1051
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #12
  %1056 = load ptr, ptr %5, align 8, !tbaa !5
  %1057 = load i32, ptr %63, align 4, !tbaa !113
  %1058 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1056, i32 noundef %1057)
  store ptr %1058, ptr %64, align 8, !tbaa !5
  %1059 = load ptr, ptr %64, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.ImPlotAxis, ptr %1059, i32 0, i32 42
  %1061 = load i8, ptr %1060, align 4, !tbaa !114, !range !118, !noundef !119
  %1062 = trunc i8 %1061 to i1
  br i1 %1062, label %1063, label %1091

1063:                                             ; preds = %1055
  %1064 = load ptr, ptr %64, align 8, !tbaa !5
  %1065 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %1064)
  br i1 %1065, label %1066, label %1091

1066:                                             ; preds = %1063
  %1067 = load ptr, ptr %64, align 8, !tbaa !5
  %1068 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %1067)
  br i1 %1068, label %1091, label %1069

1069:                                             ; preds = %1066
  %1070 = load ptr, ptr %3, align 8, !tbaa !5
  %1071 = load ptr, ptr %64, align 8, !tbaa !5
  %1072 = getelementptr inbounds %struct.ImPlotAxis, ptr %1071, i32 0, i32 11
  %1073 = load ptr, ptr %5, align 8, !tbaa !5
  %1074 = getelementptr inbounds %struct.ImPlotPlot, ptr %1073, i32 0, i32 13
  %1075 = load ptr, ptr %64, align 8, !tbaa !5
  %1076 = getelementptr inbounds %struct.ImPlotAxis, ptr %1075, i32 0, i32 34
  %1077 = load i32, ptr %1076, align 4, !tbaa !179
  %1078 = load ptr, ptr %64, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.ImPlotAxis, ptr %1078, i32 0, i32 35
  %1080 = load i32, ptr %1079, align 8, !tbaa !180
  %1081 = load ptr, ptr %1, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.ImPlotContext, ptr %1081, i32 0, i32 12
  %1083 = getelementptr inbounds %struct.ImPlotStyle, ptr %1082, i32 0, i32 15
  %1084 = getelementptr inbounds %struct.ImVec2, ptr %1083, i32 0, i32 0
  %1085 = load float, ptr %1084, align 4, !tbaa !181
  %1086 = load ptr, ptr %1, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.ImPlotContext, ptr %1086, i32 0, i32 12
  %1088 = getelementptr inbounds %struct.ImPlotStyle, ptr %1087, i32 0, i32 16
  %1089 = getelementptr inbounds %struct.ImVec2, ptr %1088, i32 0, i32 0
  %1090 = load float, ptr %1089, align 4, !tbaa !182
  call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %1070, ptr noundef nonnull align 8 dereferenceable(52) %1072, ptr noundef nonnull align 4 dereferenceable(16) %1074, i32 noundef %1077, i32 noundef %1080, float noundef %1085, float noundef %1090)
  br label %1091

1091:                                             ; preds = %1069, %1066, %1063, %1055
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #12
  br label %1092

1092:                                             ; preds = %1091
  %1093 = load i32, ptr %63, align 4, !tbaa !113
  %1094 = add nsw i32 %1093, 1
  store i32 %1094, ptr %63, align 4, !tbaa !113
  br label %1051, !llvm.loop !183

1095:                                             ; preds = %1054
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #12
  store i32 0, ptr %65, align 4, !tbaa !113
  br label %1096

1096:                                             ; preds = %1137, %1095
  %1097 = load i32, ptr %65, align 4, !tbaa !113
  %1098 = icmp slt i32 %1097, 3
  br i1 %1098, label %1100, label %1099

1099:                                             ; preds = %1096
  store i32 35, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #12
  br label %1140

1100:                                             ; preds = %1096
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #12
  %1101 = load ptr, ptr %5, align 8, !tbaa !5
  %1102 = load i32, ptr %65, align 4, !tbaa !113
  %1103 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1101, i32 noundef %1102)
  store ptr %1103, ptr %66, align 8, !tbaa !5
  %1104 = load ptr, ptr %66, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.ImPlotAxis, ptr %1104, i32 0, i32 42
  %1106 = load i8, ptr %1105, align 4, !tbaa !114, !range !118, !noundef !119
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1108, label %1136

1108:                                             ; preds = %1100
  %1109 = load ptr, ptr %66, align 8, !tbaa !5
  %1110 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %1109)
  br i1 %1110, label %1111, label %1136

1111:                                             ; preds = %1108
  %1112 = load ptr, ptr %66, align 8, !tbaa !5
  %1113 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %1112)
  br i1 %1113, label %1136, label %1114

1114:                                             ; preds = %1111
  %1115 = load ptr, ptr %3, align 8, !tbaa !5
  %1116 = load ptr, ptr %66, align 8, !tbaa !5
  %1117 = getelementptr inbounds %struct.ImPlotAxis, ptr %1116, i32 0, i32 11
  %1118 = load ptr, ptr %5, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.ImPlotPlot, ptr %1118, i32 0, i32 13
  %1120 = load ptr, ptr %66, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.ImPlotAxis, ptr %1120, i32 0, i32 34
  %1122 = load i32, ptr %1121, align 4, !tbaa !179
  %1123 = load ptr, ptr %66, align 8, !tbaa !5
  %1124 = getelementptr inbounds %struct.ImPlotAxis, ptr %1123, i32 0, i32 35
  %1125 = load i32, ptr %1124, align 8, !tbaa !180
  %1126 = load ptr, ptr %1, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.ImPlotContext, ptr %1126, i32 0, i32 12
  %1128 = getelementptr inbounds %struct.ImPlotStyle, ptr %1127, i32 0, i32 15
  %1129 = getelementptr inbounds %struct.ImVec2, ptr %1128, i32 0, i32 1
  %1130 = load float, ptr %1129, align 4, !tbaa !184
  %1131 = load ptr, ptr %1, align 8, !tbaa !5
  %1132 = getelementptr inbounds %struct.ImPlotContext, ptr %1131, i32 0, i32 12
  %1133 = getelementptr inbounds %struct.ImPlotStyle, ptr %1132, i32 0, i32 16
  %1134 = getelementptr inbounds %struct.ImVec2, ptr %1133, i32 0, i32 1
  %1135 = load float, ptr %1134, align 4, !tbaa !185
  call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %1115, ptr noundef nonnull align 8 dereferenceable(52) %1117, ptr noundef nonnull align 4 dereferenceable(16) %1119, i32 noundef %1122, i32 noundef %1125, float noundef %1130, float noundef %1135)
  br label %1136

1136:                                             ; preds = %1114, %1111, %1108, %1100
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #12
  br label %1137

1137:                                             ; preds = %1136
  %1138 = load i32, ptr %65, align 4, !tbaa !113
  %1139 = add nsw i32 %1138, 1
  store i32 %1139, ptr %65, align 4, !tbaa !113
  br label %1096, !llvm.loop !186

1140:                                             ; preds = %1099
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #12
  store i32 0, ptr %67, align 4, !tbaa !113
  br label %1141

1141:                                             ; preds = %1429, %1140
  %1142 = load i32, ptr %67, align 4, !tbaa !113
  %1143 = icmp slt i32 %1142, 3
  br i1 %1143, label %1145, label %1144

1144:                                             ; preds = %1141
  store i32 38, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #12
  br label %1432

1145:                                             ; preds = %1141
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #12
  %1146 = load ptr, ptr %5, align 8, !tbaa !5
  %1147 = load i32, ptr %67, align 4, !tbaa !113
  %1148 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1146, i32 noundef %1147)
  store ptr %1148, ptr %68, align 8, !tbaa !5
  %1149 = load ptr, ptr %68, align 8, !tbaa !5
  %1150 = getelementptr inbounds %struct.ImPlotAxis, ptr %1149, i32 0, i32 42
  %1151 = load i8, ptr %1150, align 4, !tbaa !114, !range !118, !noundef !119
  %1152 = trunc i8 %1151 to i1
  br i1 %1152, label %1154, label %1153

1153:                                             ; preds = %1145
  store i32 40, ptr %51, align 4
  br label %1426

1154:                                             ; preds = %1145
  %1155 = load ptr, ptr %68, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.ImPlotAxis, ptr %1155, i32 0, i32 48
  %1157 = load i8, ptr %1156, align 2, !tbaa !187, !range !118, !noundef !119
  %1158 = trunc i8 %1157 to i1
  br i1 %1158, label %1164, label %1159

1159:                                             ; preds = %1154
  %1160 = load ptr, ptr %68, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.ImPlotAxis, ptr %1160, i32 0, i32 49
  %1162 = load i8, ptr %1161, align 1, !tbaa !188, !range !118, !noundef !119
  %1163 = trunc i8 %1162 to i1
  br i1 %1163, label %1164, label %1196

1164:                                             ; preds = %1159, %1154
  %1165 = load ptr, ptr %5, align 8, !tbaa !5
  %1166 = getelementptr inbounds %struct.ImPlotPlot, ptr %1165, i32 0, i32 23
  %1167 = load i8, ptr %1166, align 1, !tbaa !189, !range !118, !noundef !119
  %1168 = trunc i8 %1167 to i1
  br i1 %1168, label %1196, label %1169

1169:                                             ; preds = %1164
  %1170 = load ptr, ptr %68, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.ImPlotAxis, ptr %1170, i32 0, i32 1
  %1172 = load i32, ptr %1171, align 4, !tbaa !190
  %1173 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %1172, i32 noundef 128)
  br i1 %1173, label %1196, label %1174

1174:                                             ; preds = %1169
  %1175 = load ptr, ptr %3, align 8, !tbaa !5
  %1176 = load ptr, ptr %68, align 8, !tbaa !5
  %1177 = getelementptr inbounds %struct.ImPlotAxis, ptr %1176, i32 0, i32 32
  %1178 = getelementptr inbounds %struct.ImRect, ptr %1177, i32 0, i32 0
  %1179 = load ptr, ptr %68, align 8, !tbaa !5
  %1180 = getelementptr inbounds %struct.ImPlotAxis, ptr %1179, i32 0, i32 32
  %1181 = getelementptr inbounds %struct.ImRect, ptr %1180, i32 0, i32 1
  %1182 = load ptr, ptr %68, align 8, !tbaa !5
  %1183 = getelementptr inbounds %struct.ImPlotAxis, ptr %1182, i32 0, i32 49
  %1184 = load i8, ptr %1183, align 1, !tbaa !188, !range !118, !noundef !119
  %1185 = trunc i8 %1184 to i1
  br i1 %1185, label %1186, label %1190

1186:                                             ; preds = %1174
  %1187 = load ptr, ptr %68, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.ImPlotAxis, ptr %1187, i32 0, i32 40
  %1189 = load i32, ptr %1188, align 4, !tbaa !191
  br label %1194

1190:                                             ; preds = %1174
  %1191 = load ptr, ptr %68, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.ImPlotAxis, ptr %1191, i32 0, i32 39
  %1193 = load i32, ptr %1192, align 8, !tbaa !192
  br label %1194

1194:                                             ; preds = %1190, %1186
  %1195 = phi i32 [ %1189, %1186 ], [ %1193, %1190 ]
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1175, ptr noundef nonnull align 4 dereferenceable(8) %1178, ptr noundef nonnull align 4 dereferenceable(8) %1181, i32 noundef %1195, float noundef 0.000000e+00, i32 noundef 0)
  br label %1232

1196:                                             ; preds = %1169, %1164, %1159
  %1197 = load ptr, ptr %68, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.ImPlotAxis, ptr %1197, i32 0, i32 41
  %1199 = load i32, ptr %1198, align 8, !tbaa !193
  %1200 = icmp ne i32 %1199, 0
  br i1 %1200, label %1201, label %1214

1201:                                             ; preds = %1196
  %1202 = load ptr, ptr %3, align 8, !tbaa !5
  %1203 = load ptr, ptr %68, align 8, !tbaa !5
  %1204 = getelementptr inbounds %struct.ImPlotAxis, ptr %1203, i32 0, i32 32
  %1205 = getelementptr inbounds %struct.ImRect, ptr %1204, i32 0, i32 0
  %1206 = load ptr, ptr %68, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.ImPlotAxis, ptr %1206, i32 0, i32 32
  %1208 = getelementptr inbounds %struct.ImRect, ptr %1207, i32 0, i32 1
  %1209 = load ptr, ptr %68, align 8, !tbaa !5
  %1210 = getelementptr inbounds %struct.ImPlotAxis, ptr %1209, i32 0, i32 41
  %1211 = load i32, ptr %1210, align 8, !tbaa !193
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1202, ptr noundef nonnull align 4 dereferenceable(8) %1205, ptr noundef nonnull align 4 dereferenceable(8) %1208, i32 noundef %1211, float noundef 0.000000e+00, i32 noundef 0)
  %1212 = load ptr, ptr %68, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.ImPlotAxis, ptr %1212, i32 0, i32 41
  store i32 0, ptr %1213, align 8, !tbaa !193
  br label %1231

1214:                                             ; preds = %1196
  %1215 = load ptr, ptr %68, align 8, !tbaa !5
  %1216 = getelementptr inbounds %struct.ImPlotAxis, ptr %1215, i32 0, i32 38
  %1217 = load i32, ptr %1216, align 4, !tbaa !194
  %1218 = icmp ne i32 %1217, 0
  br i1 %1218, label %1219, label %1230

1219:                                             ; preds = %1214
  %1220 = load ptr, ptr %3, align 8, !tbaa !5
  %1221 = load ptr, ptr %68, align 8, !tbaa !5
  %1222 = getelementptr inbounds %struct.ImPlotAxis, ptr %1221, i32 0, i32 32
  %1223 = getelementptr inbounds %struct.ImRect, ptr %1222, i32 0, i32 0
  %1224 = load ptr, ptr %68, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.ImPlotAxis, ptr %1224, i32 0, i32 32
  %1226 = getelementptr inbounds %struct.ImRect, ptr %1225, i32 0, i32 1
  %1227 = load ptr, ptr %68, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.ImPlotAxis, ptr %1227, i32 0, i32 38
  %1229 = load i32, ptr %1228, align 4, !tbaa !194
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1220, ptr noundef nonnull align 4 dereferenceable(8) %1223, ptr noundef nonnull align 4 dereferenceable(8) %1226, i32 noundef %1229, float noundef 0.000000e+00, i32 noundef 0)
  br label %1230

1230:                                             ; preds = %1219, %1214
  br label %1231

1231:                                             ; preds = %1230, %1201
  br label %1232

1232:                                             ; preds = %1231, %1194
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #12
  %1233 = load ptr, ptr %68, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.ImPlotAxis, ptr %1233, i32 0, i32 11
  store ptr %1234, ptr %69, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #12
  %1235 = load ptr, ptr %68, align 8, !tbaa !5
  %1236 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %1235)
  %1237 = zext i1 %1236 to i8
  store i8 %1237, ptr %70, align 1, !tbaa !130
  %1238 = load ptr, ptr %68, align 8, !tbaa !5
  %1239 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1238)
  br i1 %1239, label %1240, label %1314

1240:                                             ; preds = %1232
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #12
  %1241 = load ptr, ptr %5, align 8, !tbaa !5
  %1242 = load ptr, ptr %68, align 8, !tbaa !5
  %1243 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %1241, ptr noundef nonnull align 8 dereferenceable(372) %1242)
  store ptr %1243, ptr %71, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #12
  %1244 = load ptr, ptr %71, align 8, !tbaa !5
  %1245 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %1244, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  store <2 x float> %1245, ptr %72, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #12
  %1246 = load ptr, ptr %68, align 8, !tbaa !5
  %1247 = call noundef zeroext i1 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372) %1246)
  br i1 %1247, label %1248, label %1259

1248:                                             ; preds = %1240
  %1249 = load ptr, ptr %69, align 8, !tbaa !5
  %1250 = getelementptr inbounds %struct.ImPlotTicker, ptr %1249, i32 0, i32 2
  %1251 = getelementptr inbounds %struct.ImVec2, ptr %1250, i32 0, i32 1
  %1252 = load float, ptr %1251, align 4, !tbaa !195
  %1253 = load ptr, ptr %1, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.ImPlotContext, ptr %1253, i32 0, i32 12
  %1255 = getelementptr inbounds %struct.ImPlotStyle, ptr %1254, i32 0, i32 18
  %1256 = getelementptr inbounds %struct.ImVec2, ptr %1255, i32 0, i32 1
  %1257 = load float, ptr %1256, align 4, !tbaa !153
  %1258 = fadd float %1252, %1257
  br label %1260

1259:                                             ; preds = %1240
  br label %1260

1260:                                             ; preds = %1259, %1248
  %1261 = phi float [ %1258, %1248 ], [ 0.000000e+00, %1259 ]
  %1262 = load ptr, ptr %69, align 8, !tbaa !5
  %1263 = getelementptr inbounds %struct.ImPlotTicker, ptr %1262, i32 0, i32 4
  %1264 = load i32, ptr %1263, align 8, !tbaa !196
  %1265 = sub nsw i32 %1264, 1
  %1266 = sitofp i32 %1265 to float
  %1267 = load float, ptr %56, align 4, !tbaa !134
  %1268 = load ptr, ptr %1, align 8, !tbaa !5
  %1269 = getelementptr inbounds %struct.ImPlotContext, ptr %1268, i32 0, i32 12
  %1270 = getelementptr inbounds %struct.ImPlotStyle, ptr %1269, i32 0, i32 18
  %1271 = getelementptr inbounds %struct.ImVec2, ptr %1270, i32 0, i32 1
  %1272 = load float, ptr %1271, align 4, !tbaa !153
  %1273 = fadd float %1267, %1272
  %1274 = call float @llvm.fmuladd.f32(float %1266, float %1273, float %1261)
  %1275 = load ptr, ptr %1, align 8, !tbaa !5
  %1276 = getelementptr inbounds %struct.ImPlotContext, ptr %1275, i32 0, i32 12
  %1277 = getelementptr inbounds %struct.ImPlotStyle, ptr %1276, i32 0, i32 18
  %1278 = getelementptr inbounds %struct.ImVec2, ptr %1277, i32 0, i32 1
  %1279 = load float, ptr %1278, align 4, !tbaa !153
  %1280 = fadd float %1274, %1279
  store float %1280, ptr %73, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #12
  %1281 = load ptr, ptr %5, align 8, !tbaa !5
  %1282 = getelementptr inbounds %struct.ImPlotPlot, ptr %1281, i32 0, i32 13
  %1283 = call <2 x float> @_ZNK6ImRect9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16) %1282)
  store <2 x float> %1283, ptr %75, align 4
  %1284 = getelementptr inbounds %struct.ImVec2, ptr %75, i32 0, i32 0
  %1285 = load float, ptr %1284, align 4, !tbaa !138
  %1286 = getelementptr inbounds %struct.ImVec2, ptr %72, i32 0, i32 0
  %1287 = load float, ptr %1286, align 4, !tbaa !138
  %1288 = fneg float %1287
  %1289 = call float @llvm.fmuladd.f32(float %1288, float 5.000000e-01, float %1285)
  %1290 = load i8, ptr %70, align 1, !tbaa !130, !range !118, !noundef !119
  %1291 = trunc i8 %1290 to i1
  br i1 %1291, label %1292, label %1301

1292:                                             ; preds = %1260
  %1293 = load ptr, ptr %68, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.ImPlotAxis, ptr %1293, i32 0, i32 30
  %1295 = load float, ptr %1294, align 8, !tbaa !160
  %1296 = load float, ptr %73, align 4, !tbaa !134
  %1297 = fsub float %1295, %1296
  %1298 = getelementptr inbounds %struct.ImVec2, ptr %72, i32 0, i32 1
  %1299 = load float, ptr %1298, align 4, !tbaa !145
  %1300 = fsub float %1297, %1299
  br label %1307

1301:                                             ; preds = %1260
  %1302 = load ptr, ptr %68, align 8, !tbaa !5
  %1303 = getelementptr inbounds %struct.ImPlotAxis, ptr %1302, i32 0, i32 30
  %1304 = load float, ptr %1303, align 8, !tbaa !160
  %1305 = load float, ptr %73, align 4, !tbaa !134
  %1306 = fadd float %1304, %1305
  br label %1307

1307:                                             ; preds = %1301, %1292
  %1308 = phi float [ %1300, %1292 ], [ %1306, %1301 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %74, float noundef %1289, float noundef %1308)
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #12
  %1309 = load ptr, ptr %3, align 8, !tbaa !5
  %1310 = load ptr, ptr %68, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.ImPlotAxis, ptr %1310, i32 0, i32 37
  %1312 = load i32, ptr %1311, align 8, !tbaa !197
  %1313 = load ptr, ptr %71, align 8, !tbaa !5
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1309, ptr noundef nonnull align 4 dereferenceable(8) %74, i32 noundef %1312, ptr noundef %1313, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #12
  br label %1314

1314:                                             ; preds = %1307, %1232
  %1315 = load ptr, ptr %68, align 8, !tbaa !5
  %1316 = call noundef zeroext i1 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372) %1315)
  br i1 %1316, label %1317, label %1425

1317:                                             ; preds = %1314
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #12
  store i32 0, ptr %76, align 4, !tbaa !113
  br label %1318

1318:                                             ; preds = %1421, %1317
  %1319 = load i32, ptr %76, align 4, !tbaa !113
  %1320 = load ptr, ptr %69, align 8, !tbaa !5
  %1321 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %1320)
  %1322 = icmp slt i32 %1319, %1321
  br i1 %1322, label %1324, label %1323

1323:                                             ; preds = %1318
  store i32 41, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #12
  br label %1424

1324:                                             ; preds = %1318
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #12
  %1325 = load ptr, ptr %69, align 8, !tbaa !5
  %1326 = getelementptr inbounds %struct.ImPlotTicker, ptr %1325, i32 0, i32 0
  %1327 = load i32, ptr %76, align 4, !tbaa !113
  %1328 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1326, i32 noundef %1327)
  store ptr %1328, ptr %77, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #12
  %1329 = load ptr, ptr %68, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.ImPlotAxis, ptr %1329, i32 0, i32 30
  %1331 = load float, ptr %1330, align 8, !tbaa !160
  %1332 = load i8, ptr %70, align 1, !tbaa !130, !range !118, !noundef !119
  %1333 = trunc i8 %1332 to i1
  br i1 %1333, label %1334, label %1356

1334:                                             ; preds = %1324
  %1335 = load ptr, ptr %1, align 8, !tbaa !5
  %1336 = getelementptr inbounds %struct.ImPlotContext, ptr %1335, i32 0, i32 12
  %1337 = getelementptr inbounds %struct.ImPlotStyle, ptr %1336, i32 0, i32 18
  %1338 = getelementptr inbounds %struct.ImVec2, ptr %1337, i32 0, i32 1
  %1339 = load float, ptr %1338, align 4, !tbaa !153
  %1340 = fneg float %1339
  %1341 = load float, ptr %56, align 4, !tbaa !134
  %1342 = fsub float %1340, %1341
  %1343 = load ptr, ptr %77, align 8, !tbaa !5
  %1344 = getelementptr inbounds %struct.ImPlotTick, ptr %1343, i32 0, i32 7
  %1345 = load i32, ptr %1344, align 4, !tbaa !198
  %1346 = sitofp i32 %1345 to float
  %1347 = load float, ptr %56, align 4, !tbaa !134
  %1348 = load ptr, ptr %1, align 8, !tbaa !5
  %1349 = getelementptr inbounds %struct.ImPlotContext, ptr %1348, i32 0, i32 12
  %1350 = getelementptr inbounds %struct.ImPlotStyle, ptr %1349, i32 0, i32 18
  %1351 = getelementptr inbounds %struct.ImVec2, ptr %1350, i32 0, i32 1
  %1352 = load float, ptr %1351, align 4, !tbaa !153
  %1353 = fadd float %1347, %1352
  %1354 = fneg float %1346
  %1355 = call float @llvm.fmuladd.f32(float %1354, float %1353, float %1342)
  br label %1374

1356:                                             ; preds = %1324
  %1357 = load ptr, ptr %1, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.ImPlotContext, ptr %1357, i32 0, i32 12
  %1359 = getelementptr inbounds %struct.ImPlotStyle, ptr %1358, i32 0, i32 18
  %1360 = getelementptr inbounds %struct.ImVec2, ptr %1359, i32 0, i32 1
  %1361 = load float, ptr %1360, align 4, !tbaa !153
  %1362 = load ptr, ptr %77, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.ImPlotTick, ptr %1362, i32 0, i32 7
  %1364 = load i32, ptr %1363, align 4, !tbaa !198
  %1365 = sitofp i32 %1364 to float
  %1366 = load float, ptr %56, align 4, !tbaa !134
  %1367 = load ptr, ptr %1, align 8, !tbaa !5
  %1368 = getelementptr inbounds %struct.ImPlotContext, ptr %1367, i32 0, i32 12
  %1369 = getelementptr inbounds %struct.ImPlotStyle, ptr %1368, i32 0, i32 18
  %1370 = getelementptr inbounds %struct.ImVec2, ptr %1369, i32 0, i32 1
  %1371 = load float, ptr %1370, align 4, !tbaa !153
  %1372 = fadd float %1366, %1371
  %1373 = call float @llvm.fmuladd.f32(float %1365, float %1372, float %1361)
  br label %1374

1374:                                             ; preds = %1356, %1334
  %1375 = phi float [ %1355, %1334 ], [ %1373, %1356 ]
  %1376 = fadd float %1331, %1375
  store float %1376, ptr %78, align 4, !tbaa !134
  %1377 = load ptr, ptr %77, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.ImPlotTick, ptr %1377, i32 0, i32 5
  %1379 = load i8, ptr %1378, align 1, !tbaa !199, !range !118, !noundef !119
  %1380 = trunc i8 %1379 to i1
  br i1 %1380, label %1381, label %1420

1381:                                             ; preds = %1374
  %1382 = load ptr, ptr %77, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.ImPlotTick, ptr %1382, i32 0, i32 1
  %1384 = load float, ptr %1383, align 8, !tbaa !176
  %1385 = load ptr, ptr %5, 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 0
  %1388 = getelementptr inbounds %struct.ImVec2, ptr %1387, i32 0, i32 0
  %1389 = load float, ptr %1388, align 8, !tbaa !159
  %1390 = fsub float %1389, 1.000000e+00
  %1391 = fcmp oge float %1384, %1390
  br i1 %1391, label %1392, label %1420

1392:                                             ; preds = %1381
  %1393 = load ptr, ptr %77, align 8, !tbaa !5
  %1394 = getelementptr inbounds %struct.ImPlotTick, ptr %1393, i32 0, i32 1
  %1395 = load float, ptr %1394, align 8, !tbaa !176
  %1396 = load ptr, ptr %5, align 8, !tbaa !5
  %1397 = getelementptr inbounds %struct.ImPlotPlot, ptr %1396, i32 0, i32 13
  %1398 = getelementptr inbounds %struct.ImRect, ptr %1397, i32 0, i32 1
  %1399 = getelementptr inbounds %struct.ImVec2, ptr %1398, i32 0, i32 0
  %1400 = load float, ptr %1399, align 8, !tbaa !162
  %1401 = fadd float %1400, 1.000000e+00
  %1402 = fcmp ole float %1395, %1401
  br i1 %1402, label %1403, label %1420

1403:                                             ; preds = %1392
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #12
  %1404 = load ptr, ptr %77, align 8, !tbaa !5
  %1405 = getelementptr inbounds %struct.ImPlotTick, ptr %1404, i32 0, i32 1
  %1406 = load float, ptr %1405, align 8, !tbaa !176
  %1407 = load ptr, ptr %77, align 8, !tbaa !5
  %1408 = getelementptr inbounds %struct.ImPlotTick, ptr %1407, i32 0, i32 2
  %1409 = getelementptr inbounds %struct.ImVec2, ptr %1408, i32 0, i32 0
  %1410 = load float, ptr %1409, align 4, !tbaa !200
  %1411 = call float @llvm.fmuladd.f32(float -5.000000e-01, float %1410, float %1406)
  %1412 = load float, ptr %78, align 4, !tbaa !134
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %79, float noundef %1411, float noundef %1412)
  %1413 = load ptr, ptr %3, align 8, !tbaa !5
  %1414 = load ptr, ptr %68, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.ImPlotAxis, ptr %1414, i32 0, i32 37
  %1416 = load i32, ptr %1415, align 8, !tbaa !197
  %1417 = load ptr, ptr %69, align 8, !tbaa !5
  %1418 = load i32, ptr %76, align 4, !tbaa !113
  %1419 = call noundef ptr @_ZNK12ImPlotTicker7GetTextEi(ptr noundef nonnull align 8 dereferenceable(52) %1417, i32 noundef %1418)
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1413, ptr noundef nonnull align 4 dereferenceable(8) %79, i32 noundef %1416, ptr noundef %1419, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #12
  br label %1420

1420:                                             ; preds = %1403, %1392, %1381, %1374
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #12
  br label %1421

1421:                                             ; preds = %1420
  %1422 = load i32, ptr %76, align 4, !tbaa !113
  %1423 = add nsw i32 %1422, 1
  store i32 %1423, ptr %76, align 4, !tbaa !113
  br label %1318, !llvm.loop !201

1424:                                             ; preds = %1323
  br label %1425

1425:                                             ; preds = %1424, %1314
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #12
  store i32 0, ptr %51, align 4
  br label %1426

1426:                                             ; preds = %1425, %1153
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #12
  %1427 = load i32, ptr %51, align 4
  switch i32 %1427, label %1698 [
    i32 0, label %1428
    i32 40, label %1429
  ]

1428:                                             ; preds = %1426
  br label %1429

1429:                                             ; preds = %1428, %1426
  %1430 = load i32, ptr %67, align 4, !tbaa !113
  %1431 = add nsw i32 %1430, 1
  store i32 %1431, ptr %67, align 4, !tbaa !113
  br label %1141, !llvm.loop !202

1432:                                             ; preds = %1144
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #12
  store i32 0, ptr %80, align 4, !tbaa !113
  br label %1433

1433:                                             ; preds = %1686, %1432
  %1434 = load i32, ptr %80, align 4, !tbaa !113
  %1435 = icmp slt i32 %1434, 3
  br i1 %1435, label %1437, label %1436

1436:                                             ; preds = %1433
  store i32 44, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #12
  br label %1689

1437:                                             ; preds = %1433
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #12
  %1438 = load ptr, ptr %5, align 8, !tbaa !5
  %1439 = load i32, ptr %80, align 4, !tbaa !113
  %1440 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %1438, i32 noundef %1439)
  store ptr %1440, ptr %81, align 8, !tbaa !5
  %1441 = load ptr, ptr %81, align 8, !tbaa !5
  %1442 = getelementptr inbounds %struct.ImPlotAxis, ptr %1441, i32 0, i32 42
  %1443 = load i8, ptr %1442, align 4, !tbaa !114, !range !118, !noundef !119
  %1444 = trunc i8 %1443 to i1
  br i1 %1444, label %1446, label %1445

1445:                                             ; preds = %1437
  store i32 46, ptr %51, align 4
  br label %1683

1446:                                             ; preds = %1437
  %1447 = load ptr, ptr %81, align 8, !tbaa !5
  %1448 = getelementptr inbounds %struct.ImPlotAxis, ptr %1447, i32 0, i32 48
  %1449 = load i8, ptr %1448, align 2, !tbaa !187, !range !118, !noundef !119
  %1450 = trunc i8 %1449 to i1
  br i1 %1450, label %1456, label %1451

1451:                                             ; preds = %1446
  %1452 = load ptr, ptr %81, align 8, !tbaa !5
  %1453 = getelementptr inbounds %struct.ImPlotAxis, ptr %1452, i32 0, i32 49
  %1454 = load i8, ptr %1453, align 1, !tbaa !188, !range !118, !noundef !119
  %1455 = trunc i8 %1454 to i1
  br i1 %1455, label %1456, label %1488

1456:                                             ; preds = %1451, %1446
  %1457 = load ptr, ptr %5, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.ImPlotPlot, ptr %1457, i32 0, i32 23
  %1459 = load i8, ptr %1458, align 1, !tbaa !189, !range !118, !noundef !119
  %1460 = trunc i8 %1459 to i1
  br i1 %1460, label %1488, label %1461

1461:                                             ; preds = %1456
  %1462 = load ptr, ptr %81, align 8, !tbaa !5
  %1463 = getelementptr inbounds %struct.ImPlotAxis, ptr %1462, i32 0, i32 1
  %1464 = load i32, ptr %1463, align 4, !tbaa !190
  %1465 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %1464, i32 noundef 128)
  br i1 %1465, label %1488, label %1466

1466:                                             ; preds = %1461
  %1467 = load ptr, ptr %3, align 8, !tbaa !5
  %1468 = load ptr, ptr %81, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.ImPlotAxis, ptr %1468, i32 0, i32 32
  %1470 = getelementptr inbounds %struct.ImRect, ptr %1469, i32 0, i32 0
  %1471 = load ptr, ptr %81, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.ImPlotAxis, ptr %1471, i32 0, i32 32
  %1473 = getelementptr inbounds %struct.ImRect, ptr %1472, i32 0, i32 1
  %1474 = load ptr, ptr %81, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.ImPlotAxis, ptr %1474, i32 0, i32 49
  %1476 = load i8, ptr %1475, align 1, !tbaa !188, !range !118, !noundef !119
  %1477 = trunc i8 %1476 to i1
  br i1 %1477, label %1478, label %1482

1478:                                             ; preds = %1466
  %1479 = load ptr, ptr %81, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.ImPlotAxis, ptr %1479, i32 0, i32 40
  %1481 = load i32, ptr %1480, align 4, !tbaa !191
  br label %1486

1482:                                             ; preds = %1466
  %1483 = load ptr, ptr %81, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.ImPlotAxis, ptr %1483, i32 0, i32 39
  %1485 = load i32, ptr %1484, align 8, !tbaa !192
  br label %1486

1486:                                             ; preds = %1482, %1478
  %1487 = phi i32 [ %1481, %1478 ], [ %1485, %1482 ]
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1467, ptr noundef nonnull align 4 dereferenceable(8) %1470, ptr noundef nonnull align 4 dereferenceable(8) %1473, i32 noundef %1487, float noundef 0.000000e+00, i32 noundef 0)
  br label %1524

1488:                                             ; preds = %1461, %1456, %1451
  %1489 = load ptr, ptr %81, align 8, !tbaa !5
  %1490 = getelementptr inbounds %struct.ImPlotAxis, ptr %1489, i32 0, i32 41
  %1491 = load i32, ptr %1490, align 8, !tbaa !193
  %1492 = icmp ne i32 %1491, 0
  br i1 %1492, label %1493, label %1506

1493:                                             ; preds = %1488
  %1494 = load ptr, ptr %3, align 8, !tbaa !5
  %1495 = load ptr, ptr %81, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.ImPlotAxis, ptr %1495, i32 0, i32 32
  %1497 = getelementptr inbounds %struct.ImRect, ptr %1496, i32 0, i32 0
  %1498 = load ptr, ptr %81, align 8, !tbaa !5
  %1499 = getelementptr inbounds %struct.ImPlotAxis, ptr %1498, i32 0, i32 32
  %1500 = getelementptr inbounds %struct.ImRect, ptr %1499, i32 0, i32 1
  %1501 = load ptr, ptr %81, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.ImPlotAxis, ptr %1501, i32 0, i32 41
  %1503 = load i32, ptr %1502, align 8, !tbaa !193
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1494, ptr noundef nonnull align 4 dereferenceable(8) %1497, ptr noundef nonnull align 4 dereferenceable(8) %1500, i32 noundef %1503, float noundef 0.000000e+00, i32 noundef 0)
  %1504 = load ptr, ptr %81, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.ImPlotAxis, ptr %1504, i32 0, i32 41
  store i32 0, ptr %1505, align 8, !tbaa !193
  br label %1523

1506:                                             ; preds = %1488
  %1507 = load ptr, ptr %81, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.ImPlotAxis, ptr %1507, i32 0, i32 38
  %1509 = load i32, ptr %1508, align 4, !tbaa !194
  %1510 = icmp ne i32 %1509, 0
  br i1 %1510, label %1511, label %1522

1511:                                             ; preds = %1506
  %1512 = load ptr, ptr %3, align 8, !tbaa !5
  %1513 = load ptr, ptr %81, align 8, !tbaa !5
  %1514 = getelementptr inbounds %struct.ImPlotAxis, ptr %1513, i32 0, i32 32
  %1515 = getelementptr inbounds %struct.ImRect, ptr %1514, i32 0, i32 0
  %1516 = load ptr, ptr %81, align 8, !tbaa !5
  %1517 = getelementptr inbounds %struct.ImPlotAxis, ptr %1516, i32 0, i32 32
  %1518 = getelementptr inbounds %struct.ImRect, ptr %1517, i32 0, i32 1
  %1519 = load ptr, ptr %81, align 8, !tbaa !5
  %1520 = getelementptr inbounds %struct.ImPlotAxis, ptr %1519, i32 0, i32 38
  %1521 = load i32, ptr %1520, align 4, !tbaa !194
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1512, ptr noundef nonnull align 4 dereferenceable(8) %1515, ptr noundef nonnull align 4 dereferenceable(8) %1518, i32 noundef %1521, float noundef 0.000000e+00, i32 noundef 0)
  br label %1522

1522:                                             ; preds = %1511, %1506
  br label %1523

1523:                                             ; preds = %1522, %1493
  br label %1524

1524:                                             ; preds = %1523, %1486
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #12
  %1525 = load ptr, ptr %81, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.ImPlotAxis, ptr %1525, i32 0, i32 11
  store ptr %1526, ptr %82, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #12
  %1527 = load ptr, ptr %81, align 8, !tbaa !5
  %1528 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %1527)
  %1529 = zext i1 %1528 to i8
  store i8 %1529, ptr %83, align 1, !tbaa !130
  %1530 = load ptr, ptr %81, align 8, !tbaa !5
  %1531 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1530)
  br i1 %1531, label %1532, label %1593

1532:                                             ; preds = %1524
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #12
  %1533 = load ptr, ptr %5, align 8, !tbaa !5
  %1534 = load ptr, ptr %81, align 8, !tbaa !5
  %1535 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %1533, ptr noundef nonnull align 8 dereferenceable(372) %1534)
  store ptr %1535, ptr %84, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #12
  %1536 = load ptr, ptr %84, align 8, !tbaa !5
  %1537 = call <2 x float> @_ZN6ImPlotL20CalcTextSizeVerticalEPKc(ptr noundef %1536)
  store <2 x float> %1537, ptr %85, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #12
  %1538 = load ptr, ptr %81, align 8, !tbaa !5
  %1539 = call noundef zeroext i1 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372) %1538)
  br i1 %1539, label %1540, label %1551

1540:                                             ; preds = %1532
  %1541 = load ptr, ptr %82, align 8, !tbaa !5
  %1542 = getelementptr inbounds %struct.ImPlotTicker, ptr %1541, i32 0, i32 2
  %1543 = getelementptr inbounds %struct.ImVec2, ptr %1542, i32 0, i32 0
  %1544 = load float, ptr %1543, align 8, !tbaa !203
  %1545 = load ptr, ptr %1, align 8, !tbaa !5
  %1546 = getelementptr inbounds %struct.ImPlotContext, ptr %1545, i32 0, i32 12
  %1547 = getelementptr inbounds %struct.ImPlotStyle, ptr %1546, i32 0, i32 18
  %1548 = getelementptr inbounds %struct.ImVec2, ptr %1547, i32 0, i32 0
  %1549 = load float, ptr %1548, align 4, !tbaa !204
  %1550 = fadd float %1544, %1549
  br label %1552

1551:                                             ; preds = %1532
  br label %1552

1552:                                             ; preds = %1551, %1540
  %1553 = phi float [ %1550, %1540 ], [ 0.000000e+00, %1551 ]
  %1554 = load ptr, ptr %1, align 8, !tbaa !5
  %1555 = getelementptr inbounds %struct.ImPlotContext, ptr %1554, i32 0, i32 12
  %1556 = getelementptr inbounds %struct.ImPlotStyle, ptr %1555, i32 0, i32 18
  %1557 = getelementptr inbounds %struct.ImVec2, ptr %1556, i32 0, i32 0
  %1558 = load float, ptr %1557, align 4, !tbaa !204
  %1559 = fadd float %1553, %1558
  store float %1559, ptr %86, align 4, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #12
  %1560 = load i8, ptr %83, align 1, !tbaa !130, !range !118, !noundef !119
  %1561 = trunc i8 %1560 to i1
  br i1 %1561, label %1562, label %1568

1562:                                             ; preds = %1552
  %1563 = load ptr, ptr %81, align 8, !tbaa !5
  %1564 = getelementptr inbounds %struct.ImPlotAxis, ptr %1563, i32 0, i32 30
  %1565 = load float, ptr %1564, align 8, !tbaa !160
  %1566 = load float, ptr %86, align 4, !tbaa !134
  %1567 = fadd float %1565, %1566
  br label %1577

1568:                                             ; preds = %1552
  %1569 = load ptr, ptr %81, align 8, !tbaa !5
  %1570 = getelementptr inbounds %struct.ImPlotAxis, ptr %1569, i32 0, i32 30
  %1571 = load float, ptr %1570, align 8, !tbaa !160
  %1572 = load float, ptr %86, align 4, !tbaa !134
  %1573 = fsub float %1571, %1572
  %1574 = getelementptr inbounds %struct.ImVec2, ptr %85, i32 0, i32 0
  %1575 = load float, ptr %1574, align 4, !tbaa !138
  %1576 = fsub float %1573, %1575
  br label %1577

1577:                                             ; preds = %1568, %1562
  %1578 = phi float [ %1567, %1562 ], [ %1576, %1568 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #12
  %1579 = load ptr, ptr %5, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.ImPlotPlot, ptr %1579, i32 0, i32 13
  %1581 = call <2 x float> @_ZNK6ImRect9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16) %1580)
  store <2 x float> %1581, ptr %88, align 4
  %1582 = getelementptr inbounds %struct.ImVec2, ptr %88, i32 0, i32 1
  %1583 = load float, ptr %1582, align 4, !tbaa !145
  %1584 = getelementptr inbounds %struct.ImVec2, ptr %85, i32 0, i32 1
  %1585 = load float, ptr %1584, align 4, !tbaa !145
  %1586 = call float @llvm.fmuladd.f32(float %1585, float 5.000000e-01, float %1583)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %87, float noundef %1578, float noundef %1586)
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #12
  %1587 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %89, ptr align 4 %87, i64 8, i1 false), !tbaa.struct !152
  %1588 = load ptr, ptr %81, align 8, !tbaa !5
  %1589 = getelementptr inbounds %struct.ImPlotAxis, ptr %1588, i32 0, i32 37
  %1590 = load i32, ptr %1589, align 8, !tbaa !197
  %1591 = load ptr, ptr %84, align 8, !tbaa !5
  %1592 = load <2 x float>, ptr %89, align 4
  call void @_ZN6ImPlot15AddTextVerticalEP10ImDrawList6ImVec2jPKcS4_(ptr noundef %1587, <2 x float> %1592, i32 noundef %1590, ptr noundef %1591, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #12
  br label %1593

1593:                                             ; preds = %1577, %1524
  %1594 = load ptr, ptr %81, align 8, !tbaa !5
  %1595 = call noundef zeroext i1 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372) %1594)
  br i1 %1595, label %1596, label %1682

1596:                                             ; preds = %1593
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #12
  store i32 0, ptr %90, align 4, !tbaa !113
  br label %1597

1597:                                             ; preds = %1678, %1596
  %1598 = load i32, ptr %90, align 4, !tbaa !113
  %1599 = load ptr, ptr %82, align 8, !tbaa !5
  %1600 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %1599)
  %1601 = icmp slt i32 %1598, %1600
  br i1 %1601, label %1603, label %1602

1602:                                             ; preds = %1597
  store i32 47, ptr %51, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #12
  br label %1681

1603:                                             ; preds = %1597
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #12
  %1604 = load ptr, ptr %82, align 8, !tbaa !5
  %1605 = getelementptr inbounds %struct.ImPlotTicker, ptr %1604, i32 0, i32 0
  %1606 = load i32, ptr %90, align 4, !tbaa !113
  %1607 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1605, i32 noundef %1606)
  store ptr %1607, ptr %91, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #12
  %1608 = load ptr, ptr %81, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.ImPlotAxis, ptr %1608, i32 0, i32 30
  %1610 = load float, ptr %1609, align 8, !tbaa !160
  %1611 = load i8, ptr %83, align 1, !tbaa !130, !range !118, !noundef !119
  %1612 = trunc i8 %1611 to i1
  br i1 %1612, label %1613, label %1619

1613:                                             ; preds = %1603
  %1614 = load ptr, ptr %1, align 8, !tbaa !5
  %1615 = getelementptr inbounds %struct.ImPlotContext, ptr %1614, i32 0, i32 12
  %1616 = getelementptr inbounds %struct.ImPlotStyle, ptr %1615, i32 0, i32 18
  %1617 = getelementptr inbounds %struct.ImVec2, ptr %1616, i32 0, i32 0
  %1618 = load float, ptr %1617, align 4, !tbaa !204
  br label %1631

1619:                                             ; preds = %1603
  %1620 = load ptr, ptr %1, align 8, !tbaa !5
  %1621 = getelementptr inbounds %struct.ImPlotContext, ptr %1620, i32 0, i32 12
  %1622 = getelementptr inbounds %struct.ImPlotStyle, ptr %1621, i32 0, i32 18
  %1623 = getelementptr inbounds %struct.ImVec2, ptr %1622, i32 0, i32 0
  %1624 = load float, ptr %1623, align 4, !tbaa !204
  %1625 = fneg float %1624
  %1626 = load ptr, ptr %91, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.ImPlotTick, ptr %1626, i32 0, i32 2
  %1628 = getelementptr inbounds %struct.ImVec2, ptr %1627, i32 0, i32 0
  %1629 = load float, ptr %1628, align 4, !tbaa !200
  %1630 = fsub float %1625, %1629
  br label %1631

1631:                                             ; preds = %1619, %1613
  %1632 = phi float [ %1618, %1613 ], [ %1630, %1619 ]
  %1633 = fadd float %1610, %1632
  store float %1633, ptr %92, align 4, !tbaa !134
  %1634 = load ptr, ptr %91, align 8, !tbaa !5
  %1635 = getelementptr inbounds %struct.ImPlotTick, ptr %1634, i32 0, i32 5
  %1636 = load i8, ptr %1635, align 1, !tbaa !199, !range !118, !noundef !119
  %1637 = trunc i8 %1636 to i1
  br i1 %1637, label %1638, label %1677

1638:                                             ; preds = %1631
  %1639 = load ptr, ptr %91, align 8, !tbaa !5
  %1640 = getelementptr inbounds %struct.ImPlotTick, ptr %1639, i32 0, i32 1
  %1641 = load float, ptr %1640, align 8, !tbaa !176
  %1642 = load ptr, ptr %5, align 8, !tbaa !5
  %1643 = getelementptr inbounds %struct.ImPlotPlot, ptr %1642, i32 0, i32 13
  %1644 = getelementptr inbounds %struct.ImRect, ptr %1643, i32 0, i32 0
  %1645 = getelementptr inbounds %struct.ImVec2, ptr %1644, i32 0, i32 1
  %1646 = load float, ptr %1645, align 4, !tbaa !166
  %1647 = fsub float %1646, 1.000000e+00
  %1648 = fcmp oge float %1641, %1647
  br i1 %1648, label %1649, label %1677

1649:                                             ; preds = %1638
  %1650 = load ptr, ptr %91, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.ImPlotTick, ptr %1650, i32 0, i32 1
  %1652 = load float, ptr %1651, align 8, !tbaa !176
  %1653 = load ptr, ptr %5, align 8, !tbaa !5
  %1654 = getelementptr inbounds %struct.ImPlotPlot, ptr %1653, i32 0, i32 13
  %1655 = getelementptr inbounds %struct.ImRect, ptr %1654, i32 0, i32 1
  %1656 = getelementptr inbounds %struct.ImVec2, ptr %1655, i32 0, i32 1
  %1657 = load float, ptr %1656, align 4, !tbaa !167
  %1658 = fadd float %1657, 1.000000e+00
  %1659 = fcmp ole float %1652, %1658
  br i1 %1659, label %1660, label %1677

1660:                                             ; preds = %1649
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #12
  %1661 = load float, ptr %92, align 4, !tbaa !134
  %1662 = load ptr, ptr %91, align 8, !tbaa !5
  %1663 = getelementptr inbounds %struct.ImPlotTick, ptr %1662, i32 0, i32 1
  %1664 = load float, ptr %1663, align 8, !tbaa !176
  %1665 = load ptr, ptr %91, align 8, !tbaa !5
  %1666 = getelementptr inbounds %struct.ImPlotTick, ptr %1665, i32 0, i32 2
  %1667 = getelementptr inbounds %struct.ImVec2, ptr %1666, i32 0, i32 1
  %1668 = load float, ptr %1667, align 4, !tbaa !205
  %1669 = call float @llvm.fmuladd.f32(float -5.000000e-01, float %1668, float %1664)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %93, float noundef %1661, float noundef %1669)
  %1670 = load ptr, ptr %3, align 8, !tbaa !5
  %1671 = load ptr, ptr %81, align 8, !tbaa !5
  %1672 = getelementptr inbounds %struct.ImPlotAxis, ptr %1671, i32 0, i32 37
  %1673 = load i32, ptr %1672, align 8, !tbaa !197
  %1674 = load ptr, ptr %82, align 8, !tbaa !5
  %1675 = load i32, ptr %90, align 4, !tbaa !113
  %1676 = call noundef ptr @_ZNK12ImPlotTicker7GetTextEi(ptr noundef nonnull align 8 dereferenceable(52) %1674, i32 noundef %1675)
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1670, ptr noundef nonnull align 4 dereferenceable(8) %93, i32 noundef %1673, ptr noundef %1676, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #12
  br label %1677

1677:                                             ; preds = %1660, %1649, %1638, %1631
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #12
  br label %1678

1678:                                             ; preds = %1677
  %1679 = load i32, ptr %90, align 4, !tbaa !113
  %1680 = add nsw i32 %1679, 1
  store i32 %1680, ptr %90, align 4, !tbaa !113
  br label %1597, !llvm.loop !206

1681:                                             ; preds = %1602
  br label %1682

1682:                                             ; preds = %1681, %1593
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #12
  store i32 0, ptr %51, align 4
  br label %1683

1683:                                             ; preds = %1682, %1445
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #12
  %1684 = load i32, ptr %51, align 4
  switch i32 %1684, label %1698 [
    i32 0, label %1685
    i32 46, label %1686
  ]

1685:                                             ; preds = %1683
  br label %1686

1686:                                             ; preds = %1685, %1683
  %1687 = load i32, ptr %80, align 4, !tbaa !113
  %1688 = add nsw i32 %1687, 1
  store i32 %1688, ptr %80, align 4, !tbaa !113
  br label %1433, !llvm.loop !207

1689:                                             ; preds = %1436
  %1690 = load ptr, ptr %5, align 8, !tbaa !5
  %1691 = getelementptr inbounds %struct.ImPlotPlot, ptr %1690, i32 0, i32 8
  %1692 = getelementptr inbounds %struct.ImPlotItemGroup, ptr %1691, i32 0, i32 2
  call void @_ZN12ImPlotLegend5ResetEv(ptr noundef nonnull align 8 dereferenceable(67) %1692)
  %1693 = load ptr, ptr %1, align 8, !tbaa !5
  %1694 = getelementptr inbounds %struct.ImPlotContext, ptr %1693, i32 0, i32 4
  %1695 = load ptr, ptr %1694, align 8, !tbaa !208
  %1696 = getelementptr inbounds %struct.ImPlotItemGroup, ptr %1695, i32 0, i32 0
  %1697 = load i32, ptr %1696, align 8, !tbaa !209
  call void @_ZN5ImGui14PushOverrideIDEj(i32 noundef %1697)
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %2) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %1) #12
  ret void

1698:                                             ; preds = %1683, %1426, %929
  unreachable
}

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL13ImAlmostEqualddi(double noundef, double noundef, i32 noundef) #7

declare void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) #6

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZN6ImPlotL20CalcTextSizeVerticalEPKc(ptr noundef) #4

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

declare void @_ZN5ImGui14PushOverrideIDEj(i32 noundef) #6

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

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

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


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

%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }

@GImPlot = external dso_local local_unnamed_addr global ptr, align 8
@GImGui = external local_unnamed_addr global ptr, align 8
@.str.78 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [114 x i8], align 1
@__PRETTY_FUNCTION__._ZN6ImPlot11SetupFinishEv = external hidden unnamed_addr constant [27 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [86 x i8], align 1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #1 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) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImPlot15AddTextVerticalEP10ImDrawList6ImVec2jPKcS4_(ptr noundef, <2 x float>, i32 noundef, ptr noundef, ptr 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 #4

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

declare noundef float @_ZN5ImGui17GetTextLineHeightEv() local_unnamed_addr #6

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: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3 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 #3

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

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

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

; 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 #1 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 uwtable
declare dso_local void @_ZN6ImPlot15Locator_DefaultER12ImPlotTickerRK11ImPlotRangefbPFidPciPvES6_(ptr noundef nonnull align 8 dereferenceable(52), ptr noundef nonnull align 8 dereferenceable(16), float noundef, i1 noundef zeroext, ptr noundef, ptr noundef) #8

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

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

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

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

; 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 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372)) local_unnamed_addr #10 align 2

; 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef, i32 noundef) local_unnamed_addr #7

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

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

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

; 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 nounwind uwtable
declare dso_local noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

; 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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6ImPlot11UpdateInputER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533)) local_unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6ImPlot11SetupFinishEv() local_unnamed_addr #3 {
  %1 = alloca %struct.ImRect, align 4
  %2 = alloca %struct.ImVec2, align 8
  %3 = alloca %struct.ImVec2, align 8
  %4 = alloca float, align 4
  %5 = alloca float, align 4
  %6 = alloca float, align 4
  %7 = alloca float, align 4
  %8 = alloca %struct.ImVec2, align 8
  %9 = alloca %struct.ImRect, align 4
  %10 = alloca %struct.ImVec2, align 8
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImVec2, align 4
  %14 = alloca %struct.ImRect, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImRect, align 4
  %18 = alloca %struct.ImVec2, align 4
  %19 = alloca %struct.ImVec2, align 4
  %20 = alloca %struct.ImVec2, align 4
  %21 = alloca %struct.ImVec2, align 4
  %22 = alloca %struct.ImVec2, align 8
  %23 = alloca %struct.ImVec2, align 4
  %24 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %.not = icmp eq ptr %24, null
  br i1 %.not, label %25, label %26

25:                                               ; preds = %0
  tail call void @__assert_fail(ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.78, i32 noundef 2428, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6ImPlot11SetupFinishEv) #11
  unreachable

26:                                               ; preds = %0
  %27 = getelementptr inbounds i8, ptr %24, i64 80
  %28 = load ptr, ptr %27, align 8, !tbaa !9
  %.not457 = icmp eq ptr %28, null
  br i1 %.not457, label %29, label %30

29:                                               ; preds = %26
  tail call void @__assert_fail(ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.78, i32 noundef 2429, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6ImPlot11SetupFinishEv) #11
  unreachable

30:                                               ; preds = %26
  %31 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %32 = getelementptr inbounds i8, ptr %31, i64 7176
  %33 = load ptr, ptr %32, align 8, !tbaa !44
  %34 = getelementptr inbounds i8, ptr %33, i64 640
  %35 = load ptr, ptr %34, align 8, !tbaa !91
  %36 = getelementptr inbounds i8, ptr %28, i64 2526
  store i8 1, ptr %36, align 2, !tbaa !107
  %37 = getelementptr inbounds i8, ptr %28, i64 24
  %38 = getelementptr inbounds i8, ptr %28, i64 2525
  %39 = getelementptr inbounds i8, ptr %28, i64 2527
  %40 = getelementptr inbounds i8, ptr %28, i64 388
  %41 = load i8, ptr %40, align 4, !tbaa !113, !range !117, !noundef !118
  %42 = trunc nuw i8 %41 to i1
  br i1 %42, label %43, label %50

43:                                               ; preds = %30
  tail call void @_ZN10ImPlotAxis9ConstrainEv(ptr noundef nonnull align 8 dereferenceable(372) %37)
  %44 = load i8, ptr %38, align 1, !tbaa !119, !range !117, !noundef !118
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %50, label %46

46:                                               ; preds = %43
  %47 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis10CanInitFitEv(ptr noundef nonnull align 8 dereferenceable(372) %37)
  br i1 %47, label %48, label %50

48:                                               ; preds = %46
  %49 = getelementptr inbounds i8, ptr %28, i64 390
  store i8 1, ptr %49, align 2, !tbaa !120
  store i8 1, ptr %39, align 1, !tbaa !121
  br label %50

50:                                               ; preds = %43, %46, %48, %30
  %51 = getelementptr inbounds i8, ptr %28, i64 176
  %52 = load ptr, ptr %51, align 8, !tbaa !122
  %53 = icmp eq ptr %52, null
  br i1 %53, label %.sink.split, label %59

.sink.split:                                      ; preds = %50
  store ptr @_ZN6ImPlotL17Formatter_DefaultEdPciPv, ptr %51, align 8, !tbaa !122
  %54 = getelementptr inbounds i8, ptr %28, i64 392
  %55 = load i8, ptr %54, align 8, !tbaa !123, !range !117, !noundef !118
  %56 = trunc nuw i8 %55 to i1
  %57 = getelementptr inbounds i8, ptr %28, i64 192
  %.sink = select i1 %56, ptr %57, ptr @.str.133
  %58 = getelementptr inbounds i8, ptr %28, i64 184
  store ptr %.sink, ptr %58, align 8, !tbaa !124
  br label %59

59:                                               ; preds = %.sink.split, %50
  %60 = getelementptr inbounds i8, ptr %28, i64 208
  %61 = load ptr, ptr %60, align 8, !tbaa !125
  %62 = icmp eq ptr %61, null
  br i1 %62, label %63, label %64

63:                                               ; preds = %59
  store ptr @_ZN6ImPlot15Locator_DefaultER12ImPlotTickerRK11ImPlotRangefbPFidPciPvES6_, ptr %60, align 8, !tbaa !125
  br label %64

64:                                               ; preds = %63, %59
  %65 = getelementptr inbounds i8, ptr %28, i64 400
  %66 = getelementptr inbounds i8, ptr %28, i64 764
  %67 = load i8, ptr %66, align 4, !tbaa !113, !range !117, !noundef !118
  %68 = trunc nuw i8 %67 to i1
  br i1 %68, label %69, label %76

69:                                               ; preds = %64
  tail call void @_ZN10ImPlotAxis9ConstrainEv(ptr noundef nonnull align 8 dereferenceable(372) %65)
  %70 = load i8, ptr %38, align 1, !tbaa !119, !range !117, !noundef !118
  %71 = trunc nuw i8 %70 to i1
  br i1 %71, label %76, label %72

72:                                               ; preds = %69
  %73 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis10CanInitFitEv(ptr noundef nonnull align 8 dereferenceable(372) %65)
  br i1 %73, label %74, label %76

74:                                               ; preds = %72
  %75 = getelementptr inbounds i8, ptr %28, i64 766
  store i8 1, ptr %75, align 2, !tbaa !120
  store i8 1, ptr %39, align 1, !tbaa !121
  br label %76

76:                                               ; preds = %74, %72, %69, %64
  %77 = getelementptr inbounds i8, ptr %28, i64 552
  %78 = load ptr, ptr %77, align 8, !tbaa !122
  %79 = icmp eq ptr %78, null
  br i1 %79, label %.sink.split546, label %85

.sink.split546:                                   ; preds = %76
  store ptr @_ZN6ImPlotL17Formatter_DefaultEdPciPv, ptr %77, align 8, !tbaa !122
  %80 = getelementptr inbounds i8, ptr %28, i64 768
  %81 = load i8, ptr %80, align 8, !tbaa !123, !range !117, !noundef !118
  %82 = trunc nuw i8 %81 to i1
  %83 = getelementptr inbounds i8, ptr %28, i64 568
  %.sink547 = select i1 %82, ptr %83, ptr @.str.133
  %84 = getelementptr inbounds i8, ptr %28, i64 560
  store ptr %.sink547, ptr %84, align 8, !tbaa !124
  br label %85

85:                                               ; preds = %.sink.split546, %76
  %86 = getelementptr inbounds i8, ptr %28, i64 584
  %87 = load ptr, ptr %86, align 8, !tbaa !125
  %88 = icmp eq ptr %87, null
  br i1 %88, label %89, label %90

89:                                               ; preds = %85
  store ptr @_ZN6ImPlot15Locator_DefaultER12ImPlotTickerRK11ImPlotRangefbPFidPciPvES6_, ptr %86, align 8, !tbaa !125
  br label %90

90:                                               ; preds = %89, %85
  %91 = getelementptr inbounds i8, ptr %28, i64 776
  %92 = getelementptr inbounds i8, ptr %28, i64 1140
  %93 = load i8, ptr %92, align 4, !tbaa !113, !range !117, !noundef !118
  %94 = trunc nuw i8 %93 to i1
  br i1 %94, label %95, label %102

95:                                               ; preds = %90
  tail call void @_ZN10ImPlotAxis9ConstrainEv(ptr noundef nonnull align 8 dereferenceable(372) %91)
  %96 = load i8, ptr %38, align 1, !tbaa !119, !range !117, !noundef !118
  %97 = trunc nuw i8 %96 to i1
  br i1 %97, label %102, label %98

98:                                               ; preds = %95
  %99 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis10CanInitFitEv(ptr noundef nonnull align 8 dereferenceable(372) %91)
  br i1 %99, label %100, label %102

100:                                              ; preds = %98
  %101 = getelementptr inbounds i8, ptr %28, i64 1142
  store i8 1, ptr %101, align 2, !tbaa !120
  store i8 1, ptr %39, align 1, !tbaa !121
  br label %102

102:                                              ; preds = %100, %98, %95, %90
  %103 = getelementptr inbounds i8, ptr %28, i64 928
  %104 = load ptr, ptr %103, align 8, !tbaa !122
  %105 = icmp eq ptr %104, null
  br i1 %105, label %.sink.split549, label %111

.sink.split549:                                   ; preds = %102
  store ptr @_ZN6ImPlotL17Formatter_DefaultEdPciPv, ptr %103, align 8, !tbaa !122
  %106 = getelementptr inbounds i8, ptr %28, i64 1144
  %107 = load i8, ptr %106, align 8, !tbaa !123, !range !117, !noundef !118
  %108 = trunc nuw i8 %107 to i1
  %109 = getelementptr inbounds i8, ptr %28, i64 944
  %.sink550 = select i1 %108, ptr %109, ptr @.str.133
  %110 = getelementptr inbounds i8, ptr %28, i64 936
  store ptr %.sink550, ptr %110, align 8, !tbaa !124
  br label %111

111:                                              ; preds = %.sink.split549, %102
  %112 = getelementptr inbounds i8, ptr %28, i64 960
  %113 = load ptr, ptr %112, align 8, !tbaa !125
  %114 = icmp eq ptr %113, null
  br i1 %114, label %115, label %116

115:                                              ; preds = %111
  store ptr @_ZN6ImPlot15Locator_DefaultER12ImPlotTickerRK11ImPlotRangefbPFidPciPvES6_, ptr %112, align 8, !tbaa !125
  br label %116

116:                                              ; preds = %115, %111
  %117 = getelementptr inbounds i8, ptr %28, i64 1152
  %118 = getelementptr inbounds i8, ptr %28, i64 1516
  %119 = load i8, ptr %118, align 4, !tbaa !113, !range !117, !noundef !118
  %120 = trunc nuw i8 %119 to i1
  br i1 %120, label %121, label %128

121:                                              ; preds = %116
  tail call void @_ZN10ImPlotAxis9ConstrainEv(ptr noundef nonnull align 8 dereferenceable(372) %117)
  %122 = load i8, ptr %38, align 1, !tbaa !119, !range !117, !noundef !118
  %123 = trunc nuw i8 %122 to i1
  br i1 %123, label %128, label %124

124:                                              ; preds = %121
  %125 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis10CanInitFitEv(ptr noundef nonnull align 8 dereferenceable(372) %117)
  br i1 %125, label %126, label %128

126:                                              ; preds = %124
  %127 = getelementptr inbounds i8, ptr %28, i64 1518
  store i8 1, ptr %127, align 2, !tbaa !120
  store i8 1, ptr %39, align 1, !tbaa !121
  br label %128

128:                                              ; preds = %126, %124, %121, %116
  %129 = getelementptr inbounds i8, ptr %28, i64 1304
  %130 = load ptr, ptr %129, align 8, !tbaa !122
  %131 = icmp eq ptr %130, null
  br i1 %131, label %.sink.split552, label %137

.sink.split552:                                   ; preds = %128
  store ptr @_ZN6ImPlotL17Formatter_DefaultEdPciPv, ptr %129, align 8, !tbaa !122
  %132 = getelementptr inbounds i8, ptr %28, i64 1520
  %133 = load i8, ptr %132, align 8, !tbaa !123, !range !117, !noundef !118
  %134 = trunc nuw i8 %133 to i1
  %135 = getelementptr inbounds i8, ptr %28, i64 1320
  %.sink553 = select i1 %134, ptr %135, ptr @.str.133
  %136 = getelementptr inbounds i8, ptr %28, i64 1312
  store ptr %.sink553, ptr %136, align 8, !tbaa !124
  br label %137

137:                                              ; preds = %.sink.split552, %128
  %138 = getelementptr inbounds i8, ptr %28, i64 1336
  %139 = load ptr, ptr %138, align 8, !tbaa !125
  %140 = icmp eq ptr %139, null
  br i1 %140, label %141, label %142

141:                                              ; preds = %137
  store ptr @_ZN6ImPlot15Locator_DefaultER12ImPlotTickerRK11ImPlotRangefbPFidPciPvES6_, ptr %138, align 8, !tbaa !125
  br label %142

142:                                              ; preds = %141, %137
  %143 = getelementptr inbounds i8, ptr %28, i64 1528
  %144 = getelementptr inbounds i8, ptr %28, i64 1892
  %145 = load i8, ptr %144, align 4, !tbaa !113, !range !117, !noundef !118
  %146 = trunc nuw i8 %145 to i1
  br i1 %146, label %147, label %154

147:                                              ; preds = %142
  tail call void @_ZN10ImPlotAxis9ConstrainEv(ptr noundef nonnull align 8 dereferenceable(372) %143)
  %148 = load i8, ptr %38, align 1, !tbaa !119, !range !117, !noundef !118
  %149 = trunc nuw i8 %148 to i1
  br i1 %149, label %154, label %150

150:                                              ; preds = %147
  %151 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis10CanInitFitEv(ptr noundef nonnull align 8 dereferenceable(372) %143)
  br i1 %151, label %152, label %154

152:                                              ; preds = %150
  %153 = getelementptr inbounds i8, ptr %28, i64 1894
  store i8 1, ptr %153, align 2, !tbaa !120
  store i8 1, ptr %39, align 1, !tbaa !121
  br label %154

154:                                              ; preds = %152, %150, %147, %142
  %155 = getelementptr inbounds i8, ptr %28, i64 1680
  %156 = load ptr, ptr %155, align 8, !tbaa !122
  %157 = icmp eq ptr %156, null
  br i1 %157, label %.sink.split555, label %163

.sink.split555:                                   ; preds = %154
  store ptr @_ZN6ImPlotL17Formatter_DefaultEdPciPv, ptr %155, align 8, !tbaa !122
  %158 = getelementptr inbounds i8, ptr %28, i64 1896
  %159 = load i8, ptr %158, align 8, !tbaa !123, !range !117, !noundef !118
  %160 = trunc nuw i8 %159 to i1
  %161 = getelementptr inbounds i8, ptr %28, i64 1696
  %.sink556 = select i1 %160, ptr %161, ptr @.str.133
  %162 = getelementptr inbounds i8, ptr %28, i64 1688
  store ptr %.sink556, ptr %162, align 8, !tbaa !124
  br label %163

163:                                              ; preds = %.sink.split555, %154
  %164 = getelementptr inbounds i8, ptr %28, i64 1712
  %165 = load ptr, ptr %164, align 8, !tbaa !125
  %166 = icmp eq ptr %165, null
  br i1 %166, label %167, label %168

167:                                              ; preds = %163
  store ptr @_ZN6ImPlot15Locator_DefaultER12ImPlotTickerRK11ImPlotRangefbPFidPciPvES6_, ptr %164, align 8, !tbaa !125
  br label %168

168:                                              ; preds = %167, %163
  %169 = getelementptr inbounds i8, ptr %28, i64 1904
  %170 = getelementptr inbounds i8, ptr %28, i64 2268
  %171 = load i8, ptr %170, align 4, !tbaa !113, !range !117, !noundef !118
  %172 = trunc nuw i8 %171 to i1
  br i1 %172, label %173, label %180

173:                                              ; preds = %168
  tail call void @_ZN10ImPlotAxis9ConstrainEv(ptr noundef nonnull align 8 dereferenceable(372) %169)
  %174 = load i8, ptr %38, align 1, !tbaa !119, !range !117, !noundef !118
  %175 = trunc nuw i8 %174 to i1
  br i1 %175, label %180, label %176

176:                                              ; preds = %173
  %177 = tail call noundef zeroext i1 @_ZNK10ImPlotAxis10CanInitFitEv(ptr noundef nonnull align 8 dereferenceable(372) %169)
  br i1 %177, label %178, label %180

178:                                              ; preds = %176
  %179 = getelementptr inbounds i8, ptr %28, i64 2270
  store i8 1, ptr %179, align 2, !tbaa !120
  store i8 1, ptr %39, align 1, !tbaa !121
  br label %180

180:                                              ; preds = %178, %176, %173, %168
  %181 = getelementptr inbounds i8, ptr %28, i64 2056
  %182 = load ptr, ptr %181, align 8, !tbaa !122
  %183 = icmp eq ptr %182, null
  br i1 %183, label %.sink.split558, label %189

.sink.split558:                                   ; preds = %180
  store ptr @_ZN6ImPlotL17Formatter_DefaultEdPciPv, ptr %181, align 8, !tbaa !122
  %184 = getelementptr inbounds i8, ptr %28, i64 2272
  %185 = load i8, ptr %184, align 8, !tbaa !123, !range !117, !noundef !118
  %186 = trunc nuw i8 %185 to i1
  %187 = getelementptr inbounds i8, ptr %28, i64 2072
  %.sink559 = select i1 %186, ptr %187, ptr @.str.133
  %188 = getelementptr inbounds i8, ptr %28, i64 2064
  store ptr %.sink559, ptr %188, align 8, !tbaa !124
  br label %189

189:                                              ; preds = %.sink.split558, %180
  %190 = getelementptr inbounds i8, ptr %28, i64 2088
  %191 = load ptr, ptr %190, align 8, !tbaa !125
  %192 = icmp eq ptr %191, null
  br i1 %192, label %193, label %194

193:                                              ; preds = %189
  store ptr @_ZN6ImPlot15Locator_DefaultER12ImPlotTickerRK11ImPlotRangefbPFidPciPvES6_, ptr %190, align 8, !tbaa !125
  br label %194

194:                                              ; preds = %193, %189
  %195 = getelementptr inbounds i8, ptr %28, i64 4
  %196 = load i32, ptr %195, align 4, !tbaa !126
  %197 = tail call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %196, i32 noundef 256)
  %198 = getelementptr inbounds i8, ptr %28, i64 1152
  %199 = load i8, ptr %40, align 4, !tbaa !113, !range !117, !noundef !118
  %200 = trunc nuw i8 %199 to i1
  %201 = load i8, ptr %118, align 4, !tbaa !113, !range !117, !noundef !118
  %202 = trunc nuw i8 %201 to i1
  br i1 %200, label %203, label %217

203:                                              ; preds = %194
  %204 = getelementptr inbounds i8, ptr %28, i64 80
  %205 = load ptr, ptr %204, align 8, !tbaa !127
  br i1 %202, label %206, label %214

206:                                              ; preds = %203
  %207 = icmp eq ptr %205, null
  br i1 %207, label %208, label %209

208:                                              ; preds = %206
  store ptr %117, ptr %204, align 8, !tbaa !127
  br label %209

209:                                              ; preds = %208, %206
  %210 = getelementptr inbounds i8, ptr %28, i64 1208
  %211 = load ptr, ptr %210, align 8, !tbaa !127
  %212 = icmp eq ptr %211, null
  br i1 %212, label %213, label %223

213:                                              ; preds = %209
  store ptr %37, ptr %210, align 8, !tbaa !127
  br label %223

214:                                              ; preds = %203
  %215 = icmp ne ptr %205, null
  %brmerge = or i1 %197, %215
  br i1 %brmerge, label %223, label %216

216:                                              ; preds = %214
  store ptr %198, ptr %204, align 8, !tbaa !127
  br label %223

217:                                              ; preds = %194
  br i1 %202, label %218, label %223

218:                                              ; preds = %217
  %219 = getelementptr inbounds i8, ptr %28, i64 1208
  %220 = load ptr, ptr %219, align 8, !tbaa !127
  %221 = icmp ne ptr %220, null
  %brmerge469 = or i1 %197, %221
  br i1 %brmerge469, label %223, label %222

222:                                              ; preds = %218
  store ptr %37, ptr %219, align 8, !tbaa !127
  br label %223

223:                                              ; preds = %218, %214, %216, %222, %217, %209, %213
  %224 = load i8, ptr %66, align 4, !tbaa !113, !range !117, !noundef !118
  %225 = trunc nuw i8 %224 to i1
  %226 = load i8, ptr %144, align 4, !tbaa !113, !range !117, !noundef !118
  %227 = trunc nuw i8 %226 to i1
  br i1 %225, label %234, label %228

228:                                              ; preds = %223
  br i1 %227, label %229, label %248

229:                                              ; preds = %228
  %230 = getelementptr inbounds i8, ptr %28, i64 1584
  %231 = load ptr, ptr %230, align 8, !tbaa !127
  %232 = icmp ne ptr %231, null
  %brmerge469.1 = or i1 %197, %232
  br i1 %brmerge469.1, label %248, label %233

233:                                              ; preds = %229
  store ptr %37, ptr %230, align 8, !tbaa !127
  br label %248

234:                                              ; preds = %223
  %235 = getelementptr inbounds i8, ptr %28, i64 456
  %236 = load ptr, ptr %235, align 8, !tbaa !127
  br i1 %227, label %240, label %237

237:                                              ; preds = %234
  %238 = icmp ne ptr %236, null
  %brmerge.1 = or i1 %197, %238
  br i1 %brmerge.1, label %248, label %239

239:                                              ; preds = %237
  store ptr %198, ptr %235, align 8, !tbaa !127
  br label %248

240:                                              ; preds = %234
  %241 = icmp eq ptr %236, null
  br i1 %241, label %242, label %243

242:                                              ; preds = %240
  store ptr %143, ptr %235, align 8, !tbaa !127
  br label %243

243:                                              ; preds = %242, %240
  %244 = getelementptr inbounds i8, ptr %28, i64 1584
  %245 = load ptr, ptr %244, align 8, !tbaa !127
  %246 = icmp eq ptr %245, null
  br i1 %246, label %247, label %248

247:                                              ; preds = %243
  store ptr %65, ptr %244, align 8, !tbaa !127
  br label %248

248:                                              ; preds = %247, %243, %239, %237, %233, %229, %228
  %249 = load i8, ptr %92, align 4, !tbaa !113, !range !117, !noundef !118
  %250 = trunc nuw i8 %249 to i1
  %251 = load i8, ptr %170, align 4, !tbaa !113, !range !117, !noundef !118
  %252 = trunc nuw i8 %251 to i1
  br i1 %250, label %259, label %253

253:                                              ; preds = %248
  br i1 %252, label %254, label %273

254:                                              ; preds = %253
  %255 = getelementptr inbounds i8, ptr %28, i64 1960
  %256 = load ptr, ptr %255, align 8, !tbaa !127
  %257 = icmp ne ptr %256, null
  %brmerge469.2 = or i1 %197, %257
  br i1 %brmerge469.2, label %273, label %258

258:                                              ; preds = %254
  store ptr %37, ptr %255, align 8, !tbaa !127
  br label %273

259:                                              ; preds = %248
  %260 = getelementptr inbounds i8, ptr %28, i64 832
  %261 = load ptr, ptr %260, align 8, !tbaa !127
  br i1 %252, label %265, label %262

262:                                              ; preds = %259
  %263 = icmp ne ptr %261, null
  %brmerge.2 = or i1 %197, %263
  br i1 %brmerge.2, label %273, label %264

264:                                              ; preds = %262
  store ptr %198, ptr %260, align 8, !tbaa !127
  br label %273

265:                                              ; preds = %259
  %266 = icmp eq ptr %261, null
  br i1 %266, label %267, label %268

267:                                              ; preds = %265
  store ptr %169, ptr %260, align 8, !tbaa !127
  br label %268

268:                                              ; preds = %267, %265
  %269 = getelementptr inbounds i8, ptr %28, i64 1960
  %270 = load ptr, ptr %269, align 8, !tbaa !127
  %271 = icmp eq ptr %270, null
  br i1 %271, label %272, label %273

272:                                              ; preds = %268
  store ptr %91, ptr %269, align 8, !tbaa !127
  br label %273

273:                                              ; preds = %272, %268, %264, %262, %258, %254, %253
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #12
  %274 = getelementptr inbounds i8, ptr %28, i64 2432
  %275 = getelementptr inbounds i8, ptr %24, i64 352
  %276 = tail call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %274, ptr noundef nonnull align 4 dereferenceable(8) %275)
  store <2 x float> %276, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #12
  %277 = getelementptr inbounds i8, ptr %28, i64 2440
  %278 = tail call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %277, ptr noundef nonnull align 4 dereferenceable(8) %275)
  store <2 x float> %278, ptr %3, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %1, ptr noundef nonnull align 4 dereferenceable(8) %2, ptr noundef nonnull align 4 dereferenceable(8) %3)
  %279 = getelementptr inbounds i8, ptr %28, i64 2448
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %279, ptr noundef nonnull align 4 dereferenceable(16) %1, i64 16, i1 false), !tbaa.struct !128
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1) #12
  %280 = getelementptr inbounds i8, ptr %28, i64 2480
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %280, ptr noundef nonnull align 8 dereferenceable(16) %274, i64 16, i1 false), !tbaa.struct !128
  %281 = load i32, ptr %195, align 4, !tbaa !126
  %282 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %281, i32 noundef 2)
  br i1 %282, label %386, label %283

283:                                              ; preds = %273
  %284 = getelementptr inbounds i8, ptr %28, i64 2296
  %285 = call noundef i32 @_ZNK15ImPlotItemGroup14GetLegendCountEv(ptr noundef nonnull align 8 dereferenceable(124) %284)
  %286 = icmp sgt i32 %285, 0
  br i1 %286, label %287, label %386

287:                                              ; preds = %283
  %288 = getelementptr inbounds i8, ptr %28, i64 2304
  %289 = load i32, ptr %288, align 8, !tbaa !130
  %290 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %289, i32 noundef 16)
  br i1 %290, label %291, label %386

291:                                              ; preds = %287
  %292 = load i32, ptr %288, align 8, !tbaa !131
  %293 = call noundef zeroext i1 @_ZL9ImHasFlagIi18ImPlotLegendFlags_EbT_T0_(i32 noundef %292, i32 noundef 32)
  %294 = getelementptr inbounds i8, ptr %24, i64 376
  %295 = getelementptr inbounds i8, ptr %24, i64 384
  %296 = xor i1 %293, true
  %297 = call <2 x float> @_ZN6ImPlot14CalcLegendSizeER15ImPlotItemGroupRK6ImVec2S4_b(ptr noundef nonnull align 8 dereferenceable(124) %284, ptr noundef nonnull align 4 dereferenceable(8) %294, ptr noundef nonnull align 4 dereferenceable(8) %295, i1 noundef zeroext %296)
  %298 = getelementptr inbounds i8, ptr %28, i64 2312
  %299 = load i32, ptr %298, align 8, !tbaa !132
  %300 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %299, i32 noundef 4)
  br i1 %300, label %301, label %305

301:                                              ; preds = %291
  %302 = load i32, ptr %298, align 8, !tbaa !132
  %303 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %302, i32 noundef 8)
  %304 = xor i1 %303, true
  br label %305

305:                                              ; preds = %301, %291
  %306 = phi i1 [ false, %291 ], [ %304, %301 ]
  %307 = load i32, ptr %298, align 8, !tbaa !132
  %308 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %307, i32 noundef 8)
  br i1 %308, label %309, label %313

309:                                              ; preds = %305
  %310 = load i32, ptr %298, align 8, !tbaa !132
  %311 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %310, i32 noundef 4)
  %312 = xor i1 %311, true
  br label %313

313:                                              ; preds = %309, %305
  %314 = phi i1 [ false, %305 ], [ %312, %309 ]
  %315 = load i32, ptr %298, align 8, !tbaa !132
  %316 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %315, i32 noundef 1)
  br i1 %316, label %317, label %321

317:                                              ; preds = %313
  %318 = load i32, ptr %298, align 8, !tbaa !132
  %319 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %318, i32 noundef 2)
  %320 = xor i1 %319, true
  br label %321

321:                                              ; preds = %317, %313
  %322 = phi i1 [ false, %313 ], [ %320, %317 ]
  %323 = load i32, ptr %298, align 8, !tbaa !132
  %324 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %323, i32 noundef 2)
  br i1 %324, label %325, label %329

325:                                              ; preds = %321
  %326 = load i32, ptr %298, align 8, !tbaa !132
  %327 = call noundef zeroext i1 @_ZL9ImHasFlagIi15ImPlotLocation_EbT_T0_(i32 noundef %326, i32 noundef 1)
  %328 = xor i1 %327, true
  br label %329

329:                                              ; preds = %325, %321
  %330 = phi i1 [ false, %321 ], [ %328, %325 ]
  %.not470 = xor i1 %306, true
  %brmerge471 = or i1 %293, %.not470
  br i1 %brmerge471, label %331, label %332

331:                                              ; preds = %329
  %brmerge474 = or i1 %296, %.not470
  %brmerge475 = or i1 %brmerge474, %322
  %brmerge476 = or i1 %brmerge475, %330
  br i1 %brmerge476, label %342, label %332

332:                                              ; preds = %331, %329
  %.sroa.0232.0.vec.extract = extractelement <2 x float> %297, i64 0
  %333 = getelementptr inbounds i8, ptr %24, i64 368
  %334 = load float, ptr %333, align 4, !tbaa !133
  %335 = fadd float %.sroa.0232.0.vec.extract, %334
  %336 = load float, ptr %279, align 8, !tbaa !134
  %337 = fadd float %336, %335
  store float %337, ptr %279, align 8, !tbaa !134
  %338 = load float, ptr %275, align 4, !tbaa !135
  %339 = fadd float %.sroa.0232.0.vec.extract, %338
  %340 = load float, ptr %280, align 8, !tbaa !136
  %341 = fadd float %340, %339
  store float %341, ptr %280, align 8, !tbaa !136
  br label %342

342:                                              ; preds = %331, %332
  %.not477 = xor i1 %314, true
  %brmerge478 = or i1 %293, %.not477
  br i1 %brmerge478, label %343, label %344

343:                                              ; preds = %342
  %brmerge481 = or i1 %296, %.not477
  %brmerge482 = or i1 %brmerge481, %322
  %brmerge483 = or i1 %brmerge482, %330
  br i1 %brmerge483, label %356, label %344

344:                                              ; preds = %343, %342
  %.sroa.0232.0.vec.extract236 = extractelement <2 x float> %297, i64 0
  %345 = getelementptr inbounds i8, ptr %24, i64 368
  %346 = load float, ptr %345, align 4, !tbaa !133
  %347 = fadd float %.sroa.0232.0.vec.extract236, %346
  %348 = getelementptr inbounds i8, ptr %28, i64 2456
  %349 = load float, ptr %348, align 8, !tbaa !137
  %350 = fsub float %349, %347
  store float %350, ptr %348, align 8, !tbaa !137
  %351 = load float, ptr %275, align 4, !tbaa !135
  %352 = fadd float %.sroa.0232.0.vec.extract236, %351
  %353 = getelementptr inbounds i8, ptr %28, i64 2488
  %354 = load float, ptr %353, align 8, !tbaa !138
  %355 = fsub float %354, %352
  store float %355, ptr %353, align 8, !tbaa !138
  br label %356

356:                                              ; preds = %343, %344
  %.not484 = xor i1 %322, true
  %brmerge486 = or i1 %296, %.not484
  br i1 %brmerge486, label %357, label %358

357:                                              ; preds = %356
  %brmerge488 = or i1 %293, %.not484
  %brmerge489 = or i1 %306, %brmerge488
  %brmerge490 = or i1 %314, %brmerge489
  br i1 %brmerge490, label %371, label %358

358:                                              ; preds = %357, %356
  %.sroa.0232.4.vec.extract = extractelement <2 x float> %297, i64 1
  %359 = getelementptr inbounds i8, ptr %24, i64 372
  %360 = load float, ptr %359, align 4, !tbaa !139
  %361 = fadd float %.sroa.0232.4.vec.extract, %360
  %362 = getelementptr inbounds i8, ptr %28, i64 2452
  %363 = load float, ptr %362, align 4, !tbaa !140
  %364 = fadd float %363, %361
  store float %364, ptr %362, align 4, !tbaa !140
  %365 = getelementptr inbounds i8, ptr %24, i64 356
  %366 = load float, ptr %365, align 4, !tbaa !141
  %367 = fadd float %.sroa.0232.4.vec.extract, %366
  %368 = getelementptr inbounds i8, ptr %28, i64 2484
  %369 = load float, ptr %368, align 4, !tbaa !142
  %370 = fadd float %369, %367
  store float %370, ptr %368, align 4, !tbaa !142
  br label %371

371:                                              ; preds = %357, %358
  %.not491 = xor i1 %330, true
  %brmerge493 = or i1 %296, %.not491
  br i1 %brmerge493, label %372, label %373

372:                                              ; preds = %371
  %brmerge495 = or i1 %293, %.not491
  %brmerge496 = or i1 %306, %brmerge495
  %brmerge497 = or i1 %314, %brmerge496
  br i1 %brmerge497, label %386, label %373

373:                                              ; preds = %372, %371
  %.sroa.0232.4.vec.extract242 = extractelement <2 x float> %297, i64 1
  %374 = getelementptr inbounds i8, ptr %24, i64 372
  %375 = load float, ptr %374, align 4, !tbaa !139
  %376 = fadd float %.sroa.0232.4.vec.extract242, %375
  %377 = getelementptr inbounds i8, ptr %28, i64 2460
  %378 = load float, ptr %377, align 4, !tbaa !143
  %379 = fsub float %378, %376
  store float %379, ptr %377, align 4, !tbaa !143
  %380 = getelementptr inbounds i8, ptr %24, i64 356
  %381 = load float, ptr %380, align 4, !tbaa !141
  %382 = fadd float %.sroa.0232.4.vec.extract242, %381
  %383 = getelementptr inbounds i8, ptr %28, i64 2492
  %384 = load float, ptr %383, align 4, !tbaa !144
  %385 = fsub float %384, %382
  store float %385, ptr %383, align 4, !tbaa !144
  br label %386

386:                                              ; preds = %373, %372, %287, %283, %273
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #12
  store float 0.000000e+00, ptr %4, align 4, !tbaa !129
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #12
  store float 0.000000e+00, ptr %5, align 4, !tbaa !129
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #12
  store float 0.000000e+00, ptr %6, align 4, !tbaa !129
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #12
  store float 0.000000e+00, ptr %7, align 4, !tbaa !129
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %387 = call noundef zeroext i1 @_ZNK10ImPlotPlot8HasTitleEv(ptr noundef nonnull align 8 dereferenceable(2533) %28)
  br i1 %387, label %388, label %._crit_edge

._crit_edge:                                      ; preds = %386
  %.pre = load float, ptr %8, align 8, !tbaa !145
  br label %392

388:                                              ; preds = %386
  %389 = call noundef ptr @_ZNK10ImPlotPlot8GetTitleEv(ptr noundef nonnull align 8 dereferenceable(2533) %28)
  %390 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %389, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  store <2 x float> %390, ptr %8, align 8
  %391 = extractelement <2 x float> %390, i64 0
  br label %392

392:                                              ; preds = %._crit_edge, %388
  %393 = phi float [ %.pre, %._crit_edge ], [ %391, %388 ]
  %394 = fcmp ogt float %393, 0.000000e+00
  br i1 %394, label %395, label %409

395:                                              ; preds = %392
  %396 = getelementptr inbounds i8, ptr %8, i64 4
  %397 = load float, ptr %396, align 4, !tbaa !146
  %398 = getelementptr inbounds i8, ptr %24, i64 364
  %399 = load float, ptr %398, align 4, !tbaa !147
  %400 = fadd float %397, %399
  %401 = load float, ptr %4, align 4, !tbaa !129
  %402 = fadd float %401, %400
  store float %402, ptr %4, align 4, !tbaa !129
  %403 = getelementptr inbounds i8, ptr %24, i64 356
  %404 = load float, ptr %403, align 4, !tbaa !141
  %405 = fadd float %402, %404
  %406 = getelementptr inbounds i8, ptr %28, i64 2484
  %407 = load float, ptr %406, align 4, !tbaa !142
  %408 = fadd float %407, %405
  store float %408, ptr %406, align 4, !tbaa !142
  br label %409

409:                                              ; preds = %395, %392
  %410 = getelementptr inbounds i8, ptr %24, i64 1584
  %411 = load ptr, ptr %410, align 8, !tbaa !148
  call void @_ZN6ImPlot16PadAndDatumAxesXER10ImPlotPlotRfS2_P19ImPlotAlignmentData(ptr noundef nonnull align 8 dereferenceable(2533) %28, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef %411)
  %412 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %279)
  %413 = load float, ptr %4, align 4, !tbaa !129
  %414 = fsub float %412, %413
  %415 = load float, ptr %5, align 4, !tbaa !129
  %416 = fsub float %414, %415
  %417 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 0)
  %418 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %417)
  br i1 %418, label %419, label %432

419:                                              ; preds = %409
  %420 = getelementptr inbounds i8, ptr %417, i64 369
  %421 = load i8, ptr %420, align 1, !tbaa !149, !range !117, !noundef !118
  %422 = trunc nuw i8 %421 to i1
  br i1 %422, label %423, label %432

423:                                              ; preds = %419
  %424 = getelementptr inbounds i8, ptr %417, i64 184
  %425 = load ptr, ptr %424, align 8, !tbaa !125
  %426 = getelementptr inbounds i8, ptr %417, i64 96
  %427 = getelementptr inbounds i8, ptr %417, i64 16
  %428 = getelementptr inbounds i8, ptr %417, i64 152
  %429 = load ptr, ptr %428, align 8, !tbaa !122
  %430 = getelementptr inbounds i8, ptr %417, i64 160
  %431 = load ptr, ptr %430, align 8, !tbaa !124
  call void %425(ptr noundef nonnull align 8 dereferenceable(52) %426, ptr noundef nonnull align 8 dereferenceable(16) %427, float noundef %416, i1 noundef zeroext true, ptr noundef %429, ptr noundef %431)
  br label %432

432:                                              ; preds = %423, %419, %409
  %433 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 1)
  %434 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %433)
  br i1 %434, label %435, label %448

435:                                              ; preds = %432
  %436 = getelementptr inbounds i8, ptr %433, i64 369
  %437 = load i8, ptr %436, align 1, !tbaa !149, !range !117, !noundef !118
  %438 = trunc nuw i8 %437 to i1
  br i1 %438, label %439, label %448

439:                                              ; preds = %435
  %440 = getelementptr inbounds i8, ptr %433, i64 184
  %441 = load ptr, ptr %440, align 8, !tbaa !125
  %442 = getelementptr inbounds i8, ptr %433, i64 96
  %443 = getelementptr inbounds i8, ptr %433, i64 16
  %444 = getelementptr inbounds i8, ptr %433, i64 152
  %445 = load ptr, ptr %444, align 8, !tbaa !122
  %446 = getelementptr inbounds i8, ptr %433, i64 160
  %447 = load ptr, ptr %446, align 8, !tbaa !124
  call void %441(ptr noundef nonnull align 8 dereferenceable(52) %442, ptr noundef nonnull align 8 dereferenceable(16) %443, float noundef %416, i1 noundef zeroext true, ptr noundef %445, ptr noundef %447)
  br label %448

448:                                              ; preds = %439, %435, %432
  %449 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 2)
  %450 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %449)
  br i1 %450, label %451, label %464

451:                                              ; preds = %448
  %452 = getelementptr inbounds i8, ptr %449, i64 369
  %453 = load i8, ptr %452, align 1, !tbaa !149, !range !117, !noundef !118
  %454 = trunc nuw i8 %453 to i1
  br i1 %454, label %455, label %464

455:                                              ; preds = %451
  %456 = getelementptr inbounds i8, ptr %449, i64 184
  %457 = load ptr, ptr %456, align 8, !tbaa !125
  %458 = getelementptr inbounds i8, ptr %449, i64 96
  %459 = getelementptr inbounds i8, ptr %449, i64 16
  %460 = getelementptr inbounds i8, ptr %449, i64 152
  %461 = load ptr, ptr %460, align 8, !tbaa !122
  %462 = getelementptr inbounds i8, ptr %449, i64 160
  %463 = load ptr, ptr %462, align 8, !tbaa !124
  call void %457(ptr noundef nonnull align 8 dereferenceable(52) %458, ptr noundef nonnull align 8 dereferenceable(16) %459, float noundef %416, i1 noundef zeroext true, ptr noundef %461, ptr noundef %463)
  br label %464

464:                                              ; preds = %455, %451, %448
  %465 = getelementptr inbounds i8, ptr %24, i64 1592
  %466 = load ptr, ptr %465, align 8, !tbaa !150
  call void @_ZN6ImPlot16PadAndDatumAxesYER10ImPlotPlotRfS2_P19ImPlotAlignmentData(ptr noundef nonnull align 8 dereferenceable(2533) %28, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef %466)
  %467 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %279)
  %468 = load float, ptr %6, align 4, !tbaa !129
  %469 = fsub float %467, %468
  %470 = load float, ptr %7, align 4, !tbaa !129
  %471 = fsub float %469, %470
  %472 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 0)
  %473 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %472)
  br i1 %473, label %474, label %487

474:                                              ; preds = %464
  %475 = getelementptr inbounds i8, ptr %472, i64 369
  %476 = load i8, ptr %475, align 1, !tbaa !149, !range !117, !noundef !118
  %477 = trunc nuw i8 %476 to i1
  br i1 %477, label %478, label %487

478:                                              ; preds = %474
  %479 = getelementptr inbounds i8, ptr %472, i64 184
  %480 = load ptr, ptr %479, align 8, !tbaa !125
  %481 = getelementptr inbounds i8, ptr %472, i64 96
  %482 = getelementptr inbounds i8, ptr %472, i64 16
  %483 = getelementptr inbounds i8, ptr %472, i64 152
  %484 = load ptr, ptr %483, align 8, !tbaa !122
  %485 = getelementptr inbounds i8, ptr %472, i64 160
  %486 = load ptr, ptr %485, align 8, !tbaa !124
  call void %480(ptr noundef nonnull align 8 dereferenceable(52) %481, ptr noundef nonnull align 8 dereferenceable(16) %482, float noundef %471, i1 noundef zeroext false, ptr noundef %484, ptr noundef %486)
  br label %487

487:                                              ; preds = %478, %474, %464
  %488 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 1)
  %489 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %488)
  br i1 %489, label %490, label %503

490:                                              ; preds = %487
  %491 = getelementptr inbounds i8, ptr %488, i64 369
  %492 = load i8, ptr %491, align 1, !tbaa !149, !range !117, !noundef !118
  %493 = trunc nuw i8 %492 to i1
  br i1 %493, label %494, label %503

494:                                              ; preds = %490
  %495 = getelementptr inbounds i8, ptr %488, i64 184
  %496 = load ptr, ptr %495, align 8, !tbaa !125
  %497 = getelementptr inbounds i8, ptr %488, i64 96
  %498 = getelementptr inbounds i8, ptr %488, i64 16
  %499 = getelementptr inbounds i8, ptr %488, i64 152
  %500 = load ptr, ptr %499, align 8, !tbaa !122
  %501 = getelementptr inbounds i8, ptr %488, i64 160
  %502 = load ptr, ptr %501, align 8, !tbaa !124
  call void %496(ptr noundef nonnull align 8 dereferenceable(52) %497, ptr noundef nonnull align 8 dereferenceable(16) %498, float noundef %471, i1 noundef zeroext false, ptr noundef %500, ptr noundef %502)
  br label %503

503:                                              ; preds = %494, %490, %487
  %504 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 2)
  %505 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %504)
  br i1 %505, label %506, label %.preheader509

506:                                              ; preds = %503
  %507 = getelementptr inbounds i8, ptr %504, i64 369
  %508 = load i8, ptr %507, align 1, !tbaa !149, !range !117, !noundef !118
  %509 = trunc nuw i8 %508 to i1
  br i1 %509, label %510, label %.preheader509

510:                                              ; preds = %506
  %511 = getelementptr inbounds i8, ptr %504, i64 184
  %512 = load ptr, ptr %511, align 8, !tbaa !125
  %513 = getelementptr inbounds i8, ptr %504, i64 96
  %514 = getelementptr inbounds i8, ptr %504, i64 16
  %515 = getelementptr inbounds i8, ptr %504, i64 152
  %516 = load ptr, ptr %515, align 8, !tbaa !122
  %517 = getelementptr inbounds i8, ptr %504, i64 160
  %518 = load ptr, ptr %517, align 8, !tbaa !124
  call void %512(ptr noundef nonnull align 8 dereferenceable(52) %513, ptr noundef nonnull align 8 dereferenceable(16) %514, float noundef %471, i1 noundef zeroext false, ptr noundef %516, ptr noundef %518)
  br label %.preheader509

.preheader509:                                    ; preds = %510, %506, %503
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %519 = load float, ptr %6, align 4, !tbaa !129
  %520 = load float, ptr %4, align 4, !tbaa !129
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef %519, float noundef %520)
  %521 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %279, ptr noundef nonnull align 4 dereferenceable(8) %11)
  store <2 x float> %521, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  %522 = getelementptr inbounds i8, ptr %28, i64 2456
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  %523 = load float, ptr %7, align 4, !tbaa !129
  %524 = load float, ptr %5, align 4, !tbaa !129
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %13, float noundef %523, float noundef %524)
  %525 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %522, ptr noundef nonnull align 4 dereferenceable(8) %13)
  store <2 x float> %525, ptr %12, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %9, ptr noundef nonnull align 4 dereferenceable(8) %10, ptr noundef nonnull align 4 dereferenceable(8) %12)
  %526 = getelementptr inbounds i8, ptr %28, i64 2464
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %526, ptr noundef nonnull align 4 dereferenceable(16) %9, i64 16, i1 false), !tbaa.struct !128
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #12
  %527 = getelementptr inbounds i8, ptr %28, i64 2472
  %528 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %529 = load float, ptr %526, align 8, !tbaa !151
  %530 = getelementptr inbounds i8, ptr %528, i64 304
  %531 = load float, ptr %530, align 8, !tbaa !152
  %532 = getelementptr inbounds i8, ptr %528, i64 308
  %533 = load float, ptr %532, align 4, !tbaa !153
  %534 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %531, float noundef %533)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef %529, float noundef %534)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  %535 = load float, ptr %527, align 8, !tbaa !154
  %536 = load float, ptr %530, align 8, !tbaa !152
  %537 = load float, ptr %532, align 4, !tbaa !153
  %538 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %536, float noundef %537)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef %535, float noundef %538)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %14, ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(8) %16)
  %539 = getelementptr inbounds i8, ptr %528, i64 312
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %539, ptr noundef nonnull align 4 dereferenceable(16) %14, i64 16, i1 false), !tbaa.struct !128
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #12
  %540 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %528)
  %. = select i1 %540, ptr %527, ptr %526
  %541 = load float, ptr %., align 8, !tbaa !129
  %542 = getelementptr inbounds i8, ptr %528, i64 272
  store float %541, ptr %542, align 8, !tbaa !155
  %543 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %528)
  %.in466 = select i1 %543, ptr %526, ptr %527
  %544 = load float, ptr %.in466, align 8, !tbaa !129
  %545 = getelementptr inbounds i8, ptr %528, i64 276
  store float %544, ptr %545, align 4, !tbaa !156
  call void @_ZN10ImPlotAxis20UpdateTransformCacheEv(ptr noundef nonnull align 8 dereferenceable(372) %528)
  %546 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %547 = load float, ptr %526, align 8, !tbaa !151
  %548 = getelementptr inbounds i8, ptr %546, i64 304
  %549 = load float, ptr %548, align 8, !tbaa !152
  %550 = getelementptr inbounds i8, ptr %546, i64 308
  %551 = load float, ptr %550, align 4, !tbaa !153
  %552 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %549, float noundef %551)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef %547, float noundef %552)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  %553 = load float, ptr %527, align 8, !tbaa !154
  %554 = load float, ptr %548, align 8, !tbaa !152
  %555 = load float, ptr %550, align 4, !tbaa !153
  %556 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %554, float noundef %555)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef %553, float noundef %556)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %14, ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(8) %16)
  %557 = getelementptr inbounds i8, ptr %546, i64 312
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %557, ptr noundef nonnull align 4 dereferenceable(16) %14, i64 16, i1 false), !tbaa.struct !128
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #12
  %558 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %546)
  %..1 = select i1 %558, ptr %527, ptr %526
  %559 = load float, ptr %..1, align 8, !tbaa !129
  %560 = getelementptr inbounds i8, ptr %546, i64 272
  store float %559, ptr %560, align 8, !tbaa !155
  %561 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %546)
  %.in466.1 = select i1 %561, ptr %526, ptr %527
  %562 = load float, ptr %.in466.1, align 8, !tbaa !129
  %563 = getelementptr inbounds i8, ptr %546, i64 276
  store float %562, ptr %563, align 4, !tbaa !156
  call void @_ZN10ImPlotAxis20UpdateTransformCacheEv(ptr noundef nonnull align 8 dereferenceable(372) %546)
  %564 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 2)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %565 = load float, ptr %526, align 8, !tbaa !151
  %566 = getelementptr inbounds i8, ptr %564, i64 304
  %567 = load float, ptr %566, align 8, !tbaa !152
  %568 = getelementptr inbounds i8, ptr %564, i64 308
  %569 = load float, ptr %568, align 4, !tbaa !153
  %570 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %567, float noundef %569)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef %565, float noundef %570)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  %571 = load float, ptr %527, align 8, !tbaa !154
  %572 = load float, ptr %566, align 8, !tbaa !152
  %573 = load float, ptr %568, align 4, !tbaa !153
  %574 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %572, float noundef %573)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef %571, float noundef %574)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %14, ptr noundef nonnull align 4 dereferenceable(8) %15, ptr noundef nonnull align 4 dereferenceable(8) %16)
  %575 = getelementptr inbounds i8, ptr %564, i64 312
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %575, ptr noundef nonnull align 4 dereferenceable(16) %14, i64 16, i1 false), !tbaa.struct !128
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #12
  %576 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %564)
  %..2 = select i1 %576, ptr %527, ptr %526
  %577 = load float, ptr %..2, align 8, !tbaa !129
  %578 = getelementptr inbounds i8, ptr %564, i64 272
  store float %577, ptr %578, align 8, !tbaa !155
  %579 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %564)
  %.in466.2 = select i1 %579, ptr %526, ptr %527
  %580 = load float, ptr %.in466.2, align 8, !tbaa !129
  %581 = getelementptr inbounds i8, ptr %564, i64 276
  store float %580, ptr %581, align 4, !tbaa !156
  call void @_ZN10ImPlotAxis20UpdateTransformCacheEv(ptr noundef nonnull align 8 dereferenceable(372) %564)
  %582 = getelementptr inbounds i8, ptr %28, i64 2468
  %583 = getelementptr inbounds i8, ptr %28, i64 2476
  %584 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %585 = getelementptr inbounds i8, ptr %584, i64 304
  %586 = load float, ptr %585, align 8, !tbaa !152
  %587 = getelementptr inbounds i8, ptr %584, i64 308
  %588 = load float, ptr %587, align 4, !tbaa !153
  %589 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %586, float noundef %588)
  %590 = load float, ptr %582, align 4, !tbaa !157
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %589, float noundef %590)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  %591 = load float, ptr %585, align 8, !tbaa !152
  %592 = load float, ptr %587, align 4, !tbaa !153
  %593 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %591, float noundef %592)
  %594 = load float, ptr %583, align 4, !tbaa !158
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %593, float noundef %594)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %17, ptr noundef nonnull align 4 dereferenceable(8) %18, ptr noundef nonnull align 4 dereferenceable(8) %19)
  %595 = getelementptr inbounds i8, ptr %584, i64 312
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %595, ptr noundef nonnull align 4 dereferenceable(16) %17, i64 16, i1 false), !tbaa.struct !128
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #12
  %596 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %584)
  %.498 = select i1 %596, ptr %582, ptr %583
  %597 = load float, ptr %.498, align 4, !tbaa !129
  %598 = getelementptr inbounds i8, ptr %584, i64 272
  store float %597, ptr %598, align 8, !tbaa !155
  %599 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %584)
  %.in464 = select i1 %599, ptr %583, ptr %582
  %600 = load float, ptr %.in464, align 4, !tbaa !129
  %601 = getelementptr inbounds i8, ptr %584, i64 276
  store float %600, ptr %601, align 4, !tbaa !156
  call void @_ZN10ImPlotAxis20UpdateTransformCacheEv(ptr noundef nonnull align 8 dereferenceable(372) %584)
  %602 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %603 = getelementptr inbounds i8, ptr %602, i64 304
  %604 = load float, ptr %603, align 8, !tbaa !152
  %605 = getelementptr inbounds i8, ptr %602, i64 308
  %606 = load float, ptr %605, align 4, !tbaa !153
  %607 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %604, float noundef %606)
  %608 = load float, ptr %582, align 4, !tbaa !157
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %607, float noundef %608)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  %609 = load float, ptr %603, align 8, !tbaa !152
  %610 = load float, ptr %605, align 4, !tbaa !153
  %611 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %609, float noundef %610)
  %612 = load float, ptr %583, align 4, !tbaa !158
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %611, float noundef %612)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %17, ptr noundef nonnull align 4 dereferenceable(8) %18, ptr noundef nonnull align 4 dereferenceable(8) %19)
  %613 = getelementptr inbounds i8, ptr %602, i64 312
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %613, ptr noundef nonnull align 4 dereferenceable(16) %17, i64 16, i1 false), !tbaa.struct !128
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #12
  %614 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %602)
  %.498.1 = select i1 %614, ptr %582, ptr %583
  %615 = load float, ptr %.498.1, align 4, !tbaa !129
  %616 = getelementptr inbounds i8, ptr %602, i64 272
  store float %615, ptr %616, align 8, !tbaa !155
  %617 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %602)
  %.in464.1 = select i1 %617, ptr %583, ptr %582
  %618 = load float, ptr %.in464.1, align 4, !tbaa !129
  %619 = getelementptr inbounds i8, ptr %602, i64 276
  store float %618, ptr %619, align 4, !tbaa !156
  call void @_ZN10ImPlotAxis20UpdateTransformCacheEv(ptr noundef nonnull align 8 dereferenceable(372) %602)
  %620 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 2)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %621 = getelementptr inbounds i8, ptr %620, i64 304
  %622 = load float, ptr %621, align 8, !tbaa !152
  %623 = getelementptr inbounds i8, ptr %620, i64 308
  %624 = load float, ptr %623, align 4, !tbaa !153
  %625 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %622, float noundef %624)
  %626 = load float, ptr %582, align 4, !tbaa !157
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %625, float noundef %626)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  %627 = load float, ptr %621, align 8, !tbaa !152
  %628 = load float, ptr %623, align 4, !tbaa !153
  %629 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %627, float noundef %628)
  %630 = load float, ptr %583, align 4, !tbaa !158
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %629, float noundef %630)
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %17, ptr noundef nonnull align 4 dereferenceable(8) %18, ptr noundef nonnull align 4 dereferenceable(8) %19)
  %631 = getelementptr inbounds i8, ptr %620, i64 312
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %631, ptr noundef nonnull align 4 dereferenceable(16) %17, i64 16, i1 false), !tbaa.struct !128
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #12
  %632 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %620)
  %.498.2 = select i1 %632, ptr %582, ptr %583
  %633 = load float, ptr %.498.2, align 4, !tbaa !129
  %634 = getelementptr inbounds i8, ptr %620, i64 272
  store float %633, ptr %634, align 8, !tbaa !155
  %635 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsInvertedEv(ptr noundef nonnull align 8 dereferenceable(372) %620)
  %.in464.2 = select i1 %635, ptr %583, ptr %582
  %636 = load float, ptr %.in464.2, align 4, !tbaa !129
  %637 = getelementptr inbounds i8, ptr %620, i64 276
  store float %636, ptr %637, align 4, !tbaa !156
  call void @_ZN10ImPlotAxis20UpdateTransformCacheEv(ptr noundef nonnull align 8 dereferenceable(372) %620)
  br i1 %197, label %.preheader507.preheader, label %.loopexit508

.preheader507.preheader:                          ; preds = %.preheader509
  %638 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 0)
  %639 = getelementptr inbounds i8, ptr %638, i64 56
  %640 = load ptr, ptr %639, align 8, !tbaa !127
  %641 = icmp eq ptr %640, null
  br i1 %641, label %.preheader507.1, label %642

642:                                              ; preds = %.preheader507.preheader
  %643 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %638)
  %644 = load ptr, ptr %639, align 8, !tbaa !127
  %645 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %644)
  %646 = getelementptr inbounds i8, ptr %638, i64 367
  %647 = load i8, ptr %646, align 1, !tbaa !159, !range !117, !noundef !118
  %648 = trunc nuw i8 %647 to i1
  br i1 %648, label %649, label %651

649:                                              ; preds = %642
  %650 = load ptr, ptr %639, align 8, !tbaa !127
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %650, double noundef %643)
  br label %.preheader507.1

651:                                              ; preds = %642
  %652 = call noundef zeroext i1 @_ZL13ImAlmostEqualddi(double noundef %643, double noundef %645, i32 noundef 2)
  br i1 %652, label %.preheader507.1, label %653

653:                                              ; preds = %651
  %654 = load ptr, ptr %639, align 8, !tbaa !127
  %655 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %654)
  br i1 %655, label %.preheader507.1, label %656

656:                                              ; preds = %653
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %638, double noundef %645)
  br label %.preheader507.1

.preheader507.1:                                  ; preds = %649, %656, %653, %651, %.preheader507.preheader
  %657 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 1)
  %658 = getelementptr inbounds i8, ptr %657, i64 56
  %659 = load ptr, ptr %658, align 8, !tbaa !127
  %660 = icmp eq ptr %659, null
  br i1 %660, label %.preheader507.2, label %661

661:                                              ; preds = %.preheader507.1
  %662 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %657)
  %663 = load ptr, ptr %658, align 8, !tbaa !127
  %664 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %663)
  %665 = getelementptr inbounds i8, ptr %657, i64 367
  %666 = load i8, ptr %665, align 1, !tbaa !159, !range !117, !noundef !118
  %667 = trunc nuw i8 %666 to i1
  br i1 %667, label %674, label %668

668:                                              ; preds = %661
  %669 = call noundef zeroext i1 @_ZL13ImAlmostEqualddi(double noundef %662, double noundef %664, i32 noundef 2)
  br i1 %669, label %.preheader507.2, label %670

670:                                              ; preds = %668
  %671 = load ptr, ptr %658, align 8, !tbaa !127
  %672 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %671)
  br i1 %672, label %.preheader507.2, label %673

673:                                              ; preds = %670
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %657, double noundef %664)
  br label %.preheader507.2

674:                                              ; preds = %661
  %675 = load ptr, ptr %658, align 8, !tbaa !127
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %675, double noundef %662)
  br label %.preheader507.2

.preheader507.2:                                  ; preds = %674, %673, %670, %668, %.preheader507.1
  %676 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 2)
  %677 = getelementptr inbounds i8, ptr %676, i64 56
  %678 = load ptr, ptr %677, align 8, !tbaa !127
  %679 = icmp eq ptr %678, null
  br i1 %679, label %.loopexit508, label %680

680:                                              ; preds = %.preheader507.2
  %681 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %676)
  %682 = load ptr, ptr %677, align 8, !tbaa !127
  %683 = call noundef double @_ZNK10ImPlotAxis9GetAspectEv(ptr noundef nonnull align 8 dereferenceable(372) %682)
  %684 = getelementptr inbounds i8, ptr %676, i64 367
  %685 = load i8, ptr %684, align 1, !tbaa !159, !range !117, !noundef !118
  %686 = trunc nuw i8 %685 to i1
  br i1 %686, label %693, label %687

687:                                              ; preds = %680
  %688 = call noundef zeroext i1 @_ZL13ImAlmostEqualddi(double noundef %681, double noundef %683, i32 noundef 2)
  br i1 %688, label %.loopexit508, label %689

689:                                              ; preds = %687
  %690 = load ptr, ptr %677, align 8, !tbaa !127
  %691 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsInputLockedEv(ptr noundef nonnull align 8 dereferenceable(372) %690)
  br i1 %691, label %.loopexit508, label %692

692:                                              ; preds = %689
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %676, double noundef %683)
  br label %.loopexit508

693:                                              ; preds = %680
  %694 = load ptr, ptr %677, align 8, !tbaa !127
  call void @_ZN10ImPlotAxis9SetAspectEd(ptr noundef nonnull align 8 dereferenceable(372) %694, double noundef %681)
  br label %.loopexit508

.loopexit508:                                     ; preds = %.preheader507.2, %687, %689, %692, %693, %.preheader509
  %695 = load i32, ptr %195, align 4, !tbaa !126
  %696 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %695, i32 noundef 8)
  br i1 %696, label %699, label %697

697:                                              ; preds = %.loopexit508
  %698 = call noundef zeroext i1 @_ZN6ImPlot11UpdateInputER10ImPlotPlot(ptr noundef nonnull align 8 dereferenceable(2533) %28)
  br label %699

699:                                              ; preds = %697, %.loopexit508
  %700 = getelementptr inbounds i8, ptr %24, i64 1230
  %701 = load i8, ptr %700, align 1, !tbaa !160, !range !117, !noundef !118
  %702 = trunc nuw i8 %701 to i1
  br i1 %702, label %705, label %703

703:                                              ; preds = %699
  %704 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsAutoFittingEv(ptr noundef nonnull align 8 dereferenceable(372) %37)
  br i1 %704, label %705, label %707

705:                                              ; preds = %703, %699
  store i8 1, ptr %39, align 1, !tbaa !121
  %706 = getelementptr inbounds i8, ptr %28, i64 390
  store i8 1, ptr %706, align 2, !tbaa !120
  br label %707

707:                                              ; preds = %703, %705
  %708 = getelementptr inbounds i8, ptr %24, i64 1231
  %709 = load i8, ptr %708, align 1, !tbaa !160, !range !117, !noundef !118
  %710 = trunc nuw i8 %709 to i1
  br i1 %710, label %713, label %711

711:                                              ; preds = %707
  %712 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsAutoFittingEv(ptr noundef nonnull align 8 dereferenceable(372) %65)
  br i1 %712, label %713, label %715

713:                                              ; preds = %711, %707
  store i8 1, ptr %39, align 1, !tbaa !121
  %714 = getelementptr inbounds i8, ptr %28, i64 766
  store i8 1, ptr %714, align 2, !tbaa !120
  br label %715

715:                                              ; preds = %713, %711
  %716 = getelementptr inbounds i8, ptr %24, i64 1232
  %717 = load i8, ptr %716, align 1, !tbaa !160, !range !117, !noundef !118
  %718 = trunc nuw i8 %717 to i1
  br i1 %718, label %721, label %719

719:                                              ; preds = %715
  %720 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsAutoFittingEv(ptr noundef nonnull align 8 dereferenceable(372) %91)
  br i1 %720, label %721, label %723

721:                                              ; preds = %719, %715
  store i8 1, ptr %39, align 1, !tbaa !121
  %722 = getelementptr inbounds i8, ptr %28, i64 1142
  store i8 1, ptr %722, align 2, !tbaa !120
  br label %723

723:                                              ; preds = %721, %719
  %724 = getelementptr inbounds i8, ptr %24, i64 1233
  %725 = load i8, ptr %724, align 1, !tbaa !160, !range !117, !noundef !118
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %729, label %727

727:                                              ; preds = %723
  %728 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsAutoFittingEv(ptr noundef nonnull align 8 dereferenceable(372) %117)
  br i1 %728, label %729, label %731

729:                                              ; preds = %727, %723
  store i8 1, ptr %39, align 1, !tbaa !121
  %730 = getelementptr inbounds i8, ptr %28, i64 1518
  store i8 1, ptr %730, align 2, !tbaa !120
  br label %731

731:                                              ; preds = %729, %727
  %732 = getelementptr inbounds i8, ptr %24, i64 1234
  %733 = load i8, ptr %732, align 1, !tbaa !160, !range !117, !noundef !118
  %734 = trunc nuw i8 %733 to i1
  br i1 %734, label %737, label %735

735:                                              ; preds = %731
  %736 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsAutoFittingEv(ptr noundef nonnull align 8 dereferenceable(372) %143)
  br i1 %736, label %737, label %739

737:                                              ; preds = %735, %731
  store i8 1, ptr %39, align 1, !tbaa !121
  %738 = getelementptr inbounds i8, ptr %28, i64 1894
  store i8 1, ptr %738, align 2, !tbaa !120
  br label %739

739:                                              ; preds = %737, %735
  %740 = getelementptr inbounds i8, ptr %24, i64 1235
  %741 = load i8, ptr %740, align 1, !tbaa !160, !range !117, !noundef !118
  %742 = trunc nuw i8 %741 to i1
  br i1 %742, label %745, label %743

743:                                              ; preds = %739
  %744 = call noundef zeroext i1 @_ZNK10ImPlotAxis13IsAutoFittingEv(ptr noundef nonnull align 8 dereferenceable(372) %169)
  br i1 %744, label %745, label %747

745:                                              ; preds = %743, %739
  store i8 1, ptr %39, align 1, !tbaa !121
  %746 = getelementptr inbounds i8, ptr %28, i64 2270
  store i8 1, ptr %746, align 2, !tbaa !120
  br label %747

747:                                              ; preds = %745, %743
  %748 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %749 = load i32, ptr %195, align 4, !tbaa !126
  %750 = call noundef zeroext i1 @_ZL9ImHasFlagIi12ImPlotFlags_EbT_T0_(i32 noundef %749, i32 noundef 128)
  br i1 %750, label %755, label %751

751:                                              ; preds = %747
  %.sroa.0143.0.copyload = load <2 x float>, ptr %274, align 8
  %.sroa.0142.0.copyload = load <2 x float>, ptr %277, align 8
  %752 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 5)
  %753 = getelementptr inbounds i8, ptr %31, i64 5532
  %754 = load float, ptr %753, align 4, !tbaa !161
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.0143.0.copyload, <2 x float> %.sroa.0142.0.copyload, i32 noundef %752, i1 noundef zeroext true, float noundef %754)
  br label %755

755:                                              ; preds = %751, %747
  %756 = call noundef i32 @_ZN6ImPlotL16GetStyleColorU32Ei(i32 noundef 6)
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %526, ptr noundef nonnull align 4 dereferenceable(8) %527, i32 noundef %756, float noundef 0.000000e+00, i32 noundef 0)
  %757 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %37)
  br i1 %757, label %.preheader505, label %.loopexit506

.preheader505:                                    ; preds = %755
  %758 = getelementptr inbounds i8, ptr %28, i64 120
  %759 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %758)
  %760 = icmp sgt i32 %759, 0
  br i1 %760, label %.lr.ph, label %.loopexit506

.lr.ph:                                           ; preds = %.preheader505, %.lr.ph
  %.0444519 = phi i32 [ %768, %.lr.ph ], [ 0, %.preheader505 ]
  %761 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %758, i32 noundef %.0444519)
  %762 = load double, ptr %761, align 8, !tbaa !162
  %763 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %37, double noundef %762)
  %764 = fadd float %763, 5.000000e-01
  %765 = fptosi float %764 to i32
  %766 = sitofp i32 %765 to float
  %767 = getelementptr inbounds i8, ptr %761, i64 8
  store float %766, ptr %767, align 8, !tbaa !164
  %768 = add nuw nsw i32 %.0444519, 1
  %769 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %758)
  %770 = icmp slt i32 %768, %769
  br i1 %770, label %.lr.ph, label %.loopexit506, !llvm.loop !165

.loopexit506:                                     ; preds = %.lr.ph, %.preheader505, %755
  %771 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %65)
  br i1 %771, label %.preheader505.1, label %.loopexit506.1

.preheader505.1:                                  ; preds = %.loopexit506
  %772 = getelementptr inbounds i8, ptr %28, i64 496
  %773 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %772)
  %774 = icmp sgt i32 %773, 0
  br i1 %774, label %.lr.ph.1, label %.loopexit506.1

.lr.ph.1:                                         ; preds = %.preheader505.1, %.lr.ph.1
  %.0444519.1 = phi i32 [ %782, %.lr.ph.1 ], [ 0, %.preheader505.1 ]
  %775 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %772, i32 noundef %.0444519.1)
  %776 = load double, ptr %775, align 8, !tbaa !162
  %777 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %65, double noundef %776)
  %778 = fadd float %777, 5.000000e-01
  %779 = fptosi float %778 to i32
  %780 = sitofp i32 %779 to float
  %781 = getelementptr inbounds i8, ptr %775, i64 8
  store float %780, ptr %781, align 8, !tbaa !164
  %782 = add nuw nsw i32 %.0444519.1, 1
  %783 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %772)
  %784 = icmp slt i32 %782, %783
  br i1 %784, label %.lr.ph.1, label %.loopexit506.1, !llvm.loop !165

.loopexit506.1:                                   ; preds = %.lr.ph.1, %.preheader505.1, %.loopexit506
  %785 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %91)
  br i1 %785, label %.preheader505.2, label %.loopexit506.2

.preheader505.2:                                  ; preds = %.loopexit506.1
  %786 = getelementptr inbounds i8, ptr %28, i64 872
  %787 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %786)
  %788 = icmp sgt i32 %787, 0
  br i1 %788, label %.lr.ph.2, label %.loopexit506.2

.lr.ph.2:                                         ; preds = %.preheader505.2, %.lr.ph.2
  %.0444519.2 = phi i32 [ %796, %.lr.ph.2 ], [ 0, %.preheader505.2 ]
  %789 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %786, i32 noundef %.0444519.2)
  %790 = load double, ptr %789, align 8, !tbaa !162
  %791 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %91, double noundef %790)
  %792 = fadd float %791, 5.000000e-01
  %793 = fptosi float %792 to i32
  %794 = sitofp i32 %793 to float
  %795 = getelementptr inbounds i8, ptr %789, i64 8
  store float %794, ptr %795, align 8, !tbaa !164
  %796 = add nuw nsw i32 %.0444519.2, 1
  %797 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %786)
  %798 = icmp slt i32 %796, %797
  br i1 %798, label %.lr.ph.2, label %.loopexit506.2, !llvm.loop !165

.loopexit506.2:                                   ; preds = %.lr.ph.2, %.preheader505.2, %.loopexit506.1
  %799 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %117)
  br i1 %799, label %.preheader505.3, label %.loopexit506.3

.preheader505.3:                                  ; preds = %.loopexit506.2
  %800 = getelementptr inbounds i8, ptr %28, i64 1248
  %801 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %800)
  %802 = icmp sgt i32 %801, 0
  br i1 %802, label %.lr.ph.3, label %.loopexit506.3

.lr.ph.3:                                         ; preds = %.preheader505.3, %.lr.ph.3
  %.0444519.3 = phi i32 [ %810, %.lr.ph.3 ], [ 0, %.preheader505.3 ]
  %803 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %800, i32 noundef %.0444519.3)
  %804 = load double, ptr %803, align 8, !tbaa !162
  %805 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %117, double noundef %804)
  %806 = fadd float %805, 5.000000e-01
  %807 = fptosi float %806 to i32
  %808 = sitofp i32 %807 to float
  %809 = getelementptr inbounds i8, ptr %803, i64 8
  store float %808, ptr %809, align 8, !tbaa !164
  %810 = add nuw nsw i32 %.0444519.3, 1
  %811 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %800)
  %812 = icmp slt i32 %810, %811
  br i1 %812, label %.lr.ph.3, label %.loopexit506.3, !llvm.loop !165

.loopexit506.3:                                   ; preds = %.lr.ph.3, %.preheader505.3, %.loopexit506.2
  %813 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %143)
  br i1 %813, label %.preheader505.4, label %.loopexit506.4

.preheader505.4:                                  ; preds = %.loopexit506.3
  %814 = getelementptr inbounds i8, ptr %28, i64 1624
  %815 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %814)
  %816 = icmp sgt i32 %815, 0
  br i1 %816, label %.lr.ph.4, label %.loopexit506.4

.lr.ph.4:                                         ; preds = %.preheader505.4, %.lr.ph.4
  %.0444519.4 = phi i32 [ %824, %.lr.ph.4 ], [ 0, %.preheader505.4 ]
  %817 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %814, i32 noundef %.0444519.4)
  %818 = load double, ptr %817, align 8, !tbaa !162
  %819 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %143, double noundef %818)
  %820 = fadd float %819, 5.000000e-01
  %821 = fptosi float %820 to i32
  %822 = sitofp i32 %821 to float
  %823 = getelementptr inbounds i8, ptr %817, i64 8
  store float %822, ptr %823, align 8, !tbaa !164
  %824 = add nuw nsw i32 %.0444519.4, 1
  %825 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %814)
  %826 = icmp slt i32 %824, %825
  br i1 %826, label %.lr.ph.4, label %.loopexit506.4, !llvm.loop !165

.loopexit506.4:                                   ; preds = %.lr.ph.4, %.preheader505.4, %.loopexit506.3
  %827 = call noundef zeroext i1 @_ZNK10ImPlotAxis10WillRenderEv(ptr noundef nonnull align 8 dereferenceable(372) %169)
  br i1 %827, label %.preheader505.5, label %.loopexit506.5

.preheader505.5:                                  ; preds = %.loopexit506.4
  %828 = getelementptr inbounds i8, ptr %28, i64 2000
  %829 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %828)
  %830 = icmp sgt i32 %829, 0
  br i1 %830, label %.lr.ph.5, label %.loopexit506.5

.lr.ph.5:                                         ; preds = %.preheader505.5, %.lr.ph.5
  %.0444519.5 = phi i32 [ %838, %.lr.ph.5 ], [ 0, %.preheader505.5 ]
  %831 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %828, i32 noundef %.0444519.5)
  %832 = load double, ptr %831, align 8, !tbaa !162
  %833 = call noundef float @_ZNK10ImPlotAxis12PlotToPixelsEd(ptr noundef nonnull align 8 dereferenceable(372) %169, double noundef %832)
  %834 = fadd float %833, 5.000000e-01
  %835 = fptosi float %834 to i32
  %836 = sitofp i32 %835 to float
  %837 = getelementptr inbounds i8, ptr %831, i64 8
  store float %836, ptr %837, align 8, !tbaa !164
  %838 = add nuw nsw i32 %.0444519.5, 1
  %839 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %828)
  %840 = icmp slt i32 %838, %839
  br i1 %840, label %.lr.ph.5, label %.loopexit506.5, !llvm.loop !165

.loopexit506.5:                                   ; preds = %.lr.ph.5, %.preheader505.5, %.loopexit506.4
  %841 = getelementptr inbounds i8, ptr %24, i64 336
  %842 = getelementptr inbounds i8, ptr %24, i64 344
  %843 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 0)
  %844 = getelementptr inbounds i8, ptr %843, i64 364
  %845 = load i8, ptr %844, align 4, !tbaa !113, !range !117, !noundef !118
  %846 = trunc nuw i8 %845 to i1
  br i1 %846, label %847, label %859

847:                                              ; preds = %.loopexit506.5
  %848 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %843)
  br i1 %848, label %849, label %859

849:                                              ; preds = %847
  %850 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %843)
  br i1 %850, label %859, label %851

851:                                              ; preds = %849
  %852 = getelementptr inbounds i8, ptr %843, i64 96
  %853 = getelementptr inbounds i8, ptr %843, i64 332
  %854 = load i32, ptr %853, align 4, !tbaa !167
  %855 = getelementptr inbounds i8, ptr %843, i64 336
  %856 = load i32, ptr %855, align 8, !tbaa !168
  %857 = load float, ptr %841, align 4, !tbaa !169
  %858 = load float, ptr %842, align 4, !tbaa !170
  call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 8 dereferenceable(52) %852, ptr noundef nonnull align 4 dereferenceable(16) %526, i32 noundef %854, i32 noundef %856, float noundef %857, float noundef %858)
  br label %859

859:                                              ; preds = %851, %849, %847, %.loopexit506.5
  %860 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 1)
  %861 = getelementptr inbounds i8, ptr %860, i64 364
  %862 = load i8, ptr %861, align 4, !tbaa !113, !range !117, !noundef !118
  %863 = trunc nuw i8 %862 to i1
  br i1 %863, label %864, label %876

864:                                              ; preds = %859
  %865 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %860)
  br i1 %865, label %866, label %876

866:                                              ; preds = %864
  %867 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %860)
  br i1 %867, label %876, label %868

868:                                              ; preds = %866
  %869 = getelementptr inbounds i8, ptr %860, i64 96
  %870 = getelementptr inbounds i8, ptr %860, i64 332
  %871 = load i32, ptr %870, align 4, !tbaa !167
  %872 = getelementptr inbounds i8, ptr %860, i64 336
  %873 = load i32, ptr %872, align 8, !tbaa !168
  %874 = load float, ptr %841, align 4, !tbaa !169
  %875 = load float, ptr %842, align 4, !tbaa !170
  call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 8 dereferenceable(52) %869, ptr noundef nonnull align 4 dereferenceable(16) %526, i32 noundef %871, i32 noundef %873, float noundef %874, float noundef %875)
  br label %876

876:                                              ; preds = %868, %866, %864, %859
  %877 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 2)
  %878 = getelementptr inbounds i8, ptr %877, i64 364
  %879 = load i8, ptr %878, align 4, !tbaa !113, !range !117, !noundef !118
  %880 = trunc nuw i8 %879 to i1
  br i1 %880, label %881, label %.preheader503

881:                                              ; preds = %876
  %882 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %877)
  br i1 %882, label %883, label %.preheader503

883:                                              ; preds = %881
  %884 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %877)
  br i1 %884, label %.preheader503, label %885

885:                                              ; preds = %883
  %886 = getelementptr inbounds i8, ptr %877, i64 96
  %887 = getelementptr inbounds i8, ptr %877, i64 332
  %888 = load i32, ptr %887, align 4, !tbaa !167
  %889 = getelementptr inbounds i8, ptr %877, i64 336
  %890 = load i32, ptr %889, align 8, !tbaa !168
  %891 = load float, ptr %841, align 4, !tbaa !169
  %892 = load float, ptr %842, align 4, !tbaa !170
  call void @_ZN6ImPlotL16RenderGridLinesXER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 8 dereferenceable(52) %886, ptr noundef nonnull align 4 dereferenceable(16) %526, i32 noundef %888, i32 noundef %890, float noundef %891, float noundef %892)
  br label %.preheader503

.preheader503:                                    ; preds = %885, %883, %881, %876
  %893 = getelementptr inbounds i8, ptr %24, i64 340
  %894 = getelementptr inbounds i8, ptr %24, i64 348
  %895 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 0)
  %896 = getelementptr inbounds i8, ptr %895, i64 364
  %897 = load i8, ptr %896, align 4, !tbaa !113, !range !117, !noundef !118
  %898 = trunc nuw i8 %897 to i1
  br i1 %898, label %899, label %911

899:                                              ; preds = %.preheader503
  %900 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %895)
  br i1 %900, label %901, label %911

901:                                              ; preds = %899
  %902 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %895)
  br i1 %902, label %911, label %903

903:                                              ; preds = %901
  %904 = getelementptr inbounds i8, ptr %895, i64 96
  %905 = getelementptr inbounds i8, ptr %895, i64 332
  %906 = load i32, ptr %905, align 4, !tbaa !167
  %907 = getelementptr inbounds i8, ptr %895, i64 336
  %908 = load i32, ptr %907, align 8, !tbaa !168
  %909 = load float, ptr %893, align 4, !tbaa !171
  %910 = load float, ptr %894, align 4, !tbaa !172
  call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 8 dereferenceable(52) %904, ptr noundef nonnull align 4 dereferenceable(16) %526, i32 noundef %906, i32 noundef %908, float noundef %909, float noundef %910)
  br label %911

911:                                              ; preds = %903, %901, %899, %.preheader503
  %912 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 1)
  %913 = getelementptr inbounds i8, ptr %912, i64 364
  %914 = load i8, ptr %913, align 4, !tbaa !113, !range !117, !noundef !118
  %915 = trunc nuw i8 %914 to i1
  br i1 %915, label %916, label %928

916:                                              ; preds = %911
  %917 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %912)
  br i1 %917, label %918, label %928

918:                                              ; preds = %916
  %919 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %912)
  br i1 %919, label %928, label %920

920:                                              ; preds = %918
  %921 = getelementptr inbounds i8, ptr %912, i64 96
  %922 = getelementptr inbounds i8, ptr %912, i64 332
  %923 = load i32, ptr %922, align 4, !tbaa !167
  %924 = getelementptr inbounds i8, ptr %912, i64 336
  %925 = load i32, ptr %924, align 8, !tbaa !168
  %926 = load float, ptr %893, align 4, !tbaa !171
  %927 = load float, ptr %894, align 4, !tbaa !172
  call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 8 dereferenceable(52) %921, ptr noundef nonnull align 4 dereferenceable(16) %526, i32 noundef %923, i32 noundef %925, float noundef %926, float noundef %927)
  br label %928

928:                                              ; preds = %920, %918, %916, %911
  %929 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef 2)
  %930 = getelementptr inbounds i8, ptr %929, i64 364
  %931 = load i8, ptr %930, align 4, !tbaa !113, !range !117, !noundef !118
  %932 = trunc nuw i8 %931 to i1
  br i1 %932, label %933, label %.preheader502

933:                                              ; preds = %928
  %934 = call noundef zeroext i1 @_ZNK10ImPlotAxis12HasGridLinesEv(ptr noundef nonnull align 8 dereferenceable(372) %929)
  br i1 %934, label %935, label %.preheader502

935:                                              ; preds = %933
  %936 = call noundef zeroext i1 @_ZNK10ImPlotAxis12IsForegroundEv(ptr noundef nonnull align 8 dereferenceable(372) %929)
  br i1 %936, label %.preheader502, label %937

937:                                              ; preds = %935
  %938 = getelementptr inbounds i8, ptr %929, i64 96
  %939 = getelementptr inbounds i8, ptr %929, i64 332
  %940 = load i32, ptr %939, align 4, !tbaa !167
  %941 = getelementptr inbounds i8, ptr %929, i64 336
  %942 = load i32, ptr %941, align 8, !tbaa !168
  %943 = load float, ptr %893, align 4, !tbaa !171
  %944 = load float, ptr %894, align 4, !tbaa !172
  call void @_ZN6ImPlotL16RenderGridLinesYER10ImDrawListRK12ImPlotTickerRK6ImRectjjff(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 8 dereferenceable(52) %938, ptr noundef nonnull align 4 dereferenceable(16) %526, i32 noundef %940, i32 noundef %942, float noundef %943, float noundef %944)
  br label %.preheader502

.preheader502:                                    ; preds = %937, %935, %933, %928
  %945 = getelementptr inbounds i8, ptr %28, i64 2529
  %946 = getelementptr inbounds i8, ptr %24, i64 364
  br label %948

.preheader499:                                    ; preds = %.loopexit501
  %947 = getelementptr inbounds i8, ptr %24, i64 360
  br label %1096

948:                                              ; preds = %.preheader502, %.loopexit501
  %.0448525 = phi i32 [ 0, %.preheader502 ], [ %1090, %.loopexit501 ]
  %949 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5XAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef %.0448525)
  %950 = getelementptr inbounds i8, ptr %949, i64 364
  %951 = load i8, ptr %950, align 4, !tbaa !113, !range !117, !noundef !118
  %952 = trunc nuw i8 %951 to i1
  br i1 %952, label %953, label %.loopexit501

953:                                              ; preds = %948
  %954 = getelementptr inbounds i8, ptr %949, i64 370
  %955 = load i8, ptr %954, align 2, !tbaa !173, !range !117, !noundef !118
  %956 = trunc nuw i8 %955 to i1
  br i1 %956, label %961, label %957

957:                                              ; preds = %953
  %958 = getelementptr inbounds i8, ptr %949, i64 371
  %959 = load i8, ptr %958, align 1, !tbaa !174, !range !117, !noundef !118
  %960 = trunc nuw i8 %959 to i1
  br i1 %960, label %961, label %975

961:                                              ; preds = %957, %953
  %962 = load i8, ptr %945, align 1, !tbaa !175, !range !117, !noundef !118
  %963 = trunc nuw i8 %962 to i1
  br i1 %963, label %975, label %964

964:                                              ; preds = %961
  %965 = getelementptr inbounds i8, ptr %949, i64 4
  %966 = load i32, ptr %965, align 4, !tbaa !176
  %967 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %966, i32 noundef 128)
  br i1 %967, label %975, label %968

968:                                              ; preds = %964
  %969 = getelementptr inbounds i8, ptr %949, i64 312
  %970 = getelementptr inbounds i8, ptr %949, i64 320
  %971 = getelementptr inbounds i8, ptr %949, i64 371
  %972 = load i8, ptr %971, align 1, !tbaa !174, !range !117, !noundef !118
  %973 = trunc nuw i8 %972 to i1
  %.in460.v = select i1 %973, i64 356, i64 352
  %.in460 = getelementptr inbounds i8, ptr %949, i64 %.in460.v
  %974 = load i32, ptr %.in460, align 4, !tbaa !177
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %969, ptr noundef nonnull align 4 dereferenceable(8) %970, i32 noundef %974, float noundef 0.000000e+00, i32 noundef 0)
  br label %987

975:                                              ; preds = %964, %961, %957
  %976 = getelementptr inbounds i8, ptr %949, i64 360
  %977 = load i32, ptr %976, align 8, !tbaa !178
  %.not461 = icmp eq i32 %977, 0
  br i1 %.not461, label %981, label %978

978:                                              ; preds = %975
  %979 = getelementptr inbounds i8, ptr %949, i64 312
  %980 = getelementptr inbounds i8, ptr %949, i64 320
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %979, ptr noundef nonnull align 4 dereferenceable(8) %980, i32 noundef %977, float noundef 0.000000e+00, i32 noundef 0)
  store i32 0, ptr %976, align 8, !tbaa !178
  br label %987

981:                                              ; preds = %975
  %982 = getelementptr inbounds i8, ptr %949, i64 348
  %983 = load i32, ptr %982, align 4, !tbaa !179
  %.not462 = icmp eq i32 %983, 0
  br i1 %.not462, label %987, label %984

984:                                              ; preds = %981
  %985 = getelementptr inbounds i8, ptr %949, i64 312
  %986 = getelementptr inbounds i8, ptr %949, i64 320
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %985, ptr noundef nonnull align 4 dereferenceable(8) %986, i32 noundef %983, float noundef 0.000000e+00, i32 noundef 0)
  br label %987

987:                                              ; preds = %978, %984, %981, %968
  %988 = getelementptr inbounds i8, ptr %949, i64 96
  %989 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %949)
  %990 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %949)
  br i1 %990, label %991, label %1017

991:                                              ; preds = %987
  %992 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %28, ptr noundef nonnull align 8 dereferenceable(372) %949)
  %993 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %992, ptr noundef null, i1 noundef zeroext false, float noundef -1.000000e+00)
  %994 = call noundef zeroext i1 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372) %949)
  %.pre540 = load float, ptr %946, align 4, !tbaa !147
  %995 = getelementptr inbounds i8, ptr %949, i64 132
  %996 = load float, ptr %995, align 4
  %997 = fadd float %996, %.pre540
  %998 = select i1 %994, float %997, float 0.000000e+00
  %999 = getelementptr inbounds i8, ptr %949, i64 144
  %1000 = load i32, ptr %999, align 8, !tbaa !180
  %1001 = add nsw i32 %1000, -1
  %1002 = sitofp i32 %1001 to float
  %1003 = fadd float %748, %.pre540
  %1004 = call float @llvm.fmuladd.f32(float %1002, float %1003, float %998)
  %1005 = fadd float %.pre540, %1004
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  %1006 = call <2 x float> @_ZNK6ImRect9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16) %526)
  %.sroa.067.0.vec.extract = extractelement <2 x float> %1006, i64 0
  %.sroa.070.0.vec.extract = extractelement <2 x float> %993, i64 0
  %1007 = fneg float %.sroa.070.0.vec.extract
  %1008 = call float @llvm.fmuladd.f32(float %1007, float 5.000000e-01, float %.sroa.067.0.vec.extract)
  %1009 = getelementptr inbounds i8, ptr %949, i64 304
  %1010 = load float, ptr %1009, align 8, !tbaa !152
  %1011 = fsub float %1010, %1005
  %.sroa.070.4.vec.extract = extractelement <2 x float> %993, i64 1
  %1012 = fsub float %1011, %.sroa.070.4.vec.extract
  %1013 = fadd float %1005, %1010
  %1014 = select i1 %989, float %1012, float %1013
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef %1008, float noundef %1014)
  %1015 = getelementptr inbounds i8, ptr %949, i64 344
  %1016 = load i32, ptr %1015, align 8, !tbaa !181
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %20, i32 noundef %1016, ptr noundef %992, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  br label %1017

1017:                                             ; preds = %991, %987
  %1018 = call noundef zeroext i1 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372) %949)
  br i1 %1018, label %.preheader500, label %.loopexit501

.preheader500:                                    ; preds = %1017
  %1019 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %988)
  %1020 = icmp sgt i32 %1019, 0
  br i1 %1020, label %.lr.ph524, label %.loopexit501

.lr.ph524:                                        ; preds = %.preheader500
  %1021 = getelementptr inbounds i8, ptr %949, i64 304
  %1022 = getelementptr inbounds i8, ptr %949, i64 344
  br i1 %989, label %.lr.ph524.split.us, label %.lr.ph524.split

.lr.ph524.split.us:                               ; preds = %.lr.ph524, %1054
  %.0445523.us = phi i32 [ %1055, %1054 ], [ 0, %.lr.ph524 ]
  %1023 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %988, i32 noundef %.0445523.us)
  %1024 = load float, ptr %1021, align 8, !tbaa !152
  %1025 = load float, ptr %946, align 4, !tbaa !147
  %1026 = fneg float %1025
  %1027 = fsub float %1026, %748
  %1028 = getelementptr inbounds i8, ptr %1023, i64 28
  %1029 = load i32, ptr %1028, align 4, !tbaa !182
  %1030 = sitofp i32 %1029 to float
  %1031 = fadd float %748, %1025
  %1032 = fneg float %1030
  %1033 = call float @llvm.fmuladd.f32(float %1032, float %1031, float %1027)
  %1034 = fadd float %1024, %1033
  %1035 = getelementptr inbounds i8, ptr %1023, i64 25
  %1036 = load i8, ptr %1035, align 1, !tbaa !183, !range !117, !noundef !118
  %1037 = trunc nuw i8 %1036 to i1
  br i1 %1037, label %1038, label %1054

1038:                                             ; preds = %.lr.ph524.split.us
  %1039 = getelementptr inbounds i8, ptr %1023, i64 8
  %1040 = load float, ptr %1039, align 8, !tbaa !164
  %1041 = load float, ptr %526, align 8, !tbaa !151
  %1042 = fadd float %1041, -1.000000e+00
  %1043 = fcmp ult float %1040, %1042
  br i1 %1043, label %1054, label %1044

1044:                                             ; preds = %1038
  %1045 = load float, ptr %527, align 8, !tbaa !154
  %1046 = fadd float %1045, 1.000000e+00
  %1047 = fcmp ugt float %1040, %1046
  br i1 %1047, label %1054, label %1048

1048:                                             ; preds = %1044
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %1049 = getelementptr inbounds i8, ptr %1023, i64 12
  %1050 = load float, ptr %1049, align 4, !tbaa !184
  %1051 = call float @llvm.fmuladd.f32(float %1050, float -5.000000e-01, float %1040)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef %1051, float noundef %1034)
  %1052 = load i32, ptr %1022, align 8, !tbaa !181
  %1053 = call noundef ptr @_ZNK12ImPlotTicker7GetTextEi(ptr noundef nonnull align 8 dereferenceable(52) %988, i32 noundef %.0445523.us)
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %21, i32 noundef %1052, ptr noundef %1053, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  br label %1054

1054:                                             ; preds = %1048, %1044, %1038, %.lr.ph524.split.us
  %1055 = add nuw nsw i32 %.0445523.us, 1
  %1056 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %988)
  %1057 = icmp slt i32 %1055, %1056
  br i1 %1057, label %.lr.ph524.split.us, label %.loopexit501, !llvm.loop !185

.lr.ph524.split:                                  ; preds = %.lr.ph524, %1086
  %.0445523 = phi i32 [ %1087, %1086 ], [ 0, %.lr.ph524 ]
  %1058 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %988, i32 noundef %.0445523)
  %1059 = load float, ptr %1021, align 8, !tbaa !152
  %1060 = load float, ptr %946, align 4, !tbaa !147
  %1061 = getelementptr inbounds i8, ptr %1058, i64 28
  %1062 = load i32, ptr %1061, align 4, !tbaa !182
  %1063 = sitofp i32 %1062 to float
  %1064 = fadd float %748, %1060
  %1065 = call float @llvm.fmuladd.f32(float %1063, float %1064, float %1060)
  %1066 = fadd float %1059, %1065
  %1067 = getelementptr inbounds i8, ptr %1058, i64 25
  %1068 = load i8, ptr %1067, align 1, !tbaa !183, !range !117, !noundef !118
  %1069 = trunc nuw i8 %1068 to i1
  br i1 %1069, label %1070, label %1086

1070:                                             ; preds = %.lr.ph524.split
  %1071 = getelementptr inbounds i8, ptr %1058, i64 8
  %1072 = load float, ptr %1071, align 8, !tbaa !164
  %1073 = load float, ptr %526, align 8, !tbaa !151
  %1074 = fadd float %1073, -1.000000e+00
  %1075 = fcmp ult float %1072, %1074
  br i1 %1075, label %1086, label %1076

1076:                                             ; preds = %1070
  %1077 = load float, ptr %527, align 8, !tbaa !154
  %1078 = fadd float %1077, 1.000000e+00
  %1079 = fcmp ugt float %1072, %1078
  br i1 %1079, label %1086, label %1080

1080:                                             ; preds = %1076
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %1081 = getelementptr inbounds i8, ptr %1058, i64 12
  %1082 = load float, ptr %1081, align 4, !tbaa !184
  %1083 = call float @llvm.fmuladd.f32(float %1082, float -5.000000e-01, float %1072)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef %1083, float noundef %1066)
  %1084 = load i32, ptr %1022, align 8, !tbaa !181
  %1085 = call noundef ptr @_ZNK12ImPlotTicker7GetTextEi(ptr noundef nonnull align 8 dereferenceable(52) %988, i32 noundef %.0445523)
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %21, i32 noundef %1084, ptr noundef %1085, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  br label %1086

1086:                                             ; preds = %1080, %1076, %1070, %.lr.ph524.split
  %1087 = add nuw nsw i32 %.0445523, 1
  %1088 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %988)
  %1089 = icmp slt i32 %1087, %1088
  br i1 %1089, label %.lr.ph524.split, label %.loopexit501, !llvm.loop !185

.loopexit501:                                     ; preds = %1086, %1054, %.preheader500, %1017, %948
  %1090 = add nuw nsw i32 %.0448525, 1
  %exitcond.not = icmp eq i32 %1090, 3
  br i1 %exitcond.not, label %.preheader499, label %948, !llvm.loop !186

1091:                                             ; preds = %.loopexit
  %1092 = getelementptr inbounds i8, ptr %28, i64 2304
  call void @_ZN12ImPlotLegend5ResetEv(ptr noundef nonnull align 8 dereferenceable(67) %1092)
  %1093 = getelementptr inbounds i8, ptr %24, i64 96
  %1094 = load ptr, ptr %1093, align 8, !tbaa !187
  %1095 = load i32, ptr %1094, align 8, !tbaa !188
  call void @_ZN5ImGui14PushOverrideIDEj(i32 noundef %1095)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #12
  ret void

1096:                                             ; preds = %.preheader499, %.loopexit
  %.0442528 = phi i32 [ 0, %.preheader499 ], [ %1222, %.loopexit ]
  %1097 = call noundef nonnull align 8 dereferenceable(372) ptr @_ZN10ImPlotPlot5YAxisEi(ptr noundef nonnull align 8 dereferenceable(2533) %28, i32 noundef %.0442528)
  %1098 = getelementptr inbounds i8, ptr %1097, i64 364
  %1099 = load i8, ptr %1098, align 4, !tbaa !113, !range !117, !noundef !118
  %1100 = trunc nuw i8 %1099 to i1
  br i1 %1100, label %1101, label %.loopexit

1101:                                             ; preds = %1096
  %1102 = getelementptr inbounds i8, ptr %1097, i64 370
  %1103 = load i8, ptr %1102, align 2, !tbaa !173, !range !117, !noundef !118
  %1104 = trunc nuw i8 %1103 to i1
  br i1 %1104, label %1109, label %1105

1105:                                             ; preds = %1101
  %1106 = getelementptr inbounds i8, ptr %1097, i64 371
  %1107 = load i8, ptr %1106, align 1, !tbaa !174, !range !117, !noundef !118
  %1108 = trunc nuw i8 %1107 to i1
  br i1 %1108, label %1109, label %1123

1109:                                             ; preds = %1105, %1101
  %1110 = load i8, ptr %945, align 1, !tbaa !175, !range !117, !noundef !118
  %1111 = trunc nuw i8 %1110 to i1
  br i1 %1111, label %1123, label %1112

1112:                                             ; preds = %1109
  %1113 = getelementptr inbounds i8, ptr %1097, i64 4
  %1114 = load i32, ptr %1113, align 4, !tbaa !176
  %1115 = call noundef zeroext i1 @_ZL9ImHasFlagIi16ImPlotAxisFlags_EbT_T0_(i32 noundef %1114, i32 noundef 128)
  br i1 %1115, label %1123, label %1116

1116:                                             ; preds = %1112
  %1117 = getelementptr inbounds i8, ptr %1097, i64 312
  %1118 = getelementptr inbounds i8, ptr %1097, i64 320
  %1119 = getelementptr inbounds i8, ptr %1097, i64 371
  %1120 = load i8, ptr %1119, align 1, !tbaa !174, !range !117, !noundef !118
  %1121 = trunc nuw i8 %1120 to i1
  %.in.v = select i1 %1121, i64 356, i64 352
  %.in = getelementptr inbounds i8, ptr %1097, i64 %.in.v
  %1122 = load i32, ptr %.in, align 4, !tbaa !177
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %1117, ptr noundef nonnull align 4 dereferenceable(8) %1118, i32 noundef %1122, float noundef 0.000000e+00, i32 noundef 0)
  br label %1135

1123:                                             ; preds = %1112, %1109, %1105
  %1124 = getelementptr inbounds i8, ptr %1097, i64 360
  %1125 = load i32, ptr %1124, align 8, !tbaa !178
  %.not458 = icmp eq i32 %1125, 0
  br i1 %.not458, label %1129, label %1126

1126:                                             ; preds = %1123
  %1127 = getelementptr inbounds i8, ptr %1097, i64 312
  %1128 = getelementptr inbounds i8, ptr %1097, i64 320
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %1127, ptr noundef nonnull align 4 dereferenceable(8) %1128, i32 noundef %1125, float noundef 0.000000e+00, i32 noundef 0)
  store i32 0, ptr %1124, align 8, !tbaa !178
  br label %1135

1129:                                             ; preds = %1123
  %1130 = getelementptr inbounds i8, ptr %1097, i64 348
  %1131 = load i32, ptr %1130, align 4, !tbaa !179
  %.not459 = icmp eq i32 %1131, 0
  br i1 %.not459, label %1135, label %1132

1132:                                             ; preds = %1129
  %1133 = getelementptr inbounds i8, ptr %1097, i64 312
  %1134 = getelementptr inbounds i8, ptr %1097, i64 320
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %1133, ptr noundef nonnull align 4 dereferenceable(8) %1134, i32 noundef %1131, float noundef 0.000000e+00, i32 noundef 0)
  br label %1135

1135:                                             ; preds = %1126, %1132, %1129, %1116
  %1136 = getelementptr inbounds i8, ptr %1097, i64 96
  %1137 = call noundef zeroext i1 @_ZNK10ImPlotAxis10IsOppositeEv(ptr noundef nonnull align 8 dereferenceable(372) %1097)
  %1138 = call noundef zeroext i1 @_ZNK10ImPlotAxis8HasLabelEv(ptr noundef nonnull align 8 dereferenceable(372) %1097)
  br i1 %1138, label %1139, label %1158

1139:                                             ; preds = %1135
  %1140 = call noundef ptr @_ZNK10ImPlotPlot12GetAxisLabelERK10ImPlotAxis(ptr noundef nonnull align 8 dereferenceable(2533) %28, ptr noundef nonnull align 8 dereferenceable(372) %1097)
  %1141 = call <2 x float> @_ZN6ImPlotL20CalcTextSizeVerticalEPKc(ptr noundef %1140)
  %1142 = call noundef zeroext i1 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372) %1097)
  %.pre541 = load float, ptr %947, align 4, !tbaa !189
  %1143 = getelementptr inbounds i8, ptr %1097, i64 128
  %1144 = load float, ptr %1143, align 8
  %1145 = fadd float %1144, %.pre541
  %1146 = select i1 %1142, float %1145, float 0.000000e+00
  %1147 = fadd float %1146, %.pre541
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #12
  %1148 = getelementptr inbounds i8, ptr %1097, i64 304
  %1149 = load float, ptr %1148, align 8, !tbaa !152
  %1150 = fadd float %1147, %1149
  %1151 = fsub float %1149, %1147
  %.sroa.014.0.vec.extract = extractelement <2 x float> %1141, i64 0
  %1152 = fsub float %1151, %.sroa.014.0.vec.extract
  %1153 = select i1 %1137, float %1150, float %1152
  %1154 = call <2 x float> @_ZNK6ImRect9GetCenterEv(ptr noundef nonnull align 4 dereferenceable(16) %526)
  %.sroa.011.4.vec.extract = extractelement <2 x float> %1154, i64 1
  %.sroa.014.4.vec.extract = extractelement <2 x float> %1141, i64 1
  %1155 = call float @llvm.fmuladd.f32(float %.sroa.014.4.vec.extract, float 5.000000e-01, float %.sroa.011.4.vec.extract)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef %1153, float noundef %1155)
  %.sroa.0.0.copyload = load <2 x float>, ptr %22, align 8
  %1156 = getelementptr inbounds i8, ptr %1097, i64 344
  %1157 = load i32, ptr %1156, align 8, !tbaa !181
  call void @_ZN6ImPlot15AddTextVerticalEP10ImDrawList6ImVec2jPKcS4_(ptr noundef nonnull %35, <2 x float> %.sroa.0.0.copyload, i32 noundef %1157, ptr noundef %1140, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  br label %1158

1158:                                             ; preds = %1139, %1135
  %1159 = call noundef zeroext i1 @_ZNK10ImPlotAxis13HasTickLabelsEv(ptr noundef nonnull align 8 dereferenceable(372) %1097)
  br i1 %1159, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %1158
  %1160 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %1136)
  %1161 = icmp sgt i32 %1160, 0
  br i1 %1161, label %.lr.ph527, label %.loopexit

.lr.ph527:                                        ; preds = %.preheader
  %1162 = getelementptr inbounds i8, ptr %1097, i64 304
  %1163 = getelementptr inbounds i8, ptr %1097, i64 344
  br i1 %1137, label %.lr.ph527.split.us, label %.lr.ph527.split

.lr.ph527.split.us:                               ; preds = %.lr.ph527, %1187
  %.0434526.us = phi i32 [ %1188, %1187 ], [ 0, %.lr.ph527 ]
  %1164 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1136, i32 noundef %.0434526.us)
  %1165 = load float, ptr %1162, align 8, !tbaa !152
  %1166 = load float, ptr %947, align 4, !tbaa !189
  %1167 = fadd float %1165, %1166
  %1168 = getelementptr inbounds i8, ptr %1164, i64 25
  %1169 = load i8, ptr %1168, align 1, !tbaa !183, !range !117, !noundef !118
  %1170 = trunc nuw i8 %1169 to i1
  br i1 %1170, label %1171, label %1187

1171:                                             ; preds = %.lr.ph527.split.us
  %1172 = getelementptr inbounds i8, ptr %1164, i64 8
  %1173 = load float, ptr %1172, align 8, !tbaa !164
  %1174 = load float, ptr %582, align 4, !tbaa !157
  %1175 = fadd float %1174, -1.000000e+00
  %1176 = fcmp ult float %1173, %1175
  br i1 %1176, label %1187, label %1177

1177:                                             ; preds = %1171
  %1178 = load float, ptr %583, align 4, !tbaa !158
  %1179 = fadd float %1178, 1.000000e+00
  %1180 = fcmp ugt float %1173, %1179
  br i1 %1180, label %1187, label %1181

1181:                                             ; preds = %1177
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  %1182 = getelementptr inbounds i8, ptr %1164, i64 16
  %1183 = load float, ptr %1182, align 8, !tbaa !190
  %1184 = call float @llvm.fmuladd.f32(float %1183, float -5.000000e-01, float %1173)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef %1167, float noundef %1184)
  %1185 = load i32, ptr %1163, align 8, !tbaa !181
  %1186 = call noundef ptr @_ZNK12ImPlotTicker7GetTextEi(ptr noundef nonnull align 8 dereferenceable(52) %1136, i32 noundef %.0434526.us)
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef %1185, ptr noundef %1186, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  br label %1187

1187:                                             ; preds = %1181, %1177, %1171, %.lr.ph527.split.us
  %1188 = add nuw nsw i32 %.0434526.us, 1
  %1189 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %1136)
  %1190 = icmp slt i32 %1188, %1189
  br i1 %1190, label %.lr.ph527.split.us, label %.loopexit, !llvm.loop !191

.lr.ph527.split:                                  ; preds = %.lr.ph527, %1218
  %.0434526 = phi i32 [ %1219, %1218 ], [ 0, %.lr.ph527 ]
  %1191 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZNK8ImVectorI10ImPlotTickEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1136, i32 noundef %.0434526)
  %1192 = load float, ptr %1162, align 8, !tbaa !152
  %1193 = load float, ptr %947, align 4, !tbaa !189
  %1194 = fneg float %1193
  %1195 = getelementptr inbounds i8, ptr %1191, i64 12
  %1196 = load float, ptr %1195, align 4, !tbaa !184
  %1197 = fsub float %1194, %1196
  %1198 = fadd float %1192, %1197
  %1199 = getelementptr inbounds i8, ptr %1191, i64 25
  %1200 = load i8, ptr %1199, align 1, !tbaa !183, !range !117, !noundef !118
  %1201 = trunc nuw i8 %1200 to i1
  br i1 %1201, label %1202, label %1218

1202:                                             ; preds = %.lr.ph527.split
  %1203 = getelementptr inbounds i8, ptr %1191, i64 8
  %1204 = load float, ptr %1203, align 8, !tbaa !164
  %1205 = load float, ptr %582, align 4, !tbaa !157
  %1206 = fadd float %1205, -1.000000e+00
  %1207 = fcmp ult float %1204, %1206
  br i1 %1207, label %1218, label %1208

1208:                                             ; preds = %1202
  %1209 = load float, ptr %583, align 4, !tbaa !158
  %1210 = fadd float %1209, 1.000000e+00
  %1211 = fcmp ugt float %1204, %1210
  br i1 %1211, label %1218, label %1212

1212:                                             ; preds = %1208
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  %1213 = getelementptr inbounds i8, ptr %1191, i64 16
  %1214 = load float, ptr %1213, align 8, !tbaa !190
  %1215 = call float @llvm.fmuladd.f32(float %1214, float -5.000000e-01, float %1204)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef %1198, float noundef %1215)
  %1216 = load i32, ptr %1163, align 8, !tbaa !181
  %1217 = call noundef ptr @_ZNK12ImPlotTicker7GetTextEi(ptr noundef nonnull align 8 dereferenceable(52) %1136, i32 noundef %.0434526)
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %35, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef %1216, ptr noundef %1217, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  br label %1218

1218:                                             ; preds = %1212, %1208, %1202, %.lr.ph527.split
  %1219 = add nuw nsw i32 %.0434526, 1
  %1220 = call noundef i32 @_ZNK12ImPlotTicker9TickCountEv(ptr noundef nonnull align 8 dereferenceable(52) %1136)
  %1221 = icmp slt i32 %1219, %1220
  br i1 %1221, label %.lr.ph527.split, label %.loopexit, !llvm.loop !191

.loopexit:                                        ; preds = %1218, %1187, %.preheader, %1158, %1096
  %1222 = add nuw nsw i32 %.0442528, 1
  %exitcond539.not = icmp eq i32 %1222, 3
  br i1 %exitcond539.not, label %1091, label %1096, !llvm.loop !192
}

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

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

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

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

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

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

declare void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #6

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZN6ImPlotL20CalcTextSizeVerticalEPKc(ptr noundef) local_unnamed_addr #4

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

declare void @_ZN5ImGui14PushOverrideIDEj(i32 noundef) local_unnamed_addr #6

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

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

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


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass