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

; 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.ImVec4 = type { float, float, float, float }
%struct.ImVec2 = type { float, float }
%struct.ImPlotTime = type <{ i64, i32, [4 x i8] }>
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImPlotContext = type { %struct.ImPool.34, %struct.ImPool.36, ptr, ptr, ptr, ptr, ptr, %struct.ImPlotTicker, %struct.ImPlotAnnotationCollection, %struct.ImPlotTagCollection, i8, [3 x i8], %struct.ImPlotStyle, %struct.ImVector.6, %struct.ImVector.7, %struct.ImPlotColormapData, %struct.ImVector.10, %struct.tm, %struct.ImVector.42, %struct.ImVector.42, %struct.ImVector.10, i32, i32, %struct.ImPlotNextPlotData, %struct.ImPlotNextItemData, %struct.ImPlotInputMap, i8, %struct.ImGuiTextBuffer, ptr, %struct.ImPool.43, ptr, ptr }
%struct.ImPool.34 = type { %struct.ImVector.35, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.4 }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImPool.36 = type { %struct.ImVector.37, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImPlotTicker = type <{ %struct.ImVector.38, %struct.ImGuiTextBuffer, %struct.ImVec2, %struct.ImVec2, i32, [4 x i8] }>
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImPlotAnnotationCollection = type <{ %struct.ImVector.39, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImPlotTagCollection = type <{ %struct.ImVector.40, %struct.ImGuiTextBuffer, i32, [4 x i8] }>
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImPlotStyle = type <{ float, i32, float, float, float, float, float, float, float, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [21 x %struct.ImVec4], i32, i8, i8, i8, i8 }>
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImPlotColormapData = type <{ %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, %struct.ImGuiTextBuffer, %struct.ImVector.10, %struct.ImVector.41, %struct.ImGuiStorage, i32, [4 x i8] }>
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.41 = type { i32, i32, ptr }
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr }
%struct.ImVector.42 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImPlotNextPlotData = type { [6 x i32], [6 x %struct.ImPlotRange], [6 x i8], [6 x i8], [6 x ptr], [6 x ptr] }
%struct.ImPlotRange = type { double, double }
%struct.ImPlotNextItemData = type { [5 x %struct.ImVec4], float, i32, float, float, float, float, float, float, float, i8, i8, i8, i8, i8, i8, i32 }
%struct.ImPlotInputMap = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float }
%struct.ImGuiTextBuffer = type { %struct.ImVector.24 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImPool.43 = type { %struct.ImVector.44, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.44 = type { i32, i32, ptr }

@GImPlot = external dso_local global ptr, align 8
@.str.68 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN6ImPlotL11MONTH_ABRVSE = external hidden global [12 x ptr], align 16
@_ZN6ImPlotL11MONTH_NAMESE = external hidden global [12 x ptr], align 16
@.str.404 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZN6ImPlotL8WD_ABRVSE = external hidden global [7 x ptr], align 16
@.str.406 = external hidden unnamed_addr constant [6 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 nounwind uwtable
declare dso_local void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef, float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6ImPlot7GetYearERK10ImPlotTime(ptr noundef nonnull align 8 dereferenceable(12)) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef, i32 noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZN6ImPlotL14GetDaysInMonthEii(i32 noundef, i32 noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef) #3

declare noundef i32 @_Z14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext) #5

declare void @_ZN5ImGui8SameLineEff(float noundef, float noundef) #6

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN6ImPlot14ShowDatePickerEPKcPiP10ImPlotTimePKS3_S6_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4) #7 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca %struct.ImVec4, align 4
  %13 = alloca %struct.ImVec4, align 4
  %14 = alloca %struct.ImVec4, align 4
  %15 = alloca %struct.ImVec4, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca float, align 4
  %18 = alloca %struct.ImVec2, align 4
  %19 = alloca [32 x i8], align 16
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %struct.ImPlotTime, align 8
  %31 = alloca { i64, i32 }, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.ImPlotTime, align 8
  %41 = alloca { i64, i32 }, align 8
  %42 = alloca i32, align 4
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImPlotTime, align 8
  %46 = alloca { i64, i32 }, align 8
  %47 = alloca %struct.ImVec2, align 4
  %48 = alloca %struct.ImPlotTime, align 8
  %49 = alloca { i64, i32 }, align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i8, align 1
  %60 = alloca i8, align 1
  %61 = alloca %struct.ImPlotTime, align 8
  %62 = alloca { i64, i32 }, align 8
  %63 = alloca %struct.ImPlotTime, align 8
  %64 = alloca { i64, i32 }, align 8
  %65 = alloca i32, align 4
  %66 = alloca %struct.ImVec2, align 4
  %67 = alloca %struct.ImVec2, align 4
  %68 = alloca %struct.ImPlotTime, align 8
  %69 = alloca { i64, i32 }, align 8
  %70 = alloca %struct.ImVec2, align 4
  %71 = alloca %struct.ImPlotTime, align 8
  %72 = alloca { i64, i32 }, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i8, align 1
  %77 = alloca %struct.ImPlotTime, align 8
  %78 = alloca { i64, i32 }, align 8
  %79 = alloca %struct.ImPlotTime, align 8
  %80 = alloca { i64, i32 }, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca %struct.ImVec2, align 4
  %84 = alloca %struct.ImVec2, align 4
  %85 = alloca %struct.ImPlotTime, align 8
  %86 = alloca { i64, i32 }, align 8
  %87 = alloca %struct.ImVec2, align 4
  %88 = alloca %struct.ImPlotTime, align 8
  %89 = alloca { i64, i32 }, align 8
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i8, align 1
  %93 = alloca %struct.ImPlotTime, align 8
  %94 = alloca { i64, i32 }, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %95 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKc(ptr noundef %95)
  call void @_ZN5ImGui10BeginGroupEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %96 = call noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv()
  store ptr %96, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #8
  %97 = load ptr, ptr %11, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.ImGuiStyle, ptr %97, i32 0, i32 43
  %99 = getelementptr inbounds [53 x %struct.ImVec4], ptr %98, i64 0, i64 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %12, ptr align 4 %99, i64 16, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #8
  %100 = load ptr, ptr %11, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.ImGuiStyle, ptr %100, i32 0, i32 43
  %102 = getelementptr inbounds [53 x %struct.ImVec4], ptr %101, i64 0, i64 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %13, ptr align 4 %102, i64 16, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #8
  %103 = load ptr, ptr %11, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.ImGuiStyle, ptr %103, i32 0, i32 43
  %105 = getelementptr inbounds [53 x %struct.ImVec4], ptr %104, i64 0, i64 21
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %14, ptr align 4 %105, i64 16, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #8
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %15, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %15)
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 14, ptr noundef nonnull align 4 dereferenceable(8) %16)
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %106 = call noundef float @_ZN5ImGui14GetFrameHeightEv()
  store float %106, ptr %17, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %107 = load float, ptr %17, align 4, !tbaa !10
  %108 = fmul float %107, 1.250000e+00
  %109 = load float, ptr %17, align 4, !tbaa !10
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %108, float noundef %109)
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  store i8 0, ptr %20, align 1, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %110 = load ptr, ptr @GImPlot, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.ImPlotContext, ptr %110, i32 0, i32 17
  store ptr %111, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  store i32 1970, ptr %22, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  store i32 2999, ptr %23, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  store i32 0, ptr %24, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  store i32 0, ptr %25, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  store i32 0, ptr %26, align 4, !tbaa !14
  %112 = load ptr, ptr %9, align 8, !tbaa !5
  %113 = icmp ne ptr %112, null
  br i1 %113, label %114, label %128

114:                                              ; preds = %5
  %115 = load ptr, ptr %9, align 8, !tbaa !5
  %116 = load ptr, ptr %21, align 8, !tbaa !5
  %117 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %115, ptr noundef %116)
  %118 = load ptr, ptr %21, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.tm, ptr %118, i32 0, i32 4
  %120 = load i32, ptr %119, align 8, !tbaa !16
  store i32 %120, ptr %24, align 4, !tbaa !14
  %121 = load ptr, ptr %21, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.tm, ptr %121, i32 0, i32 3
  %123 = load i32, ptr %122, align 4, !tbaa !19
  store i32 %123, ptr %25, align 4, !tbaa !14
  %124 = load ptr, ptr %21, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.tm, ptr %124, i32 0, i32 5
  %126 = load i32, ptr %125, align 4, !tbaa !20
  %127 = add nsw i32 %126, 1900
  store i32 %127, ptr %26, align 4, !tbaa !14
  br label %128

128:                                              ; preds = %114, %5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  store i32 0, ptr %27, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  store i32 0, ptr %28, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  store i32 0, ptr %29, align 4, !tbaa !14
  %129 = load ptr, ptr %10, align 8, !tbaa !5
  %130 = icmp ne ptr %129, null
  br i1 %130, label %131, label %145

131:                                              ; preds = %128
  %132 = load ptr, ptr %10, align 8, !tbaa !5
  %133 = load ptr, ptr %21, align 8, !tbaa !5
  %134 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %132, ptr noundef %133)
  %135 = load ptr, ptr %21, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.tm, ptr %135, i32 0, i32 4
  %137 = load i32, ptr %136, align 8, !tbaa !16
  store i32 %137, ptr %27, align 4, !tbaa !14
  %138 = load ptr, ptr %21, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.tm, ptr %138, i32 0, i32 3
  %140 = load i32, ptr %139, align 4, !tbaa !19
  store i32 %140, ptr %28, align 4, !tbaa !14
  %141 = load ptr, ptr %21, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.tm, ptr %141, i32 0, i32 5
  %143 = load i32, ptr %142, align 4, !tbaa !20
  %144 = add nsw i32 %143, 1900
  store i32 %144, ptr %29, align 4, !tbaa !14
  br label %145

145:                                              ; preds = %131, %128
  %146 = load ptr, ptr %7, align 8, !tbaa !5
  %147 = load i32, ptr %146, align 4, !tbaa !14
  %148 = icmp eq i32 %147, 0
  br i1 %148, label %149, label %455

149:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #8
  %150 = load ptr, ptr %8, align 8, !tbaa !5
  %151 = call { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12) %150, i32 noundef 5)
  store { i64, i32 } %151, ptr %31, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %30, ptr align 8 %31, i64 12, i1 false)
  %152 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %152, ptr align 8 %30, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #8
  %153 = load ptr, ptr %8, align 8, !tbaa !5
  %154 = load ptr, ptr %21, align 8, !tbaa !5
  %155 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %153, ptr noundef %154)
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %156 = load ptr, ptr %21, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.tm, ptr %156, i32 0, i32 5
  %158 = load i32, ptr %157, align 4, !tbaa !20
  %159 = add nsw i32 %158, 1900
  store i32 %159, ptr %32, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %160 = load i32, ptr %32, align 4, !tbaa !14
  %161 = sub nsw i32 %160, 1
  store i32 %161, ptr %33, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %162 = load i32, ptr %32, align 4, !tbaa !14
  %163 = add nsw i32 %162, 1
  store i32 %163, ptr %34, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %164 = load ptr, ptr %21, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.tm, ptr %164, i32 0, i32 4
  %166 = load i32, ptr %165, align 8, !tbaa !16
  store i32 %166, ptr %35, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %167 = load i32, ptr %35, align 4, !tbaa !14
  %168 = icmp eq i32 %167, 0
  br i1 %168, label %169, label %170

169:                                              ; preds = %149
  br label %173

170:                                              ; preds = %149
  %171 = load i32, ptr %35, align 4, !tbaa !14
  %172 = sub nsw i32 %171, 1
  br label %173

173:                                              ; preds = %170, %169
  %174 = phi i32 [ 11, %169 ], [ %172, %170 ]
  store i32 %174, ptr %36, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %175 = load i32, ptr %35, align 4, !tbaa !14
  %176 = icmp eq i32 %175, 11
  br i1 %176, label %177, label %178

177:                                              ; preds = %173
  br label %181

178:                                              ; preds = %173
  %179 = load i32, ptr %35, align 4, !tbaa !14
  %180 = add nsw i32 %179, 1
  br label %181

181:                                              ; preds = %178, %177
  %182 = phi i32 [ 0, %177 ], [ %180, %178 ]
  store i32 %182, ptr %37, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %183 = load i32, ptr %32, align 4, !tbaa !14
  %184 = load i32, ptr %35, align 4, !tbaa !14
  %185 = call noundef i32 @_ZN6ImPlotL14GetDaysInMonthEii(i32 noundef %183, i32 noundef %184)
  store i32 %185, ptr %38, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %186 = load i32, ptr %35, align 4, !tbaa !14
  %187 = icmp eq i32 %186, 0
  br i1 %187, label %188, label %190

188:                                              ; preds = %181
  %189 = load i32, ptr %33, align 4, !tbaa !14
  br label %192

190:                                              ; preds = %181
  %191 = load i32, ptr %32, align 4, !tbaa !14
  br label %192

192:                                              ; preds = %190, %188
  %193 = phi i32 [ %189, %188 ], [ %191, %190 ]
  %194 = load i32, ptr %36, align 4, !tbaa !14
  %195 = call noundef i32 @_ZN6ImPlotL14GetDaysInMonthEii(i32 noundef %193, i32 noundef %194)
  store i32 %195, ptr %39, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #8
  %196 = load ptr, ptr %8, align 8, !tbaa !5
  %197 = call { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12) %196, i32 noundef 6)
  store { i64, i32 } %197, ptr %41, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %40, ptr align 8 %41, i64 12, i1 false)
  %198 = load ptr, ptr %21, align 8, !tbaa !5
  %199 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %40, ptr noundef %198)
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %200 = load ptr, ptr %21, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.tm, ptr %200, i32 0, i32 6
  %202 = load i32, ptr %201, align 8, !tbaa !23
  store i32 %202, ptr %42, align 4, !tbaa !14
  %203 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  %204 = load i32, ptr %35, align 4, !tbaa !14
  %205 = sext i32 %204 to i64
  %206 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_NAMESE, i64 0, i64 %205
  %207 = load ptr, ptr %206, align 8, !tbaa !5
  %208 = load i32, ptr %32, align 4, !tbaa !14
  %209 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %203, i64 noundef 32, ptr noundef @.str.71, ptr noundef %207, i32 noundef %208)
  %210 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %211 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %210, ptr noundef nonnull align 4 dereferenceable(8) %43)
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br i1 %211, label %212, label %214

212:                                              ; preds = %192
  %213 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 1, ptr %213, align 4, !tbaa !14
  br label %214

214:                                              ; preds = %212, %192
  %215 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 0
  %216 = load float, ptr %215, align 4, !tbaa !24
  %217 = fmul float 5.000000e+00, %216
  call void @_ZN5ImGui8SameLineEff(float noundef %217, float noundef -1.000000e+00)
  %218 = load i32, ptr %32, align 4, !tbaa !14
  %219 = icmp sle i32 %218, 1970
  br i1 %219, label %220, label %223

220:                                              ; preds = %214
  %221 = load i32, ptr %35, align 4, !tbaa !14
  %222 = icmp eq i32 %221, 0
  br label %223

223:                                              ; preds = %220, %214
  %224 = phi i1 [ false, %214 ], [ %222, %220 ]
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %224)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %44, ptr align 4 %18, i64 8, i1 false), !tbaa.struct !26
  %225 = load <2 x float>, ptr %44, align 4
  %226 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef @.str.404, i32 noundef 2, <2 x float> %225, i32 noundef 0)
  br i1 %226, label %227, label %231

227:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #8
  %228 = load ptr, ptr %8, align 8, !tbaa !5
  %229 = call { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12) %228, i32 noundef 6, i32 noundef -1)
  store { i64, i32 } %229, ptr %46, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %45, ptr align 8 %46, i64 12, i1 false)
  %230 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %230, ptr align 8 %45, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #8
  br label %231

231:                                              ; preds = %227, %223
  %232 = load i32, ptr %32, align 4, !tbaa !14
  %233 = icmp sle i32 %232, 1970
  br i1 %233, label %234, label %237

234:                                              ; preds = %231
  %235 = load i32, ptr %35, align 4, !tbaa !14
  %236 = icmp eq i32 %235, 0
  br label %237

237:                                              ; preds = %234, %231
  %238 = phi i1 [ false, %231 ], [ %236, %234 ]
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %238)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %239 = load i32, ptr %32, align 4, !tbaa !14
  %240 = icmp sge i32 %239, 2999
  br i1 %240, label %241, label %244

241:                                              ; preds = %237
  %242 = load i32, ptr %35, align 4, !tbaa !14
  %243 = icmp eq i32 %242, 11
  br label %244

244:                                              ; preds = %241, %237
  %245 = phi i1 [ false, %237 ], [ %243, %241 ]
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %245)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %18, i64 8, i1 false), !tbaa.struct !26
  %246 = load <2 x float>, ptr %47, align 4
  %247 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef @.str.405, i32 noundef 3, <2 x float> %246, i32 noundef 0)
  br i1 %247, label %248, label %252

248:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #8
  %249 = load ptr, ptr %8, align 8, !tbaa !5
  %250 = call { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12) %249, i32 noundef 6, i32 noundef 1)
  store { i64, i32 } %250, ptr %49, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %48, ptr align 8 %49, i64 12, i1 false)
  %251 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %251, ptr align 8 %48, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #8
  br label %252

252:                                              ; preds = %248, %244
  %253 = load i32, ptr %32, align 4, !tbaa !14
  %254 = icmp sge i32 %253, 2999
  br i1 %254, label %255, label %258

255:                                              ; preds = %252
  %256 = load i32, ptr %35, align 4, !tbaa !14
  %257 = icmp eq i32 %256, 11
  br label %258

258:                                              ; preds = %255, %252
  %259 = phi i1 [ false, %252 ], [ %257, %255 ]
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %259)
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 4, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  store i32 0, ptr %50, align 4, !tbaa !14
  br label %260

260:                                              ; preds = %274, %258
  %261 = load i32, ptr %50, align 4, !tbaa !14
  %262 = icmp slt i32 %261, 7
  br i1 %262, label %264, label %263

263:                                              ; preds = %260
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %277

264:                                              ; preds = %260
  %265 = load i32, ptr %50, align 4, !tbaa !14
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds [7 x ptr], ptr @_ZN6ImPlotL8WD_ABRVSE, i64 0, i64 %266
  %268 = load ptr, ptr %267, align 8, !tbaa !5
  %269 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %268, ptr noundef nonnull align 4 dereferenceable(8) %18)
  %270 = load i32, ptr %50, align 4, !tbaa !14
  %271 = icmp ne i32 %270, 6
  br i1 %271, label %272, label %273

272:                                              ; preds = %264
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  br label %273

273:                                              ; preds = %272, %264
  br label %274

274:                                              ; preds = %273
  %275 = load i32, ptr %50, align 4, !tbaa !14
  %276 = add nsw i32 %275, 1
  store i32 %276, ptr %50, align 4, !tbaa !14
  br label %260, !llvm.loop !27

277:                                              ; preds = %263
  call void @_ZN5ImGui11PopItemFlagEv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %278 = load i32, ptr %42, align 4, !tbaa !14
  %279 = icmp sgt i32 %278, 0
  %280 = zext i1 %279 to i64
  %281 = select i1 %279, i32 0, i32 1
  store i32 %281, ptr %51, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  %282 = load i32, ptr %51, align 4, !tbaa !14
  %283 = icmp eq i32 %282, 1
  br i1 %283, label %284, label %285

284:                                              ; preds = %277
  br label %290

285:                                              ; preds = %277
  %286 = load i32, ptr %39, align 4, !tbaa !14
  %287 = load i32, ptr %42, align 4, !tbaa !14
  %288 = sub nsw i32 %286, %287
  %289 = add nsw i32 %288, 1
  br label %290

290:                                              ; preds = %285, %284
  %291 = phi i32 [ 1, %284 ], [ %289, %285 ]
  store i32 %291, ptr %52, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  store i32 0, ptr %53, align 4, !tbaa !14
  br label %292

292:                                              ; preds = %451, %290
  %293 = load i32, ptr %53, align 4, !tbaa !14
  %294 = icmp slt i32 %293, 6
  br i1 %294, label %296, label %295

295:                                              ; preds = %292
  store i32 5, ptr %54, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %454

296:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  store i32 0, ptr %55, align 4, !tbaa !14
  br label %297

297:                                              ; preds = %447, %296
  %298 = load i32, ptr %55, align 4, !tbaa !14
  %299 = icmp slt i32 %298, 7
  br i1 %299, label %301, label %300

300:                                              ; preds = %297
  store i32 8, ptr %54, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %450

301:                                              ; preds = %297
  %302 = load i32, ptr %51, align 4, !tbaa !14
  %303 = icmp eq i32 %302, 0
  br i1 %303, label %304, label %309

304:                                              ; preds = %301
  %305 = load i32, ptr %52, align 4, !tbaa !14
  %306 = load i32, ptr %39, align 4, !tbaa !14
  %307 = icmp sgt i32 %305, %306
  br i1 %307, label %308, label %309

308:                                              ; preds = %304
  store i32 1, ptr %51, align 4, !tbaa !14
  store i32 1, ptr %52, align 4, !tbaa !14
  br label %318

309:                                              ; preds = %304, %301
  %310 = load i32, ptr %51, align 4, !tbaa !14
  %311 = icmp eq i32 %310, 1
  br i1 %311, label %312, label %317

312:                                              ; preds = %309
  %313 = load i32, ptr %52, align 4, !tbaa !14
  %314 = load i32, ptr %38, align 4, !tbaa !14
  %315 = icmp sgt i32 %313, %314
  br i1 %315, label %316, label %317

316:                                              ; preds = %312
  store i32 2, ptr %51, align 4, !tbaa !14
  store i32 1, ptr %52, align 4, !tbaa !14
  br label %317

317:                                              ; preds = %316, %312, %309
  br label %318

318:                                              ; preds = %317, %308
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %319 = load i32, ptr %51, align 4, !tbaa !14
  %320 = icmp eq i32 %319, 0
  br i1 %320, label %321, label %326

321:                                              ; preds = %318
  %322 = load i32, ptr %35, align 4, !tbaa !14
  %323 = icmp eq i32 %322, 0
  br i1 %323, label %324, label %326

324:                                              ; preds = %321
  %325 = load i32, ptr %33, align 4, !tbaa !14
  br label %338

326:                                              ; preds = %321, %318
  %327 = load i32, ptr %51, align 4, !tbaa !14
  %328 = icmp eq i32 %327, 2
  br i1 %328, label %329, label %334

329:                                              ; preds = %326
  %330 = load i32, ptr %35, align 4, !tbaa !14
  %331 = icmp eq i32 %330, 11
  br i1 %331, label %332, label %334

332:                                              ; preds = %329
  %333 = load i32, ptr %34, align 4, !tbaa !14
  br label %336

334:                                              ; preds = %329, %326
  %335 = load i32, ptr %32, align 4, !tbaa !14
  br label %336

336:                                              ; preds = %334, %332
  %337 = phi i32 [ %333, %332 ], [ %335, %334 ]
  br label %338

338:                                              ; preds = %336, %324
  %339 = phi i32 [ %325, %324 ], [ %337, %336 ]
  store i32 %339, ptr %56, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  %340 = load i32, ptr %51, align 4, !tbaa !14
  %341 = icmp eq i32 %340, 0
  br i1 %341, label %342, label %344

342:                                              ; preds = %338
  %343 = load i32, ptr %36, align 4, !tbaa !14
  br label %353

344:                                              ; preds = %338
  %345 = load i32, ptr %51, align 4, !tbaa !14
  %346 = icmp eq i32 %345, 1
  br i1 %346, label %347, label %349

347:                                              ; preds = %344
  %348 = load i32, ptr %35, align 4, !tbaa !14
  br label %351

349:                                              ; preds = %344
  %350 = load i32, ptr %37, align 4, !tbaa !14
  br label %351

351:                                              ; preds = %349, %347
  %352 = phi i32 [ %348, %347 ], [ %350, %349 ]
  br label %353

353:                                              ; preds = %351, %342
  %354 = phi i32 [ %343, %342 ], [ %352, %351 ]
  store i32 %354, ptr %57, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  %355 = load i32, ptr %52, align 4, !tbaa !14
  store i32 %355, ptr %58, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #8
  %356 = load i32, ptr %51, align 4, !tbaa !14
  %357 = icmp eq i32 %356, 0
  br i1 %357, label %361, label %358

358:                                              ; preds = %353
  %359 = load i32, ptr %51, align 4, !tbaa !14
  %360 = icmp eq i32 %359, 2
  br label %361

361:                                              ; preds = %358, %353
  %362 = phi i1 [ true, %353 ], [ %360, %358 ]
  %363 = zext i1 %362 to i8
  store i8 %363, ptr %59, align 1, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #8
  %364 = load ptr, ptr %9, align 8, !tbaa !5
  %365 = icmp ne ptr %364, null
  br i1 %365, label %366, label %378

366:                                              ; preds = %361
  %367 = load i32, ptr %24, align 4, !tbaa !14
  %368 = load i32, ptr %57, align 4, !tbaa !14
  %369 = icmp eq i32 %367, %368
  br i1 %369, label %370, label %378

370:                                              ; preds = %366
  %371 = load i32, ptr %26, align 4, !tbaa !14
  %372 = load i32, ptr %56, align 4, !tbaa !14
  %373 = icmp eq i32 %371, %372
  br i1 %373, label %374, label %378

374:                                              ; preds = %370
  %375 = load i32, ptr %25, align 4, !tbaa !14
  %376 = load i32, ptr %58, align 4, !tbaa !14
  %377 = icmp eq i32 %375, %376
  br i1 %377, label %395, label %378

378:                                              ; preds = %374, %370, %366, %361
  %379 = load ptr, ptr %10, align 8, !tbaa !5
  %380 = icmp ne ptr %379, null
  br i1 %380, label %381, label %393

381:                                              ; preds = %378
  %382 = load i32, ptr %27, align 4, !tbaa !14
  %383 = load i32, ptr %57, align 4, !tbaa !14
  %384 = icmp eq i32 %382, %383
  br i1 %384, label %385, label %393

385:                                              ; preds = %381
  %386 = load i32, ptr %29, align 4, !tbaa !14
  %387 = load i32, ptr %56, align 4, !tbaa !14
  %388 = icmp eq i32 %386, %387
  br i1 %388, label %389, label %393

389:                                              ; preds = %385
  %390 = load i32, ptr %28, align 4, !tbaa !14
  %391 = load i32, ptr %58, align 4, !tbaa !14
  %392 = icmp eq i32 %390, %391
  br label %393

393:                                              ; preds = %389, %385, %381, %378
  %394 = phi i1 [ false, %385 ], [ false, %381 ], [ false, %378 ], [ %392, %389 ]
  br label %395

395:                                              ; preds = %393, %374
  %396 = phi i1 [ true, %374 ], [ %394, %393 ]
  %397 = zext i1 %396 to i8
  store i8 %397, ptr %60, align 1, !tbaa !12
  %398 = load i8, ptr %59, align 1, !tbaa !12, !range !29, !noundef !30
  %399 = trunc i8 %398 to i1
  br i1 %399, label %400, label %401

400:                                              ; preds = %395
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(16) %13)
  br label %401

401:                                              ; preds = %400, %395
  %402 = load i8, ptr %60, align 1, !tbaa !12, !range !29, !noundef !30
  %403 = trunc i8 %402 to i1
  br i1 %403, label %404, label %405

404:                                              ; preds = %401
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %14)
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(16) %12)
  br label %405

405:                                              ; preds = %404, %401
  %406 = load i32, ptr %53, align 4, !tbaa !14
  %407 = mul nsw i32 %406, 7
  %408 = load i32, ptr %55, align 4, !tbaa !14
  %409 = add nsw i32 %407, %408
  call void @_ZN5ImGui6PushIDEi(i32 noundef %409)
  %410 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  %411 = load i32, ptr %52, align 4, !tbaa !14
  %412 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %410, i64 noundef 32, ptr noundef @.str.68, i32 noundef %411)
  %413 = load i32, ptr %56, align 4, !tbaa !14
  %414 = icmp eq i32 %413, 1969
  br i1 %414, label %418, label %415

415:                                              ; preds = %405
  %416 = load i32, ptr %56, align 4, !tbaa !14
  %417 = icmp eq i32 %416, 3000
  br i1 %417, label %418, label %419

418:                                              ; preds = %415, %405
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %18)
  br label %432

419:                                              ; preds = %415
  %420 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  %421 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %420, ptr noundef nonnull align 4 dereferenceable(8) %18)
  br i1 %421, label %422, label %431

422:                                              ; preds = %419
  %423 = load i8, ptr %20, align 1, !tbaa !12, !range !29, !noundef !30
  %424 = trunc i8 %423 to i1
  br i1 %424, label %431, label %425

425:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #8
  %426 = load i32, ptr %56, align 4, !tbaa !14
  %427 = load i32, ptr %57, align 4, !tbaa !14
  %428 = load i32, ptr %58, align 4, !tbaa !14
  %429 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %426, i32 noundef %427, i32 noundef %428, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  store { i64, i32 } %429, ptr %62, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %61, ptr align 8 %62, i64 12, i1 false)
  %430 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %430, ptr align 8 %61, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #8
  store i8 1, ptr %20, align 1, !tbaa !12
  br label %431

431:                                              ; preds = %425, %422, %419
  br label %432

432:                                              ; preds = %431, %418
  call void @_ZN5ImGui5PopIDEv()
  %433 = load i8, ptr %60, align 1, !tbaa !12, !range !29, !noundef !30
  %434 = trunc i8 %433 to i1
  br i1 %434, label %435, label %436

435:                                              ; preds = %432
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 2)
  br label %436

436:                                              ; preds = %435, %432
  %437 = load i8, ptr %59, align 1, !tbaa !12, !range !29, !noundef !30
  %438 = trunc i8 %437 to i1
  br i1 %438, label %439, label %440

439:                                              ; preds = %436
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %440

440:                                              ; preds = %439, %436
  %441 = load i32, ptr %55, align 4, !tbaa !14
  %442 = icmp ne i32 %441, 6
  br i1 %442, label %443, label %444

443:                                              ; preds = %440
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  br label %444

444:                                              ; preds = %443, %440
  %445 = load i32, ptr %52, align 4, !tbaa !14
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr %52, align 4, !tbaa !14
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %447

447:                                              ; preds = %444
  %448 = load i32, ptr %55, align 4, !tbaa !14
  %449 = add nsw i32 %448, 1
  store i32 %449, ptr %55, align 4, !tbaa !14
  br label %297, !llvm.loop !31

450:                                              ; preds = %300
  br label %451

451:                                              ; preds = %450
  %452 = load i32, ptr %53, align 4, !tbaa !14
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr %53, align 4, !tbaa !14
  br label %292, !llvm.loop !32

454:                                              ; preds = %295
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %709

455:                                              ; preds = %145
  %456 = load ptr, ptr %7, align 8, !tbaa !5
  %457 = load i32, ptr %456, align 4, !tbaa !14
  %458 = icmp eq i32 %457, 1
  br i1 %458, label %459, label %582

459:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #8
  %460 = load ptr, ptr %8, align 8, !tbaa !5
  %461 = call { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12) %460, i32 noundef 6)
  store { i64, i32 } %461, ptr %64, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %63, ptr align 8 %64, i64 12, i1 false)
  %462 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %462, ptr align 8 %63, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #8
  %463 = load ptr, ptr %8, align 8, !tbaa !5
  %464 = load ptr, ptr %21, align 8, !tbaa !5
  %465 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %463, ptr noundef %464)
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #8
  %466 = load ptr, ptr %21, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.tm, ptr %466, i32 0, i32 5
  %468 = load i32, ptr %467, align 4, !tbaa !20
  %469 = add nsw i32 %468, 1900
  store i32 %469, ptr %65, align 4, !tbaa !14
  %470 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  %471 = load i32, ptr %65, align 4, !tbaa !14
  %472 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %470, i64 noundef 32, ptr noundef @.str.68, i32 noundef %471)
  %473 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %66, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %474 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %473, ptr noundef nonnull align 4 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  br i1 %474, label %475, label %477

475:                                              ; preds = %459
  %476 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 2, ptr %476, align 4, !tbaa !14
  br label %477

477:                                              ; preds = %475, %459
  %478 = load i32, ptr %65, align 4, !tbaa !14
  %479 = icmp sle i32 %478, 1970
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %479)
  %480 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 0
  %481 = load float, ptr %480, align 4, !tbaa !24
  %482 = fmul float 5.000000e+00, %481
  call void @_ZN5ImGui8SameLineEff(float noundef %482, float noundef -1.000000e+00)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %67, ptr align 4 %18, i64 8, i1 false), !tbaa.struct !26
  %483 = load <2 x float>, ptr %67, align 4
  %484 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef @.str.404, i32 noundef 2, <2 x float> %483, i32 noundef 0)
  br i1 %484, label %485, label %489

485:                                              ; preds = %477
  call void @llvm.lifetime.start.p0(i64 16, ptr %68) #8
  %486 = load ptr, ptr %8, align 8, !tbaa !5
  %487 = call { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12) %486, i32 noundef 7, i32 noundef -1)
  store { i64, i32 } %487, ptr %69, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %68, ptr align 8 %69, i64 12, i1 false)
  %488 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %488, ptr align 8 %68, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %68) #8
  br label %489

489:                                              ; preds = %485, %477
  %490 = load i32, ptr %65, align 4, !tbaa !14
  %491 = icmp sle i32 %490, 1970
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %491)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %492 = load i32, ptr %65, align 4, !tbaa !14
  %493 = icmp sge i32 %492, 2999
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %493)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %70, ptr align 4 %18, i64 8, i1 false), !tbaa.struct !26
  %494 = load <2 x float>, ptr %70, align 4
  %495 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef @.str.405, i32 noundef 3, <2 x float> %494, i32 noundef 0)
  br i1 %495, label %496, label %500

496:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #8
  %497 = load ptr, ptr %8, align 8, !tbaa !5
  %498 = call { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12) %497, i32 noundef 7, i32 noundef 1)
  store { i64, i32 } %498, ptr %72, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %71, ptr align 8 %72, i64 12, i1 false)
  %499 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %499, ptr align 8 %71, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #8
  br label %500

500:                                              ; preds = %496, %489
  %501 = load i32, ptr %65, align 4, !tbaa !14
  %502 = icmp sge i32 %501, 2999
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %502)
  %503 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 0
  %504 = load float, ptr %503, align 4, !tbaa !24
  %505 = fmul float %504, 1.750000e+00
  store float %505, ptr %503, align 4, !tbaa !24
  %506 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 1
  %507 = load float, ptr %506, align 4, !tbaa !33
  %508 = fmul float %507, 0x4002AAAAA0000000
  store float %508, ptr %506, align 4, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #8
  store i32 0, ptr %73, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #8
  store i32 0, ptr %74, align 4, !tbaa !14
  br label %509

509:                                              ; preds = %578, %500
  %510 = load i32, ptr %74, align 4, !tbaa !14
  %511 = icmp slt i32 %510, 3
  br i1 %511, label %513, label %512

512:                                              ; preds = %509
  store i32 11, ptr %54, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  br label %581

513:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  store i32 0, ptr %75, align 4, !tbaa !14
  br label %514

514:                                              ; preds = %574, %513
  %515 = load i32, ptr %75, align 4, !tbaa !14
  %516 = icmp slt i32 %515, 4
  br i1 %516, label %518, label %517

517:                                              ; preds = %514
  store i32 14, ptr %54, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  br label %577

518:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #8
  %519 = load ptr, ptr %9, align 8, !tbaa !5
  %520 = icmp ne ptr %519, null
  br i1 %520, label %521, label %529

521:                                              ; preds = %518
  %522 = load i32, ptr %26, align 4, !tbaa !14
  %523 = load i32, ptr %65, align 4, !tbaa !14
  %524 = icmp eq i32 %522, %523
  br i1 %524, label %525, label %529

525:                                              ; preds = %521
  %526 = load i32, ptr %24, align 4, !tbaa !14
  %527 = load i32, ptr %73, align 4, !tbaa !14
  %528 = icmp eq i32 %526, %527
  br i1 %528, label %542, label %529

529:                                              ; preds = %525, %521, %518
  %530 = load ptr, ptr %10, align 8, !tbaa !5
  %531 = icmp ne ptr %530, null
  br i1 %531, label %532, label %540

532:                                              ; preds = %529
  %533 = load i32, ptr %29, align 4, !tbaa !14
  %534 = load i32, ptr %65, align 4, !tbaa !14
  %535 = icmp eq i32 %533, %534
  br i1 %535, label %536, label %540

536:                                              ; preds = %532
  %537 = load i32, ptr %27, align 4, !tbaa !14
  %538 = load i32, ptr %73, align 4, !tbaa !14
  %539 = icmp eq i32 %537, %538
  br label %540

540:                                              ; preds = %536, %532, %529
  %541 = phi i1 [ false, %532 ], [ false, %529 ], [ %539, %536 ]
  br label %542

542:                                              ; preds = %540, %525
  %543 = phi i1 [ true, %525 ], [ %541, %540 ]
  %544 = zext i1 %543 to i8
  store i8 %544, ptr %76, align 1, !tbaa !12
  %545 = load i8, ptr %76, align 1, !tbaa !12, !range !29, !noundef !30
  %546 = trunc i8 %545 to i1
  br i1 %546, label %547, label %548

547:                                              ; preds = %542
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %14)
  br label %548

548:                                              ; preds = %547, %542
  %549 = load i32, ptr %73, align 4, !tbaa !14
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 0, i64 %550
  %552 = load ptr, ptr %551, align 8, !tbaa !5
  %553 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %552, ptr noundef nonnull align 4 dereferenceable(8) %18)
  br i1 %553, label %554, label %563

554:                                              ; preds = %548
  %555 = load i8, ptr %20, align 1, !tbaa !12, !range !29, !noundef !30
  %556 = trunc i8 %555 to i1
  br i1 %556, label %563, label %557

557:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 16, ptr %77) #8
  %558 = load i32, ptr %65, align 4, !tbaa !14
  %559 = load i32, ptr %73, align 4, !tbaa !14
  %560 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %558, i32 noundef %559, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  store { i64, i32 } %560, ptr %78, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %77, ptr align 8 %78, i64 12, i1 false)
  %561 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %561, ptr align 8 %77, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #8
  %562 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 0, ptr %562, align 4, !tbaa !14
  br label %563

563:                                              ; preds = %557, %554, %548
  %564 = load i8, ptr %76, align 1, !tbaa !12, !range !29, !noundef !30
  %565 = trunc i8 %564 to i1
  br i1 %565, label %566, label %567

566:                                              ; preds = %563
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %567

567:                                              ; preds = %566, %563
  %568 = load i32, ptr %75, align 4, !tbaa !14
  %569 = icmp ne i32 %568, 3
  br i1 %569, label %570, label %571

570:                                              ; preds = %567
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  br label %571

571:                                              ; preds = %570, %567
  %572 = load i32, ptr %73, align 4, !tbaa !14
  %573 = add nsw i32 %572, 1
  store i32 %573, ptr %73, align 4, !tbaa !14
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #8
  br label %574

574:                                              ; preds = %571
  %575 = load i32, ptr %75, align 4, !tbaa !14
  %576 = add nsw i32 %575, 1
  store i32 %576, ptr %75, align 4, !tbaa !14
  br label %514, !llvm.loop !34

577:                                              ; preds = %517
  br label %578

578:                                              ; preds = %577
  %579 = load i32, ptr %74, align 4, !tbaa !14
  %580 = add nsw i32 %579, 1
  store i32 %580, ptr %74, align 4, !tbaa !14
  br label %509, !llvm.loop !35

581:                                              ; preds = %512
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  br label %708

582:                                              ; preds = %455
  %583 = load ptr, ptr %7, align 8, !tbaa !5
  %584 = load i32, ptr %583, align 4, !tbaa !14
  %585 = icmp eq i32 %584, 2
  br i1 %585, label %586, label %707

586:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 16, ptr %79) #8
  %587 = load ptr, ptr %8, align 8, !tbaa !5
  %588 = call { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12) %587, i32 noundef 7)
  store { i64, i32 } %588, ptr %80, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %79, ptr align 8 %80, i64 12, i1 false)
  %589 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %589, ptr align 8 %79, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %79) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #8
  %590 = load ptr, ptr %8, align 8, !tbaa !5
  %591 = call noundef i32 @_ZN6ImPlot7GetYearERK10ImPlotTime(ptr noundef nonnull align 8 dereferenceable(12) %590)
  store i32 %591, ptr %81, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %592 = load i32, ptr %81, align 4, !tbaa !14
  %593 = load i32, ptr %81, align 4, !tbaa !14
  %594 = srem i32 %593, 20
  %595 = sub nsw i32 %592, %594
  store i32 %595, ptr %82, align 4, !tbaa !14
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 4, i1 noundef zeroext true)
  %596 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  %597 = load i32, ptr %82, align 4, !tbaa !14
  %598 = load i32, ptr %82, align 4, !tbaa !14
  %599 = add nsw i32 %598, 19
  %600 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %596, i64 noundef 32, ptr noundef @.str.406, i32 noundef %597, i32 noundef %599)
  %601 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %83, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %602 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %601, ptr noundef nonnull align 4 dereferenceable(8) %83)
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  call void @_ZN5ImGui11PopItemFlagEv()
  %603 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 0
  %604 = load float, ptr %603, align 4, !tbaa !24
  %605 = fmul float 5.000000e+00, %604
  call void @_ZN5ImGui8SameLineEff(float noundef %605, float noundef -1.000000e+00)
  %606 = load i32, ptr %82, align 4, !tbaa !14
  %607 = icmp sle i32 %606, 1970
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %607)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %84, ptr align 4 %18, i64 8, i1 false), !tbaa.struct !26
  %608 = load <2 x float>, ptr %84, align 4
  %609 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef @.str.404, i32 noundef 2, <2 x float> %608, i32 noundef 0)
  br i1 %609, label %610, label %615

610:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 16, ptr %85) #8
  %611 = load i32, ptr %82, align 4, !tbaa !14
  %612 = sub nsw i32 %611, 20
  %613 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %612, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  store { i64, i32 } %613, ptr %86, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %85, ptr align 8 %86, i64 12, i1 false)
  %614 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %614, ptr align 8 %85, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #8
  br label %615

615:                                              ; preds = %610, %586
  %616 = load i32, ptr %82, align 4, !tbaa !14
  %617 = icmp sle i32 %616, 1970
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %617)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %618 = load i32, ptr %82, align 4, !tbaa !14
  %619 = add nsw i32 %618, 20
  %620 = icmp sge i32 %619, 2999
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %620)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %87, ptr align 4 %18, i64 8, i1 false), !tbaa.struct !26
  %621 = load <2 x float>, ptr %87, align 4
  %622 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef @.str.405, i32 noundef 3, <2 x float> %621, i32 noundef 0)
  br i1 %622, label %623, label %628

623:                                              ; preds = %615
  call void @llvm.lifetime.start.p0(i64 16, ptr %88) #8
  %624 = load i32, ptr %82, align 4, !tbaa !14
  %625 = add nsw i32 %624, 20
  %626 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %625, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  store { i64, i32 } %626, ptr %89, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %88, ptr align 8 %89, i64 12, i1 false)
  %627 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %627, ptr align 8 %88, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #8
  br label %628

628:                                              ; preds = %623, %615
  %629 = load i32, ptr %82, align 4, !tbaa !14
  %630 = add nsw i32 %629, 20
  %631 = icmp sge i32 %630, 2999
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %631)
  %632 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 0
  %633 = load float, ptr %632, align 4, !tbaa !24
  %634 = fmul float %633, 1.750000e+00
  store float %634, ptr %632, align 4, !tbaa !24
  %635 = getelementptr inbounds %struct.ImVec2, ptr %18, i32 0, i32 1
  %636 = load float, ptr %635, align 4, !tbaa !33
  %637 = fmul float %636, 0x3FF6666660000000
  store float %637, ptr %635, align 4, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #8
  store i32 0, ptr %90, align 4, !tbaa !14
  br label %638

638:                                              ; preds = %703, %628
  %639 = load i32, ptr %90, align 4, !tbaa !14
  %640 = icmp slt i32 %639, 5
  br i1 %640, label %642, label %641

641:                                              ; preds = %638
  store i32 17, ptr %54, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  br label %706

642:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #8
  store i32 0, ptr %91, align 4, !tbaa !14
  br label %643

643:                                              ; preds = %699, %642
  %644 = load i32, ptr %91, align 4, !tbaa !14
  %645 = icmp slt i32 %644, 4
  br i1 %645, label %647, label %646

646:                                              ; preds = %643
  store i32 20, ptr %54, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  br label %702

647:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #8
  %648 = load ptr, ptr %9, align 8, !tbaa !5
  %649 = icmp ne ptr %648, null
  br i1 %649, label %650, label %654

650:                                              ; preds = %647
  %651 = load i32, ptr %26, align 4, !tbaa !14
  %652 = load i32, ptr %82, align 4, !tbaa !14
  %653 = icmp eq i32 %651, %652
  br i1 %653, label %663, label %654

654:                                              ; preds = %650, %647
  %655 = load ptr, ptr %10, align 8, !tbaa !5
  %656 = icmp ne ptr %655, null
  br i1 %656, label %657, label %661

657:                                              ; preds = %654
  %658 = load i32, ptr %29, align 4, !tbaa !14
  %659 = load i32, ptr %82, align 4, !tbaa !14
  %660 = icmp eq i32 %658, %659
  br label %661

661:                                              ; preds = %657, %654
  %662 = phi i1 [ false, %654 ], [ %660, %657 ]
  br label %663

663:                                              ; preds = %661, %650
  %664 = phi i1 [ true, %650 ], [ %662, %661 ]
  %665 = zext i1 %664 to i8
  store i8 %665, ptr %92, align 1, !tbaa !12
  %666 = load i8, ptr %92, align 1, !tbaa !12, !range !29, !noundef !30
  %667 = trunc i8 %666 to i1
  br i1 %667, label %668, label %669

668:                                              ; preds = %663
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %14)
  br label %669

669:                                              ; preds = %668, %663
  %670 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  %671 = load i32, ptr %82, align 4, !tbaa !14
  %672 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %670, i64 noundef 32, ptr noundef @.str.68, i32 noundef %671)
  %673 = load i32, ptr %82, align 4, !tbaa !14
  %674 = icmp slt i32 %673, 1970
  br i1 %674, label %678, label %675

675:                                              ; preds = %669
  %676 = load i32, ptr %82, align 4, !tbaa !14
  %677 = icmp sgt i32 %676, 3000
  br i1 %677, label %678, label %679

678:                                              ; preds = %675, %669
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %18)
  br label %688

679:                                              ; preds = %675
  %680 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  %681 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %680, ptr noundef nonnull align 4 dereferenceable(8) %18)
  br i1 %681, label %682, label %687

682:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 16, ptr %93) #8
  %683 = load i32, ptr %82, align 4, !tbaa !14
  %684 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %683, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  store { i64, i32 } %684, ptr %94, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %93, ptr align 8 %94, i64 12, i1 false)
  %685 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %685, ptr align 8 %93, i64 12, i1 false), !tbaa.struct !21
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #8
  %686 = load ptr, ptr %7, align 8, !tbaa !5
  store i32 1, ptr %686, align 4, !tbaa !14
  br label %687

687:                                              ; preds = %682, %679
  br label %688

688:                                              ; preds = %687, %678
  %689 = load i8, ptr %92, align 1, !tbaa !12, !range !29, !noundef !30
  %690 = trunc i8 %689 to i1
  br i1 %690, label %691, label %692

691:                                              ; preds = %688
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %692

692:                                              ; preds = %691, %688
  %693 = load i32, ptr %91, align 4, !tbaa !14
  %694 = icmp ne i32 %693, 3
  br i1 %694, label %695, label %696

695:                                              ; preds = %692
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  br label %696

696:                                              ; preds = %695, %692
  %697 = load i32, ptr %82, align 4, !tbaa !14
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr %82, align 4, !tbaa !14
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #8
  br label %699

699:                                              ; preds = %696
  %700 = load i32, ptr %91, align 4, !tbaa !14
  %701 = add nsw i32 %700, 1
  store i32 %701, ptr %91, align 4, !tbaa !14
  br label %643, !llvm.loop !36

702:                                              ; preds = %646
  br label %703

703:                                              ; preds = %702
  %704 = load i32, ptr %90, align 4, !tbaa !14
  %705 = add nsw i32 %704, 1
  store i32 %705, ptr %90, align 4, !tbaa !14
  br label %638, !llvm.loop !37

706:                                              ; preds = %641
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %707

707:                                              ; preds = %706, %582
  br label %708

708:                                              ; preds = %707, %581
  br label %709

709:                                              ; preds = %708, %454
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 1)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  call void @_ZN5ImGui8EndGroupEv()
  call void @_ZN5ImGui5PopIDEv()
  %710 = load i8, ptr %20, align 1, !tbaa !12, !range !29, !noundef !30
  %711 = trunc i8 %710 to i1
  store i32 1, ptr %54, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  ret i1 %711
}

declare noundef float @_ZN5ImGui14GetFrameHeightEv() #6

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

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

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) #6

declare void @_ZN5ImGui6PushIDEi(i32 noundef) #6

declare void @_ZN5ImGui5PopIDEv() #6

declare noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv() #6

declare void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) #6

declare void @_ZN5ImGui6PushIDEPKc(ptr noundef) #6

declare void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef, ptr noundef nonnull align 4 dereferenceable(16)) #6

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) #6

declare void @_ZN5ImGui10BeginGroupEv() #6

declare void @_ZN5ImGui8EndGroupEv() #6

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

declare void @_ZN5ImGui12PushItemFlagEib(i32 noundef, i1 noundef zeroext) #6

declare void @_ZN5ImGui11PopItemFlagEv() #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"="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 #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 = !{i64 0, i64 4, !10, i64 4, i64 4, !10, i64 8, i64 4, !10, i64 12, i64 4, !10}
!10 = !{!11, !11, i64 0}
!11 = !{!"float", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"bool", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = !{!17, !15, i64 16}
!17 = !{!"_ZTS2tm", !15, i64 0, !15, i64 4, !15, i64 8, !15, i64 12, !15, i64 16, !15, i64 20, !15, i64 24, !15, i64 28, !15, i64 32, !18, i64 40, !6, i64 48}
!18 = !{!"long", !7, i64 0}
!19 = !{!17, !15, i64 12}
!20 = !{!17, !15, i64 20}
!21 = !{i64 0, i64 8, !22, i64 8, i64 4, !14}
!22 = !{!18, !18, i64 0}
!23 = !{!17, !15, i64 24}
!24 = !{!25, !11, i64 0}
!25 = !{!"_ZTS6ImVec2", !11, i64 0, !11, i64 4}
!26 = !{i64 0, i64 4, !10, i64 4, i64 4, !10}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{i8 0, i8 2}
!30 = !{}
!31 = distinct !{!31, !28}
!32 = distinct !{!32, !28}
!33 = !{!25, !11, i64 4}
!34 = distinct !{!34, !28}
!35 = distinct !{!35, !28}
!36 = distinct !{!36, !28}
!37 = distinct !{!37, !28}


; 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.ImVec4 = type { float, float, float, float }
%struct.ImVec2 = type { float, float }
%struct.ImPlotTime = type <{ i64, i32, [4 x i8] }>

@GImPlot = external dso_local local_unnamed_addr global ptr, align 8
@.str.68 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN6ImPlotL11MONTH_ABRVSE = external hidden local_unnamed_addr global [12 x ptr], align 16
@_ZN6ImPlotL11MONTH_NAMESE = external hidden local_unnamed_addr global [12 x ptr], align 16
@.str.404 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZN6ImPlotL8WD_ABRVSE = external hidden local_unnamed_addr global [7 x ptr], align 16
@.str.406 = external hidden unnamed_addr constant [6 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 nounwind uwtable
declare dso_local void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef, float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6ImPlot7GetYearERK10ImPlotTime(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZN6ImPlotL14GetDaysInMonthEii(i32 noundef, i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12), i32 noundef) local_unnamed_addr #3

declare noundef i32 @_Z14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext) local_unnamed_addr #5

declare void @_ZN5ImGui8SameLineEff(float noundef, float noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN6ImPlot14ShowDatePickerEPKcPiP10ImPlotTimePKS3_S6_(ptr noundef %0, ptr nocapture noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4) local_unnamed_addr #7 {
  %6 = alloca %struct.ImVec4, align 4
  %7 = alloca %struct.ImVec4, align 4
  %8 = alloca %struct.ImVec4, align 4
  %9 = alloca %struct.ImVec4, align 4
  %10 = alloca %struct.ImVec2, align 4
  %11 = alloca %struct.ImVec2, align 8
  %12 = alloca [32 x i8], align 16
  %13 = alloca %struct.ImPlotTime, align 8
  %14 = alloca %struct.ImVec2, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  tail call void @_ZN5ImGui6PushIDEPKc(ptr noundef %0)
  tail call void @_ZN5ImGui10BeginGroupEv()
  %17 = tail call noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv()
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #8
  %18 = getelementptr inbounds i8, ptr %17, i64 220
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %6, ptr noundef nonnull align 4 dereferenceable(16) %18, i64 16, i1 false), !tbaa.struct !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #8
  %19 = getelementptr inbounds i8, ptr %17, i64 236
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %7, ptr noundef nonnull align 4 dereferenceable(16) %19, i64 16, i1 false), !tbaa.struct !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #8
  %20 = getelementptr inbounds i8, ptr %17, i64 556
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %8, ptr noundef nonnull align 4 dereferenceable(16) %20, i64 16, i1 false), !tbaa.struct !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #8
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %9, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %9)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 14, ptr noundef nonnull align 4 dereferenceable(8) %10)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  %21 = call noundef float @_ZN5ImGui14GetFrameHeightEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %22 = fmul float %21, 1.250000e+00
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef %22, float noundef %21)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8
  %23 = load ptr, ptr @GImPlot, align 8, !tbaa !10
  %24 = getelementptr inbounds i8, ptr %23, i64 992
  %.not = icmp ne ptr %3, null
  br i1 %.not, label %25, label %34

25:                                               ; preds = %5
  %26 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %3, ptr noundef nonnull %24)
  %27 = getelementptr inbounds i8, ptr %23, i64 1008
  %28 = load i32, ptr %27, align 8, !tbaa !12
  %29 = getelementptr inbounds i8, ptr %23, i64 1004
  %30 = load i32, ptr %29, align 4, !tbaa !16
  %31 = getelementptr inbounds i8, ptr %23, i64 1012
  %32 = load i32, ptr %31, align 4, !tbaa !17
  %33 = add nsw i32 %32, 1900
  br label %34

34:                                               ; preds = %25, %5
  %.0291 = phi i32 [ %33, %25 ], [ 0, %5 ]
  %.0290 = phi i32 [ %30, %25 ], [ 0, %5 ]
  %.0289 = phi i32 [ %28, %25 ], [ 0, %5 ]
  %.0291.fr = freeze i32 %.0291
  %35 = icmp ne ptr %4, null
  br i1 %35, label %36, label %45

36:                                               ; preds = %34
  %37 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %4, ptr noundef nonnull %24)
  %38 = getelementptr inbounds i8, ptr %23, i64 1008
  %39 = load i32, ptr %38, align 8, !tbaa !12
  %40 = getelementptr inbounds i8, ptr %23, i64 1004
  %41 = load i32, ptr %40, align 4, !tbaa !16
  %42 = getelementptr inbounds i8, ptr %23, i64 1012
  %43 = load i32, ptr %42, align 4, !tbaa !17
  %44 = add nsw i32 %43, 1900
  br label %45

45:                                               ; preds = %36, %34
  %.0296 = phi i32 [ %44, %36 ], [ 0, %34 ]
  %.0293 = phi i32 [ %41, %36 ], [ 0, %34 ]
  %.0292 = phi i32 [ %39, %36 ], [ 0, %34 ]
  %46 = load i32, ptr %1, align 4, !tbaa !18
  switch i32 %46, label %.loopexit [
    i32 0, label %47
    i32 1, label %160
    i32 2, label %341
  ]

47:                                               ; preds = %45
  %48 = call { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12) %2, i32 noundef 5)
  %.fca.0.extract207 = extractvalue { i64, i32 } %48, 0
  %.fca.1.extract208 = extractvalue { i64, i32 } %48, 1
  store i64 %.fca.0.extract207, ptr %2, align 8, !tbaa !19
  %.sroa.4212.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 8
  store i32 %.fca.1.extract208, ptr %.sroa.4212.0..sroa_idx, align 8, !tbaa !18
  %49 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %2, ptr noundef nonnull %24)
  %50 = getelementptr inbounds i8, ptr %23, i64 1012
  %51 = load i32, ptr %50, align 4, !tbaa !17
  %52 = add nsw i32 %51, 1900
  %53 = add nsw i32 %51, 1899
  %54 = add nsw i32 %51, 1901
  %55 = getelementptr inbounds i8, ptr %23, i64 1008
  %56 = load i32, ptr %55, align 8, !tbaa !12
  %57 = icmp eq i32 %56, 0
  %58 = add nsw i32 %56, -1
  %59 = select i1 %57, i32 11, i32 %58
  %60 = icmp eq i32 %56, 11
  %61 = add nsw i32 %56, 1
  %62 = select i1 %60, i32 0, i32 %61
  %63 = call noundef i32 @_ZN6ImPlotL14GetDaysInMonthEii(i32 noundef %52, i32 noundef %56)
  %64 = select i1 %57, i32 %53, i32 %52
  %65 = call noundef i32 @_ZN6ImPlotL14GetDaysInMonthEii(i32 noundef %64, i32 noundef %59)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #8
  %66 = call { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12) %2, i32 noundef 6)
  %.fca.0.extract170 = extractvalue { i64, i32 } %66, 0
  %.fca.1.extract171 = extractvalue { i64, i32 } %66, 1
  store i64 %.fca.0.extract170, ptr %13, align 8
  %.sroa.2173.0..sroa_idx = getelementptr inbounds i8, ptr %13, i64 8
  store i32 %.fca.1.extract171, ptr %.sroa.2173.0..sroa_idx, align 8
  %67 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %13, ptr noundef nonnull %24)
  %68 = getelementptr inbounds i8, ptr %23, i64 1016
  %69 = load i32, ptr %68, align 8, !tbaa !20
  %70 = sext i32 %56 to i64
  %71 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_NAMESE, i64 0, i64 %70
  %72 = load ptr, ptr %71, align 8, !tbaa !10
  %73 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %12, i64 noundef 32, ptr noundef nonnull @.str.71, ptr noundef %72, i32 noundef %52)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %14, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %74 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull %12, ptr noundef nonnull align 4 dereferenceable(8) %14)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  br i1 %74, label %75, label %76

75:                                               ; preds = %47
  store i32 1, ptr %1, align 4, !tbaa !18
  br label %76

76:                                               ; preds = %75, %47
  %77 = load float, ptr %11, align 8, !tbaa !21
  %78 = fmul float %77, 5.000000e+00
  call void @_ZN5ImGui8SameLineEff(float noundef %78, float noundef -1.000000e+00)
  %79 = icmp slt i32 %51, 71
  %80 = and i1 %79, %57
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %80)
  %.sroa.0167.0.copyload = load <2 x float>, ptr %11, align 8
  %81 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef nonnull @.str.404, i32 noundef 2, <2 x float> %.sroa.0167.0.copyload, i32 noundef 0)
  br i1 %81, label %82, label %84

82:                                               ; preds = %76
  %83 = call { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12) %2, i32 noundef 6, i32 noundef -1)
  %.fca.0.extract160 = extractvalue { i64, i32 } %83, 0
  %.fca.1.extract161 = extractvalue { i64, i32 } %83, 1
  store i64 %.fca.0.extract160, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract161, ptr %.sroa.4212.0..sroa_idx, align 8, !tbaa !18
  br label %84

84:                                               ; preds = %82, %76
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %80)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %85 = icmp sgt i32 %51, 1098
  %86 = and i1 %85, %60
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %86)
  %.sroa.0159.0.copyload = load <2 x float>, ptr %11, align 8
  %87 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef nonnull @.str.405, i32 noundef 3, <2 x float> %.sroa.0159.0.copyload, i32 noundef 0)
  br i1 %87, label %88, label %90

88:                                               ; preds = %84
  %89 = call { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12) %2, i32 noundef 6, i32 noundef 1)
  %.fca.0.extract152 = extractvalue { i64, i32 } %89, 0
  %.fca.1.extract153 = extractvalue { i64, i32 } %89, 1
  store i64 %.fca.0.extract152, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract153, ptr %.sroa.4212.0..sroa_idx, align 8, !tbaa !18
  br label %90

90:                                               ; preds = %84, %88
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %86)
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 4, i1 noundef zeroext true)
  %91 = load ptr, ptr @_ZN6ImPlotL8WD_ABRVSE, align 16, !tbaa !10
  %92 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %91, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %93 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL8WD_ABRVSE, i64 8), align 8, !tbaa !10
  %94 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %93, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %95 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL8WD_ABRVSE, i64 16), align 16, !tbaa !10
  %96 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %95, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %97 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL8WD_ABRVSE, i64 24), align 8, !tbaa !10
  %98 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %97, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %99 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL8WD_ABRVSE, i64 32), align 16, !tbaa !10
  %100 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %99, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %101 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL8WD_ABRVSE, i64 40), align 8, !tbaa !10
  %102 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %101, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %103 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL8WD_ABRVSE, i64 48), align 16, !tbaa !10
  %104 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %103, ptr noundef nonnull align 4 dereferenceable(8) %11)
  call void @_ZN5ImGui11PopItemFlagEv()
  %105 = icmp slt i32 %69, 1
  %106 = zext i1 %105 to i32
  %107 = add i32 %65, 1
  %108 = sub i32 %107, %69
  %109 = select i1 %105, i32 1, i32 %108
  %.not325 = xor i1 %35, true
  br label %.preheader

.preheader:                                       ; preds = %90, %113
  %.0371 = phi i8 [ 0, %90 ], [ %.2, %113 ]
  %.0298370 = phi i32 [ %106, %90 ], [ %.2300.fr, %113 ]
  %.0301369 = phi i32 [ %109, %90 ], [ %114, %113 ]
  %.0304368 = phi i32 [ 0, %90 ], [ %115, %113 ]
  %110 = mul nuw nsw i32 %.0304368, 7
  br label %116

111:                                              ; preds = %113
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  %112 = trunc nuw i8 %.2 to i1
  br label %.loopexit

113:                                              ; preds = %156
  %114 = add nsw i32 %.2303, 1
  %115 = add nuw nsw i32 %.0304368, 1
  %exitcond411.not = icmp eq i32 %115, 6
  br i1 %exitcond411.not, label %111, label %.preheader, !llvm.loop !23

116:                                              ; preds = %157, %.preheader
  %.1367 = phi i8 [ %.0371, %.preheader ], [ %.2, %157 ]
  %.1299366 = phi i32 [ %.0298370, %.preheader ], [ %.2300.fr, %157 ]
  %.1302365 = phi i32 [ %.0301369, %.preheader ], [ %158, %157 ]
  %.0305364 = phi i32 [ 0, %.preheader ], [ %159, %157 ]
  %117 = icmp eq i32 %.1299366, 0
  %118 = icmp sgt i32 %.1302365, %65
  %or.cond320 = select i1 %117, i1 %118, i1 false
  br i1 %or.cond320, label %select.unfold, label %119

119:                                              ; preds = %116
  %120 = icmp eq i32 %.1299366, 1
  br i1 %120, label %121, label %select.unfold

121:                                              ; preds = %119
  %122 = icmp sgt i32 %.1302365, %63
  %spec.select337 = select i1 %122, i32 1, i32 %.1302365
  %spec.select338 = select i1 %122, i32 2, i32 1
  br label %select.unfold

select.unfold:                                    ; preds = %121, %116, %119
  %.2303 = phi i32 [ %.1302365, %119 ], [ 1, %116 ], [ %spec.select337, %121 ]
  %.2300 = phi i32 [ %.1299366, %119 ], [ 1, %116 ], [ %spec.select338, %121 ]
  %.2300.fr = freeze i32 %.2300
  %123 = icmp eq i32 %.2300.fr, 0
  %124 = or i32 %.2300.fr, %56
  %or.cond = icmp eq i32 %124, 0
  %125 = icmp eq i32 %.2300.fr, 2
  %or.cond3 = and i1 %60, %125
  %126 = select i1 %or.cond3, i32 %54, i32 %52
  %127 = select i1 %or.cond, i32 %53, i32 %126
  %128 = icmp eq i32 %.2300.fr, 1
  %spec.select339 = select i1 %128, i32 %56, i32 %62
  %129 = select i1 %123, i32 %59, i32 %spec.select339
  %130 = icmp eq i32 %.0289, %129
  %or.cond322 = select i1 %.not, i1 %130, i1 false
  %131 = icmp eq i32 %.0291.fr, %127
  %or.cond323 = select i1 %or.cond322, i1 %131, i1 false
  %132 = icmp eq i32 %.0290, %.2303
  %or.cond324 = select i1 %or.cond323, i1 %132, i1 false
  %brmerge = or i1 %or.cond324, %.not325
  br i1 %brmerge, label %137, label %133

133:                                              ; preds = %select.unfold
  %134 = icmp eq i32 %.0292, %129
  %135 = icmp eq i32 %.0296, %127
  %or.cond326 = select i1 %134, i1 %135, i1 false
  %136 = icmp eq i32 %.0293, %.2303
  %spec.select336 = select i1 %or.cond326, i1 %136, i1 false
  br label %137

137:                                              ; preds = %133, %select.unfold
  %138 = phi i1 [ %or.cond324, %select.unfold ], [ %spec.select336, %133 ]
  switch i32 %.2300.fr, label %140 [
    i32 2, label %139
    i32 0, label %139
  ]

139:                                              ; preds = %137, %137
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(16) %7)
  br label %140

140:                                              ; preds = %137, %139
  br i1 %138, label %141, label %142

141:                                              ; preds = %140
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(16) %6)
  br label %142

142:                                              ; preds = %141, %140
  %143 = add nuw nsw i32 %.0305364, %110
  call void @_ZN5ImGui6PushIDEi(i32 noundef %143)
  %144 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %12, i64 noundef 32, ptr noundef nonnull @.str.68, i32 noundef %.2303)
  switch i32 %127, label %146 [
    i32 3000, label %145
    i32 1969, label %145
  ]

145:                                              ; preds = %142, %142
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %11)
  br label %152

146:                                              ; preds = %142
  %147 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull %12, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %147, label %148, label %152

148:                                              ; preds = %146
  %149 = trunc nuw i8 %.1367 to i1
  br i1 %149, label %152, label %150

150:                                              ; preds = %148
  %151 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %127, i32 noundef %129, i32 noundef %.2303, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract105 = extractvalue { i64, i32 } %151, 0
  %.fca.1.extract106 = extractvalue { i64, i32 } %151, 1
  store i64 %.fca.0.extract105, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract106, ptr %.sroa.4212.0..sroa_idx, align 8, !tbaa !18
  br label %152

152:                                              ; preds = %146, %148, %150, %145
  %.2 = phi i8 [ %.1367, %145 ], [ %.1367, %148 ], [ 1, %150 ], [ %.1367, %146 ]
  call void @_ZN5ImGui5PopIDEv()
  br i1 %138, label %153, label %154

153:                                              ; preds = %152
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 2)
  br label %154

154:                                              ; preds = %153, %152
  switch i32 %.2300.fr, label %156 [
    i32 2, label %155
    i32 0, label %155
  ]

155:                                              ; preds = %154, %154
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %156

156:                                              ; preds = %154, %155
  %.not318 = icmp eq i32 %.0305364, 6
  br i1 %.not318, label %113, label %157

157:                                              ; preds = %156
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %158 = add nsw i32 %.2303, 1
  %159 = add nuw nsw i32 %.0305364, 1
  br label %116

160:                                              ; preds = %45
  %161 = call { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12) %2, i32 noundef 6)
  %.fca.0.extract98 = extractvalue { i64, i32 } %161, 0
  %.fca.1.extract99 = extractvalue { i64, i32 } %161, 1
  store i64 %.fca.0.extract98, ptr %2, align 8, !tbaa !19
  %.sroa.4103.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 8
  store i32 %.fca.1.extract99, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  %162 = call noundef ptr @_ZN6ImPlot7GetTimeERK10ImPlotTimeP2tm(ptr noundef nonnull align 8 dereferenceable(12) %2, ptr noundef nonnull %24)
  %163 = getelementptr inbounds i8, ptr %23, i64 1012
  %164 = load i32, ptr %163, align 4, !tbaa !17
  %165 = add nsw i32 %164, 1900
  %166 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %12, i64 noundef 32, ptr noundef nonnull @.str.68, i32 noundef %165)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %167 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull %12, ptr noundef nonnull align 4 dereferenceable(8) %15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br i1 %167, label %168, label %169

168:                                              ; preds = %160
  store i32 2, ptr %1, align 4, !tbaa !18
  br label %169

169:                                              ; preds = %168, %160
  %170 = icmp slt i32 %164, 71
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %170)
  %171 = load float, ptr %11, align 8, !tbaa !21
  %172 = fmul float %171, 5.000000e+00
  call void @_ZN5ImGui8SameLineEff(float noundef %172, float noundef -1.000000e+00)
  %.sroa.089.0.copyload = load <2 x float>, ptr %11, align 8
  %173 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef nonnull @.str.404, i32 noundef 2, <2 x float> %.sroa.089.0.copyload, i32 noundef 0)
  br i1 %173, label %174, label %176

174:                                              ; preds = %169
  %175 = call { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12) %2, i32 noundef 7, i32 noundef -1)
  %.fca.0.extract82 = extractvalue { i64, i32 } %175, 0
  %.fca.1.extract83 = extractvalue { i64, i32 } %175, 1
  store i64 %.fca.0.extract82, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract83, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  br label %176

176:                                              ; preds = %174, %169
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %170)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %177 = icmp sgt i32 %164, 1098
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %177)
  %.sroa.081.0.copyload = load <2 x float>, ptr %11, align 8
  %178 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef nonnull @.str.405, i32 noundef 3, <2 x float> %.sroa.081.0.copyload, i32 noundef 0)
  br i1 %178, label %179, label %181

179:                                              ; preds = %176
  %180 = call { i64, i32 } @_ZN6ImPlot7AddTimeERK10ImPlotTimeii(ptr noundef nonnull align 8 dereferenceable(12) %2, i32 noundef 7, i32 noundef 1)
  %.fca.0.extract74 = extractvalue { i64, i32 } %180, 0
  %.fca.1.extract75 = extractvalue { i64, i32 } %180, 1
  store i64 %.fca.0.extract74, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract75, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  br label %181

181:                                              ; preds = %179, %176
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %177)
  %182 = load <2 x float>, ptr %11, align 8, !tbaa !6
  %183 = fmul <2 x float> %182, <float 1.750000e+00, float 0x4002AAAAA0000000>
  store <2 x float> %183, ptr %11, align 8, !tbaa !6
  %184 = icmp eq i32 %.0291.fr, %165
  %or.cond328 = and i1 %.not, %184
  %185 = icmp eq i32 %.0296, %165
  br i1 %35, label %.preheader342.preheader, label %.split354.us

.preheader342.preheader:                          ; preds = %181
  %sext398 = sext i32 %.0289 to i64
  %sext399 = sext i32 %.0292 to i64
  br label %.preheader342

.split354.us:                                     ; preds = %181
  br i1 %or.cond328, label %.preheader342.us.us.preheader, label %.preheader342.us.preheader

.preheader342.us.preheader:                       ; preds = %.split354.us
  %186 = load ptr, ptr @_ZN6ImPlotL11MONTH_ABRVSE, align 16, !tbaa !10
  %187 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %186, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %187, label %236, label %238

.preheader342.us.us.preheader:                    ; preds = %.split354.us
  %sext = sext i32 %.0289 to i64
  br label %.preheader342.us.us

.preheader342.us.us:                              ; preds = %.preheader342.us.us.preheader, %.split.us.us.split.us360
  %indvars.iv = phi i64 [ 0, %.preheader342.us.us.preheader ], [ %indvars.iv.next393, %.split.us.us.split.us360 ]
  %.0308352.us.us = phi i32 [ 0, %.preheader342.us.us.preheader ], [ %235, %.split.us.us.split.us360 ]
  %188 = icmp eq i64 %indvars.iv, %sext
  br i1 %188, label %189, label %190

189:                                              ; preds = %.preheader342.us.us
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %190

190:                                              ; preds = %189, %.preheader342.us.us
  %191 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 0, i64 %indvars.iv
  %192 = load ptr, ptr %191, align 16, !tbaa !10
  %193 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %192, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %193, label %194, label %197

194:                                              ; preds = %190
  %195 = trunc nuw nsw i64 %indvars.iv to i32
  %196 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %.0291.fr, i32 noundef %195, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us357 = extractvalue { i64, i32 } %196, 0
  %.fca.1.extract56.us.us.us358 = extractvalue { i64, i32 } %196, 1
  store i64 %.fca.0.extract55.us.us.us357, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us358, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %197

197:                                              ; preds = %194, %190
  br i1 %188, label %198, label %199

198:                                              ; preds = %197
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %199

199:                                              ; preds = %198, %197
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %indvars.iv.next = or disjoint i64 %indvars.iv, 1
  %200 = icmp eq i64 %indvars.iv.next, %sext
  br i1 %200, label %201, label %202

201:                                              ; preds = %199
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %202

202:                                              ; preds = %201, %199
  %203 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 0, i64 %indvars.iv.next
  %204 = load ptr, ptr %203, align 8, !tbaa !10
  %205 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %204, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %205, label %206, label %209

206:                                              ; preds = %202
  %207 = trunc nsw i64 %indvars.iv.next to i32
  %208 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %.0291.fr, i32 noundef %207, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us357.1 = extractvalue { i64, i32 } %208, 0
  %.fca.1.extract56.us.us.us358.1 = extractvalue { i64, i32 } %208, 1
  store i64 %.fca.0.extract55.us.us.us357.1, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us358.1, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %209

209:                                              ; preds = %206, %202
  br i1 %200, label %210, label %211

210:                                              ; preds = %209
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %211

211:                                              ; preds = %210, %209
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %indvars.iv.next.1 = or disjoint i64 %indvars.iv, 2
  %212 = icmp eq i64 %indvars.iv.next.1, %sext
  br i1 %212, label %213, label %214

213:                                              ; preds = %211
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %214

214:                                              ; preds = %213, %211
  %215 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 0, i64 %indvars.iv.next.1
  %216 = load ptr, ptr %215, align 16, !tbaa !10
  %217 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %216, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %217, label %218, label %221

218:                                              ; preds = %214
  %219 = trunc nsw i64 %indvars.iv.next.1 to i32
  %220 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %.0291.fr, i32 noundef %219, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us357.2 = extractvalue { i64, i32 } %220, 0
  %.fca.1.extract56.us.us.us358.2 = extractvalue { i64, i32 } %220, 1
  store i64 %.fca.0.extract55.us.us.us357.2, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us358.2, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %221

221:                                              ; preds = %218, %214
  br i1 %212, label %222, label %223

222:                                              ; preds = %221
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %223

223:                                              ; preds = %222, %221
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %indvars.iv.next.2 = or disjoint i64 %indvars.iv, 3
  %224 = icmp eq i64 %indvars.iv.next.2, %sext
  br i1 %224, label %225, label %226

225:                                              ; preds = %223
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %226

226:                                              ; preds = %225, %223
  %227 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 0, i64 %indvars.iv.next.2
  %228 = load ptr, ptr %227, align 8, !tbaa !10
  %229 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %228, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %229, label %230, label %233

230:                                              ; preds = %226
  %231 = trunc nsw i64 %indvars.iv.next.2 to i32
  %232 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %.0291.fr, i32 noundef %231, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us357.3 = extractvalue { i64, i32 } %232, 0
  %.fca.1.extract56.us.us.us358.3 = extractvalue { i64, i32 } %232, 1
  store i64 %.fca.0.extract55.us.us.us357.3, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us358.3, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %233

233:                                              ; preds = %230, %226
  br i1 %224, label %234, label %.split.us.us.split.us360

234:                                              ; preds = %233
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %.split.us.us.split.us360

.split.us.us.split.us360:                         ; preds = %233, %234
  %indvars.iv.next393 = add nuw nsw i64 %indvars.iv, 4
  %235 = add nuw nsw i32 %.0308352.us.us, 1
  %exitcond395.not = icmp eq i32 %235, 3
  br i1 %exitcond395.not, label %.loopexit, label %.preheader342.us.us, !llvm.loop !25

236:                                              ; preds = %.preheader342.us.preheader
  %237 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us = extractvalue { i64, i32 } %237, 0
  %.fca.1.extract56.us.us.us = extractvalue { i64, i32 } %237, 1
  store i64 %.fca.0.extract55.us.us.us, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %238

238:                                              ; preds = %236, %.preheader342.us.preheader
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %239 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 8), align 8, !tbaa !10
  %240 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %239, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %240, label %241, label %243

241:                                              ; preds = %238
  %242 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 1, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.1 = extractvalue { i64, i32 } %242, 0
  %.fca.1.extract56.us.us.us.1 = extractvalue { i64, i32 } %242, 1
  store i64 %.fca.0.extract55.us.us.us.1, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.1, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %243

243:                                              ; preds = %241, %238
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %244 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 16), align 16, !tbaa !10
  %245 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %244, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %245, label %246, label %248

246:                                              ; preds = %243
  %247 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 2, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.2 = extractvalue { i64, i32 } %247, 0
  %.fca.1.extract56.us.us.us.2 = extractvalue { i64, i32 } %247, 1
  store i64 %.fca.0.extract55.us.us.us.2, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.2, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %248

248:                                              ; preds = %246, %243
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %249 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 24), align 8, !tbaa !10
  %250 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %249, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %250, label %251, label %.split.us.us.split.us

251:                                              ; preds = %248
  %252 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 3, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.3 = extractvalue { i64, i32 } %252, 0
  %.fca.1.extract56.us.us.us.3 = extractvalue { i64, i32 } %252, 1
  store i64 %.fca.0.extract55.us.us.us.3, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.3, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %.split.us.us.split.us

.split.us.us.split.us:                            ; preds = %251, %248
  %.pre = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 32), align 16, !tbaa !10
  %253 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %.pre, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %253, label %254, label %256

254:                                              ; preds = %.split.us.us.split.us
  %255 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 4, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.1385 = extractvalue { i64, i32 } %255, 0
  %.fca.1.extract56.us.us.us.1386 = extractvalue { i64, i32 } %255, 1
  store i64 %.fca.0.extract55.us.us.us.1385, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.1386, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %256

256:                                              ; preds = %254, %.split.us.us.split.us
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %257 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 40), align 8, !tbaa !10
  %258 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %257, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %258, label %259, label %261

259:                                              ; preds = %256
  %260 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 5, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.1.1 = extractvalue { i64, i32 } %260, 0
  %.fca.1.extract56.us.us.us.1.1 = extractvalue { i64, i32 } %260, 1
  store i64 %.fca.0.extract55.us.us.us.1.1, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.1.1, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %261

261:                                              ; preds = %259, %256
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %262 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 48), align 16, !tbaa !10
  %263 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %262, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %263, label %264, label %266

264:                                              ; preds = %261
  %265 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 6, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.2.1 = extractvalue { i64, i32 } %265, 0
  %.fca.1.extract56.us.us.us.2.1 = extractvalue { i64, i32 } %265, 1
  store i64 %.fca.0.extract55.us.us.us.2.1, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.2.1, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %266

266:                                              ; preds = %264, %261
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %267 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 56), align 8, !tbaa !10
  %268 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %267, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %268, label %269, label %.split.us.us.split.us.1

269:                                              ; preds = %266
  %270 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 7, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.3.1 = extractvalue { i64, i32 } %270, 0
  %.fca.1.extract56.us.us.us.3.1 = extractvalue { i64, i32 } %270, 1
  store i64 %.fca.0.extract55.us.us.us.3.1, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.3.1, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %.split.us.us.split.us.1

.split.us.us.split.us.1:                          ; preds = %269, %266
  %.pre420 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 64), align 16, !tbaa !10
  %271 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %.pre420, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %271, label %272, label %274

272:                                              ; preds = %.split.us.us.split.us.1
  %273 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 8, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.2388 = extractvalue { i64, i32 } %273, 0
  %.fca.1.extract56.us.us.us.2389 = extractvalue { i64, i32 } %273, 1
  store i64 %.fca.0.extract55.us.us.us.2388, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.2389, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %274

274:                                              ; preds = %272, %.split.us.us.split.us.1
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %275 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 72), align 8, !tbaa !10
  %276 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %275, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %276, label %277, label %279

277:                                              ; preds = %274
  %278 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 9, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.1.2 = extractvalue { i64, i32 } %278, 0
  %.fca.1.extract56.us.us.us.1.2 = extractvalue { i64, i32 } %278, 1
  store i64 %.fca.0.extract55.us.us.us.1.2, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.1.2, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %279

279:                                              ; preds = %277, %274
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %280 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 80), align 16, !tbaa !10
  %281 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %280, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %281, label %282, label %284

282:                                              ; preds = %279
  %283 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 10, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.2.2 = extractvalue { i64, i32 } %283, 0
  %.fca.1.extract56.us.us.us.2.2 = extractvalue { i64, i32 } %283, 1
  store i64 %.fca.0.extract55.us.us.us.2.2, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.2.2, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %284

284:                                              ; preds = %282, %279
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %285 = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 88), align 8, !tbaa !10
  %286 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %285, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %286, label %287, label %.loopexit

287:                                              ; preds = %284
  %288 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef 11, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.us.us.us.3.2 = extractvalue { i64, i32 } %288, 0
  %.fca.1.extract56.us.us.us.3.2 = extractvalue { i64, i32 } %288, 1
  store i64 %.fca.0.extract55.us.us.us.3.2, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.us.us.us.3.2, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %.loopexit

.preheader342:                                    ; preds = %.preheader342.preheader, %.split
  %indvars.iv402 = phi i64 [ 0, %.preheader342.preheader ], [ %indvars.iv.next403, %.split ]
  %.0308352 = phi i32 [ 0, %.preheader342.preheader ], [ %340, %.split ]
  %289 = icmp eq i64 %indvars.iv402, %sext398
  %or.cond329 = select i1 %or.cond328, i1 %289, i1 false
  %290 = icmp eq i64 %indvars.iv402, %sext399
  %spec.select333 = select i1 %185, i1 %290, i1 false
  %or.cond372 = select i1 %or.cond329, i1 true, i1 %spec.select333
  br i1 %or.cond372, label %291, label %292

291:                                              ; preds = %.preheader342
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %292

292:                                              ; preds = %.preheader342, %291
  %293 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 0, i64 %indvars.iv402
  %294 = load ptr, ptr %293, align 16, !tbaa !10
  %295 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %294, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %295, label %296, label %299

296:                                              ; preds = %292
  %297 = trunc nuw nsw i64 %indvars.iv402 to i32
  %298 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef %297, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55 = extractvalue { i64, i32 } %298, 0
  %.fca.1.extract56 = extractvalue { i64, i32 } %298, 1
  store i64 %.fca.0.extract55, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %299

299:                                              ; preds = %296, %292
  br i1 %or.cond372, label %300, label %301

300:                                              ; preds = %299
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %301

301:                                              ; preds = %300, %299
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %indvars.iv.next397 = or disjoint i64 %indvars.iv402, 1
  %302 = icmp eq i64 %indvars.iv.next397, %sext398
  %or.cond329.1 = select i1 %or.cond328, i1 %302, i1 false
  %303 = icmp eq i64 %indvars.iv.next397, %sext399
  %spec.select333.1 = select i1 %185, i1 %303, i1 false
  %or.cond372.1 = select i1 %or.cond329.1, i1 true, i1 %spec.select333.1
  br i1 %or.cond372.1, label %304, label %305

304:                                              ; preds = %301
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %305

305:                                              ; preds = %304, %301
  %306 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 0, i64 %indvars.iv.next397
  %307 = load ptr, ptr %306, align 8, !tbaa !10
  %308 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %307, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %308, label %309, label %312

309:                                              ; preds = %305
  %310 = trunc nsw i64 %indvars.iv.next397 to i32
  %311 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef %310, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.1 = extractvalue { i64, i32 } %311, 0
  %.fca.1.extract56.1 = extractvalue { i64, i32 } %311, 1
  store i64 %.fca.0.extract55.1, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.1, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %312

312:                                              ; preds = %309, %305
  br i1 %or.cond372.1, label %313, label %314

313:                                              ; preds = %312
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %314

314:                                              ; preds = %313, %312
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %indvars.iv.next397.1 = or disjoint i64 %indvars.iv402, 2
  %315 = icmp eq i64 %indvars.iv.next397.1, %sext398
  %or.cond329.2 = select i1 %or.cond328, i1 %315, i1 false
  %316 = icmp eq i64 %indvars.iv.next397.1, %sext399
  %spec.select333.2 = select i1 %185, i1 %316, i1 false
  %or.cond372.2 = select i1 %or.cond329.2, i1 true, i1 %spec.select333.2
  br i1 %or.cond372.2, label %317, label %318

317:                                              ; preds = %314
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %318

318:                                              ; preds = %317, %314
  %319 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 0, i64 %indvars.iv.next397.1
  %320 = load ptr, ptr %319, align 16, !tbaa !10
  %321 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %320, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %321, label %322, label %325

322:                                              ; preds = %318
  %323 = trunc nsw i64 %indvars.iv.next397.1 to i32
  %324 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef %323, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.2 = extractvalue { i64, i32 } %324, 0
  %.fca.1.extract56.2 = extractvalue { i64, i32 } %324, 1
  store i64 %.fca.0.extract55.2, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.2, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %325

325:                                              ; preds = %322, %318
  br i1 %or.cond372.2, label %326, label %327

326:                                              ; preds = %325
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %327

327:                                              ; preds = %326, %325
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %indvars.iv.next397.2 = or disjoint i64 %indvars.iv402, 3
  %328 = icmp eq i64 %indvars.iv.next397.2, %sext398
  %or.cond329.3 = select i1 %or.cond328, i1 %328, i1 false
  %329 = icmp eq i64 %indvars.iv.next397.2, %sext399
  %spec.select333.3 = select i1 %185, i1 %329, i1 false
  %or.cond372.3 = select i1 %or.cond329.3, i1 true, i1 %spec.select333.3
  br i1 %or.cond372.3, label %330, label %331

330:                                              ; preds = %327
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %331

331:                                              ; preds = %330, %327
  %332 = getelementptr inbounds [12 x ptr], ptr @_ZN6ImPlotL11MONTH_ABRVSE, i64 0, i64 %indvars.iv.next397.2
  %333 = load ptr, ptr %332, align 8, !tbaa !10
  %334 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef %333, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %334, label %335, label %338

335:                                              ; preds = %331
  %336 = trunc nsw i64 %indvars.iv.next397.2 to i32
  %337 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %165, i32 noundef %336, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract55.3 = extractvalue { i64, i32 } %337, 0
  %.fca.1.extract56.3 = extractvalue { i64, i32 } %337, 1
  store i64 %.fca.0.extract55.3, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract56.3, ptr %.sroa.4103.0..sroa_idx, align 8, !tbaa !18
  store i32 0, ptr %1, align 4, !tbaa !18
  br label %338

338:                                              ; preds = %335, %331
  br i1 %or.cond372.3, label %339, label %.split

339:                                              ; preds = %338
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %.split

.split:                                           ; preds = %338, %339
  %indvars.iv.next403 = add nuw nsw i64 %indvars.iv402, 4
  %340 = add nuw nsw i32 %.0308352, 1
  %exitcond405.not = icmp eq i32 %340, 3
  br i1 %exitcond405.not, label %.loopexit, label %.preheader342, !llvm.loop !25

341:                                              ; preds = %45
  %342 = call { i64, i32 } @_ZN6ImPlot9FloorTimeERK10ImPlotTimei(ptr noundef nonnull align 8 dereferenceable(12) %2, i32 noundef 7)
  %.fca.0.extract48 = extractvalue { i64, i32 } %342, 0
  %.fca.1.extract49 = extractvalue { i64, i32 } %342, 1
  store i64 %.fca.0.extract48, ptr %2, align 8, !tbaa !19
  %.sroa.453.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 8
  store i32 %.fca.1.extract49, ptr %.sroa.453.0..sroa_idx, align 8, !tbaa !18
  %343 = call noundef i32 @_ZN6ImPlot7GetYearERK10ImPlotTime(ptr noundef nonnull align 8 dereferenceable(12) %2)
  %344 = srem i32 %343, 20
  %345 = sub nsw i32 %343, %344
  call void @_ZN5ImGui12PushItemFlagEib(i32 noundef 4, i1 noundef zeroext true)
  %346 = add nsw i32 %345, 19
  %347 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %12, i64 noundef 32, ptr noundef nonnull @.str.406, i32 noundef %345, i32 noundef %346)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %348 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull %12, ptr noundef nonnull align 4 dereferenceable(8) %16)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @_ZN5ImGui11PopItemFlagEv()
  %349 = load float, ptr %11, align 8, !tbaa !21
  %350 = fmul float %349, 5.000000e+00
  call void @_ZN5ImGui8SameLineEff(float noundef %350, float noundef -1.000000e+00)
  %351 = icmp slt i32 %345, 1971
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %351)
  %.sroa.030.0.copyload = load <2 x float>, ptr %11, align 8
  %352 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef nonnull @.str.404, i32 noundef 2, <2 x float> %.sroa.030.0.copyload, i32 noundef 0)
  br i1 %352, label %353, label %356

353:                                              ; preds = %341
  %354 = add nsw i32 %345, -20
  %355 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %354, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract23 = extractvalue { i64, i32 } %355, 0
  %.fca.1.extract24 = extractvalue { i64, i32 } %355, 1
  store i64 %.fca.0.extract23, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract24, ptr %.sroa.453.0..sroa_idx, align 8, !tbaa !18
  br label %356

356:                                              ; preds = %353, %341
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %351)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %357 = icmp sgt i32 %345, 2978
  call void @_ZN6ImPlot21BeginDisabledControlsEb(i1 noundef zeroext %357)
  %.sroa.022.0.copyload = load <2 x float>, ptr %11, align 8
  %358 = call noundef zeroext i1 @_ZN5ImGui13ArrowButtonExEPKci6ImVec2i(ptr noundef nonnull @.str.405, i32 noundef 3, <2 x float> %.sroa.022.0.copyload, i32 noundef 0)
  br i1 %358, label %359, label %362

359:                                              ; preds = %356
  %360 = add nsw i32 %345, 20
  %361 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %360, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract15 = extractvalue { i64, i32 } %361, 0
  %.fca.1.extract16 = extractvalue { i64, i32 } %361, 1
  store i64 %.fca.0.extract15, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract16, ptr %.sroa.453.0..sroa_idx, align 8, !tbaa !18
  br label %362

362:                                              ; preds = %359, %356
  call void @_ZN6ImPlot19EndDisabledControlsEb(i1 noundef zeroext %357)
  %363 = load <2 x float>, ptr %11, align 8, !tbaa !6
  %364 = fmul <2 x float> %363, <float 1.750000e+00, float 0x3FF6666660000000>
  store <2 x float> %364, ptr %11, align 8, !tbaa !6
  br label %.preheader343

.preheader343:                                    ; preds = %362, %423
  %.0295348 = phi i32 [ 0, %362 ], [ %425, %423 ]
  %.0310347 = phi i32 [ %345, %362 ], [ %424, %423 ]
  %365 = icmp eq i32 %.0291.fr, %.0310347
  %or.cond335 = select i1 %.not, i1 %365, i1 false
  %366 = icmp eq i32 %.0296, %.0310347
  %367 = select i1 %35, i1 %366, i1 false
  %or.cond341 = select i1 %or.cond335, i1 true, i1 %367
  br i1 %or.cond341, label %.thread, label %368

.thread:                                          ; preds = %.preheader343
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %368

368:                                              ; preds = %.preheader343, %.thread
  %369 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %12, i64 noundef 32, ptr noundef nonnull @.str.68, i32 noundef %.0310347)
  %370 = add i32 %.0310347, -3001
  %or.cond7 = icmp ult i32 %370, -1031
  br i1 %or.cond7, label %371, label %372

371:                                              ; preds = %368
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %11)
  br label %376

372:                                              ; preds = %368
  %373 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull %12, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %373, label %374, label %376

374:                                              ; preds = %372
  %375 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %.0310347, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract = extractvalue { i64, i32 } %375, 0
  %.fca.1.extract = extractvalue { i64, i32 } %375, 1
  store i64 %.fca.0.extract, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract, ptr %.sroa.453.0..sroa_idx, align 8, !tbaa !18
  store i32 1, ptr %1, align 4, !tbaa !18
  br label %376

376:                                              ; preds = %372, %374, %371
  br i1 %or.cond341, label %377, label %378

377:                                              ; preds = %376
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %378

378:                                              ; preds = %377, %376
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %379 = add nsw i32 %.0310347, 1
  %380 = icmp eq i32 %.0291.fr, %379
  %or.cond335.1 = select i1 %.not, i1 %380, i1 false
  %381 = icmp eq i32 %.0296, %379
  %382 = select i1 %35, i1 %381, i1 false
  %or.cond341.1 = select i1 %or.cond335.1, i1 true, i1 %382
  br i1 %or.cond341.1, label %.thread.1, label %383

.thread.1:                                        ; preds = %378
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %383

383:                                              ; preds = %.thread.1, %378
  %384 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %12, i64 noundef 32, ptr noundef nonnull @.str.68, i32 noundef %379)
  %385 = add i32 %.0310347, -3000
  %or.cond7.1 = icmp ult i32 %385, -1031
  br i1 %or.cond7.1, label %390, label %386

386:                                              ; preds = %383
  %387 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull %12, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %387, label %388, label %391

388:                                              ; preds = %386
  %389 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %379, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract.1 = extractvalue { i64, i32 } %389, 0
  %.fca.1.extract.1 = extractvalue { i64, i32 } %389, 1
  store i64 %.fca.0.extract.1, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract.1, ptr %.sroa.453.0..sroa_idx, align 8, !tbaa !18
  store i32 1, ptr %1, align 4, !tbaa !18
  br label %391

390:                                              ; preds = %383
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %11)
  br label %391

391:                                              ; preds = %390, %388, %386
  br i1 %or.cond341.1, label %392, label %393

392:                                              ; preds = %391
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %393

393:                                              ; preds = %392, %391
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %394 = add nsw i32 %.0310347, 2
  %395 = icmp eq i32 %.0291.fr, %394
  %or.cond335.2 = select i1 %.not, i1 %395, i1 false
  %396 = icmp eq i32 %.0296, %394
  %397 = select i1 %35, i1 %396, i1 false
  %or.cond341.2 = select i1 %or.cond335.2, i1 true, i1 %397
  br i1 %or.cond341.2, label %.thread.2, label %398

.thread.2:                                        ; preds = %393
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %398

398:                                              ; preds = %.thread.2, %393
  %399 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %12, i64 noundef 32, ptr noundef nonnull @.str.68, i32 noundef %394)
  %400 = add i32 %.0310347, -2999
  %or.cond7.2 = icmp ult i32 %400, -1031
  br i1 %or.cond7.2, label %405, label %401

401:                                              ; preds = %398
  %402 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull %12, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %402, label %403, label %406

403:                                              ; preds = %401
  %404 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %394, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract.2 = extractvalue { i64, i32 } %404, 0
  %.fca.1.extract.2 = extractvalue { i64, i32 } %404, 1
  store i64 %.fca.0.extract.2, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract.2, ptr %.sroa.453.0..sroa_idx, align 8, !tbaa !18
  store i32 1, ptr %1, align 4, !tbaa !18
  br label %406

405:                                              ; preds = %398
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %11)
  br label %406

406:                                              ; preds = %405, %403, %401
  br i1 %or.cond341.2, label %407, label %408

407:                                              ; preds = %406
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %408

408:                                              ; preds = %407, %406
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %409 = add nsw i32 %.0310347, 3
  %410 = icmp eq i32 %.0291.fr, %409
  %or.cond335.3 = select i1 %.not, i1 %410, i1 false
  %411 = icmp eq i32 %.0296, %409
  %412 = select i1 %35, i1 %411, i1 false
  %or.cond341.3 = select i1 %or.cond335.3, i1 true, i1 %412
  br i1 %or.cond341.3, label %.thread.3, label %413

.thread.3:                                        ; preds = %408
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 21, ptr noundef nonnull align 4 dereferenceable(16) %8)
  br label %413

413:                                              ; preds = %.thread.3, %408
  %414 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %12, i64 noundef 32, ptr noundef nonnull @.str.68, i32 noundef %409)
  %415 = add i32 %.0310347, -2998
  %or.cond7.3 = icmp ult i32 %415, -1031
  br i1 %or.cond7.3, label %420, label %416

416:                                              ; preds = %413
  %417 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull %12, ptr noundef nonnull align 4 dereferenceable(8) %11)
  br i1 %417, label %418, label %421

418:                                              ; preds = %416
  %419 = call { i64, i32 } @_ZN6ImPlot8MakeTimeEiiiiiii(i32 noundef %409, i32 noundef 0, i32 noundef 1, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0)
  %.fca.0.extract.3 = extractvalue { i64, i32 } %419, 0
  %.fca.1.extract.3 = extractvalue { i64, i32 } %419, 1
  store i64 %.fca.0.extract.3, ptr %2, align 8, !tbaa !19
  store i32 %.fca.1.extract.3, ptr %.sroa.453.0..sroa_idx, align 8, !tbaa !18
  store i32 1, ptr %1, align 4, !tbaa !18
  br label %421

420:                                              ; preds = %413
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %11)
  br label %421

421:                                              ; preds = %420, %418, %416
  br i1 %or.cond341.3, label %422, label %423

422:                                              ; preds = %421
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br label %423

423:                                              ; preds = %421, %422
  %424 = add nsw i32 %.0310347, 4
  %425 = add nuw nsw i32 %.0295348, 1
  %exitcond.not = icmp eq i32 %425, 5
  br i1 %exitcond.not, label %.loopexit, label %.preheader343, !llvm.loop !26

.loopexit:                                        ; preds = %423, %.split.us.us.split.us360, %.split, %287, %284, %45, %111
  %.3 = phi i1 [ %112, %111 ], [ false, %45 ], [ false, %284 ], [ false, %287 ], [ false, %.split ], [ false, %.split.us.us.split.us360 ], [ false, %423 ]
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 1)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  call void @_ZN5ImGui8EndGroupEv()
  call void @_ZN5ImGui5PopIDEv()
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #8
  ret i1 %.3
}

declare noundef float @_ZN5ImGui14GetFrameHeightEv() local_unnamed_addr #6

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

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

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) local_unnamed_addr #6

declare void @_ZN5ImGui6PushIDEi(i32 noundef) local_unnamed_addr #6

declare void @_ZN5ImGui5PopIDEv() local_unnamed_addr #6

declare noundef nonnull align 4 dereferenceable(1068) ptr @_ZN5ImGui8GetStyleEv() local_unnamed_addr #6

declare void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #6

declare void @_ZN5ImGui6PushIDEPKc(ptr noundef) local_unnamed_addr #6

declare void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef, ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #6

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) local_unnamed_addr #6

declare void @_ZN5ImGui10BeginGroupEv() local_unnamed_addr #6

declare void @_ZN5ImGui8EndGroupEv() local_unnamed_addr #6

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

declare void @_ZN5ImGui12PushItemFlagEib(i32 noundef, i1 noundef zeroext) local_unnamed_addr #6

declare void @_ZN5ImGui11PopItemFlagEv() 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"="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 #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 = !{i64 0, i64 4, !6, i64 4, i64 4, !6, i64 8, i64 4, !6, i64 12, i64 4, !6}
!6 = !{!7, !7, i64 0}
!7 = !{!"float", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !11, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!13, !14, i64 16}
!13 = !{!"_ZTS2tm", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !15, i64 40, !11, i64 48}
!14 = !{!"int", !8, i64 0}
!15 = !{!"long", !8, i64 0}
!16 = !{!13, !14, i64 12}
!17 = !{!13, !14, i64 20}
!18 = !{!14, !14, i64 0}
!19 = !{!15, !15, i64 0}
!20 = !{!13, !14, i64 24}
!21 = !{!22, !7, i64 0}
!22 = !{!"_ZTS6ImVec2", !7, i64 0, !7, i64 4}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.mustprogress"}
!25 = distinct !{!25, !24}
!26 = distinct !{!26, !24}


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