; LLVM IR from Devaniti/BoolkaEngine :: ThirdParty/imgui/imgui.ll (ZN5ImGui17ShowMetricsWindowEPb)

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

%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiContext = type <{ i8, i8, [6 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, [4 x i8], ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, [3 x i8], i32, ptr, %struct.ImVector.3, %struct.ImVector.3, %struct.ImVector.3, %struct.ImVector.3, %struct.ImGuiStorage, i32, [4 x i8], ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, float, i32, i32, i8, i8, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, [4 x i8], i64, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, [2 x i8], ptr, i32, float, %struct.ImGuiNextWindowData, %struct.ImGuiNextItemData, [4 x i8], %struct.ImVector.4, %struct.ImVector.5, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.ImRect, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, [3 x i8], i32, i32, i32, i32, i32, i32, [4 x i8], %struct.ImGuiNavMoveResult, %struct.ImGuiNavMoveResult, %struct.ImGuiNavMoveResult, ptr, i32, [4 x i8], ptr, ptr, ptr, float, float, i8, [7 x i8], ptr, ptr, i32, i32, i32, i32, i8, [7 x i8], %struct.ImDrawData, %struct.ImDrawDataBuilder, float, [4 x i8], %struct.ImDrawList, %struct.ImDrawList, i32, i8, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, [4 x i8], %struct.ImVector.18, [16 x i8], ptr, %struct.ImPool, %struct.ImVector.20, %struct.ImVector.21, %struct.ImVector.17, ptr, %struct.ImPool.22, %struct.ImVector.20, %struct.ImVector.25, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, float, float, [3 x float], %struct.ImVec4, float, i8, i8, [2 x i8], float, float, float, i32, float, %struct.ImVector.2, %struct.ImVector.7, %struct.ImVec2, %struct.ImVec2, i8, i8, [2 x i8], float, %struct.ImGuiTextBuffer, %struct.ImVector.27, %struct.ImChunkStream, %struct.ImChunkStream.28, %struct.ImVector.29, i8, [3 x i8], i32, ptr, %struct.ImGuiTextBuffer, float, i8, [3 x i8], i32, i32, i32, i8, [3 x i8], i32, %struct.ImGuiMetricsConfig, [120 x float], i32, float, i32, i32, i32, [3073 x i8], [7 x i8] }>
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [22 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [21 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, i32, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], [512 x float], [512 x float], [21 x float], [21 x float], float, i16, %struct.ImVector }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, [12 x %struct.ImVec2], [64 x i8], ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.0 }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImGuiNavMoveResult = type <{ ptr, i32, i32, float, float, float, %struct.ImRect, [4 x i8] }>
%struct.ImDrawData = type <{ i8, [7 x i8], ptr, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [4 x i8] }>
%struct.ImDrawDataBuilder = type { [2 x %struct.ImVector.11] }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.12, %struct.ImVector, %struct.ImVector.13, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.14, %struct.ImVector.15, %struct.ImVector.16, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.17 }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImPool = type <{ %struct.ImVector.19, %struct.ImGuiStorage, i32, [4 x i8] }>
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImPool.22 = type <{ %struct.ImVector.23, %struct.ImGuiStorage, i32, [4 x i8] }>
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type { i32, i32, i32, %struct.ImVector, %struct.ImVector.2, %struct.ImVector.2, i8, i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i32, ptr, ptr }
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImFont = type <{ %struct.ImVector.21, float, float, %struct.ImVector, %struct.ImVector.26, ptr, ptr, ptr, i16, i16, i16, i8, i8, float, float, float, i32, [2 x i8], [6 x i8] }>
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.2 }
%struct.ImChunkStream.28 = type { %struct.ImVector.2 }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.2 }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiWindow = type <{ ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i32, i8, i8, i8, i8, i32, i8, i8, i8, i32, i8, %struct.ImVec2, %struct.ImVec2, [4 x i8], %struct.ImVector.7, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, float, float, [4 x i8], %struct.ImGuiStorage, %struct.ImVector.30, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i8, [7 x i8] }>
%struct.ImGuiWindowTempData = type <{ %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, i32, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, [4 x i8], %struct.ImVector.3, ptr, ptr, i32, i32, i32, i32, i32, i32, float, float, %struct.ImVector.21, %struct.ImVector.21, %struct.ImGuiStackSizes, [2 x i8] }>
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type { float, float, float, [3 x float], [3 x float] }
%struct.ImGuiStackSizes = type { i16, i16, i16, i16, i16, i16, i16 }
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImGuiTable = type <{ i32, i32, ptr, %struct.ImSpan, %struct.ImSpan.31, %struct.ImSpan.32, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i16, i16, float, float, float, float, float, i32, i32, [2 x i32], i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec1, float, i32, ptr, ptr, %struct.ImGuiTextBuffer, %struct.ImDrawListSplitter, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.33, %struct.ImGuiTableSortSpecs, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.31 = type { ptr, ptr }
%struct.ImSpan.32 = type { ptr, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImGuiTableSortSpecs = type <{ ptr, i32, i8, [3 x i8] }>
%struct.ImGuiPopupData = type { i32, ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiSettingsHandler = type { ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@GImGui = external dso_local global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [22 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names = external hidden unnamed_addr constant [13 x ptr], align 16
@.str.240 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [15 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names = external hidden unnamed_addr constant [5 x ptr], align 16
@.str.292 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [3 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: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui16SetNextItemWidthEf(float noundef) #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEv() #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui10GetVersionEv() #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef, ptr noundef, i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui3EndEv() #5

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN5ImGui11GetFontSizeEv() #1

declare void @_ZN5ImGui7TreePopEv() #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8SameLineEff(float noundef, float noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6IndentEf(float noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8UnindentEf(float noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN5ImGui17GetTextLineHeightEv() #1

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui16ClearIniSettingsEv() #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef) #5

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) #7 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca [8 x ptr], align 16
  %7 = alloca [13 x ptr], align 16
  %8 = alloca %struct.ImVec2, align 4
  %9 = alloca i32, align 4
  %10 = alloca %struct.ImRect, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca %struct.ImVec2, align 4
  %15 = alloca %struct.ImVec2, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImVec2, align 4
  %18 = alloca [128 x i8], align 16
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %struct.ImRect, align 4
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca %struct.ImVec2, align 4
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImRect, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca %struct.ImVec2, align 4
  %42 = alloca [5 x ptr], align 16
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca %struct.ImRect, align 4
  %47 = alloca [32 x i8], align 16
  %48 = alloca float, align 4
  %49 = alloca %struct.ImVec2, align 4
  %50 = alloca %struct.ImVec2, align 4
  %51 = alloca i32, align 4
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca i32, align 4
  %55 = alloca %struct.ImRect, align 4
  %56 = alloca i32, align 4
  %57 = alloca float, align 4
  %58 = alloca %struct.ImRect, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %59 = load ptr, ptr %2, align 8, !tbaa !5
  %60 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.217, ptr noundef %59, i32 noundef 0)
  br i1 %60, label %62, label %61

61:                                               ; preds = %1
  call void @_ZN5ImGui3EndEv()
  br label %1063

62:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #8
  %63 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %63, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #8
  %64 = load ptr, ptr %3, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.ImGuiContext, ptr %64, i32 0, i32 3
  store ptr %65, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  %66 = load ptr, ptr %3, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.ImGuiContext, ptr %66, i32 0, i32 220
  store ptr %67, ptr %5, align 8, !tbaa !5
  %68 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.218, ptr noundef %68)
  %69 = load ptr, ptr %4, align 8, !tbaa !5
  %70 = getelementptr inbounds %struct.ImGuiIO, ptr %69, i32 0, i32 53
  %71 = load float, ptr %70, align 8, !tbaa !9
  %72 = fdiv float 1.000000e+03, %71
  %73 = fpext float %72 to double
  %74 = load ptr, ptr %4, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.ImGuiIO, ptr %74, i32 0, i32 53
  %76 = load float, ptr %75, align 8, !tbaa !9
  %77 = fpext float %76 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.219, double noundef %73, double noundef %77)
  %78 = load ptr, ptr %4, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.ImGuiIO, ptr %78, i32 0, i32 54
  %80 = load i32, ptr %79, align 4, !tbaa !17
  %81 = load ptr, ptr %4, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.ImGuiIO, ptr %81, i32 0, i32 55
  %83 = load i32, ptr %82, align 8, !tbaa !18
  %84 = load ptr, ptr %4, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.ImGuiIO, ptr %84, i32 0, i32 55
  %86 = load i32, ptr %85, align 8, !tbaa !18
  %87 = sdiv i32 %86, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.220, i32 noundef %80, i32 noundef %83, i32 noundef %87)
  %88 = load ptr, ptr %4, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.ImGuiIO, ptr %88, i32 0, i32 57
  %90 = load i32, ptr %89, align 8, !tbaa !19
  %91 = load ptr, ptr %4, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.ImGuiIO, ptr %91, i32 0, i32 56
  %93 = load i32, ptr %92, align 4, !tbaa !20
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.221, i32 noundef %90, i32 noundef %93)
  %94 = load ptr, ptr %4, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.ImGuiIO, ptr %94, i32 0, i32 58
  %96 = load i32, ptr %95, align 4, !tbaa !21
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.222, i32 noundef %96)
  call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 64, ptr %6) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %6, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 104, ptr %7) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names, i64 104, i1 false)
  %97 = load ptr, ptr %5, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %97, i32 0, i32 5
  %99 = load i32, ptr %98, align 4, !tbaa !22
  %100 = icmp slt i32 %99, 0
  br i1 %100, label %101, label %104

101:                                              ; preds = %62
  %102 = load ptr, ptr %5, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %102, i32 0, i32 5
  store i32 4, ptr %103, align 4, !tbaa !22
  br label %104

104:                                              ; preds = %101, %62
  %105 = load ptr, ptr %5, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %105, i32 0, i32 6
  %107 = load i32, ptr %106, align 4, !tbaa !24
  %108 = icmp slt i32 %107, 0
  br i1 %108, label %109, label %112

109:                                              ; preds = %104
  %110 = load ptr, ptr %5, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %110, i32 0, i32 6
  store i32 2, ptr %111, align 4, !tbaa !24
  br label %112

112:                                              ; preds = %109, %104
  %113 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.240)
  br i1 %113, label %114, label %421

114:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %115 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.241, ptr noundef nonnull align 4 dereferenceable(8) %8)
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  br i1 %115, label %116, label %117

116:                                              ; preds = %114
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %117

117:                                              ; preds = %116, %114
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.242)
  %118 = load ptr, ptr %5, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %118, i32 0, i32 1
  %120 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.243, ptr noundef %119)
  %121 = load ptr, ptr %5, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %121, i32 0, i32 0
  %123 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.244, ptr noundef %122)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %124 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %125 = fmul float %124, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %125)
  %126 = load ptr, ptr %5, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %126, i32 0, i32 5
  %128 = getelementptr inbounds [8 x ptr], ptr %6, i64 0, i64 0
  %129 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.245, ptr noundef %127, ptr noundef %128, i32 noundef 8, i32 noundef 8)
  %130 = zext i1 %129 to i32
  %131 = load ptr, ptr %5, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %131, i32 0, i32 0
  %133 = load i8, ptr %132, align 4, !tbaa !25, !range !26, !noundef !27
  %134 = trunc i8 %133 to i1
  %135 = zext i1 %134 to i32
  %136 = or i32 %135, %130
  %137 = icmp ne i32 %136, 0
  %138 = zext i1 %137 to i8
  store i8 %138, ptr %132, align 4, !tbaa !25
  %139 = load ptr, ptr %5, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %139, i32 0, i32 0
  %141 = load i8, ptr %140, align 4, !tbaa !25, !range !26, !noundef !27
  %142 = trunc i8 %141 to i1
  br i1 %142, label %143, label %196

143:                                              ; preds = %117
  %144 = load ptr, ptr %3, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.ImGuiContext, ptr %144, i32 0, i32 82
  %146 = load ptr, ptr %145, align 8, !tbaa !28
  %147 = icmp ne ptr %146, null
  br i1 %147, label %148, label %196

148:                                              ; preds = %143
  %149 = load ptr, ptr %3, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.ImGuiContext, ptr %149, i32 0, i32 82
  %151 = load ptr, ptr %150, align 8, !tbaa !28
  %152 = getelementptr inbounds %struct.ImGuiWindow, ptr %151, i32 0, i32 0
  %153 = load ptr, ptr %152, align 8, !tbaa !84
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.246, ptr noundef %153)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  store i32 0, ptr %9, align 4, !tbaa !92
  br label %154

154:                                              ; preds = %192, %148
  %155 = load i32, ptr %9, align 4, !tbaa !92
  %156 = icmp slt i32 %155, 8
  br i1 %156, label %158, label %157

157:                                              ; preds = %154
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %195

158:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #8
  %159 = load ptr, ptr %3, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.ImGuiContext, ptr %159, i32 0, i32 82
  %161 = load ptr, ptr %160, align 8, !tbaa !28
  %162 = load i32, ptr %9, align 4, !tbaa !92
  %163 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %161, i32 noundef %162)
  %164 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %10, i32 0, i32 0
  %165 = extractvalue { <2 x float>, <2 x float> } %163, 0
  store <2 x float> %165, ptr %164, align 4
  %166 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %10, i32 0, i32 1
  %167 = extractvalue { <2 x float>, <2 x float> } %163, 1
  store <2 x float> %167, ptr %166, align 4
  %168 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 0
  %169 = getelementptr inbounds %struct.ImVec2, ptr %168, i32 0, i32 0
  %170 = load float, ptr %169, align 4, !tbaa !93
  %171 = fpext float %170 to double
  %172 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 0
  %173 = getelementptr inbounds %struct.ImVec2, ptr %172, i32 0, i32 1
  %174 = load float, ptr %173, align 4, !tbaa !94
  %175 = fpext float %174 to double
  %176 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 1
  %177 = getelementptr inbounds %struct.ImVec2, ptr %176, i32 0, i32 0
  %178 = load float, ptr %177, align 4, !tbaa !95
  %179 = fpext float %178 to double
  %180 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 1
  %181 = getelementptr inbounds %struct.ImVec2, ptr %180, i32 0, i32 1
  %182 = load float, ptr %181, align 4, !tbaa !96
  %183 = fpext float %182 to double
  %184 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %185 = fpext float %184 to double
  %186 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %187 = fpext float %186 to double
  %188 = load i32, ptr %9, align 4, !tbaa !92
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds [8 x ptr], ptr %6, i64 0, i64 %189
  %191 = load ptr, ptr %190, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.247, double noundef %171, double noundef %175, double noundef %179, double noundef %183, double noundef %185, double noundef %187, ptr noundef %191)
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #8
  br label %192

192:                                              ; preds = %158
  %193 = load i32, ptr %9, align 4, !tbaa !92
  %194 = add nsw i32 %193, 1
  store i32 %194, ptr %9, align 4, !tbaa !92
  br label %154, !llvm.loop !97

195:                                              ; preds = %157
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %196

196:                                              ; preds = %195, %143, %117
  %197 = load ptr, ptr %5, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %197, i32 0, i32 3
  %199 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.248, ptr noundef %198)
  %200 = load ptr, ptr %5, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %200, i32 0, i32 4
  %202 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.249, ptr noundef %201)
  %203 = load ptr, ptr %5, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %203, i32 0, i32 2
  %205 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.250, ptr noundef %204)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %206 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %207 = fmul float %206, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %207)
  %208 = load ptr, ptr %5, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %208, i32 0, i32 6
  %210 = getelementptr inbounds [13 x ptr], ptr %7, i64 0, i64 0
  %211 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.251, ptr noundef %209, ptr noundef %210, i32 noundef 13, i32 noundef 13)
  %212 = zext i1 %211 to i32
  %213 = load ptr, ptr %5, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %213, i32 0, i32 2
  %215 = load i8, ptr %214, align 2, !tbaa !99, !range !26, !noundef !27
  %216 = trunc i8 %215 to i1
  %217 = zext i1 %216 to i32
  %218 = or i32 %217, %212
  %219 = icmp ne i32 %218, 0
  %220 = zext i1 %219 to i8
  store i8 %220, ptr %214, align 2, !tbaa !99
  %221 = load ptr, ptr %5, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %221, i32 0, i32 2
  %223 = load i8, ptr %222, align 2, !tbaa !99, !range !26, !noundef !27
  %224 = trunc i8 %223 to i1
  br i1 %224, label %225, label %420

225:                                              ; preds = %196
  %226 = load ptr, ptr %3, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.ImGuiContext, ptr %226, i32 0, i32 82
  %228 = load ptr, ptr %227, align 8, !tbaa !28
  %229 = icmp ne ptr %228, null
  br i1 %229, label %230, label %420

230:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  store i32 0, ptr %11, align 4, !tbaa !92
  br label %231

231:                                              ; preds = %416, %230
  %232 = load i32, ptr %11, align 4, !tbaa !92
  %233 = load ptr, ptr %3, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.ImGuiContext, ptr %233, i32 0, i32 167
  %235 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %234)
  %236 = icmp slt i32 %232, %235
  br i1 %236, label %238, label %237

237:                                              ; preds = %231
  store i32 5, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  br label %419

238:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  %239 = load ptr, ptr %3, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.ImGuiContext, ptr %239, i32 0, i32 167
  %241 = load i32, ptr %11, align 4, !tbaa !92
  %242 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(36) %240, i32 noundef %241)
  store ptr %242, ptr %13, align 8, !tbaa !5
  %243 = load ptr, ptr %13, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.ImGuiTable, ptr %243, i32 0, i32 12
  %245 = load i32, ptr %244, align 8, !tbaa !100
  %246 = load ptr, ptr %3, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.ImGuiContext, ptr %246, i32 0, i32 11
  %248 = load i32, ptr %247, align 8, !tbaa !108
  %249 = sub nsw i32 %248, 1
  %250 = icmp slt i32 %245, %249
  br i1 %250, label %267, label %251

251:                                              ; preds = %238
  %252 = load ptr, ptr %13, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.ImGuiTable, ptr %252, i32 0, i32 63
  %254 = load ptr, ptr %253, align 8, !tbaa !109
  %255 = load ptr, ptr %3, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.ImGuiContext, ptr %255, i32 0, i32 82
  %257 = load ptr, ptr %256, align 8, !tbaa !28
  %258 = icmp ne ptr %254, %257
  br i1 %258, label %259, label %268

259:                                              ; preds = %251
  %260 = load ptr, ptr %13, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.ImGuiTable, ptr %260, i32 0, i32 64
  %262 = load ptr, ptr %261, align 8, !tbaa !110
  %263 = load ptr, ptr %3, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.ImGuiContext, ptr %263, i32 0, i32 82
  %265 = load ptr, ptr %264, align 8, !tbaa !28
  %266 = icmp ne ptr %262, %265
  br i1 %266, label %267, label %268

267:                                              ; preds = %259, %238
  store i32 7, ptr %12, align 4
  br label %413

268:                                              ; preds = %259, %251
  %269 = load ptr, ptr %13, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.ImGuiTable, ptr %269, i32 0, i32 0
  %271 = load i32, ptr %270, align 8, !tbaa !111
  %272 = load ptr, ptr %13, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImGuiTable, ptr %272, i32 0, i32 13
  %274 = load i32, ptr %273, align 4, !tbaa !112
  %275 = load ptr, ptr %13, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiTable, ptr %275, i32 0, i32 63
  %277 = load ptr, ptr %276, align 8, !tbaa !109
  %278 = getelementptr inbounds %struct.ImGuiWindow, ptr %277, i32 0, i32 0
  %279 = load ptr, ptr %278, align 8, !tbaa !84
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.252, i32 noundef %271, i32 noundef %274, ptr noundef %279)
  %280 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %280, label %281, label %291

281:                                              ; preds = %268
  %282 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %283 = load ptr, ptr %13, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.ImGuiTable, ptr %283, i32 0, i32 45
  %285 = getelementptr inbounds %struct.ImRect, ptr %284, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %286 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %285, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %286, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %287 = load ptr, ptr %13, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.ImGuiTable, ptr %287, i32 0, i32 45
  %289 = getelementptr inbounds %struct.ImRect, ptr %288, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %290 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %289, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %290, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %282, ptr noundef nonnull align 4 dereferenceable(8) %14, ptr noundef nonnull align 4 dereferenceable(8) %16, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef -1, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %291

291:                                              ; preds = %281, %268
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  store i32 0, ptr %19, align 4, !tbaa !92
  br label %292

292:                                              ; preds = %409, %291
  %293 = load i32, ptr %19, align 4, !tbaa !92
  %294 = icmp slt i32 %293, 13
  br i1 %294, label %296, label %295

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

296:                                              ; preds = %292
  %297 = load i32, ptr %19, align 4, !tbaa !92
  %298 = icmp sge i32 %297, 6
  br i1 %298, label %299, label %364

299:                                              ; preds = %296
  %300 = load i32, ptr %19, align 4, !tbaa !92
  %301 = icmp ne i32 %300, 6
  br i1 %301, label %302, label %306

302:                                              ; preds = %299
  %303 = load i32, ptr %19, align 4, !tbaa !92
  %304 = icmp ne i32 %303, 8
  br i1 %304, label %305, label %306

305:                                              ; preds = %302
  br label %409

306:                                              ; preds = %302, %299
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  store i32 0, ptr %20, align 4, !tbaa !92
  br label %307

307:                                              ; preds = %360, %306
  %308 = load i32, ptr %20, align 4, !tbaa !92
  %309 = load ptr, ptr %13, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.ImGuiTable, ptr %309, i32 0, i32 13
  %311 = load i32, ptr %310, align 4, !tbaa !112
  %312 = icmp slt i32 %308, %311
  br i1 %312, label %314, label %313

313:                                              ; preds = %307
  store i32 11, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %363

314:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #8
  %315 = load ptr, ptr %13, align 8, !tbaa !5
  %316 = load i32, ptr %19, align 4, !tbaa !92
  %317 = load i32, ptr %20, align 4, !tbaa !92
  %318 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %315, i32 noundef %316, i32 noundef %317)
  %319 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 0
  %320 = extractvalue { <2 x float>, <2 x float> } %318, 0
  store <2 x float> %320, ptr %319, align 4
  %321 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 1
  %322 = extractvalue { <2 x float>, <2 x float> } %318, 1
  store <2 x float> %322, ptr %321, align 4
  %323 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %324 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %325 = getelementptr inbounds %struct.ImVec2, ptr %324, i32 0, i32 0
  %326 = load float, ptr %325, align 4, !tbaa !93
  %327 = fpext float %326 to double
  %328 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %329 = getelementptr inbounds %struct.ImVec2, ptr %328, i32 0, i32 1
  %330 = load float, ptr %329, align 4, !tbaa !94
  %331 = fpext float %330 to double
  %332 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %333 = getelementptr inbounds %struct.ImVec2, ptr %332, i32 0, i32 0
  %334 = load float, ptr %333, align 4, !tbaa !95
  %335 = fpext float %334 to double
  %336 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %337 = getelementptr inbounds %struct.ImVec2, ptr %336, i32 0, i32 1
  %338 = load float, ptr %337, align 4, !tbaa !96
  %339 = fpext float %338 to double
  %340 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %341 = fpext float %340 to double
  %342 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %343 = fpext float %342 to double
  %344 = load i32, ptr %20, align 4, !tbaa !92
  %345 = load i32, ptr %19, align 4, !tbaa !92
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds [13 x ptr], ptr %7, i64 0, i64 %346
  %348 = load ptr, ptr %347, align 8, !tbaa !5
  %349 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %323, i64 noundef 128, ptr noundef @.str.253, double noundef %327, double noundef %331, double noundef %335, double noundef %339, double noundef %341, double noundef %343, i32 noundef %344, ptr noundef %348)
  %350 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %351 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %350, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %22)
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  %352 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %352, label %353, label %359

353:                                              ; preds = %314
  %354 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %355 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %356 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %355, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %356, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %357 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %358 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %357, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %358, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %354, ptr noundef nonnull align 4 dereferenceable(8) %23, ptr noundef nonnull align 4 dereferenceable(8) %25, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef -1, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %359

359:                                              ; preds = %353, %314
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #8
  br label %360

360:                                              ; preds = %359
  %361 = load i32, ptr %20, align 4, !tbaa !92
  %362 = add nsw i32 %361, 1
  store i32 %362, ptr %20, align 4, !tbaa !92
  br label %307, !llvm.loop !113

363:                                              ; preds = %313
  br label %408

364:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #8
  %365 = load ptr, ptr %13, align 8, !tbaa !5
  %366 = load i32, ptr %19, align 4, !tbaa !92
  %367 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %365, i32 noundef %366, i32 noundef -1)
  %368 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 0
  %369 = extractvalue { <2 x float>, <2 x float> } %367, 0
  store <2 x float> %369, ptr %368, align 4
  %370 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 1
  %371 = extractvalue { <2 x float>, <2 x float> } %367, 1
  store <2 x float> %371, ptr %370, align 4
  %372 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %373 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %374 = getelementptr inbounds %struct.ImVec2, ptr %373, i32 0, i32 0
  %375 = load float, ptr %374, align 4, !tbaa !93
  %376 = fpext float %375 to double
  %377 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %378 = getelementptr inbounds %struct.ImVec2, ptr %377, i32 0, i32 1
  %379 = load float, ptr %378, align 4, !tbaa !94
  %380 = fpext float %379 to double
  %381 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %382 = getelementptr inbounds %struct.ImVec2, ptr %381, i32 0, i32 0
  %383 = load float, ptr %382, align 4, !tbaa !95
  %384 = fpext float %383 to double
  %385 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %386 = getelementptr inbounds %struct.ImVec2, ptr %385, i32 0, i32 1
  %387 = load float, ptr %386, align 4, !tbaa !96
  %388 = fpext float %387 to double
  %389 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %390 = fpext float %389 to double
  %391 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %392 = fpext float %391 to double
  %393 = load i32, ptr %19, align 4, !tbaa !92
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds [13 x ptr], ptr %7, i64 0, i64 %394
  %396 = load ptr, ptr %395, align 8, !tbaa !5
  %397 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %372, i64 noundef 128, ptr noundef @.str.247, double noundef %376, double noundef %380, double noundef %384, double noundef %388, double noundef %390, double noundef %392, ptr noundef %396)
  %398 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %28, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %399 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %398, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %28)
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  %400 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %400, label %401, label %407

401:                                              ; preds = %364
  %402 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %403 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %404 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %403, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %404, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %405 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %406 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %405, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %406, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %402, ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %31, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef -1, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  br label %407

407:                                              ; preds = %401, %364
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #8
  br label %408

408:                                              ; preds = %407, %363
  br label %409

409:                                              ; preds = %408, %305
  %410 = load i32, ptr %19, align 4, !tbaa !92
  %411 = add nsw i32 %410, 1
  store i32 %411, ptr %19, align 4, !tbaa !92
  br label %292, !llvm.loop !114

412:                                              ; preds = %295
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 128, ptr %18) #8
  store i32 0, ptr %12, align 4
  br label %413

413:                                              ; preds = %412, %267
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  %414 = load i32, ptr %12, align 4
  switch i32 %414, label %1064 [
    i32 0, label %415
    i32 7, label %416
  ]

415:                                              ; preds = %413
  br label %416

416:                                              ; preds = %415, %413
  %417 = load i32, ptr %11, align 4, !tbaa !92
  %418 = add nsw i32 %417, 1
  store i32 %418, ptr %11, align 4, !tbaa !92
  br label %231, !llvm.loop !115

419:                                              ; preds = %237
  br label %420

420:                                              ; preds = %419, %225, %196
  call void @_ZN5ImGui7TreePopEv()
  br label %421

421:                                              ; preds = %420, %112
  %422 = load ptr, ptr %3, align 8, !tbaa !5
  %423 = getelementptr inbounds %struct.ImGuiContext, ptr %422, i32 0, i32 22
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %423, ptr noundef @.str.254)
  %424 = load ptr, ptr %3, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.ImGuiContext, ptr %424, i32 0, i32 140
  %426 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %425, i32 0, i32 0
  %427 = getelementptr inbounds [2 x %struct.ImVector.11], ptr %426, i64 0, i64 0
  %428 = getelementptr inbounds %struct.ImVector.11, ptr %427, i32 0, i32 0
  %429 = load i32, ptr %428, align 8, !tbaa !116
  %430 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.255, ptr noundef @.str.256, i32 noundef %429)
  br i1 %430, label %431, label %454

431:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store i32 0, ptr %33, align 4, !tbaa !92
  br label %432

432:                                              ; preds = %450, %431
  %433 = load i32, ptr %33, align 4, !tbaa !92
  %434 = load ptr, ptr %3, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.ImGuiContext, ptr %434, i32 0, i32 140
  %436 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %435, i32 0, i32 0
  %437 = getelementptr inbounds [2 x %struct.ImVector.11], ptr %436, i64 0, i64 0
  %438 = getelementptr inbounds %struct.ImVector.11, ptr %437, i32 0, i32 0
  %439 = load i32, ptr %438, align 8, !tbaa !116
  %440 = icmp slt i32 %433, %439
  br i1 %440, label %442, label %441

441:                                              ; preds = %432
  store i32 14, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %453

442:                                              ; preds = %432
  %443 = load ptr, ptr %3, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.ImGuiContext, ptr %443, i32 0, i32 140
  %445 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %444, i32 0, i32 0
  %446 = getelementptr inbounds [2 x %struct.ImVector.11], ptr %445, i64 0, i64 0
  %447 = load i32, ptr %33, align 4, !tbaa !92
  %448 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %446, i32 noundef %447)
  %449 = load ptr, ptr %448, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %449, ptr noundef @.str.257)
  br label %450

450:                                              ; preds = %442
  %451 = load i32, ptr %33, align 4, !tbaa !92
  %452 = add nsw i32 %451, 1
  store i32 %452, ptr %33, align 4, !tbaa !92
  br label %432, !llvm.loop !118

453:                                              ; preds = %441
  call void @_ZN5ImGui7TreePopEv()
  br label %454

454:                                              ; preds = %453, %421
  %455 = load ptr, ptr %3, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.ImGuiContext, ptr %455, i32 0, i32 80
  %457 = getelementptr inbounds %struct.ImVector.10, ptr %456, i32 0, i32 0
  %458 = load i32, ptr %457, align 8, !tbaa !119
  %459 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.258, ptr noundef @.str.259, i32 noundef %458)
  br i1 %459, label %460, label %519

460:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  store i32 0, ptr %34, align 4, !tbaa !92
  br label %461

461:                                              ; preds = %515, %460
  %462 = load i32, ptr %34, align 4, !tbaa !92
  %463 = load ptr, ptr %3, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.ImGuiContext, ptr %463, i32 0, i32 80
  %465 = getelementptr inbounds %struct.ImVector.10, ptr %464, i32 0, i32 0
  %466 = load i32, ptr %465, align 8, !tbaa !119
  %467 = icmp slt i32 %462, %466
  br i1 %467, label %469, label %468

468:                                              ; preds = %461
  store i32 17, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %518

469:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %470 = load ptr, ptr %3, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.ImGuiContext, ptr %470, i32 0, i32 80
  %472 = load i32, ptr %34, align 4, !tbaa !92
  %473 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %471, i32 noundef %472)
  %474 = getelementptr inbounds %struct.ImGuiPopupData, ptr %473, i32 0, i32 1
  %475 = load ptr, ptr %474, align 8, !tbaa !120
  store ptr %475, ptr %35, align 8, !tbaa !5
  %476 = load ptr, ptr %3, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.ImGuiContext, ptr %476, i32 0, i32 80
  %478 = load i32, ptr %34, align 4, !tbaa !92
  %479 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %477, i32 noundef %478)
  %480 = getelementptr inbounds %struct.ImGuiPopupData, ptr %479, i32 0, i32 0
  %481 = load i32, ptr %480, align 8, !tbaa !122
  %482 = load ptr, ptr %35, align 8, !tbaa !5
  %483 = icmp ne ptr %482, null
  br i1 %483, label %484, label %488

484:                                              ; preds = %469
  %485 = load ptr, ptr %35, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.ImGuiWindow, ptr %485, i32 0, i32 0
  %487 = load ptr, ptr %486, align 8, !tbaa !84
  br label %489

488:                                              ; preds = %469
  br label %489

489:                                              ; preds = %488, %484
  %490 = phi ptr [ %487, %484 ], [ @.str.261, %488 ]
  %491 = load ptr, ptr %35, align 8, !tbaa !5
  %492 = icmp ne ptr %491, null
  br i1 %492, label %493, label %499

493:                                              ; preds = %489
  %494 = load ptr, ptr %35, align 8, !tbaa !5
  %495 = getelementptr inbounds %struct.ImGuiWindow, ptr %494, i32 0, i32 2
  %496 = load i32, ptr %495, align 4, !tbaa !123
  %497 = and i32 %496, 16777216
  %498 = icmp ne i32 %497, 0
  br label %499

499:                                              ; preds = %493, %489
  %500 = phi i1 [ false, %489 ], [ %498, %493 ]
  %501 = zext i1 %500 to i64
  %502 = select i1 %500, ptr @.str.262, ptr @.str.6
  %503 = load ptr, ptr %35, align 8, !tbaa !5
  %504 = icmp ne ptr %503, null
  br i1 %504, label %505, label %511

505:                                              ; preds = %499
  %506 = load ptr, ptr %35, align 8, !tbaa !5
  %507 = getelementptr inbounds %struct.ImGuiWindow, ptr %506, i32 0, i32 2
  %508 = load i32, ptr %507, align 4, !tbaa !123
  %509 = and i32 %508, 268435456
  %510 = icmp ne i32 %509, 0
  br label %511

511:                                              ; preds = %505, %499
  %512 = phi i1 [ false, %499 ], [ %510, %505 ]
  %513 = zext i1 %512 to i64
  %514 = select i1 %512, ptr @.str.263, ptr @.str.6
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.260, i32 noundef %481, ptr noundef %490, ptr noundef %502, ptr noundef %514)
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %515

515:                                              ; preds = %511
  %516 = load i32, ptr %34, align 4, !tbaa !92
  %517 = add nsw i32 %516, 1
  store i32 %517, ptr %34, align 4, !tbaa !92
  br label %461, !llvm.loop !124

518:                                              ; preds = %468
  call void @_ZN5ImGui7TreePopEv()
  br label %519

519:                                              ; preds = %518, %454
  %520 = load ptr, ptr %3, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.ImGuiContext, ptr %520, i32 0, i32 172
  %522 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %521)
  %523 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.264, ptr noundef @.str.265, i32 noundef %522)
  br i1 %523, label %524, label %541

524:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  store i32 0, ptr %36, align 4, !tbaa !92
  br label %525

525:                                              ; preds = %537, %524
  %526 = load i32, ptr %36, align 4, !tbaa !92
  %527 = load ptr, ptr %3, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.ImGuiContext, ptr %527, i32 0, i32 172
  %529 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %528)
  %530 = icmp slt i32 %526, %529
  br i1 %530, label %532, label %531

531:                                              ; preds = %525
  store i32 20, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %540

532:                                              ; preds = %525
  %533 = load ptr, ptr %3, align 8, !tbaa !5
  %534 = getelementptr inbounds %struct.ImGuiContext, ptr %533, i32 0, i32 172
  %535 = load i32, ptr %36, align 4, !tbaa !92
  %536 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(36) %534, i32 noundef %535)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %536, ptr noundef @.str.266)
  br label %537

537:                                              ; preds = %532
  %538 = load i32, ptr %36, align 4, !tbaa !92
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr %36, align 4, !tbaa !92
  br label %525, !llvm.loop !125

540:                                              ; preds = %531
  call void @_ZN5ImGui7TreePopEv()
  br label %541

541:                                              ; preds = %540, %519
  %542 = load ptr, ptr %3, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.ImGuiContext, ptr %542, i32 0, i32 167
  %544 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %543)
  %545 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.267, ptr noundef @.str.268, i32 noundef %544)
  br i1 %545, label %546, label %563

546:                                              ; preds = %541
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  store i32 0, ptr %37, align 4, !tbaa !92
  br label %547

547:                                              ; preds = %559, %546
  %548 = load i32, ptr %37, align 4, !tbaa !92
  %549 = load ptr, ptr %3, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.ImGuiContext, ptr %549, i32 0, i32 167
  %551 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %550)
  %552 = icmp slt i32 %548, %551
  br i1 %552, label %554, label %553

553:                                              ; preds = %547
  store i32 23, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %562

554:                                              ; preds = %547
  %555 = load ptr, ptr %3, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.ImGuiContext, ptr %555, i32 0, i32 167
  %557 = load i32, ptr %37, align 4, !tbaa !92
  %558 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(36) %556, i32 noundef %557)
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %558)
  br label %559

559:                                              ; preds = %554
  %560 = load i32, ptr %37, align 4, !tbaa !92
  %561 = add nsw i32 %560, 1
  store i32 %561, ptr %37, align 4, !tbaa !92
  br label %547, !llvm.loop !126

562:                                              ; preds = %553
  call void @_ZN5ImGui7TreePopEv()
  br label %563

563:                                              ; preds = %562, %541
  %564 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.269)
  br i1 %564, label %565, label %682

565:                                              ; preds = %563
  %566 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.270)
  br i1 %566, label %567, label %568

567:                                              ; preds = %565
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %568

568:                                              ; preds = %567, %565
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %569 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.271)
  br i1 %569, label %570, label %572

570:                                              ; preds = %568
  %571 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %572

572:                                              ; preds = %570, %568
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %573 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.272)
  br i1 %573, label %574, label %579

574:                                              ; preds = %572
  %575 = load ptr, ptr %3, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.ImGuiContext, ptr %575, i32 0, i32 3
  %577 = getelementptr inbounds %struct.ImGuiIO, ptr %576, i32 0, i32 5
  %578 = load ptr, ptr %577, align 8, !tbaa !127
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %578)
  br label %579

579:                                              ; preds = %574, %572
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %580 = load ptr, ptr %3, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.ImGuiContext, ptr %580, i32 0, i32 3
  %582 = getelementptr inbounds %struct.ImGuiIO, ptr %581, i32 0, i32 5
  %583 = load ptr, ptr %582, align 8, !tbaa !127
  %584 = icmp ne ptr %583, null
  br i1 %584, label %585, label %590

585:                                              ; preds = %579
  %586 = load ptr, ptr %3, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.ImGuiContext, ptr %586, i32 0, i32 3
  %588 = getelementptr inbounds %struct.ImGuiIO, ptr %587, i32 0, i32 5
  %589 = load ptr, ptr %588, align 8, !tbaa !127
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.273, ptr noundef %589)
  br label %591

590:                                              ; preds = %579
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.274, ptr noundef null)
  br label %591

591:                                              ; preds = %590, %585
  %592 = load ptr, ptr %3, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.ImGuiContext, ptr %592, i32 0, i32 200
  %594 = load float, ptr %593, align 4, !tbaa !128
  %595 = fpext float %594 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.275, double noundef %595)
  %596 = load ptr, ptr %3, align 8, !tbaa !5
  %597 = getelementptr inbounds %struct.ImGuiContext, ptr %596, i32 0, i32 202
  %598 = getelementptr inbounds %struct.ImVector.27, ptr %597, i32 0, i32 0
  %599 = load i32, ptr %598, align 8, !tbaa !129
  %600 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.276, ptr noundef @.str.277, i32 noundef %599)
  br i1 %600, label %601, label %621

601:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  store i32 0, ptr %38, align 4, !tbaa !92
  br label %602

602:                                              ; preds = %617, %601
  %603 = load i32, ptr %38, align 4, !tbaa !92
  %604 = load ptr, ptr %3, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.ImGuiContext, ptr %604, i32 0, i32 202
  %606 = getelementptr inbounds %struct.ImVector.27, ptr %605, i32 0, i32 0
  %607 = load i32, ptr %606, align 8, !tbaa !129
  %608 = icmp slt i32 %603, %607
  br i1 %608, label %610, label %609

609:                                              ; preds = %602
  store i32 26, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %620

610:                                              ; preds = %602
  %611 = load ptr, ptr %3, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.ImGuiContext, ptr %611, i32 0, i32 202
  %613 = load i32, ptr %38, align 4, !tbaa !92
  %614 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %612, i32 noundef %613)
  %615 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %614, i32 0, i32 0
  %616 = load ptr, ptr %615, align 8, !tbaa !130
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.278, ptr noundef %616)
  br label %617

617:                                              ; preds = %610
  %618 = load i32, ptr %38, align 4, !tbaa !92
  %619 = add nsw i32 %618, 1
  store i32 %619, ptr %38, align 4, !tbaa !92
  br label %602, !llvm.loop !132

620:                                              ; preds = %609
  call void @_ZN5ImGui7TreePopEv()
  br label %621

621:                                              ; preds = %620, %591
  %622 = load ptr, ptr %3, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.ImGuiContext, ptr %622, i32 0, i32 203
  %624 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %623)
  %625 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.279, ptr noundef @.str.280, i32 noundef %624)
  br i1 %625, label %626, label %642

626:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  %627 = load ptr, ptr %3, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.ImGuiContext, ptr %627, i32 0, i32 203
  %629 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %628)
  store ptr %629, ptr %39, align 8, !tbaa !5
  br label %630

630:                                              ; preds = %636, %626
  %631 = load ptr, ptr %39, align 8, !tbaa !5
  %632 = icmp ne ptr %631, null
  br i1 %632, label %634, label %633

633:                                              ; preds = %630
  store i32 29, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  br label %641

634:                                              ; preds = %630
  %635 = load ptr, ptr %39, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %635)
  br label %636

636:                                              ; preds = %634
  %637 = load ptr, ptr %3, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.ImGuiContext, ptr %637, i32 0, i32 203
  %639 = load ptr, ptr %39, align 8, !tbaa !5
  %640 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %638, ptr noundef %639)
  store ptr %640, ptr %39, align 8, !tbaa !5
  br label %630, !llvm.loop !133

641:                                              ; preds = %633
  call void @_ZN5ImGui7TreePopEv()
  br label %642

642:                                              ; preds = %641, %621
  %643 = load ptr, ptr %3, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.ImGuiContext, ptr %643, i32 0, i32 204
  %645 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %644)
  %646 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.281, ptr noundef @.str.282, i32 noundef %645)
  br i1 %646, label %647, label %663

647:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %648 = load ptr, ptr %3, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.ImGuiContext, ptr %648, i32 0, i32 204
  %650 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %649)
  store ptr %650, ptr %40, align 8, !tbaa !5
  br label %651

651:                                              ; preds = %657, %647
  %652 = load ptr, ptr %40, align 8, !tbaa !5
  %653 = icmp ne ptr %652, null
  br i1 %653, label %655, label %654

654:                                              ; preds = %651
  store i32 32, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %662

655:                                              ; preds = %651
  %656 = load ptr, ptr %40, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %656)
  br label %657

657:                                              ; preds = %655
  %658 = load ptr, ptr %3, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.ImGuiContext, ptr %658, i32 0, i32 204
  %660 = load ptr, ptr %40, align 8, !tbaa !5
  %661 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %659, ptr noundef %660)
  store ptr %661, ptr %40, align 8, !tbaa !5
  br label %651, !llvm.loop !134

662:                                              ; preds = %654
  call void @_ZN5ImGui7TreePopEv()
  br label %663

663:                                              ; preds = %662, %642
  %664 = load ptr, ptr %3, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct.ImGuiContext, ptr %664, i32 0, i32 201
  %666 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %665)
  %667 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.283, ptr noundef @.str.284, i32 noundef %666)
  br i1 %667, label %668, label %681

668:                                              ; preds = %663
  %669 = load ptr, ptr %3, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.ImGuiContext, ptr %669, i32 0, i32 201
  %671 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %670)
  %672 = load ptr, ptr %3, align 8, !tbaa !5
  %673 = getelementptr inbounds %struct.ImGuiContext, ptr %672, i32 0, i32 201
  %674 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %673, i32 0, i32 0
  %675 = getelementptr inbounds %struct.ImVector.2, ptr %674, i32 0, i32 0
  %676 = load i32, ptr %675, align 8, !tbaa !135
  %677 = sext i32 %676 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %678 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %679 = fmul float %678, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef 0xB810000000000000, float noundef %679)
  %680 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.285, ptr noundef %671, i64 noundef %677, ptr noundef nonnull align 4 dereferenceable(8) %41, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @_ZN5ImGui7TreePopEv()
  br label %681

681:                                              ; preds = %668, %663
  call void @_ZN5ImGui7TreePopEv()
  br label %682

682:                                              ; preds = %681, %563
  %683 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.286)
  br i1 %683, label %684, label %872

684:                                              ; preds = %682
  call void @llvm.lifetime.start.p0(i64 40, ptr %42) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %42, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names, i64 40, i1 false)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.292)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %685 = load ptr, ptr %3, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.ImGuiContext, ptr %685, i32 0, i32 30
  %687 = load ptr, ptr %686, align 8, !tbaa !136
  %688 = icmp ne ptr %687, null
  br i1 %688, label %689, label %695

689:                                              ; preds = %684
  %690 = load ptr, ptr %3, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.ImGuiContext, ptr %690, i32 0, i32 30
  %692 = load ptr, ptr %691, align 8, !tbaa !136
  %693 = getelementptr inbounds %struct.ImGuiWindow, ptr %692, i32 0, i32 0
  %694 = load ptr, ptr %693, align 8, !tbaa !84
  br label %696

695:                                              ; preds = %684
  br label %696

696:                                              ; preds = %695, %689
  %697 = phi ptr [ %694, %689 ], [ @.str.261, %695 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.293, ptr noundef %697)
  %698 = load ptr, ptr %3, align 8, !tbaa !5
  %699 = getelementptr inbounds %struct.ImGuiContext, ptr %698, i32 0, i32 31
  %700 = load ptr, ptr %699, align 8, !tbaa !137
  %701 = icmp ne ptr %700, null
  br i1 %701, label %702, label %708

702:                                              ; preds = %696
  %703 = load ptr, ptr %3, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.ImGuiContext, ptr %703, i32 0, i32 31
  %705 = load ptr, ptr %704, align 8, !tbaa !137
  %706 = getelementptr inbounds %struct.ImGuiWindow, ptr %705, i32 0, i32 0
  %707 = load ptr, ptr %706, align 8, !tbaa !84
  br label %709

708:                                              ; preds = %696
  br label %709

709:                                              ; preds = %708, %702
  %710 = phi ptr [ %707, %702 ], [ @.str.261, %708 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.294, ptr noundef %710)
  %711 = load ptr, ptr %3, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.ImGuiContext, ptr %711, i32 0, i32 32
  %713 = load ptr, ptr %712, align 8, !tbaa !138
  %714 = icmp ne ptr %713, null
  br i1 %714, label %715, label %721

715:                                              ; preds = %709
  %716 = load ptr, ptr %3, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.ImGuiContext, ptr %716, i32 0, i32 32
  %718 = load ptr, ptr %717, align 8, !tbaa !138
  %719 = getelementptr inbounds %struct.ImGuiWindow, ptr %718, i32 0, i32 0
  %720 = load ptr, ptr %719, align 8, !tbaa !84
  br label %722

721:                                              ; preds = %709
  br label %722

722:                                              ; preds = %721, %715
  %723 = phi ptr [ %720, %715 ], [ @.str.261, %721 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.295, ptr noundef %723)
  %724 = load ptr, ptr %3, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.ImGuiContext, ptr %724, i32 0, i32 33
  %726 = load ptr, ptr %725, align 8, !tbaa !139
  %727 = icmp ne ptr %726, null
  br i1 %727, label %728, label %734

728:                                              ; preds = %722
  %729 = load ptr, ptr %3, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.ImGuiContext, ptr %729, i32 0, i32 33
  %731 = load ptr, ptr %730, align 8, !tbaa !139
  %732 = getelementptr inbounds %struct.ImGuiWindow, ptr %731, i32 0, i32 0
  %733 = load ptr, ptr %732, align 8, !tbaa !84
  br label %735

734:                                              ; preds = %722
  br label %735

735:                                              ; preds = %734, %728
  %736 = phi ptr [ %733, %728 ], [ @.str.261, %734 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.296, ptr noundef %736)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.297)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %737 = load ptr, ptr %3, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.ImGuiContext, ptr %737, i32 0, i32 45
  %739 = load i32, ptr %738, align 8, !tbaa !140
  %740 = load ptr, ptr %3, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.ImGuiContext, ptr %740, i32 0, i32 64
  %742 = load i32, ptr %741, align 8, !tbaa !141
  %743 = load ptr, ptr %3, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.ImGuiContext, ptr %743, i32 0, i32 47
  %745 = load float, ptr %744, align 8, !tbaa !142
  %746 = fpext float %745 to double
  %747 = load ptr, ptr %3, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.ImGuiContext, ptr %747, i32 0, i32 49
  %749 = load i8, ptr %748, align 1, !tbaa !143, !range !26, !noundef !27
  %750 = trunc i8 %749 to i1
  %751 = zext i1 %750 to i32
  %752 = load ptr, ptr %3, align 8, !tbaa !5
  %753 = getelementptr inbounds %struct.ImGuiContext, ptr %752, i32 0, i32 62
  %754 = load i32, ptr %753, align 8, !tbaa !144
  %755 = zext i32 %754 to i64
  %756 = getelementptr inbounds [5 x ptr], ptr %42, i64 0, i64 %755
  %757 = load ptr, ptr %756, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.298, i32 noundef %739, i32 noundef %742, double noundef %746, i32 noundef %751, ptr noundef %757)
  %758 = load ptr, ptr %3, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.ImGuiContext, ptr %758, i32 0, i32 61
  %760 = load ptr, ptr %759, align 8, !tbaa !145
  %761 = icmp ne ptr %760, null
  br i1 %761, label %762, label %768

762:                                              ; preds = %735
  %763 = load ptr, ptr %3, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.ImGuiContext, ptr %763, i32 0, i32 61
  %765 = load ptr, ptr %764, align 8, !tbaa !145
  %766 = getelementptr inbounds %struct.ImGuiWindow, ptr %765, i32 0, i32 0
  %767 = load ptr, ptr %766, align 8, !tbaa !84
  br label %769

768:                                              ; preds = %735
  br label %769

769:                                              ; preds = %768, %762
  %770 = phi ptr [ %767, %762 ], [ @.str.261, %768 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.299, ptr noundef %770)
  %771 = load ptr, ptr %3, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.ImGuiContext, ptr %771, i32 0, i32 37
  %773 = load i32, ptr %772, align 4, !tbaa !146
  %774 = load ptr, ptr %3, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.ImGuiContext, ptr %774, i32 0, i32 38
  %776 = load i32, ptr %775, align 8, !tbaa !147
  %777 = load ptr, ptr %3, align 8, !tbaa !5
  %778 = getelementptr inbounds %struct.ImGuiContext, ptr %777, i32 0, i32 43
  %779 = load float, ptr %778, align 8, !tbaa !148
  %780 = fpext float %779 to double
  %781 = load ptr, ptr %3, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.ImGuiContext, ptr %781, i32 0, i32 39
  %783 = load i8, ptr %782, align 4, !tbaa !149, !range !26, !noundef !27
  %784 = trunc i8 %783 to i1
  %785 = zext i1 %784 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.300, i32 noundef %773, i32 noundef %776, double noundef %780, i32 noundef %785)
  %786 = load ptr, ptr %3, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.ImGuiContext, ptr %786, i32 0, i32 146
  %788 = load i8, ptr %787, align 4, !tbaa !150, !range !26, !noundef !27
  %789 = trunc i8 %788 to i1
  %790 = zext i1 %789 to i32
  %791 = load ptr, ptr %3, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.ImGuiContext, ptr %791, i32 0, i32 154
  %793 = getelementptr inbounds %struct.ImGuiPayload, ptr %792, i32 0, i32 2
  %794 = load i32, ptr %793, align 4, !tbaa !151
  %795 = load ptr, ptr %3, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.ImGuiContext, ptr %795, i32 0, i32 154
  %797 = getelementptr inbounds %struct.ImGuiPayload, ptr %796, i32 0, i32 5
  %798 = getelementptr inbounds [33 x i8], ptr %797, i64 0, i64 0
  %799 = load ptr, ptr %3, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.ImGuiContext, ptr %799, i32 0, i32 154
  %801 = getelementptr inbounds %struct.ImGuiPayload, ptr %800, i32 0, i32 1
  %802 = load i32, ptr %801, align 8, !tbaa !152
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.301, i32 noundef %790, i32 noundef %794, ptr noundef %798, i32 noundef %802)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.302)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %803 = load ptr, ptr %3, align 8, !tbaa !5
  %804 = getelementptr inbounds %struct.ImGuiContext, ptr %803, i32 0, i32 82
  %805 = load ptr, ptr %804, align 8, !tbaa !28
  %806 = icmp ne ptr %805, null
  br i1 %806, label %807, label %813

807:                                              ; preds = %769
  %808 = load ptr, ptr %3, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.ImGuiContext, ptr %808, i32 0, i32 82
  %810 = load ptr, ptr %809, align 8, !tbaa !28
  %811 = getelementptr inbounds %struct.ImGuiWindow, ptr %810, i32 0, i32 0
  %812 = load ptr, ptr %811, align 8, !tbaa !84
  br label %814

813:                                              ; preds = %769
  br label %814

814:                                              ; preds = %813, %807
  %815 = phi ptr [ %812, %807 ], [ @.str.261, %813 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.303, ptr noundef %815)
  %816 = load ptr, ptr %3, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImGuiContext, ptr %816, i32 0, i32 83
  %818 = load i32, ptr %817, align 8, !tbaa !153
  %819 = load ptr, ptr %3, align 8, !tbaa !5
  %820 = getelementptr inbounds %struct.ImGuiContext, ptr %819, i32 0, i32 97
  %821 = load i32, ptr %820, align 4, !tbaa !154
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.304, i32 noundef %818, i32 noundef %821)
  %822 = load ptr, ptr %3, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.ImGuiContext, ptr %822, i32 0, i32 94
  %824 = load i32, ptr %823, align 4, !tbaa !155
  %825 = zext i32 %824 to i64
  %826 = getelementptr inbounds [5 x ptr], ptr %42, i64 0, i64 %825
  %827 = load ptr, ptr %826, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.305, ptr noundef %827)
  %828 = load ptr, ptr %3, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.ImGuiContext, ptr %828, i32 0, i32 3
  %830 = getelementptr inbounds %struct.ImGuiIO, ptr %829, i32 0, i32 51
  %831 = load i8, ptr %830, align 1, !tbaa !156, !range !26, !noundef !27
  %832 = trunc i8 %831 to i1
  %833 = zext i1 %832 to i32
  %834 = load ptr, ptr %3, align 8, !tbaa !5
  %835 = getelementptr inbounds %struct.ImGuiContext, ptr %834, i32 0, i32 3
  %836 = getelementptr inbounds %struct.ImGuiIO, ptr %835, i32 0, i32 52
  %837 = load i8, ptr %836, align 2, !tbaa !157, !range !26, !noundef !27
  %838 = trunc i8 %837 to i1
  %839 = zext i1 %838 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.306, i32 noundef %833, i32 noundef %839)
  %840 = load ptr, ptr %3, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.ImGuiContext, ptr %840, i32 0, i32 85
  %842 = load i32, ptr %841, align 8, !tbaa !158
  %843 = load ptr, ptr %3, align 8, !tbaa !5
  %844 = getelementptr inbounds %struct.ImGuiContext, ptr %843, i32 0, i32 88
  %845 = load i32, ptr %844, align 4, !tbaa !159
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.307, i32 noundef %842, i32 noundef %845)
  %846 = load ptr, ptr %3, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.ImGuiContext, ptr %846, i32 0, i32 101
  %848 = load i8, ptr %847, align 2, !tbaa !160, !range !26, !noundef !27
  %849 = trunc i8 %848 to i1
  %850 = zext i1 %849 to i32
  %851 = load ptr, ptr %3, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.ImGuiContext, ptr %851, i32 0, i32 102
  %853 = load i8, ptr %852, align 1, !tbaa !161, !range !26, !noundef !27
  %854 = trunc i8 %853 to i1
  %855 = zext i1 %854 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.308, i32 noundef %850, i32 noundef %855)
  %856 = load ptr, ptr %3, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.ImGuiContext, ptr %856, i32 0, i32 84
  %858 = load i32, ptr %857, align 4, !tbaa !162
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.309, i32 noundef %858)
  %859 = load ptr, ptr %3, align 8, !tbaa !5
  %860 = getelementptr inbounds %struct.ImGuiContext, ptr %859, i32 0, i32 124
  %861 = load ptr, ptr %860, align 8, !tbaa !163
  %862 = icmp ne ptr %861, null
  br i1 %862, label %863, label %869

863:                                              ; preds = %814
  %864 = load ptr, ptr %3, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.ImGuiContext, ptr %864, i32 0, i32 124
  %866 = load ptr, ptr %865, align 8, !tbaa !163
  %867 = getelementptr inbounds %struct.ImGuiWindow, ptr %866, i32 0, i32 0
  %868 = load ptr, ptr %867, align 8, !tbaa !84
  br label %870

869:                                              ; preds = %814
  br label %870

870:                                              ; preds = %869, %863
  %871 = phi ptr [ %868, %863 ], [ @.str.261, %869 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.310, ptr noundef %871)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #8
  br label %872

872:                                              ; preds = %870, %682
  %873 = load ptr, ptr %5, align 8, !tbaa !5
  %874 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %873, i32 0, i32 0
  %875 = load i8, ptr %874, align 4, !tbaa !25, !range !26, !noundef !27
  %876 = trunc i8 %875 to i1
  br i1 %876, label %882, label %877

877:                                              ; preds = %872
  %878 = load ptr, ptr %5, align 8, !tbaa !5
  %879 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %878, i32 0, i32 1
  %880 = load i8, ptr %879, align 1, !tbaa !164, !range !26, !noundef !27
  %881 = trunc i8 %880 to i1
  br i1 %881, label %882, label %961

882:                                              ; preds = %877, %872
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  store i32 0, ptr %43, align 4, !tbaa !92
  br label %883

883:                                              ; preds = %957, %882
  %884 = load i32, ptr %43, align 4, !tbaa !92
  %885 = load ptr, ptr %3, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.ImGuiContext, ptr %885, i32 0, i32 22
  %887 = getelementptr inbounds %struct.ImVector.3, ptr %886, i32 0, i32 0
  %888 = load i32, ptr %887, align 8, !tbaa !165
  %889 = icmp slt i32 %884, %888
  br i1 %889, label %891, label %890

890:                                              ; preds = %883
  store i32 35, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %960

891:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %892 = load ptr, ptr %3, align 8, !tbaa !5
  %893 = getelementptr inbounds %struct.ImGuiContext, ptr %892, i32 0, i32 22
  %894 = load i32, ptr %43, align 4, !tbaa !92
  %895 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %893, i32 noundef %894)
  %896 = load ptr, ptr %895, align 8, !tbaa !5
  store ptr %896, ptr %44, align 8, !tbaa !5
  %897 = load ptr, ptr %44, align 8, !tbaa !5
  %898 = getelementptr inbounds %struct.ImGuiWindow, ptr %897, i32 0, i32 24
  %899 = load i8, ptr %898, align 1, !tbaa !166, !range !26, !noundef !27
  %900 = trunc i8 %899 to i1
  br i1 %900, label %902, label %901

901:                                              ; preds = %891
  store i32 37, ptr %12, align 4
  br label %954

902:                                              ; preds = %891
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %903 = load ptr, ptr %44, align 8, !tbaa !5
  %904 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %903)
  store ptr %904, ptr %45, align 8, !tbaa !5
  %905 = load ptr, ptr %5, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %905, i32 0, i32 0
  %907 = load i8, ptr %906, align 4, !tbaa !25, !range !26, !noundef !27
  %908 = trunc i8 %907 to i1
  br i1 %908, label %909, label %922

909:                                              ; preds = %902
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #8
  %910 = load ptr, ptr %44, align 8, !tbaa !5
  %911 = load ptr, ptr %5, align 8, !tbaa !5
  %912 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %911, i32 0, i32 5
  %913 = load i32, ptr %912, align 4, !tbaa !22
  %914 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %910, i32 noundef %913)
  %915 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %46, i32 0, i32 0
  %916 = extractvalue { <2 x float>, <2 x float> } %914, 0
  store <2 x float> %916, ptr %915, align 4
  %917 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %46, i32 0, i32 1
  %918 = extractvalue { <2 x float>, <2 x float> } %914, 1
  store <2 x float> %918, ptr %917, align 4
  %919 = load ptr, ptr %45, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.ImRect, ptr %46, i32 0, i32 0
  %921 = getelementptr inbounds %struct.ImRect, ptr %46, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %919, ptr noundef nonnull align 4 dereferenceable(8) %920, ptr noundef nonnull align 4 dereferenceable(8) %921, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 15, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #8
  br label %922

922:                                              ; preds = %909, %902
  %923 = load ptr, ptr %5, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %923, i32 0, i32 1
  %925 = load i8, ptr %924, align 1, !tbaa !164, !range !26, !noundef !27
  %926 = trunc i8 %925 to i1
  br i1 %926, label %927, label %953

927:                                              ; preds = %922
  %928 = load ptr, ptr %44, align 8, !tbaa !5
  %929 = getelementptr inbounds %struct.ImGuiWindow, ptr %928, i32 0, i32 2
  %930 = load i32, ptr %929, align 4, !tbaa !123
  %931 = and i32 %930, 16777216
  %932 = icmp ne i32 %931, 0
  br i1 %932, label %953, label %933

933:                                              ; preds = %927
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  %934 = getelementptr inbounds [32 x i8], ptr %47, i64 0, i64 0
  %935 = load ptr, ptr %44, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.ImGuiWindow, ptr %935, i32 0, i32 37
  %937 = load i16, ptr %936, align 2, !tbaa !167
  %938 = sext i16 %937 to i32
  %939 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %934, i64 noundef 32, ptr noundef @.str.311, i32 noundef %938)
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %940 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %940, ptr %48, align 4, !tbaa !168
  %941 = load ptr, ptr %45, align 8, !tbaa !5
  %942 = load ptr, ptr %44, align 8, !tbaa !5
  %943 = getelementptr inbounds %struct.ImGuiWindow, ptr %942, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  %944 = load ptr, ptr %44, align 8, !tbaa !5
  %945 = getelementptr inbounds %struct.ImGuiWindow, ptr %944, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %946 = load float, ptr %48, align 4, !tbaa !168
  %947 = load float, ptr %48, align 4, !tbaa !168
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef %946, float noundef %947)
  %948 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %945, ptr noundef nonnull align 4 dereferenceable(8) %50)
  store <2 x float> %948, ptr %49, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %941, ptr noundef nonnull align 4 dereferenceable(8) %943, ptr noundef nonnull align 4 dereferenceable(8) %49, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  %949 = load ptr, ptr %45, align 8, !tbaa !5
  %950 = load ptr, ptr %44, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiWindow, ptr %950, i32 0, i32 3
  %952 = getelementptr inbounds [32 x i8], ptr %47, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %949, ptr noundef nonnull align 4 dereferenceable(8) %951, i32 noundef -1, ptr noundef %952, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  br label %953

953:                                              ; preds = %933, %927, %922
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  store i32 0, ptr %12, align 4
  br label %954

954:                                              ; preds = %953, %901
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  %955 = load i32, ptr %12, align 4
  switch i32 %955, label %1064 [
    i32 0, label %956
    i32 37, label %957
  ]

956:                                              ; preds = %954
  br label %957

957:                                              ; preds = %956, %954
  %958 = load i32, ptr %43, align 4, !tbaa !92
  %959 = add nsw i32 %958, 1
  store i32 %959, ptr %43, align 4, !tbaa !92
  br label %883, !llvm.loop !169

960:                                              ; preds = %890
  br label %961

961:                                              ; preds = %960, %877
  %962 = load ptr, ptr %5, align 8, !tbaa !5
  %963 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %962, i32 0, i32 2
  %964 = load i8, ptr %963, align 2, !tbaa !99, !range !26, !noundef !27
  %965 = trunc i8 %964 to i1
  br i1 %965, label %966, label %1062

966:                                              ; preds = %961
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  store i32 0, ptr %51, align 4, !tbaa !92
  br label %967

967:                                              ; preds = %1058, %966
  %968 = load i32, ptr %51, align 4, !tbaa !92
  %969 = load ptr, ptr %3, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.ImGuiContext, ptr %969, i32 0, i32 167
  %971 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %970)
  %972 = icmp slt i32 %968, %971
  br i1 %972, label %974, label %973

973:                                              ; preds = %967
  store i32 38, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %1061

974:                                              ; preds = %967
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  %975 = load ptr, ptr %3, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.ImGuiContext, ptr %975, i32 0, i32 167
  %977 = load i32, ptr %51, align 4, !tbaa !92
  %978 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(36) %976, i32 noundef %977)
  store ptr %978, ptr %52, align 8, !tbaa !5
  %979 = load ptr, ptr %52, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.ImGuiTable, ptr %979, i32 0, i32 12
  %981 = load i32, ptr %980, align 8, !tbaa !100
  %982 = load ptr, ptr %3, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.ImGuiContext, ptr %982, i32 0, i32 11
  %984 = load i32, ptr %983, align 8, !tbaa !108
  %985 = sub nsw i32 %984, 1
  %986 = icmp slt i32 %981, %985
  br i1 %986, label %987, label %988

987:                                              ; preds = %974
  store i32 40, ptr %12, align 4
  br label %1055

988:                                              ; preds = %974
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  %989 = load ptr, ptr %52, align 8, !tbaa !5
  %990 = getelementptr inbounds %struct.ImGuiTable, ptr %989, i32 0, i32 63
  %991 = load ptr, ptr %990, align 8, !tbaa !109
  %992 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %991)
  store ptr %992, ptr %53, align 8, !tbaa !5
  %993 = load ptr, ptr %5, align 8, !tbaa !5
  %994 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %993, i32 0, i32 6
  %995 = load i32, ptr %994, align 4, !tbaa !24
  %996 = icmp sge i32 %995, 6
  br i1 %996, label %997, label %1041

997:                                              ; preds = %988
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  store i32 0, ptr %54, align 4, !tbaa !92
  br label %998

998:                                              ; preds = %1037, %997
  %999 = load i32, ptr %54, align 4, !tbaa !92
  %1000 = load ptr, ptr %52, align 8, !tbaa !5
  %1001 = getelementptr inbounds %struct.ImGuiTable, ptr %1000, i32 0, i32 13
  %1002 = load i32, ptr %1001, align 4, !tbaa !112
  %1003 = icmp slt i32 %999, %1002
  br i1 %1003, label %1005, label %1004

1004:                                             ; preds = %998
  store i32 41, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %1040

1005:                                             ; preds = %998
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #8
  %1006 = load ptr, ptr %52, align 8, !tbaa !5
  %1007 = load ptr, ptr %5, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1007, i32 0, i32 6
  %1009 = load i32, ptr %1008, align 4, !tbaa !24
  %1010 = load i32, ptr %54, align 4, !tbaa !92
  %1011 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1006, i32 noundef %1009, i32 noundef %1010)
  %1012 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %55, i32 0, i32 0
  %1013 = extractvalue { <2 x float>, <2 x float> } %1011, 0
  store <2 x float> %1013, ptr %1012, align 4
  %1014 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %55, i32 0, i32 1
  %1015 = extractvalue { <2 x float>, <2 x float> } %1011, 1
  store <2 x float> %1015, ptr %1014, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %1016 = load ptr, ptr %52, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.ImGuiTable, ptr %1016, i32 0, i32 75
  %1018 = load i8, ptr %1017, align 4, !tbaa !170
  %1019 = sext i8 %1018 to i32
  %1020 = load i32, ptr %54, align 4, !tbaa !92
  %1021 = icmp eq i32 %1019, %1020
  %1022 = zext i1 %1021 to i64
  %1023 = select i1 %1021, i32 -8323073, i32 -8388353
  store i32 %1023, ptr %56, align 4, !tbaa !92
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  %1024 = load ptr, ptr %52, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.ImGuiTable, ptr %1024, i32 0, i32 75
  %1026 = load i8, ptr %1025, align 4, !tbaa !170
  %1027 = sext i8 %1026 to i32
  %1028 = load i32, ptr %54, align 4, !tbaa !92
  %1029 = icmp eq i32 %1027, %1028
  %1030 = zext i1 %1029 to i64
  %1031 = select i1 %1029, float 3.000000e+00, float 1.000000e+00
  store float %1031, ptr %57, align 4, !tbaa !168
  %1032 = load ptr, ptr %53, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.ImRect, ptr %55, i32 0, i32 0
  %1034 = getelementptr inbounds %struct.ImRect, ptr %55, i32 0, i32 1
  %1035 = load i32, ptr %56, align 4, !tbaa !92
  %1036 = load float, ptr %57, align 4, !tbaa !168
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1032, ptr noundef nonnull align 4 dereferenceable(8) %1033, ptr noundef nonnull align 4 dereferenceable(8) %1034, i32 noundef %1035, float noundef 0.000000e+00, i32 noundef -1, float noundef %1036)
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #8
  br label %1037

1037:                                             ; preds = %1005
  %1038 = load i32, ptr %54, align 4, !tbaa !92
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr %54, align 4, !tbaa !92
  br label %998, !llvm.loop !171

1040:                                             ; preds = %1004
  br label %1054

1041:                                             ; preds = %988
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #8
  %1042 = load ptr, ptr %52, align 8, !tbaa !5
  %1043 = load ptr, ptr %5, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1043, i32 0, i32 6
  %1045 = load i32, ptr %1044, align 4, !tbaa !24
  %1046 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1042, i32 noundef %1045, i32 noundef -1)
  %1047 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %58, i32 0, i32 0
  %1048 = extractvalue { <2 x float>, <2 x float> } %1046, 0
  store <2 x float> %1048, ptr %1047, align 4
  %1049 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %58, i32 0, i32 1
  %1050 = extractvalue { <2 x float>, <2 x float> } %1046, 1
  store <2 x float> %1050, ptr %1049, align 4
  %1051 = load ptr, ptr %53, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.ImRect, ptr %58, i32 0, i32 0
  %1053 = getelementptr inbounds %struct.ImRect, ptr %58, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1051, ptr noundef nonnull align 4 dereferenceable(8) %1052, ptr noundef nonnull align 4 dereferenceable(8) %1053, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 15, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #8
  br label %1054

1054:                                             ; preds = %1041, %1040
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  store i32 0, ptr %12, align 4
  br label %1055

1055:                                             ; preds = %1054, %987
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  %1056 = load i32, ptr %12, align 4
  switch i32 %1056, label %1064 [
    i32 0, label %1057
    i32 40, label %1058
  ]

1057:                                             ; preds = %1055
  br label %1058

1058:                                             ; preds = %1057, %1055
  %1059 = load i32, ptr %51, align 4, !tbaa !92
  %1060 = add nsw i32 %1059, 1
  store i32 %1060, ptr %51, align 4, !tbaa !92
  br label %967, !llvm.loop !172

1061:                                             ; preds = %973
  br label %1062

1062:                                             ; preds = %1061, %961
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 104, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #8
  br label %1063

1063:                                             ; preds = %1062, %61
  ret void

1064:                                             ; preds = %1055, %954, %413
  unreachable
}

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

declare void @_ZN5ImGui9SeparatorEv() #4

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui20DebugStartItemPickerEv() #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL17MetricsHelpMarkerPKc(ptr noundef) #5

declare noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) #4

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) #4

declare void @_ZN5ImGui10BulletTextEPKcz(ptr noundef, ...) #4

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef, i32 noundef) #7 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef, i32 noundef, i32 noundef) #5 align 2

declare noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef, i1 noundef zeroext, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef, ptr noundef) #5

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef, ptr noundef, ...) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef, ptr noundef) #5

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) #4

declare noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef) #4

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, ptr noundef) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef) #5

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #5 align 2

declare noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef) #6

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

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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress 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 #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 = !{!10, !13, i64 920}
!10 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !12, i64 8, !13, i64 16, !13, i64 20, !6, i64 24, !6, i64 32, !13, i64 40, !13, i64 44, !13, i64 48, !7, i64 52, !13, i64 140, !13, i64 144, !6, i64 152, !6, i64 160, !13, i64 168, !14, i64 172, !6, i64 176, !12, i64 184, !14, i64 192, !14, i64 193, !14, i64 194, !14, i64 195, !14, i64 196, !14, i64 197, !13, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !12, i64 288, !7, i64 296, !13, i64 304, !13, i64 308, !14, i64 312, !14, i64 313, !14, i64 314, !14, i64 315, !7, i64 316, !7, i64 828, !14, i64 912, !14, i64 913, !14, i64 914, !14, i64 915, !14, i64 916, !14, i64 917, !14, i64 918, !13, i64 920, !11, i64 924, !11, i64 928, !11, i64 932, !11, i64 936, !11, i64 940, !12, i64 944, !11, i64 952, !12, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1076, !7, i64 1096, !7, i64 1116, !7, i64 1156, !7, i64 1176, !7, i64 3224, !7, i64 5272, !7, i64 5356, !13, i64 5440, !15, i64 5444, !16, i64 5448}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImVec2", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"short", !7, i64 0}
!16 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!17 = !{!10, !11, i64 924}
!18 = !{!10, !11, i64 928}
!19 = !{!10, !11, i64 936}
!20 = !{!10, !11, i64 932}
!21 = !{!10, !11, i64 940}
!22 = !{!23, !11, i64 8}
!23 = !{!"_ZTS18ImGuiMetricsConfig", !14, i64 0, !14, i64 1, !14, i64 2, !14, i64 3, !14, i64 4, !11, i64 8, !11, i64 12}
!24 = !{!23, !11, i64 12}
!25 = !{!23, !14, i64 0}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!29, !6, i64 7312}
!29 = !{!"_ZTS12ImGuiContext", !14, i64 0, !14, i64 1, !10, i64 8, !30, i64 5472, !6, i64 6520, !13, i64 6528, !13, i64 6532, !31, i64 6536, !33, i64 6752, !11, i64 6760, !11, i64 6764, !11, i64 6768, !14, i64 6772, !14, i64 6773, !14, i64 6774, !14, i64 6775, !14, i64 6776, !11, i64 6780, !6, i64 6784, !34, i64 6792, !34, i64 6808, !34, i64 6824, !34, i64 6840, !35, i64 6856, !11, i64 6872, !6, i64 6880, !6, i64 6888, !6, i64 6896, !6, i64 6904, !6, i64 6912, !6, i64 6920, !12, i64 6928, !13, i64 6936, !11, i64 6940, !11, i64 6944, !14, i64 6948, !14, i64 6949, !14, i64 6950, !14, i64 6951, !13, i64 6952, !13, i64 6956, !11, i64 6960, !11, i64 6964, !13, i64 6968, !14, i64 6972, !14, i64 6973, !14, i64 6974, !14, i64 6975, !14, i64 6976, !14, i64 6977, !14, i64 6978, !11, i64 6980, !11, i64 6984, !37, i64 6992, !12, i64 7000, !6, i64 7008, !38, i64 7016, !11, i64 7020, !11, i64 7024, !14, i64 7028, !14, i64 7029, !6, i64 7032, !11, i64 7040, !13, i64 7044, !39, i64 7048, !41, i64 7160, !42, i64 7184, !43, i64 7200, !44, i64 7216, !45, i64 7232, !46, i64 7248, !47, i64 7264, !48, i64 7280, !48, i64 7296, !6, i64 7312, !11, i64 7320, !11, i64 7324, !11, i64 7328, !11, i64 7332, !11, i64 7336, !11, i64 7340, !11, i64 7344, !11, i64 7348, !11, i64 7352, !11, i64 7356, !11, i64 7360, !38, i64 7364, !40, i64 7368, !11, i64 7384, !49, i64 7388, !11, i64 7392, !14, i64 7396, !14, i64 7397, !14, i64 7398, !14, i64 7399, !14, i64 7400, !14, i64 7401, !14, i64 7402, !11, i64 7404, !40, i64 7408, !14, i64 7424, !11, i64 7428, !50, i64 7432, !11, i64 7436, !11, i64 7440, !11, i64 7444, !11, i64 7448, !51, i64 7456, !51, i64 7504, !51, i64 7552, !6, i64 7600, !11, i64 7608, !6, i64 7616, !6, i64 7624, !6, i64 7632, !13, i64 7640, !13, i64 7644, !14, i64 7648, !6, i64 7656, !6, i64 7664, !11, i64 7672, !11, i64 7676, !11, i64 7680, !11, i64 7684, !14, i64 7688, !52, i64 7696, !53, i64 7752, !13, i64 7784, !54, i64 7792, !54, i64 7992, !11, i64 8192, !14, i64 8196, !14, i64 8197, !14, i64 8198, !11, i64 8200, !11, i64 8204, !11, i64 8208, !63, i64 8216, !40, i64 8280, !11, i64 8296, !11, i64 8300, !13, i64 8304, !11, i64 8308, !11, i64 8312, !11, i64 8316, !11, i64 8320, !64, i64 8328, !7, i64 8344, !6, i64 8360, !65, i64 8368, !67, i64 8408, !68, i64 8424, !62, i64 8440, !6, i64 8456, !69, i64 8464, !67, i64 8504, !71, i64 8520, !12, i64 8536, !72, i64 8544, !76, i64 12280, !11, i64 12392, !11, i64 12396, !13, i64 12400, !13, i64 12404, !7, i64 12408, !32, i64 12420, !13, i64 12436, !14, i64 12440, !14, i64 12441, !13, i64 12444, !13, i64 12448, !13, i64 12452, !11, i64 12456, !13, i64 12460, !73, i64 12464, !45, i64 12480, !12, i64 12496, !12, i64 12504, !7, i64 12512, !14, i64 12513, !13, i64 12516, !78, i64 12520, !79, i64 12536, !80, i64 12552, !81, i64 12568, !82, i64 12584, !14, i64 12600, !83, i64 12604, !6, i64 12608, !78, i64 12616, !13, i64 12632, !14, i64 12636, !11, i64 12640, !11, i64 12644, !11, i64 12648, !14, i64 12652, !11, i64 12656, !23, i64 12660, !7, i64 12676, !11, i64 13156, !13, i64 13160, !11, i64 13164, !11, i64 13168, !11, i64 13172, !7, i64 13176}
!30 = !{!"_ZTS10ImGuiStyle", !13, i64 0, !12, i64 4, !13, i64 12, !13, i64 16, !12, i64 20, !12, i64 28, !11, i64 36, !13, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !12, i64 56, !13, i64 64, !13, i64 68, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !13, i64 104, !13, i64 108, !13, i64 112, !13, i64 116, !13, i64 120, !13, i64 124, !13, i64 128, !13, i64 132, !13, i64 136, !13, i64 140, !11, i64 144, !12, i64 148, !12, i64 156, !12, i64 164, !12, i64 172, !13, i64 180, !14, i64 184, !14, i64 185, !14, i64 186, !13, i64 188, !13, i64 192, !7, i64 196}
!31 = !{!"_ZTS20ImDrawListSharedData", !12, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !32, i64 28, !11, i64 44, !7, i64 48, !7, i64 144, !6, i64 208}
!32 = !{!"_ZTS6ImVec4", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12}
!33 = !{!"double", !7, i64 0}
!34 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!35 = !{!"_ZTS12ImGuiStorage", !36, i64 0}
!36 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!37 = !{!"long long", !7, i64 0}
!38 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!39 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !14, i64 56, !40, i64 60, !6, i64 80, !6, i64 88, !13, i64 96, !12, i64 100}
!40 = !{!"_ZTS6ImRect", !12, i64 0, !12, i64 8}
!41 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !13, i64 4, !11, i64 8, !11, i64 12, !14, i64 16}
!42 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!49 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!50 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!51 = !{!"_ZTS18ImGuiNavMoveResult", !6, i64 0, !11, i64 8, !11, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !40, i64 28}
!52 = !{!"_ZTS10ImDrawData", !14, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !12, i64 28, !12, i64 36, !12, i64 44}
!53 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0}
!54 = !{!"_ZTS10ImDrawList", !55, i64 0, !16, i64 16, !56, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !57, i64 88, !58, i64 104, !59, i64 120, !60, i64 136, !61, i64 168, !13, i64 192}
!55 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!"_ZTS15ImDrawCmdHeader", !32, i64 0, !6, i64 16, !11, i64 24}
!61 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !62, i64 8}
!62 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!63 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !14, i64 57, !14, i64 58}
!64 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS6ImPoolI10ImGuiTableE", !66, i64 0, !35, i64 16, !11, i64 32}
!66 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !70, i64 0, !35, i64 16, !11, i64 32}
!70 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS19ImGuiInputTextState", !11, i64 0, !11, i64 4, !11, i64 8, !16, i64 16, !73, i64 32, !73, i64 48, !14, i64 64, !11, i64 68, !13, i64 72, !74, i64 76, !13, i64 3704, !14, i64 3708, !14, i64 3709, !14, i64 3710, !11, i64 3712, !6, i64 3720, !6, i64 3728}
!73 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!74 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 12, !11, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !13, i64 28, !75, i64 32}
!75 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!76 = !{!"_ZTS6ImFont", !68, i64 0, !13, i64 16, !13, i64 20, !16, i64 24, !77, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !14, i64 86, !13, i64 88, !13, i64 92, !13, i64 96, !11, i64 100, !7, i64 104}
!77 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS15ImGuiTextBuffer", !73, i64 0}
!79 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !73, i64 0}
!81 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !73, i64 0}
!82 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!83 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!84 = !{!85, !6, i64 0}
!85 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !11, i64 8, !11, i64 12, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !13, i64 72, !13, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !12, i64 92, !12, i64 100, !12, i64 108, !12, i64 116, !12, i64 124, !12, i64 132, !14, i64 140, !14, i64 141, !14, i64 142, !14, i64 143, !14, i64 144, !14, i64 145, !14, i64 146, !14, i64 147, !14, i64 148, !14, i64 149, !14, i64 150, !14, i64 151, !7, i64 152, !15, i64 154, !15, i64 156, !15, i64 158, !11, i64 160, !7, i64 164, !7, i64 165, !7, i64 166, !14, i64 167, !11, i64 168, !7, i64 172, !7, i64 173, !7, i64 174, !11, i64 175, !11, i64 176, !11, i64 177, !12, i64 180, !12, i64 188, !45, i64 200, !86, i64 216, !40, i64 520, !40, i64 536, !40, i64 552, !40, i64 568, !40, i64 584, !40, i64 600, !40, i64 616, !90, i64 632, !90, i64 636, !11, i64 640, !13, i64 644, !13, i64 648, !35, i64 656, !91, i64 672, !13, i64 688, !11, i64 692, !6, i64 696, !54, i64 704, !6, i64 904, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !7, i64 944, !7, i64 952, !11, i64 984, !11, i64 988, !14, i64 992}
!86 = !{!"_ZTS19ImGuiWindowTempData", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !13, i64 56, !13, i64 60, !87, i64 64, !87, i64 68, !87, i64 72, !11, i64 76, !11, i64 80, !40, i64 84, !40, i64 100, !49, i64 116, !11, i64 120, !11, i64 124, !11, i64 128, !14, i64 132, !14, i64 133, !14, i64 134, !12, i64 136, !88, i64 144, !11, i64 180, !11, i64 184, !34, i64 192, !6, i64 208, !6, i64 216, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !11, i64 240, !11, i64 244, !13, i64 248, !13, i64 252, !68, i64 256, !68, i64 272, !89, i64 288}
!87 = !{!"_ZTS6ImVec1", !13, i64 0}
!88 = !{!"_ZTS16ImGuiMenuColumns", !13, i64 0, !13, i64 4, !13, i64 8, !7, i64 12, !7, i64 24}
!89 = !{!"_ZTS15ImGuiStackSizes", !15, i64 0, !15, i64 2, !15, i64 4, !15, i64 6, !15, i64 8, !15, i64 10, !15, i64 12}
!90 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!91 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!92 = !{!11, !11, i64 0}
!93 = !{!40, !13, i64 0}
!94 = !{!40, !13, i64 4}
!95 = !{!40, !13, i64 8}
!96 = !{!40, !13, i64 12}
!97 = distinct !{!97, !98}
!98 = !{!"llvm.loop.mustprogress"}
!99 = !{!23, !14, i64 2}
!100 = !{!101, !11, i64 104}
!101 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !102, i64 16, !103, i64 32, !104, i64 48, !37, i64 64, !37, i64 72, !37, i64 80, !37, i64 88, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !15, i64 120, !15, i64 122, !13, i64 124, !13, i64 128, !13, i64 132, !13, i64 136, !13, i64 140, !11, i64 144, !11, i64 146, !11, i64 148, !7, i64 152, !11, i64 160, !11, i64 164, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !13, i64 184, !13, i64 188, !13, i64 192, !13, i64 196, !13, i64 200, !13, i64 204, !13, i64 208, !13, i64 212, !13, i64 216, !13, i64 220, !13, i64 224, !13, i64 228, !13, i64 232, !40, i64 236, !40, i64 252, !40, i64 268, !40, i64 284, !40, i64 300, !40, i64 316, !40, i64 332, !40, i64 348, !40, i64 364, !40, i64 380, !40, i64 396, !12, i64 412, !12, i64 420, !12, i64 428, !12, i64 436, !87, i64 444, !13, i64 448, !11, i64 452, !6, i64 456, !6, i64 464, !78, i64 472, !61, i64 488, !105, i64 512, !106, i64 528, !107, i64 544, !7, i64 560, !7, i64 561, !7, i64 562, !7, i64 563, !7, i64 564, !7, i64 565, !7, i64 566, !7, i64 567, !7, i64 568, !7, i64 569, !7, i64 570, !7, i64 571, !7, i64 572, !7, i64 573, !7, i64 574, !7, i64 575, !7, i64 576, !7, i64 577, !7, i64 578, !7, i64 579, !7, i64 580, !7, i64 581, !7, i64 582, !7, i64 583, !14, i64 584, !14, i64 585, !14, i64 586, !14, i64 587, !14, i64 588, !14, i64 589, !14, i64 590, !14, i64 591, !14, i64 592, !14, i64 593, !14, i64 594, !14, i64 595, !14, i64 596, !14, i64 597, !14, i64 598}
!102 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!103 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!104 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!105 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !15, i64 4, !15, i64 6, !11, i64 8}
!106 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!107 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !14, i64 12}
!108 = !{!29, !11, i64 6760}
!109 = !{!101, !6, i64 456}
!110 = !{!101, !6, i64 464}
!111 = !{!101, !11, i64 0}
!112 = !{!101, !11, i64 108}
!113 = distinct !{!113, !98}
!114 = distinct !{!114, !98}
!115 = distinct !{!115, !98}
!116 = !{!117, !11, i64 0}
!117 = !{!"_ZTS8ImVectorIP10ImDrawListE", !11, i64 0, !11, i64 4, !6, i64 8}
!118 = distinct !{!118, !98}
!119 = !{!29, !11, i64 7280}
!120 = !{!121, !6, i64 8}
!121 = !{!"_ZTS14ImGuiPopupData", !11, i64 0, !6, i64 8, !6, i64 16, !11, i64 24, !11, i64 28, !12, i64 32, !12, i64 40}
!122 = !{!121, !11, i64 0}
!123 = !{!85, !11, i64 12}
!124 = distinct !{!124, !98}
!125 = distinct !{!125, !98}
!126 = distinct !{!126, !98}
!127 = !{!29, !6, i64 32}
!128 = !{!29, !13, i64 12516}
!129 = !{!29, !11, i64 12536}
!130 = !{!131, !6, i64 0}
!131 = !{!"_ZTS20ImGuiSettingsHandler", !6, i64 0, !11, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64}
!132 = distinct !{!132, !98}
!133 = distinct !{!133, !98}
!134 = distinct !{!134, !98}
!135 = !{!29, !11, i64 12520}
!136 = !{!29, !6, i64 6888}
!137 = !{!29, !6, i64 6896}
!138 = !{!29, !6, i64 6904}
!139 = !{!29, !6, i64 6912}
!140 = !{!29, !11, i64 6960}
!141 = !{!29, !11, i64 7024}
!142 = !{!29, !13, i64 6968}
!143 = !{!29, !14, i64 6973}
!144 = !{!29, !38, i64 7016}
!145 = !{!29, !6, i64 7008}
!146 = !{!29, !11, i64 6940}
!147 = !{!29, !11, i64 6944}
!148 = !{!29, !13, i64 6952}
!149 = !{!29, !14, i64 6948}
!150 = !{!29, !14, i64 8196}
!151 = !{!29, !11, i64 8228}
!152 = !{!29, !11, i64 8224}
!153 = !{!29, !11, i64 7320}
!154 = !{!29, !49, i64 7388}
!155 = !{!29, !38, i64 7364}
!156 = !{!29, !14, i64 925}
!157 = !{!29, !14, i64 926}
!158 = !{!29, !11, i64 7328}
!159 = !{!29, !11, i64 7340}
!160 = !{!29, !14, i64 7398}
!161 = !{!29, !14, i64 7399}
!162 = !{!29, !11, i64 7324}
!163 = !{!29, !6, i64 7616}
!164 = !{!23, !14, i64 1}
!165 = !{!29, !11, i64 6792}
!166 = !{!85, !14, i64 143}
!167 = !{!85, !15, i64 158}
!168 = !{!13, !13, i64 0}
!169 = distinct !{!169, !98}
!170 = !{!101, !7, i64 564}
!171 = distinct !{!171, !98}
!172 = distinct !{!172, !98}


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

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

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [22 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names = external hidden unnamed_addr constant [13 x ptr], align 16
@.str.240 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [15 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names = external hidden unnamed_addr constant [5 x ptr], align 16
@.str.292 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [3 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: inlinehint mustprogress uwtable
declare hidden <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z14ImFormatStringPcmPKcz(ptr noundef, i64 noundef, ptr noundef, ...) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui16SetNextItemWidthEf(float noundef) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEv() local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui10GetVersionEv() local_unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui3EndEv() local_unnamed_addr #5

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN5ImGui11GetFontSizeEv() local_unnamed_addr #1

declare void @_ZN5ImGui7TreePopEv() local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8SameLineEff(float noundef, float noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui6IndentEf(float noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui8UnindentEf(float noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZN5ImGui17GetTextLineHeightEv() local_unnamed_addr #1

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui16ClearIniSettingsEv() local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17ShowMetricsWindowEPb(ptr noundef %0) local_unnamed_addr #7 {
  %2 = alloca [8 x ptr], align 16
  %3 = alloca [13 x ptr], align 16
  %4 = alloca %struct.ImVec2, align 4
  %5 = alloca %struct.ImRect, align 8
  %6 = alloca %struct.ImVec2, align 8
  %7 = alloca %struct.ImVec2, align 4
  %8 = alloca %struct.ImVec2, align 8
  %9 = alloca %struct.ImVec2, align 4
  %10 = alloca [128 x i8], align 16
  %11 = alloca %struct.ImRect, align 8
  %12 = alloca %struct.ImVec2, align 4
  %13 = alloca %struct.ImVec2, align 8
  %14 = alloca %struct.ImVec2, align 4
  %15 = alloca %struct.ImVec2, align 8
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImRect, align 8
  %18 = alloca %struct.ImVec2, align 4
  %19 = alloca %struct.ImVec2, align 8
  %20 = alloca %struct.ImVec2, align 4
  %21 = alloca %struct.ImVec2, align 8
  %22 = alloca %struct.ImVec2, align 4
  %23 = alloca %struct.ImVec2, align 4
  %24 = alloca %struct.ImRect, align 8
  %25 = alloca [32 x i8], align 16
  %26 = alloca %struct.ImVec2, align 8
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImRect, align 8
  %29 = alloca %struct.ImRect, align 8
  %30 = tail call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef nonnull @.str.217, ptr noundef %0, i32 noundef 0)
  br i1 %30, label %32, label %31

31:                                               ; preds = %1
  tail call void @_ZN5ImGui3EndEv()
  br label %652

32:                                               ; preds = %1
  %33 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %34 = getelementptr inbounds i8, ptr %33, i64 12660
  %35 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.218, ptr noundef %35)
  %36 = getelementptr inbounds i8, ptr %33, i64 928
  %37 = load float, ptr %36, align 8, !tbaa !9
  %38 = fdiv float 1.000000e+03, %37
  %39 = fpext float %38 to double
  %40 = fpext float %37 to double
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.219, double noundef %39, double noundef %40)
  %41 = getelementptr inbounds i8, ptr %33, i64 932
  %42 = load i32, ptr %41, align 4, !tbaa !17
  %43 = getelementptr inbounds i8, ptr %33, i64 936
  %44 = load i32, ptr %43, align 8, !tbaa !18
  %45 = sdiv i32 %44, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.220, i32 noundef %42, i32 noundef %44, i32 noundef %45)
  %46 = getelementptr inbounds i8, ptr %33, i64 944
  %47 = load i32, ptr %46, align 8, !tbaa !19
  %48 = getelementptr inbounds i8, ptr %33, i64 940
  %49 = load i32, ptr %48, align 4, !tbaa !20
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.221, i32 noundef %47, i32 noundef %49)
  %50 = getelementptr inbounds i8, ptr %33, i64 948
  %51 = load i32, ptr %50, align 4, !tbaa !21
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.222, i32 noundef %51)
  tail call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %2) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %2, ptr noundef nonnull align 16 dereferenceable(64) @__const._ZN5ImGui17ShowMetricsWindowEPb.wrt_rects_names, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %3) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(104) %3, ptr noundef nonnull align 16 dereferenceable(104) @__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names, i64 104, i1 false)
  %52 = getelementptr inbounds i8, ptr %33, i64 12668
  %53 = load i32, ptr %52, align 4, !tbaa !22
  %54 = icmp slt i32 %53, 0
  br i1 %54, label %55, label %56

55:                                               ; preds = %32
  store i32 4, ptr %52, align 4, !tbaa !22
  br label %56

56:                                               ; preds = %55, %32
  %57 = getelementptr inbounds i8, ptr %33, i64 12672
  %58 = load i32, ptr %57, align 4, !tbaa !24
  %59 = icmp slt i32 %58, 0
  br i1 %59, label %60, label %61

60:                                               ; preds = %56
  store i32 2, ptr %57, align 4, !tbaa !24
  br label %61

61:                                               ; preds = %60, %56
  %62 = tail call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.240)
  br i1 %62, label %63, label %342

63:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %4, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %64 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef nonnull @.str.241, ptr noundef nonnull align 4 dereferenceable(8) %4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #8
  br i1 %64, label %65, label %66

65:                                               ; preds = %63
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %66

66:                                               ; preds = %65, %63
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef nonnull @.str.242)
  %67 = getelementptr inbounds i8, ptr %33, i64 12661
  %68 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.243, ptr noundef nonnull %67)
  %69 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.244, ptr noundef nonnull %34)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %70 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %71 = fmul float %70, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %71)
  %72 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.245, ptr noundef nonnull %52, ptr noundef nonnull %2, i32 noundef 8, i32 noundef 8)
  %73 = load i8, ptr %34, align 4, !tbaa !25, !range !26, !noundef !27
  %74 = zext i1 %72 to i8
  %75 = or i8 %73, %74
  %.not = icmp eq i8 %75, 0
  store i8 %75, ptr %34, align 4, !tbaa !25
  br i1 %.not, label %225, label %76

76:                                               ; preds = %66
  %77 = getelementptr inbounds i8, ptr %33, i64 7312
  %78 = load ptr, ptr %77, align 8, !tbaa !28
  %.not234 = icmp eq ptr %78, null
  br i1 %.not234, label %225, label %79

79:                                               ; preds = %76
  %80 = load ptr, ptr %78, align 8, !tbaa !84
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.246, ptr noundef %80)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %81 = getelementptr inbounds i8, ptr %5, i64 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %82 = load ptr, ptr %77, align 8, !tbaa !28
  %83 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %82, i32 noundef 0)
  %84 = extractvalue { <2 x float>, <2 x float> } %83, 0
  store <2 x float> %84, ptr %5, align 8
  %85 = extractvalue { <2 x float>, <2 x float> } %83, 1
  store <2 x float> %85, ptr %81, align 8
  %86 = extractelement <2 x float> %84, i64 0
  %87 = fpext float %86 to double
  %88 = extractelement <2 x float> %84, i64 1
  %89 = fpext float %88 to double
  %90 = extractelement <2 x float> %85, i64 0
  %91 = fpext float %90 to double
  %92 = extractelement <2 x float> %85, i64 1
  %93 = fpext float %92 to double
  %94 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %95 = fpext float %94 to double
  %96 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %97 = fpext float %96 to double
  %98 = load ptr, ptr %2, align 16, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.247, double noundef %87, double noundef %89, double noundef %91, double noundef %93, double noundef %95, double noundef %97, ptr noundef %98)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %99 = load ptr, ptr %77, align 8, !tbaa !28
  %100 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %99, i32 noundef 1)
  %101 = extractvalue { <2 x float>, <2 x float> } %100, 0
  store <2 x float> %101, ptr %5, align 8
  %102 = extractvalue { <2 x float>, <2 x float> } %100, 1
  store <2 x float> %102, ptr %81, align 8
  %103 = extractelement <2 x float> %101, i64 0
  %104 = fpext float %103 to double
  %105 = extractelement <2 x float> %101, i64 1
  %106 = fpext float %105 to double
  %107 = extractelement <2 x float> %102, i64 0
  %108 = fpext float %107 to double
  %109 = extractelement <2 x float> %102, i64 1
  %110 = fpext float %109 to double
  %111 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %112 = fpext float %111 to double
  %113 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %114 = fpext float %113 to double
  %115 = getelementptr inbounds i8, ptr %2, i64 8
  %116 = load ptr, ptr %115, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.247, double noundef %104, double noundef %106, double noundef %108, double noundef %110, double noundef %112, double noundef %114, ptr noundef %116)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %117 = load ptr, ptr %77, align 8, !tbaa !28
  %118 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %117, i32 noundef 2)
  %119 = extractvalue { <2 x float>, <2 x float> } %118, 0
  store <2 x float> %119, ptr %5, align 8
  %120 = extractvalue { <2 x float>, <2 x float> } %118, 1
  store <2 x float> %120, ptr %81, align 8
  %121 = extractelement <2 x float> %119, i64 0
  %122 = fpext float %121 to double
  %123 = extractelement <2 x float> %119, i64 1
  %124 = fpext float %123 to double
  %125 = extractelement <2 x float> %120, i64 0
  %126 = fpext float %125 to double
  %127 = extractelement <2 x float> %120, i64 1
  %128 = fpext float %127 to double
  %129 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %130 = fpext float %129 to double
  %131 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %132 = fpext float %131 to double
  %133 = getelementptr inbounds i8, ptr %2, i64 16
  %134 = load ptr, ptr %133, align 16, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.247, double noundef %122, double noundef %124, double noundef %126, double noundef %128, double noundef %130, double noundef %132, ptr noundef %134)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %135 = load ptr, ptr %77, align 8, !tbaa !28
  %136 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %135, i32 noundef 3)
  %137 = extractvalue { <2 x float>, <2 x float> } %136, 0
  store <2 x float> %137, ptr %5, align 8
  %138 = extractvalue { <2 x float>, <2 x float> } %136, 1
  store <2 x float> %138, ptr %81, align 8
  %139 = extractelement <2 x float> %137, i64 0
  %140 = fpext float %139 to double
  %141 = extractelement <2 x float> %137, i64 1
  %142 = fpext float %141 to double
  %143 = extractelement <2 x float> %138, i64 0
  %144 = fpext float %143 to double
  %145 = extractelement <2 x float> %138, i64 1
  %146 = fpext float %145 to double
  %147 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %148 = fpext float %147 to double
  %149 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %150 = fpext float %149 to double
  %151 = getelementptr inbounds i8, ptr %2, i64 24
  %152 = load ptr, ptr %151, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.247, double noundef %140, double noundef %142, double noundef %144, double noundef %146, double noundef %148, double noundef %150, ptr noundef %152)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %153 = load ptr, ptr %77, align 8, !tbaa !28
  %154 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %153, i32 noundef 4)
  %155 = extractvalue { <2 x float>, <2 x float> } %154, 0
  store <2 x float> %155, ptr %5, align 8
  %156 = extractvalue { <2 x float>, <2 x float> } %154, 1
  store <2 x float> %156, ptr %81, align 8
  %157 = extractelement <2 x float> %155, i64 0
  %158 = fpext float %157 to double
  %159 = extractelement <2 x float> %155, i64 1
  %160 = fpext float %159 to double
  %161 = extractelement <2 x float> %156, i64 0
  %162 = fpext float %161 to double
  %163 = extractelement <2 x float> %156, i64 1
  %164 = fpext float %163 to double
  %165 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %166 = fpext float %165 to double
  %167 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %168 = fpext float %167 to double
  %169 = getelementptr inbounds i8, ptr %2, i64 32
  %170 = load ptr, ptr %169, align 16, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.247, double noundef %158, double noundef %160, double noundef %162, double noundef %164, double noundef %166, double noundef %168, ptr noundef %170)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %171 = load ptr, ptr %77, align 8, !tbaa !28
  %172 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %171, i32 noundef 5)
  %173 = extractvalue { <2 x float>, <2 x float> } %172, 0
  store <2 x float> %173, ptr %5, align 8
  %174 = extractvalue { <2 x float>, <2 x float> } %172, 1
  store <2 x float> %174, ptr %81, align 8
  %175 = extractelement <2 x float> %173, i64 0
  %176 = fpext float %175 to double
  %177 = extractelement <2 x float> %173, i64 1
  %178 = fpext float %177 to double
  %179 = extractelement <2 x float> %174, i64 0
  %180 = fpext float %179 to double
  %181 = extractelement <2 x float> %174, i64 1
  %182 = fpext float %181 to double
  %183 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %184 = fpext float %183 to double
  %185 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %186 = fpext float %185 to double
  %187 = getelementptr inbounds i8, ptr %2, i64 40
  %188 = load ptr, ptr %187, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.247, double noundef %176, double noundef %178, double noundef %180, double noundef %182, double noundef %184, double noundef %186, ptr noundef %188)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %189 = load ptr, ptr %77, align 8, !tbaa !28
  %190 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %189, i32 noundef 6)
  %191 = extractvalue { <2 x float>, <2 x float> } %190, 0
  store <2 x float> %191, ptr %5, align 8
  %192 = extractvalue { <2 x float>, <2 x float> } %190, 1
  store <2 x float> %192, ptr %81, align 8
  %193 = extractelement <2 x float> %191, i64 0
  %194 = fpext float %193 to double
  %195 = extractelement <2 x float> %191, i64 1
  %196 = fpext float %195 to double
  %197 = extractelement <2 x float> %192, i64 0
  %198 = fpext float %197 to double
  %199 = extractelement <2 x float> %192, i64 1
  %200 = fpext float %199 to double
  %201 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %202 = fpext float %201 to double
  %203 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %204 = fpext float %203 to double
  %205 = getelementptr inbounds i8, ptr %2, i64 48
  %206 = load ptr, ptr %205, align 16, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.247, double noundef %194, double noundef %196, double noundef %198, double noundef %200, double noundef %202, double noundef %204, ptr noundef %206)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #8
  %207 = load ptr, ptr %77, align 8, !tbaa !28
  %208 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %207, i32 noundef 7)
  %209 = extractvalue { <2 x float>, <2 x float> } %208, 0
  store <2 x float> %209, ptr %5, align 8
  %210 = extractvalue { <2 x float>, <2 x float> } %208, 1
  store <2 x float> %210, ptr %81, align 8
  %211 = extractelement <2 x float> %209, i64 0
  %212 = fpext float %211 to double
  %213 = extractelement <2 x float> %209, i64 1
  %214 = fpext float %213 to double
  %215 = extractelement <2 x float> %210, i64 0
  %216 = fpext float %215 to double
  %217 = extractelement <2 x float> %210, i64 1
  %218 = fpext float %217 to double
  %219 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %220 = fpext float %219 to double
  %221 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %5)
  %222 = fpext float %221 to double
  %223 = getelementptr inbounds i8, ptr %2, i64 56
  %224 = load ptr, ptr %223, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.247, double noundef %212, double noundef %214, double noundef %216, double noundef %218, double noundef %220, double noundef %222, ptr noundef %224)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #8
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %225

225:                                              ; preds = %79, %76, %66
  %226 = getelementptr inbounds i8, ptr %33, i64 12663
  %227 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.248, ptr noundef nonnull %226)
  %228 = getelementptr inbounds i8, ptr %33, i64 12664
  %229 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.249, ptr noundef nonnull %228)
  %230 = getelementptr inbounds i8, ptr %33, i64 12662
  %231 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.250, ptr noundef nonnull %230)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %232 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %233 = fmul float %232, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %233)
  %234 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef nonnull @.str.251, ptr noundef nonnull %57, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %235 = load i8, ptr %230, align 2, !tbaa !92, !range !26, !noundef !27
  %236 = zext i1 %234 to i8
  %237 = or i8 %235, %236
  %.not235 = icmp eq i8 %237, 0
  store i8 %237, ptr %230, align 2, !tbaa !92
  br i1 %.not235, label %.loopexit272, label %238

238:                                              ; preds = %225
  %239 = getelementptr inbounds i8, ptr %33, i64 7312
  %240 = load ptr, ptr %239, align 8, !tbaa !28
  %.not236 = icmp eq ptr %240, null
  br i1 %.not236, label %.loopexit272, label %.preheader271

.preheader271:                                    ; preds = %238
  %241 = getelementptr inbounds i8, ptr %33, i64 8368
  %242 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %241)
  %243 = icmp sgt i32 %242, 0
  br i1 %243, label %.lr.ph278, label %.loopexit272

.lr.ph278:                                        ; preds = %.preheader271
  %244 = getelementptr inbounds i8, ptr %33, i64 6760
  %245 = getelementptr inbounds i8, ptr %17, i64 8
  %246 = getelementptr inbounds i8, ptr %11, i64 8
  br label %247

247:                                              ; preds = %.lr.ph278, %338
  %.0210277 = phi i32 [ 0, %.lr.ph278 ], [ %339, %338 ]
  %248 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(36) %241, i32 noundef %.0210277)
  %249 = getelementptr inbounds i8, ptr %248, i64 104
  %250 = load i32, ptr %249, align 8, !tbaa !93
  %251 = load i32, ptr %244, align 8, !tbaa !101
  %252 = add nsw i32 %251, -1
  %253 = icmp slt i32 %250, %252
  br i1 %253, label %338, label %254

254:                                              ; preds = %247
  %255 = getelementptr inbounds i8, ptr %248, i64 456
  %256 = load ptr, ptr %255, align 8, !tbaa !102
  %257 = load ptr, ptr %239, align 8, !tbaa !28
  %.not249 = icmp eq ptr %256, %257
  br i1 %.not249, label %261, label %258

258:                                              ; preds = %254
  %259 = getelementptr inbounds i8, ptr %248, i64 464
  %260 = load ptr, ptr %259, align 8, !tbaa !103
  %.not250 = icmp eq ptr %260, %257
  br i1 %.not250, label %261, label %338

261:                                              ; preds = %258, %254
  %262 = load i32, ptr %248, align 8, !tbaa !104
  %263 = getelementptr inbounds i8, ptr %248, i64 108
  %264 = load i32, ptr %263, align 4, !tbaa !105
  %265 = load ptr, ptr %256, align 8, !tbaa !84
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.252, i32 noundef %262, i32 noundef %264, ptr noundef %265)
  %266 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %266, label %267, label %273

267:                                              ; preds = %261
  %268 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  %269 = getelementptr inbounds i8, ptr %248, i64 236
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %270 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %269, ptr noundef nonnull align 4 dereferenceable(8) %7)
  store <2 x float> %270, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #8
  %271 = getelementptr inbounds i8, ptr %248, i64 244
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %272 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %271, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %272, ptr %8, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %268, ptr noundef nonnull align 4 dereferenceable(8) %6, ptr noundef nonnull align 4 dereferenceable(8) %8, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef -1, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  br label %273

273:                                              ; preds = %267, %261
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %10) #8
  br label %275

274:                                              ; preds = %.loopexit270
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %10) #8
  br label %338

275:                                              ; preds = %273, %.loopexit270
  %indvars.iv = phi i64 [ 0, %273 ], [ %indvars.iv.next, %.loopexit270 ]
  %276 = icmp ugt i64 %indvars.iv, 5
  br i1 %276, label %277, label %311

277:                                              ; preds = %275
  %278 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %278, label %.loopexit270 [
    i32 8, label %279
    i32 6, label %279
  ]

279:                                              ; preds = %277, %277
  %280 = load i32, ptr %263, align 4, !tbaa !105
  %281 = icmp sgt i32 %280, 0
  br i1 %281, label %.lr.ph, label %.loopexit270

.lr.ph:                                           ; preds = %279
  %282 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  br label %283

283:                                              ; preds = %.lr.ph, %307
  %.0214274 = phi i32 [ 0, %.lr.ph ], [ %308, %307 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #8
  %284 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %248, i32 noundef %278, i32 noundef %.0214274)
  %285 = extractvalue { <2 x float>, <2 x float> } %284, 0
  store <2 x float> %285, ptr %11, align 8
  %286 = extractvalue { <2 x float>, <2 x float> } %284, 1
  store <2 x float> %286, ptr %246, align 8
  %287 = extractelement <2 x float> %285, i64 0
  %288 = fpext float %287 to double
  %289 = extractelement <2 x float> %285, i64 1
  %290 = fpext float %289 to double
  %291 = extractelement <2 x float> %286, i64 0
  %292 = fpext float %291 to double
  %293 = extractelement <2 x float> %286, i64 1
  %294 = fpext float %293 to double
  %295 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %296 = fpext float %295 to double
  %297 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %298 = fpext float %297 to double
  %299 = load ptr, ptr %282, align 8, !tbaa !5
  %300 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %10, i64 noundef 128, ptr noundef nonnull @.str.253, double noundef %288, double noundef %290, double noundef %292, double noundef %294, double noundef %296, double noundef %298, i32 noundef %.0214274, ptr noundef %299)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %12, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %301 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef nonnull %10, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  %302 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %302, label %303, label %307

303:                                              ; preds = %283
  %304 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  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 1.000000e+00, float noundef 1.000000e+00)
  %305 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %14)
  store <2 x float> %305, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  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 1.000000e+00, float noundef 1.000000e+00)
  %306 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %246, ptr noundef nonnull align 4 dereferenceable(8) %16)
  store <2 x float> %306, ptr %15, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %304, ptr noundef nonnull align 4 dereferenceable(8) %13, ptr noundef nonnull align 4 dereferenceable(8) %15, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef -1, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  br label %307

307:                                              ; preds = %303, %283
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #8
  %308 = add nuw nsw i32 %.0214274, 1
  %309 = load i32, ptr %263, align 4, !tbaa !105
  %310 = icmp slt i32 %308, %309
  br i1 %310, label %283, label %.loopexit270, !llvm.loop !106

311:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #8
  %312 = trunc nuw nsw i64 %indvars.iv to i32
  %313 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %248, i32 noundef %312, i32 noundef -1)
  %314 = extractvalue { <2 x float>, <2 x float> } %313, 0
  store <2 x float> %314, ptr %17, align 8
  %315 = extractvalue { <2 x float>, <2 x float> } %313, 1
  store <2 x float> %315, ptr %245, align 8
  %316 = extractelement <2 x float> %314, i64 0
  %317 = fpext float %316 to double
  %318 = extractelement <2 x float> %314, i64 1
  %319 = fpext float %318 to double
  %320 = extractelement <2 x float> %315, i64 0
  %321 = fpext float %320 to double
  %322 = extractelement <2 x float> %315, i64 1
  %323 = fpext float %322 to double
  %324 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %17)
  %325 = fpext float %324 to double
  %326 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %17)
  %327 = fpext float %326 to double
  %328 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  %329 = load ptr, ptr %328, align 8, !tbaa !5
  %330 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %10, i64 noundef 128, ptr noundef nonnull @.str.247, double noundef %317, double noundef %319, double noundef %321, double noundef %323, double noundef %325, double noundef %327, ptr noundef %329)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %331 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef nonnull %10, i1 noundef zeroext false, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(8) %18)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  %332 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %332, label %333, label %337

333:                                              ; preds = %311
  %334 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %335 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %17, ptr noundef nonnull align 4 dereferenceable(8) %20)
  store <2 x float> %335, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %336 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %245, ptr noundef nonnull align 4 dereferenceable(8) %22)
  store <2 x float> %336, ptr %21, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %334, ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(8) %21, i32 noundef -16711681, float noundef 0.000000e+00, i32 noundef -1, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  br label %337

337:                                              ; preds = %333, %311
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #8
  br label %.loopexit270

.loopexit270:                                     ; preds = %307, %279, %277, %337
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %274, label %275, !llvm.loop !108

338:                                              ; preds = %247, %258, %274
  %339 = add nuw nsw i32 %.0210277, 1
  %340 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %241)
  %341 = icmp slt i32 %339, %340
  br i1 %341, label %247, label %.loopexit272, !llvm.loop !109

.loopexit272:                                     ; preds = %338, %.preheader271, %238, %225
  call void @_ZN5ImGui7TreePopEv()
  br label %342

342:                                              ; preds = %.loopexit272, %61
  %343 = getelementptr inbounds i8, ptr %33, i64 6792
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %343, ptr noundef nonnull @.str.254)
  %344 = getelementptr inbounds i8, ptr %33, i64 7752
  %345 = load i32, ptr %344, align 8, !tbaa !110
  %346 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.256, i32 noundef %345)
  br i1 %346, label %.preheader269, label %354

.preheader269:                                    ; preds = %342
  %347 = load i32, ptr %344, align 8, !tbaa !110
  %348 = icmp sgt i32 %347, 0
  br i1 %348, label %.lr.ph280, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph280, %.preheader269
  call void @_ZN5ImGui7TreePopEv()
  br label %354

.lr.ph280:                                        ; preds = %.preheader269, %.lr.ph280
  %.0215279 = phi i32 [ %351, %.lr.ph280 ], [ 0, %.preheader269 ]
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %344, i32 noundef %.0215279)
  %350 = load ptr, ptr %349, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %350, ptr noundef nonnull @.str.257)
  %351 = add nuw nsw i32 %.0215279, 1
  %352 = load i32, ptr %344, align 8, !tbaa !110
  %353 = icmp slt i32 %351, %352
  br i1 %353, label %.lr.ph280, label %._crit_edge, !llvm.loop !112

354:                                              ; preds = %._crit_edge, %342
  %355 = getelementptr inbounds i8, ptr %33, i64 7280
  %356 = load i32, ptr %355, align 8, !tbaa !113
  %357 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.258, ptr noundef nonnull @.str.259, i32 noundef %356)
  br i1 %357, label %.preheader268, label %377

.preheader268:                                    ; preds = %354
  %358 = load i32, ptr %355, align 8, !tbaa !113
  %359 = icmp sgt i32 %358, 0
  br i1 %359, label %.lr.ph282, label %._crit_edge283

._crit_edge283:                                   ; preds = %.thread255, %.preheader268
  call void @_ZN5ImGui7TreePopEv()
  br label %377

.lr.ph282:                                        ; preds = %.preheader268, %.thread255
  %.0216281 = phi i32 [ %374, %.thread255 ], [ 0, %.preheader268 ]
  %360 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %355, i32 noundef %.0216281)
  %361 = getelementptr inbounds i8, ptr %360, i64 8
  %362 = load ptr, ptr %361, align 8, !tbaa !114
  %363 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %355, i32 noundef %.0216281)
  %364 = load i32, ptr %363, align 8, !tbaa !116
  %.not248 = icmp eq ptr %362, null
  br i1 %.not248, label %.thread255, label %365

365:                                              ; preds = %.lr.ph282
  %366 = load ptr, ptr %362, align 8, !tbaa !84
  %367 = getelementptr inbounds i8, ptr %362, i64 12
  %368 = load i32, ptr %367, align 4, !tbaa !117
  %.fr260 = freeze i32 %368
  %369 = and i32 %.fr260, 16777216
  %.not259 = icmp eq i32 %369, 0
  %spec.select = select i1 %.not259, ptr @.str.6, ptr @.str.262
  %370 = and i32 %.fr260, 268435456
  %.not261 = icmp eq i32 %370, 0
  %spec.select257 = select i1 %.not261, ptr @.str.6, ptr @.str.263
  br label %.thread255

.thread255:                                       ; preds = %365, %.lr.ph282
  %371 = phi ptr [ @.str.261, %.lr.ph282 ], [ %366, %365 ]
  %372 = phi ptr [ @.str.6, %.lr.ph282 ], [ %spec.select, %365 ]
  %373 = phi ptr [ @.str.6, %.lr.ph282 ], [ %spec.select257, %365 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.260, i32 noundef %364, ptr noundef %371, ptr noundef nonnull %372, ptr noundef nonnull %373)
  %374 = add nuw nsw i32 %.0216281, 1
  %375 = load i32, ptr %355, align 8, !tbaa !113
  %376 = icmp slt i32 %374, %375
  br i1 %376, label %.lr.ph282, label %._crit_edge283, !llvm.loop !118

377:                                              ; preds = %._crit_edge283, %354
  %378 = getelementptr inbounds i8, ptr %33, i64 8464
  %379 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %378)
  %380 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.264, ptr noundef nonnull @.str.265, i32 noundef %379)
  br i1 %380, label %.preheader267, label %387

.preheader267:                                    ; preds = %377
  %381 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %378)
  %382 = icmp sgt i32 %381, 0
  br i1 %382, label %.lr.ph285, label %._crit_edge286

._crit_edge286:                                   ; preds = %.lr.ph285, %.preheader267
  call void @_ZN5ImGui7TreePopEv()
  br label %387

.lr.ph285:                                        ; preds = %.preheader267, %.lr.ph285
  %.0222284 = phi i32 [ %384, %.lr.ph285 ], [ 0, %.preheader267 ]
  %383 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(36) %378, i32 noundef %.0222284)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %383, ptr noundef nonnull @.str.266)
  %384 = add nuw nsw i32 %.0222284, 1
  %385 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %378)
  %386 = icmp slt i32 %384, %385
  br i1 %386, label %.lr.ph285, label %._crit_edge286, !llvm.loop !119

387:                                              ; preds = %._crit_edge286, %377
  %388 = getelementptr inbounds i8, ptr %33, i64 8368
  %389 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %388)
  %390 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.267, ptr noundef nonnull @.str.268, i32 noundef %389)
  br i1 %390, label %.preheader266, label %397

.preheader266:                                    ; preds = %387
  %391 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %388)
  %392 = icmp sgt i32 %391, 0
  br i1 %392, label %.lr.ph288, label %._crit_edge289

._crit_edge289:                                   ; preds = %.lr.ph288, %.preheader266
  call void @_ZN5ImGui7TreePopEv()
  br label %397

.lr.ph288:                                        ; preds = %.preheader266, %.lr.ph288
  %.0221287 = phi i32 [ %394, %.lr.ph288 ], [ 0, %.preheader266 ]
  %393 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(36) %388, i32 noundef %.0221287)
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %393)
  %394 = add nuw nsw i32 %.0221287, 1
  %395 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %388)
  %396 = icmp slt i32 %394, %395
  br i1 %396, label %.lr.ph288, label %._crit_edge289, !llvm.loop !120

397:                                              ; preds = %._crit_edge289, %387
  %398 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.269)
  br i1 %398, label %399, label %456

399:                                              ; preds = %397
  %400 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.270)
  br i1 %400, label %401, label %402

401:                                              ; preds = %399
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %402

402:                                              ; preds = %401, %399
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %403 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.271)
  br i1 %403, label %404, label %406

404:                                              ; preds = %402
  %405 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %406

406:                                              ; preds = %404, %402
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %407 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.272)
  br i1 %407, label %408, label %411

408:                                              ; preds = %406
  %409 = getelementptr inbounds i8, ptr %33, i64 32
  %410 = load ptr, ptr %409, align 8, !tbaa !121
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %410)
  br label %411

411:                                              ; preds = %408, %406
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %412 = getelementptr inbounds i8, ptr %33, i64 32
  %413 = load ptr, ptr %412, align 8, !tbaa !121
  %.not237 = icmp eq ptr %413, null
  br i1 %.not237, label %415, label %414

414:                                              ; preds = %411
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.273, ptr noundef nonnull %413)
  br label %416

415:                                              ; preds = %411
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.274, ptr noundef null)
  br label %416

416:                                              ; preds = %415, %414
  %417 = getelementptr inbounds i8, ptr %33, i64 12516
  %418 = load float, ptr %417, align 4, !tbaa !122
  %419 = fpext float %418 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.275, double noundef %419)
  %420 = getelementptr inbounds i8, ptr %33, i64 12536
  %421 = load i32, ptr %420, align 8, !tbaa !123
  %422 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.276, ptr noundef nonnull @.str.277, i32 noundef %421)
  br i1 %422, label %.preheader265, label %430

.preheader265:                                    ; preds = %416
  %423 = load i32, ptr %420, align 8, !tbaa !123
  %424 = icmp sgt i32 %423, 0
  br i1 %424, label %.lr.ph291, label %._crit_edge292

._crit_edge292:                                   ; preds = %.lr.ph291, %.preheader265
  call void @_ZN5ImGui7TreePopEv()
  br label %430

.lr.ph291:                                        ; preds = %.preheader265, %.lr.ph291
  %.0220290 = phi i32 [ %427, %.lr.ph291 ], [ 0, %.preheader265 ]
  %425 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %420, i32 noundef %.0220290)
  %426 = load ptr, ptr %425, align 8, !tbaa !124
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.278, ptr noundef %426)
  %427 = add nuw nsw i32 %.0220290, 1
  %428 = load i32, ptr %420, align 8, !tbaa !123
  %429 = icmp slt i32 %427, %428
  br i1 %429, label %.lr.ph291, label %._crit_edge292, !llvm.loop !126

430:                                              ; preds = %._crit_edge292, %416
  %431 = getelementptr inbounds i8, ptr %33, i64 12552
  %432 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %433 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.279, ptr noundef nonnull @.str.280, i32 noundef %432)
  br i1 %433, label %434, label %437

434:                                              ; preds = %430
  %435 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %431)
  %.not238293 = icmp eq ptr %435, null
  br i1 %.not238293, label %._crit_edge297, label %.lr.ph296

._crit_edge297:                                   ; preds = %.lr.ph296, %434
  call void @_ZN5ImGui7TreePopEv()
  br label %437

.lr.ph296:                                        ; preds = %434, %.lr.ph296
  %.0219294 = phi ptr [ %436, %.lr.ph296 ], [ %435, %434 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0219294)
  %436 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %431, ptr noundef nonnull %.0219294)
  %.not238 = icmp eq ptr %436, null
  br i1 %.not238, label %._crit_edge297, label %.lr.ph296, !llvm.loop !127

437:                                              ; preds = %._crit_edge297, %430
  %438 = getelementptr inbounds i8, ptr %33, i64 12568
  %439 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %438)
  %440 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.282, i32 noundef %439)
  br i1 %440, label %441, label %444

441:                                              ; preds = %437
  %442 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %438)
  %.not239298 = icmp eq ptr %442, null
  br i1 %.not239298, label %._crit_edge302, label %.lr.ph301

._crit_edge302:                                   ; preds = %.lr.ph301, %441
  call void @_ZN5ImGui7TreePopEv()
  br label %444

.lr.ph301:                                        ; preds = %441, %.lr.ph301
  %.0218299 = phi ptr [ %443, %.lr.ph301 ], [ %442, %441 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0218299)
  %443 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %438, ptr noundef nonnull %.0218299)
  %.not239 = icmp eq ptr %443, null
  br i1 %.not239, label %._crit_edge302, label %.lr.ph301, !llvm.loop !128

444:                                              ; preds = %._crit_edge302, %437
  %445 = getelementptr inbounds i8, ptr %33, i64 12520
  %446 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %445)
  %447 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.283, ptr noundef nonnull @.str.284, i32 noundef %446)
  br i1 %447, label %448, label %455

448:                                              ; preds = %444
  %449 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %445)
  %450 = load i32, ptr %445, align 8, !tbaa !129
  %451 = sext i32 %450 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  %452 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %453 = fmul float %452, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %453)
  %454 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.285, ptr noundef %449, i64 noundef %451, ptr noundef nonnull align 4 dereferenceable(8) %23, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  call void @_ZN5ImGui7TreePopEv()
  br label %455

455:                                              ; preds = %448, %444
  call void @_ZN5ImGui7TreePopEv()
  br label %456

456:                                              ; preds = %455, %397
  %457 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.286)
  br i1 %457, label %458, label %561

458:                                              ; preds = %456
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.292)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %459 = getelementptr inbounds i8, ptr %33, i64 6888
  %460 = load ptr, ptr %459, align 8, !tbaa !130
  %.not240 = icmp eq ptr %460, null
  br i1 %.not240, label %463, label %461

461:                                              ; preds = %458
  %462 = load ptr, ptr %460, align 8, !tbaa !84
  br label %463

463:                                              ; preds = %458, %461
  %464 = phi ptr [ %462, %461 ], [ @.str.261, %458 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.293, ptr noundef %464)
  %465 = getelementptr inbounds i8, ptr %33, i64 6896
  %466 = load ptr, ptr %465, align 8, !tbaa !131
  %.not241 = icmp eq ptr %466, null
  br i1 %.not241, label %469, label %467

467:                                              ; preds = %463
  %468 = load ptr, ptr %466, align 8, !tbaa !84
  br label %469

469:                                              ; preds = %463, %467
  %470 = phi ptr [ %468, %467 ], [ @.str.261, %463 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.294, ptr noundef %470)
  %471 = getelementptr inbounds i8, ptr %33, i64 6904
  %472 = load ptr, ptr %471, align 8, !tbaa !132
  %.not242 = icmp eq ptr %472, null
  br i1 %.not242, label %475, label %473

473:                                              ; preds = %469
  %474 = load ptr, ptr %472, align 8, !tbaa !84
  br label %475

475:                                              ; preds = %469, %473
  %476 = phi ptr [ %474, %473 ], [ @.str.261, %469 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.295, ptr noundef %476)
  %477 = getelementptr inbounds i8, ptr %33, i64 6912
  %478 = load ptr, ptr %477, align 8, !tbaa !133
  %.not243 = icmp eq ptr %478, null
  br i1 %.not243, label %481, label %479

479:                                              ; preds = %475
  %480 = load ptr, ptr %478, align 8, !tbaa !84
  br label %481

481:                                              ; preds = %475, %479
  %482 = phi ptr [ %480, %479 ], [ @.str.261, %475 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.296, ptr noundef %482)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.297)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %483 = getelementptr inbounds i8, ptr %33, i64 6960
  %484 = load i32, ptr %483, align 8, !tbaa !134
  %485 = getelementptr inbounds i8, ptr %33, i64 7024
  %486 = load i32, ptr %485, align 8, !tbaa !135
  %487 = getelementptr inbounds i8, ptr %33, i64 6968
  %488 = load float, ptr %487, align 8, !tbaa !136
  %489 = fpext float %488 to double
  %490 = getelementptr inbounds i8, ptr %33, i64 6973
  %491 = load i8, ptr %490, align 1, !tbaa !137, !range !26, !noundef !27
  %492 = zext nneg i8 %491 to i32
  %493 = getelementptr inbounds i8, ptr %33, i64 7016
  %494 = load i32, ptr %493, align 8, !tbaa !138
  %495 = zext i32 %494 to i64
  %496 = getelementptr inbounds [5 x ptr], ptr @__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names, i64 0, i64 %495
  %497 = load ptr, ptr %496, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.298, i32 noundef %484, i32 noundef %486, double noundef %489, i32 noundef %492, ptr noundef %497)
  %498 = getelementptr inbounds i8, ptr %33, i64 7008
  %499 = load ptr, ptr %498, align 8, !tbaa !139
  %.not244 = icmp eq ptr %499, null
  br i1 %.not244, label %502, label %500

500:                                              ; preds = %481
  %501 = load ptr, ptr %499, align 8, !tbaa !84
  br label %502

502:                                              ; preds = %481, %500
  %503 = phi ptr [ %501, %500 ], [ @.str.261, %481 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.299, ptr noundef %503)
  %504 = getelementptr inbounds i8, ptr %33, i64 6940
  %505 = load i32, ptr %504, align 4, !tbaa !140
  %506 = getelementptr inbounds i8, ptr %33, i64 6944
  %507 = load i32, ptr %506, align 8, !tbaa !141
  %508 = getelementptr inbounds i8, ptr %33, i64 6952
  %509 = load float, ptr %508, align 8, !tbaa !142
  %510 = fpext float %509 to double
  %511 = getelementptr inbounds i8, ptr %33, i64 6948
  %512 = load i8, ptr %511, align 4, !tbaa !143, !range !26, !noundef !27
  %513 = zext nneg i8 %512 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.300, i32 noundef %505, i32 noundef %507, double noundef %510, i32 noundef %513)
  %514 = getelementptr inbounds i8, ptr %33, i64 8196
  %515 = load i8, ptr %514, align 4, !tbaa !144, !range !26, !noundef !27
  %516 = zext nneg i8 %515 to i32
  %517 = getelementptr inbounds i8, ptr %33, i64 8228
  %518 = load i32, ptr %517, align 4, !tbaa !145
  %519 = getelementptr inbounds i8, ptr %33, i64 8240
  %520 = getelementptr inbounds i8, ptr %33, i64 8224
  %521 = load i32, ptr %520, align 8, !tbaa !146
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.301, i32 noundef %516, i32 noundef %518, ptr noundef nonnull %519, i32 noundef %521)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.302)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %522 = getelementptr inbounds i8, ptr %33, i64 7312
  %523 = load ptr, ptr %522, align 8, !tbaa !28
  %.not245 = icmp eq ptr %523, null
  br i1 %.not245, label %526, label %524

524:                                              ; preds = %502
  %525 = load ptr, ptr %523, align 8, !tbaa !84
  br label %526

526:                                              ; preds = %502, %524
  %527 = phi ptr [ %525, %524 ], [ @.str.261, %502 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.303, ptr noundef %527)
  %528 = getelementptr inbounds i8, ptr %33, i64 7320
  %529 = load i32, ptr %528, align 8, !tbaa !147
  %530 = getelementptr inbounds i8, ptr %33, i64 7388
  %531 = load i32, ptr %530, align 4, !tbaa !148
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.304, i32 noundef %529, i32 noundef %531)
  %532 = getelementptr inbounds i8, ptr %33, i64 7364
  %533 = load i32, ptr %532, align 4, !tbaa !149
  %534 = zext i32 %533 to i64
  %535 = getelementptr inbounds [5 x ptr], ptr @__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names, i64 0, i64 %534
  %536 = load ptr, ptr %535, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.305, ptr noundef %536)
  %537 = getelementptr inbounds i8, ptr %33, i64 925
  %538 = load i8, ptr %537, align 1, !tbaa !150, !range !26, !noundef !27
  %539 = zext nneg i8 %538 to i32
  %540 = getelementptr inbounds i8, ptr %33, i64 926
  %541 = load i8, ptr %540, align 2, !tbaa !151, !range !26, !noundef !27
  %542 = zext nneg i8 %541 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.306, i32 noundef %539, i32 noundef %542)
  %543 = getelementptr inbounds i8, ptr %33, i64 7328
  %544 = load i32, ptr %543, align 8, !tbaa !152
  %545 = getelementptr inbounds i8, ptr %33, i64 7340
  %546 = load i32, ptr %545, align 4, !tbaa !153
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.307, i32 noundef %544, i32 noundef %546)
  %547 = getelementptr inbounds i8, ptr %33, i64 7398
  %548 = load i8, ptr %547, align 2, !tbaa !154, !range !26, !noundef !27
  %549 = zext nneg i8 %548 to i32
  %550 = getelementptr inbounds i8, ptr %33, i64 7399
  %551 = load i8, ptr %550, align 1, !tbaa !155, !range !26, !noundef !27
  %552 = zext nneg i8 %551 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.308, i32 noundef %549, i32 noundef %552)
  %553 = getelementptr inbounds i8, ptr %33, i64 7324
  %554 = load i32, ptr %553, align 4, !tbaa !156
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.309, i32 noundef %554)
  %555 = getelementptr inbounds i8, ptr %33, i64 7616
  %556 = load ptr, ptr %555, align 8, !tbaa !157
  %.not246 = icmp eq ptr %556, null
  br i1 %.not246, label %559, label %557

557:                                              ; preds = %526
  %558 = load ptr, ptr %556, align 8, !tbaa !84
  br label %559

559:                                              ; preds = %526, %557
  %560 = phi ptr [ %558, %557 ], [ @.str.261, %526 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.310, ptr noundef %560)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %561

561:                                              ; preds = %559, %456
  %562 = load i8, ptr %34, align 4, !tbaa !25, !range !26, !noundef !27
  %563 = trunc nuw i8 %562 to i1
  br i1 %563, label %568, label %564

564:                                              ; preds = %561
  %565 = getelementptr inbounds i8, ptr %33, i64 12661
  %566 = load i8, ptr %565, align 1, !tbaa !158, !range !26, !noundef !27
  %567 = trunc nuw i8 %566 to i1
  br i1 %567, label %568, label %.loopexit264

568:                                              ; preds = %564, %561
  %569 = load i32, ptr %343, align 8, !tbaa !159
  %570 = icmp sgt i32 %569, 0
  br i1 %570, label %.lr.ph305, label %.loopexit264

.lr.ph305:                                        ; preds = %568
  %571 = getelementptr inbounds i8, ptr %24, i64 8
  %572 = getelementptr inbounds i8, ptr %33, i64 12661
  br label %573

573:                                              ; preds = %.lr.ph305, %603
  %.0217303 = phi i32 [ 0, %.lr.ph305 ], [ %604, %603 ]
  %574 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %343, i32 noundef %.0217303)
  %575 = load ptr, ptr %574, align 8, !tbaa !5
  %576 = getelementptr inbounds i8, ptr %575, i64 143
  %577 = load i8, ptr %576, align 1, !tbaa !160, !range !26, !noundef !27
  %578 = trunc nuw i8 %577 to i1
  br i1 %578, label %579, label %603

579:                                              ; preds = %573
  %580 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %575)
  %581 = load i8, ptr %34, align 4, !tbaa !25, !range !26, !noundef !27
  %582 = trunc nuw i8 %581 to i1
  br i1 %582, label %583, label %588

583:                                              ; preds = %579
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #8
  %584 = load i32, ptr %52, align 4, !tbaa !22
  %585 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %575, i32 noundef %584)
  %586 = extractvalue { <2 x float>, <2 x float> } %585, 0
  store <2 x float> %586, ptr %24, align 8
  %587 = extractvalue { <2 x float>, <2 x float> } %585, 1
  store <2 x float> %587, ptr %571, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %580, ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(8) %571, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 15, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #8
  br label %588

588:                                              ; preds = %583, %579
  %589 = load i8, ptr %572, align 1, !tbaa !158, !range !26, !noundef !27
  %590 = trunc nuw i8 %589 to i1
  br i1 %590, label %591, label %603

591:                                              ; preds = %588
  %592 = getelementptr inbounds i8, ptr %575, i64 12
  %593 = load i32, ptr %592, align 4, !tbaa !117
  %594 = and i32 %593, 16777216
  %.not247 = icmp eq i32 %594, 0
  br i1 %.not247, label %595, label %603

595:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  %596 = getelementptr inbounds i8, ptr %575, i64 158
  %597 = load i16, ptr %596, align 2, !tbaa !161
  %598 = sext i16 %597 to i32
  %599 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %25, i64 noundef 32, ptr noundef nonnull @.str.311, i32 noundef %598)
  %600 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %601 = getelementptr inbounds i8, ptr %575, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef %600, float noundef %600)
  %602 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %601, ptr noundef nonnull align 4 dereferenceable(8) %27)
  store <2 x float> %602, ptr %26, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %580, ptr noundef nonnull align 4 dereferenceable(8) %601, ptr noundef nonnull align 4 dereferenceable(8) %26, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %580, ptr noundef nonnull align 4 dereferenceable(8) %601, i32 noundef -1, ptr noundef nonnull %25, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %603

603:                                              ; preds = %588, %591, %595, %573
  %604 = add nuw nsw i32 %.0217303, 1
  %605 = load i32, ptr %343, align 8, !tbaa !159
  %606 = icmp slt i32 %604, %605
  br i1 %606, label %573, label %.loopexit264, !llvm.loop !162

.loopexit264:                                     ; preds = %603, %568, %564
  %607 = getelementptr inbounds i8, ptr %33, i64 12662
  %608 = load i8, ptr %607, align 2, !tbaa !92, !range !26, !noundef !27
  %609 = trunc nuw i8 %608 to i1
  br i1 %609, label %.preheader262, label %.loopexit263

.preheader262:                                    ; preds = %.loopexit264
  %610 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %388)
  %611 = icmp sgt i32 %610, 0
  br i1 %611, label %.lr.ph309, label %.loopexit263

.lr.ph309:                                        ; preds = %.preheader262
  %612 = getelementptr inbounds i8, ptr %33, i64 6760
  %613 = getelementptr inbounds i8, ptr %29, i64 8
  %614 = getelementptr inbounds i8, ptr %28, i64 8
  br label %615

615:                                              ; preds = %.lr.ph309, %.loopexit
  %.0213308 = phi i32 [ 0, %.lr.ph309 ], [ %649, %.loopexit ]
  %616 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE10GetByIndexEi(ptr noundef nonnull align 8 dereferenceable(36) %388, i32 noundef %.0213308)
  %617 = getelementptr inbounds i8, ptr %616, i64 104
  %618 = load i32, ptr %617, align 8, !tbaa !93
  %619 = load i32, ptr %612, align 8, !tbaa !101
  %620 = add nsw i32 %619, -1
  %621 = icmp slt i32 %618, %620
  br i1 %621, label %.loopexit, label %622

622:                                              ; preds = %615
  %623 = getelementptr inbounds i8, ptr %616, i64 456
  %624 = load ptr, ptr %623, align 8, !tbaa !102
  %625 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %624)
  %626 = load i32, ptr %57, align 4, !tbaa !24
  %627 = icmp sgt i32 %626, 5
  br i1 %627, label %.preheader, label %645

.preheader:                                       ; preds = %622
  %628 = getelementptr inbounds i8, ptr %616, i64 108
  %629 = load i32, ptr %628, align 4, !tbaa !105
  %630 = icmp sgt i32 %629, 0
  br i1 %630, label %.lr.ph307, label %.loopexit

.lr.ph307:                                        ; preds = %.preheader
  %631 = getelementptr inbounds i8, ptr %616, i64 564
  br label %632

632:                                              ; preds = %.lr.ph307, %632
  %.0211306 = phi i32 [ 0, %.lr.ph307 ], [ %642, %632 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #8
  %633 = load i32, ptr %57, align 4, !tbaa !24
  %634 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %616, i32 noundef %633, i32 noundef %.0211306)
  %635 = extractvalue { <2 x float>, <2 x float> } %634, 0
  store <2 x float> %635, ptr %28, align 8
  %636 = extractvalue { <2 x float>, <2 x float> } %634, 1
  store <2 x float> %636, ptr %614, align 8
  %637 = load i8, ptr %631, align 4, !tbaa !163
  %638 = sext i8 %637 to i32
  %639 = icmp eq i32 %.0211306, %638
  %640 = select i1 %639, i32 -8323073, i32 -8388353
  %641 = select i1 %639, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %625, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %614, i32 noundef %640, float noundef 0.000000e+00, i32 noundef -1, float noundef %641)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #8
  %642 = add nuw nsw i32 %.0211306, 1
  %643 = load i32, ptr %628, align 4, !tbaa !105
  %644 = icmp slt i32 %642, %643
  br i1 %644, label %632, label %.loopexit, !llvm.loop !164

645:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #8
  %646 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %616, i32 noundef %626, i32 noundef -1)
  %647 = extractvalue { <2 x float>, <2 x float> } %646, 0
  store <2 x float> %647, ptr %29, align 8
  %648 = extractvalue { <2 x float>, <2 x float> } %646, 1
  store <2 x float> %648, ptr %613, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %625, ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %613, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 15, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #8
  br label %.loopexit

.loopexit:                                        ; preds = %632, %.preheader, %645, %615
  %649 = add nuw nsw i32 %.0213308, 1
  %650 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE7GetSizeEv(ptr noundef nonnull align 8 dereferenceable(36) %388)
  %651 = icmp slt i32 %649, %650
  br i1 %651, label %615, label %.loopexit263, !llvm.loop !165

.loopexit263:                                     ; preds = %.loopexit, %.preheader262, %.loopexit264
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %2) #8
  br label %652

652:                                              ; preds = %.loopexit263, %31
  ret void
}

declare void @_ZN5ImGui4TextEPKcz(ptr noundef, ...) local_unnamed_addr #4

declare void @_ZN5ImGui9SeparatorEv() local_unnamed_addr #4

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui20DebugStartItemPickerEv() local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL17MetricsHelpMarkerPKc(ptr noundef) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef, ptr noundef) local_unnamed_addr #4

declare noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui10BulletTextEPKcz(ptr noundef, ...) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef, i32 noundef) local_unnamed_addr #7 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef, ptr noundef) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef, ptr noundef, ...) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef, ptr noundef) local_unnamed_addr #5

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

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) local_unnamed_addr #4

declare noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef) local_unnamed_addr #4

declare void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef, ptr noundef) local_unnamed_addr #4

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

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

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

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

declare void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #5 align 2

declare noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef, ptr noundef, i64 noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef) local_unnamed_addr #6

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

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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress 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 #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 = !{!10, !13, i64 920}
!10 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !12, i64 8, !13, i64 16, !13, i64 20, !6, i64 24, !6, i64 32, !13, i64 40, !13, i64 44, !13, i64 48, !7, i64 52, !13, i64 140, !13, i64 144, !6, i64 152, !6, i64 160, !13, i64 168, !14, i64 172, !6, i64 176, !12, i64 184, !14, i64 192, !14, i64 193, !14, i64 194, !14, i64 195, !14, i64 196, !14, i64 197, !13, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !12, i64 288, !7, i64 296, !13, i64 304, !13, i64 308, !14, i64 312, !14, i64 313, !14, i64 314, !14, i64 315, !7, i64 316, !7, i64 828, !14, i64 912, !14, i64 913, !14, i64 914, !14, i64 915, !14, i64 916, !14, i64 917, !14, i64 918, !13, i64 920, !11, i64 924, !11, i64 928, !11, i64 932, !11, i64 936, !11, i64 940, !12, i64 944, !11, i64 952, !12, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1076, !7, i64 1096, !7, i64 1116, !7, i64 1156, !7, i64 1176, !7, i64 3224, !7, i64 5272, !7, i64 5356, !13, i64 5440, !15, i64 5444, !16, i64 5448}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImVec2", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"short", !7, i64 0}
!16 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!17 = !{!10, !11, i64 924}
!18 = !{!10, !11, i64 928}
!19 = !{!10, !11, i64 936}
!20 = !{!10, !11, i64 932}
!21 = !{!10, !11, i64 940}
!22 = !{!23, !11, i64 8}
!23 = !{!"_ZTS18ImGuiMetricsConfig", !14, i64 0, !14, i64 1, !14, i64 2, !14, i64 3, !14, i64 4, !11, i64 8, !11, i64 12}
!24 = !{!23, !11, i64 12}
!25 = !{!23, !14, i64 0}
!26 = !{i8 0, i8 2}
!27 = !{}
!28 = !{!29, !6, i64 7312}
!29 = !{!"_ZTS12ImGuiContext", !14, i64 0, !14, i64 1, !10, i64 8, !30, i64 5472, !6, i64 6520, !13, i64 6528, !13, i64 6532, !31, i64 6536, !33, i64 6752, !11, i64 6760, !11, i64 6764, !11, i64 6768, !14, i64 6772, !14, i64 6773, !14, i64 6774, !14, i64 6775, !14, i64 6776, !11, i64 6780, !6, i64 6784, !34, i64 6792, !34, i64 6808, !34, i64 6824, !34, i64 6840, !35, i64 6856, !11, i64 6872, !6, i64 6880, !6, i64 6888, !6, i64 6896, !6, i64 6904, !6, i64 6912, !6, i64 6920, !12, i64 6928, !13, i64 6936, !11, i64 6940, !11, i64 6944, !14, i64 6948, !14, i64 6949, !14, i64 6950, !14, i64 6951, !13, i64 6952, !13, i64 6956, !11, i64 6960, !11, i64 6964, !13, i64 6968, !14, i64 6972, !14, i64 6973, !14, i64 6974, !14, i64 6975, !14, i64 6976, !14, i64 6977, !14, i64 6978, !11, i64 6980, !11, i64 6984, !37, i64 6992, !12, i64 7000, !6, i64 7008, !38, i64 7016, !11, i64 7020, !11, i64 7024, !14, i64 7028, !14, i64 7029, !6, i64 7032, !11, i64 7040, !13, i64 7044, !39, i64 7048, !41, i64 7160, !42, i64 7184, !43, i64 7200, !44, i64 7216, !45, i64 7232, !46, i64 7248, !47, i64 7264, !48, i64 7280, !48, i64 7296, !6, i64 7312, !11, i64 7320, !11, i64 7324, !11, i64 7328, !11, i64 7332, !11, i64 7336, !11, i64 7340, !11, i64 7344, !11, i64 7348, !11, i64 7352, !11, i64 7356, !11, i64 7360, !38, i64 7364, !40, i64 7368, !11, i64 7384, !49, i64 7388, !11, i64 7392, !14, i64 7396, !14, i64 7397, !14, i64 7398, !14, i64 7399, !14, i64 7400, !14, i64 7401, !14, i64 7402, !11, i64 7404, !40, i64 7408, !14, i64 7424, !11, i64 7428, !50, i64 7432, !11, i64 7436, !11, i64 7440, !11, i64 7444, !11, i64 7448, !51, i64 7456, !51, i64 7504, !51, i64 7552, !6, i64 7600, !11, i64 7608, !6, i64 7616, !6, i64 7624, !6, i64 7632, !13, i64 7640, !13, i64 7644, !14, i64 7648, !6, i64 7656, !6, i64 7664, !11, i64 7672, !11, i64 7676, !11, i64 7680, !11, i64 7684, !14, i64 7688, !52, i64 7696, !53, i64 7752, !13, i64 7784, !54, i64 7792, !54, i64 7992, !11, i64 8192, !14, i64 8196, !14, i64 8197, !14, i64 8198, !11, i64 8200, !11, i64 8204, !11, i64 8208, !63, i64 8216, !40, i64 8280, !11, i64 8296, !11, i64 8300, !13, i64 8304, !11, i64 8308, !11, i64 8312, !11, i64 8316, !11, i64 8320, !64, i64 8328, !7, i64 8344, !6, i64 8360, !65, i64 8368, !67, i64 8408, !68, i64 8424, !62, i64 8440, !6, i64 8456, !69, i64 8464, !67, i64 8504, !71, i64 8520, !12, i64 8536, !72, i64 8544, !76, i64 12280, !11, i64 12392, !11, i64 12396, !13, i64 12400, !13, i64 12404, !7, i64 12408, !32, i64 12420, !13, i64 12436, !14, i64 12440, !14, i64 12441, !13, i64 12444, !13, i64 12448, !13, i64 12452, !11, i64 12456, !13, i64 12460, !73, i64 12464, !45, i64 12480, !12, i64 12496, !12, i64 12504, !7, i64 12512, !14, i64 12513, !13, i64 12516, !78, i64 12520, !79, i64 12536, !80, i64 12552, !81, i64 12568, !82, i64 12584, !14, i64 12600, !83, i64 12604, !6, i64 12608, !78, i64 12616, !13, i64 12632, !14, i64 12636, !11, i64 12640, !11, i64 12644, !11, i64 12648, !14, i64 12652, !11, i64 12656, !23, i64 12660, !7, i64 12676, !11, i64 13156, !13, i64 13160, !11, i64 13164, !11, i64 13168, !11, i64 13172, !7, i64 13176}
!30 = !{!"_ZTS10ImGuiStyle", !13, i64 0, !12, i64 4, !13, i64 12, !13, i64 16, !12, i64 20, !12, i64 28, !11, i64 36, !13, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !12, i64 56, !13, i64 64, !13, i64 68, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !13, i64 104, !13, i64 108, !13, i64 112, !13, i64 116, !13, i64 120, !13, i64 124, !13, i64 128, !13, i64 132, !13, i64 136, !13, i64 140, !11, i64 144, !12, i64 148, !12, i64 156, !12, i64 164, !12, i64 172, !13, i64 180, !14, i64 184, !14, i64 185, !14, i64 186, !13, i64 188, !13, i64 192, !7, i64 196}
!31 = !{!"_ZTS20ImDrawListSharedData", !12, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !32, i64 28, !11, i64 44, !7, i64 48, !7, i64 144, !6, i64 208}
!32 = !{!"_ZTS6ImVec4", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12}
!33 = !{!"double", !7, i64 0}
!34 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!35 = !{!"_ZTS12ImGuiStorage", !36, i64 0}
!36 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!37 = !{!"long long", !7, i64 0}
!38 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!39 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !14, i64 56, !40, i64 60, !6, i64 80, !6, i64 88, !13, i64 96, !12, i64 100}
!40 = !{!"_ZTS6ImRect", !12, i64 0, !12, i64 8}
!41 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !13, i64 4, !11, i64 8, !11, i64 12, !14, i64 16}
!42 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!49 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!50 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!51 = !{!"_ZTS18ImGuiNavMoveResult", !6, i64 0, !11, i64 8, !11, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !40, i64 28}
!52 = !{!"_ZTS10ImDrawData", !14, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !12, i64 28, !12, i64 36, !12, i64 44}
!53 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0}
!54 = !{!"_ZTS10ImDrawList", !55, i64 0, !16, i64 16, !56, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !57, i64 88, !58, i64 104, !59, i64 120, !60, i64 136, !61, i64 168, !13, i64 192}
!55 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!"_ZTS15ImDrawCmdHeader", !32, i64 0, !6, i64 16, !11, i64 24}
!61 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !62, i64 8}
!62 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!63 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !14, i64 57, !14, i64 58}
!64 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS6ImPoolI10ImGuiTableE", !66, i64 0, !35, i64 16, !11, i64 32}
!66 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !70, i64 0, !35, i64 16, !11, i64 32}
!70 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS19ImGuiInputTextState", !11, i64 0, !11, i64 4, !11, i64 8, !16, i64 16, !73, i64 32, !73, i64 48, !14, i64 64, !11, i64 68, !13, i64 72, !74, i64 76, !13, i64 3704, !14, i64 3708, !14, i64 3709, !14, i64 3710, !11, i64 3712, !6, i64 3720, !6, i64 3728}
!73 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!74 = !{!"_ZTSN5ImStb17STB_TexteditStateE", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 12, !11, i64 16, !7, i64 20, !7, i64 21, !7, i64 22, !7, i64 23, !7, i64 24, !7, i64 25, !7, i64 26, !13, i64 28, !75, i64 32}
!75 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!76 = !{!"_ZTS6ImFont", !68, i64 0, !13, i64 16, !13, i64 20, !16, i64 24, !77, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !14, i64 86, !13, i64 88, !13, i64 92, !13, i64 96, !11, i64 100, !7, i64 104}
!77 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS15ImGuiTextBuffer", !73, i64 0}
!79 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !73, i64 0}
!81 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !73, i64 0}
!82 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!83 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!84 = !{!85, !6, i64 0}
!85 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !11, i64 8, !11, i64 12, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !13, i64 72, !13, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !12, i64 92, !12, i64 100, !12, i64 108, !12, i64 116, !12, i64 124, !12, i64 132, !14, i64 140, !14, i64 141, !14, i64 142, !14, i64 143, !14, i64 144, !14, i64 145, !14, i64 146, !14, i64 147, !14, i64 148, !14, i64 149, !14, i64 150, !14, i64 151, !7, i64 152, !15, i64 154, !15, i64 156, !15, i64 158, !11, i64 160, !7, i64 164, !7, i64 165, !7, i64 166, !14, i64 167, !11, i64 168, !7, i64 172, !7, i64 173, !7, i64 174, !11, i64 175, !11, i64 176, !11, i64 177, !12, i64 180, !12, i64 188, !45, i64 200, !86, i64 216, !40, i64 520, !40, i64 536, !40, i64 552, !40, i64 568, !40, i64 584, !40, i64 600, !40, i64 616, !90, i64 632, !90, i64 636, !11, i64 640, !13, i64 644, !13, i64 648, !35, i64 656, !91, i64 672, !13, i64 688, !11, i64 692, !6, i64 696, !54, i64 704, !6, i64 904, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !7, i64 944, !7, i64 952, !11, i64 984, !11, i64 988, !14, i64 992}
!86 = !{!"_ZTS19ImGuiWindowTempData", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !13, i64 56, !13, i64 60, !87, i64 64, !87, i64 68, !87, i64 72, !11, i64 76, !11, i64 80, !40, i64 84, !40, i64 100, !49, i64 116, !11, i64 120, !11, i64 124, !11, i64 128, !14, i64 132, !14, i64 133, !14, i64 134, !12, i64 136, !88, i64 144, !11, i64 180, !11, i64 184, !34, i64 192, !6, i64 208, !6, i64 216, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !11, i64 240, !11, i64 244, !13, i64 248, !13, i64 252, !68, i64 256, !68, i64 272, !89, i64 288}
!87 = !{!"_ZTS6ImVec1", !13, i64 0}
!88 = !{!"_ZTS16ImGuiMenuColumns", !13, i64 0, !13, i64 4, !13, i64 8, !7, i64 12, !7, i64 24}
!89 = !{!"_ZTS15ImGuiStackSizes", !15, i64 0, !15, i64 2, !15, i64 4, !15, i64 6, !15, i64 8, !15, i64 10, !15, i64 12}
!90 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!91 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!92 = !{!23, !14, i64 2}
!93 = !{!94, !11, i64 104}
!94 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !95, i64 16, !96, i64 32, !97, i64 48, !37, i64 64, !37, i64 72, !37, i64 80, !37, i64 88, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !15, i64 120, !15, i64 122, !13, i64 124, !13, i64 128, !13, i64 132, !13, i64 136, !13, i64 140, !11, i64 144, !11, i64 146, !11, i64 148, !7, i64 152, !11, i64 160, !11, i64 164, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !13, i64 184, !13, i64 188, !13, i64 192, !13, i64 196, !13, i64 200, !13, i64 204, !13, i64 208, !13, i64 212, !13, i64 216, !13, i64 220, !13, i64 224, !13, i64 228, !13, i64 232, !40, i64 236, !40, i64 252, !40, i64 268, !40, i64 284, !40, i64 300, !40, i64 316, !40, i64 332, !40, i64 348, !40, i64 364, !40, i64 380, !40, i64 396, !12, i64 412, !12, i64 420, !12, i64 428, !12, i64 436, !87, i64 444, !13, i64 448, !11, i64 452, !6, i64 456, !6, i64 464, !78, i64 472, !61, i64 488, !98, i64 512, !99, i64 528, !100, i64 544, !7, i64 560, !7, i64 561, !7, i64 562, !7, i64 563, !7, i64 564, !7, i64 565, !7, i64 566, !7, i64 567, !7, i64 568, !7, i64 569, !7, i64 570, !7, i64 571, !7, i64 572, !7, i64 573, !7, i64 574, !7, i64 575, !7, i64 576, !7, i64 577, !7, i64 578, !7, i64 579, !7, i64 580, !7, i64 581, !7, i64 582, !7, i64 583, !14, i64 584, !14, i64 585, !14, i64 586, !14, i64 587, !14, i64 588, !14, i64 589, !14, i64 590, !14, i64 591, !14, i64 592, !14, i64 593, !14, i64 594, !14, i64 595, !14, i64 596, !14, i64 597, !14, i64 598}
!95 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!96 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!97 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!98 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !15, i64 4, !15, i64 6, !11, i64 8}
!99 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!100 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !14, i64 12}
!101 = !{!29, !11, i64 6760}
!102 = !{!94, !6, i64 456}
!103 = !{!94, !6, i64 464}
!104 = !{!94, !11, i64 0}
!105 = !{!94, !11, i64 108}
!106 = distinct !{!106, !107}
!107 = !{!"llvm.loop.mustprogress"}
!108 = distinct !{!108, !107}
!109 = distinct !{!109, !107}
!110 = !{!111, !11, i64 0}
!111 = !{!"_ZTS8ImVectorIP10ImDrawListE", !11, i64 0, !11, i64 4, !6, i64 8}
!112 = distinct !{!112, !107}
!113 = !{!29, !11, i64 7280}
!114 = !{!115, !6, i64 8}
!115 = !{!"_ZTS14ImGuiPopupData", !11, i64 0, !6, i64 8, !6, i64 16, !11, i64 24, !11, i64 28, !12, i64 32, !12, i64 40}
!116 = !{!115, !11, i64 0}
!117 = !{!85, !11, i64 12}
!118 = distinct !{!118, !107}
!119 = distinct !{!119, !107}
!120 = distinct !{!120, !107}
!121 = !{!29, !6, i64 32}
!122 = !{!29, !13, i64 12516}
!123 = !{!29, !11, i64 12536}
!124 = !{!125, !6, i64 0}
!125 = !{!"_ZTS20ImGuiSettingsHandler", !6, i64 0, !11, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64}
!126 = distinct !{!126, !107}
!127 = distinct !{!127, !107}
!128 = distinct !{!128, !107}
!129 = !{!29, !11, i64 12520}
!130 = !{!29, !6, i64 6888}
!131 = !{!29, !6, i64 6896}
!132 = !{!29, !6, i64 6904}
!133 = !{!29, !6, i64 6912}
!134 = !{!29, !11, i64 6960}
!135 = !{!29, !11, i64 7024}
!136 = !{!29, !13, i64 6968}
!137 = !{!29, !14, i64 6973}
!138 = !{!29, !38, i64 7016}
!139 = !{!29, !6, i64 7008}
!140 = !{!29, !11, i64 6940}
!141 = !{!29, !11, i64 6944}
!142 = !{!29, !13, i64 6952}
!143 = !{!29, !14, i64 6948}
!144 = !{!29, !14, i64 8196}
!145 = !{!29, !11, i64 8228}
!146 = !{!29, !11, i64 8224}
!147 = !{!29, !11, i64 7320}
!148 = !{!29, !49, i64 7388}
!149 = !{!29, !38, i64 7364}
!150 = !{!29, !14, i64 925}
!151 = !{!29, !14, i64 926}
!152 = !{!29, !11, i64 7328}
!153 = !{!29, !11, i64 7340}
!154 = !{!29, !14, i64 7398}
!155 = !{!29, !14, i64 7399}
!156 = !{!29, !11, i64 7324}
!157 = !{!29, !6, i64 7616}
!158 = !{!23, !14, i64 1}
!159 = !{!29, !11, i64 6792}
!160 = !{!85, !14, i64 143}
!161 = !{!85, !15, i64 158}
!162 = distinct !{!162, !107}
!163 = !{!94, !7, i64 564}
!164 = distinct !{!164, !107}
!165 = distinct !{!165, !107}


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