; LLVM IR from theolundqvist/parallax-voxel-ray-marcher :: src/external/Dear 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, 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.4, %struct.ImGuiStorage, i32, %struct.ImVec2, [4 x i8], ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, float, i32, i32, i8, i8, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, [4 x i8], i64, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, [2 x i8], ptr, i32, float, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, [4 x i8], %struct.ImGuiNextWindowData, %struct.ImVector.5, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.11, %struct.ImVector.12, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.ImRect, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, [3 x i8], i32, i32, i32, i32, i32, i32, [4 x i8], %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, ptr, i32, [4 x i8], ptr, ptr, ptr, float, float, i8, [7 x i8], ptr, ptr, i32, i32, i32, i32, i8, [3 x i8], float, i32, i8, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, [4 x i8], %struct.ImVector.13, [16 x i8], ptr, i32, [4 x i8], %struct.ImPool, %struct.ImVector.15, %struct.ImVector.16, %struct.ImVector.17, ptr, %struct.ImPool.18, %struct.ImVector.20, %struct.ImVector.21, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, float, float, [3 x float], %struct.ImVec4, %struct.ImGuiComboPreviewData, float, i8, i8, [2 x i8], float, float, float, float, i32, float, [4 x i8], %struct.ImVector.2, %struct.ImVector.8, %struct.ImVec2, %struct.ImVec2, i8, i8, [2 x i8], float, %struct.ImGuiTextBuffer, %struct.ImVector.23, %struct.ImChunkStream, %struct.ImChunkStream.24, %struct.ImVector.25, i32, i8, [3 x i8], i32, [4 x i8], ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, [3 x i8], i32, i32, i32, i8, [3 x i8], i32, %struct.ImGuiMetricsConfig, [120 x float], i32, i32, float, i32, i32, i32, [3073 x i8], [3 x i8] }>
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [22 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [20 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, i32, i32, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], [512 x float], [512 x float], [20 x float], [20 x float], float, i16, %struct.ImVector }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.0 }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type <{ ptr, i32, i32, %struct.ImRect, float, float, float, [4 x i8] }>
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.14, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImPool.18 = type { %struct.ImVector.19, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = 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.16, float, float, %struct.ImVector, %struct.ImVector.22, ptr, ptr, ptr, i16, i16, i16, i16, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.2 }
%struct.ImChunkStream.24 = type { %struct.ImVector.2 }
%struct.ImVector.25 = 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, i16, [2 x i8], i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.8, %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.26, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i8, [7 x i8] }>
%struct.ImGuiWindowTempData = type <{ %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, i32, i16, i16, i32, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.3, ptr, ptr, i32, i32, i32, i32, i32, float, float, [4 x i8], %struct.ImVector.16, %struct.ImVector.16, %struct.ImGuiStackSizes, [2 x i8] }>
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImGuiStackSizes = type { i16, i16, i16, i16, i16, i16, i16 }
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.27, %struct.ImVector, %struct.ImVector.28, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.29, %struct.ImVector.30, %struct.ImVector.31, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.17 }
%struct.ImGuiTable = type { i32, i32, ptr, ptr, %struct.ImSpan, %struct.ImSpan.32, %struct.ImSpan.33, 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, ptr, ptr, %struct.ImGuiTextBuffer, ptr, %struct.ImGuiTableColumnSortSpecs, %struct.ImVector.34, %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.32 = type { ptr, ptr }
%struct.ImSpan.33 = type { ptr, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImGuiTableSortSpecs = type <{ ptr, i32, i8, [3 x i8] }>
%struct.ImGuiViewportP = type { %struct.ImGuiViewport, [2 x i32], [2 x ptr], %struct.ImDrawData, %struct.ImDrawDataBuilder, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiViewport = type { i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2 }
%struct.ImDrawData = type { i8, i32, i32, i32, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2 }
%struct.ImDrawDataBuilder = type { [2 x %struct.ImVector.36] }
%struct.ImVector.36 = type { i32, i32, ptr }
%struct.ImGuiPopupData = type { i32, ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2 }
%struct.ImFontAtlas = type <{ i32, [4 x i8], ptr, i32, i32, i8, i8, i8, [5 x i8], ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.7, %struct.ImVector.37, %struct.ImVector.38, [64 x %struct.ImVec4], ptr, i32, i32, i32, [4 x i8] }>
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImVector.38 = type { i32, i32, ptr }
%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.225 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.230 = 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.248 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [15 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names = external hidden unnamed_addr constant [6 x ptr], align 16
@.str.305 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.325 = 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 uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEv() #5

; 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 @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #6 align 2

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

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

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

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

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 nounwind uwtable
declare dso_local noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; 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 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 i32, align 4
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca %struct.ImVec2, align 4
  %51 = alloca [6 x ptr], align 16
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca %struct.ImRect, align 4
  %56 = alloca [32 x i8], align 16
  %57 = alloca float, align 4
  %58 = alloca %struct.ImVec2, align 4
  %59 = alloca %struct.ImVec2, align 4
  %60 = alloca i32, align 4
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca %struct.ImRect, align 4
  %65 = alloca i32, align 4
  %66 = alloca float, align 4
  %67 = alloca %struct.ImRect, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %68 = load ptr, ptr %2, align 8, !tbaa !5
  %69 = call noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef @.str.225, ptr noundef %68, i32 noundef 0)
  br i1 %69, label %71, label %70

70:                                               ; preds = %1
  call void @_ZN5ImGui3EndEv()
  br label %1189

71:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #9
  %72 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %72, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %73 = load ptr, ptr %3, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.ImGuiContext, ptr %73, i32 0, i32 3
  store ptr %74, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  %75 = load ptr, ptr %3, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct.ImGuiContext, ptr %75, i32 0, i32 226
  store ptr %76, ptr %5, align 8, !tbaa !5
  %77 = call noundef ptr @_ZN5ImGui10GetVersionEv()
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.226, ptr noundef %77)
  %78 = load ptr, ptr %4, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.ImGuiIO, ptr %78, i32 0, i32 53
  %80 = load float, ptr %79, align 4, !tbaa !9
  %81 = fdiv float 1.000000e+03, %80
  %82 = fpext float %81 to double
  %83 = load ptr, ptr %4, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.ImGuiIO, ptr %83, i32 0, i32 53
  %85 = load float, ptr %84, align 4, !tbaa !9
  %86 = fpext float %85 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.227, double noundef %82, double noundef %86)
  %87 = load ptr, ptr %4, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.ImGuiIO, ptr %87, i32 0, i32 54
  %89 = load i32, ptr %88, align 8, !tbaa !17
  %90 = load ptr, ptr %4, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.ImGuiIO, ptr %90, i32 0, i32 55
  %92 = load i32, ptr %91, align 4, !tbaa !18
  %93 = load ptr, ptr %4, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.ImGuiIO, ptr %93, i32 0, i32 55
  %95 = load i32, ptr %94, align 4, !tbaa !18
  %96 = sdiv i32 %95, 3
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.228, i32 noundef %89, i32 noundef %92, i32 noundef %96)
  %97 = load ptr, ptr %4, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.ImGuiIO, ptr %97, i32 0, i32 57
  %99 = load i32, ptr %98, align 4, !tbaa !19
  %100 = load ptr, ptr %4, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.ImGuiIO, ptr %100, i32 0, i32 56
  %102 = load i32, ptr %101, align 8, !tbaa !20
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.229, i32 noundef %99, i32 noundef %102)
  %103 = load ptr, ptr %4, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.ImGuiIO, ptr %103, i32 0, i32 58
  %105 = load i32, ptr %104, align 8, !tbaa !21
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.230, i32 noundef %105)
  call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 64, ptr %6) #9
  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) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.trt_rects_names, i64 104, i1 false)
  %106 = load ptr, ptr %5, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %106, i32 0, i32 5
  %108 = load i32, ptr %107, align 4, !tbaa !22
  %109 = icmp slt i32 %108, 0
  br i1 %109, label %110, label %113

110:                                              ; preds = %71
  %111 = load ptr, ptr %5, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %111, i32 0, i32 5
  store i32 4, ptr %112, align 4, !tbaa !22
  br label %113

113:                                              ; preds = %110, %71
  %114 = load ptr, ptr %5, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %114, i32 0, i32 6
  %116 = load i32, ptr %115, align 4, !tbaa !24
  %117 = icmp slt i32 %116, 0
  br i1 %117, label %118, label %121

118:                                              ; preds = %113
  %119 = load ptr, ptr %5, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %119, i32 0, i32 6
  store i32 2, ptr %120, align 4, !tbaa !24
  br label %121

121:                                              ; preds = %118, %113
  %122 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.248)
  br i1 %122, label %123, label %433

123:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %124 = call noundef zeroext i1 @_ZN5ImGui6ButtonEPKcRK6ImVec2(ptr noundef @.str.249, ptr noundef nonnull align 4 dereferenceable(8) %8)
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  br i1 %124, label %125, label %126

125:                                              ; preds = %123
  call void @_ZN5ImGui20DebugStartItemPickerEv()
  br label %126

126:                                              ; preds = %125, %123
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  call void @_ZL17MetricsHelpMarkerPKc(ptr noundef @.str.250)
  %127 = load ptr, ptr %5, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %127, i32 0, i32 1
  %129 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.251, ptr noundef %128)
  %130 = load ptr, ptr %5, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %130, i32 0, i32 0
  %132 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.252, ptr noundef %131)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %133 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %134 = fmul float %133, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %134)
  %135 = load ptr, ptr %5, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %135, i32 0, i32 5
  %137 = getelementptr inbounds [8 x ptr], ptr %6, i64 0, i64 0
  %138 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.253, ptr noundef %136, ptr noundef %137, i32 noundef 8, i32 noundef 8)
  %139 = zext i1 %138 to i32
  %140 = load ptr, ptr %5, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %140, i32 0, i32 0
  %142 = load i8, ptr %141, align 4, !tbaa !25, !range !26, !noundef !27
  %143 = trunc i8 %142 to i1
  %144 = zext i1 %143 to i32
  %145 = or i32 %144, %139
  %146 = icmp ne i32 %145, 0
  %147 = zext i1 %146 to i8
  store i8 %147, ptr %141, align 4, !tbaa !25
  %148 = load ptr, ptr %5, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %148, i32 0, i32 0
  %150 = load i8, ptr %149, align 4, !tbaa !25, !range !26, !noundef !27
  %151 = trunc i8 %150 to i1
  br i1 %151, label %152, label %205

152:                                              ; preds = %126
  %153 = load ptr, ptr %3, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.ImGuiContext, ptr %153, i32 0, i32 84
  %155 = load ptr, ptr %154, align 8, !tbaa !28
  %156 = icmp ne ptr %155, null
  br i1 %156, label %157, label %205

157:                                              ; preds = %152
  %158 = load ptr, ptr %3, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.ImGuiContext, ptr %158, i32 0, i32 84
  %160 = load ptr, ptr %159, align 8, !tbaa !28
  %161 = getelementptr inbounds %struct.ImGuiWindow, ptr %160, i32 0, i32 0
  %162 = load ptr, ptr %161, align 8, !tbaa !79
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.254, ptr noundef %162)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  store i32 0, ptr %9, align 4, !tbaa !95
  br label %163

163:                                              ; preds = %201, %157
  %164 = load i32, ptr %9, align 4, !tbaa !95
  %165 = icmp slt i32 %164, 8
  br i1 %165, label %167, label %166

166:                                              ; preds = %163
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %204

167:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #9
  %168 = load ptr, ptr %3, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.ImGuiContext, ptr %168, i32 0, i32 84
  %170 = load ptr, ptr %169, align 8, !tbaa !28
  %171 = load i32, ptr %9, align 4, !tbaa !95
  %172 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %170, i32 noundef %171)
  %173 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %10, i32 0, i32 0
  %174 = extractvalue { <2 x float>, <2 x float> } %172, 0
  store <2 x float> %174, ptr %173, align 4
  %175 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %10, i32 0, i32 1
  %176 = extractvalue { <2 x float>, <2 x float> } %172, 1
  store <2 x float> %176, ptr %175, align 4
  %177 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 0
  %178 = getelementptr inbounds %struct.ImVec2, ptr %177, i32 0, i32 0
  %179 = load float, ptr %178, align 4, !tbaa !96
  %180 = fpext float %179 to double
  %181 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 0
  %182 = getelementptr inbounds %struct.ImVec2, ptr %181, i32 0, i32 1
  %183 = load float, ptr %182, align 4, !tbaa !97
  %184 = fpext float %183 to double
  %185 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 1
  %186 = getelementptr inbounds %struct.ImVec2, ptr %185, i32 0, i32 0
  %187 = load float, ptr %186, align 4, !tbaa !98
  %188 = fpext float %187 to double
  %189 = getelementptr inbounds %struct.ImRect, ptr %10, i32 0, i32 1
  %190 = getelementptr inbounds %struct.ImVec2, ptr %189, i32 0, i32 1
  %191 = load float, ptr %190, align 4, !tbaa !99
  %192 = fpext float %191 to double
  %193 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %194 = fpext float %193 to double
  %195 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %10)
  %196 = fpext float %195 to double
  %197 = load i32, ptr %9, align 4, !tbaa !95
  %198 = sext i32 %197 to i64
  %199 = getelementptr inbounds [8 x ptr], ptr %6, i64 0, i64 %198
  %200 = load ptr, ptr %199, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.255, double noundef %180, double noundef %184, double noundef %188, double noundef %192, double noundef %194, double noundef %196, ptr noundef %200)
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #9
  br label %201

201:                                              ; preds = %167
  %202 = load i32, ptr %9, align 4, !tbaa !95
  %203 = add nsw i32 %202, 1
  store i32 %203, ptr %9, align 4, !tbaa !95
  br label %163, !llvm.loop !100

204:                                              ; preds = %166
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %205

205:                                              ; preds = %204, %152, %126
  %206 = load ptr, ptr %5, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %206, i32 0, i32 3
  %208 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.256, ptr noundef %207)
  %209 = load ptr, ptr %5, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %209, i32 0, i32 4
  %211 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.257, ptr noundef %210)
  %212 = load ptr, ptr %5, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %212, i32 0, i32 2
  %214 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef @.str.258, ptr noundef %213)
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %215 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %216 = fmul float %215, 1.200000e+01
  call void @_ZN5ImGui16SetNextItemWidthEf(float noundef %216)
  %217 = load ptr, ptr %5, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %217, i32 0, i32 6
  %219 = getelementptr inbounds [13 x ptr], ptr %7, i64 0, i64 0
  %220 = call noundef zeroext i1 @_ZN5ImGui5ComboEPKcPiPKS1_ii(ptr noundef @.str.259, ptr noundef %218, ptr noundef %219, i32 noundef 13, i32 noundef 13)
  %221 = zext i1 %220 to i32
  %222 = load ptr, ptr %5, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %222, i32 0, i32 2
  %224 = load i8, ptr %223, align 2, !tbaa !102, !range !26, !noundef !27
  %225 = trunc i8 %224 to i1
  %226 = zext i1 %225 to i32
  %227 = or i32 %226, %221
  %228 = icmp ne i32 %227, 0
  %229 = zext i1 %228 to i8
  store i8 %229, ptr %223, align 2, !tbaa !102
  %230 = load ptr, ptr %5, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %230, i32 0, i32 2
  %232 = load i8, ptr %231, align 2, !tbaa !102, !range !26, !noundef !27
  %233 = trunc i8 %232 to i1
  br i1 %233, label %234, label %432

234:                                              ; preds = %205
  %235 = load ptr, ptr %3, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.ImGuiContext, ptr %235, i32 0, i32 84
  %237 = load ptr, ptr %236, align 8, !tbaa !28
  %238 = icmp ne ptr %237, null
  br i1 %238, label %239, label %432

239:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  store i32 0, ptr %11, align 4, !tbaa !95
  br label %240

240:                                              ; preds = %428, %239
  %241 = load i32, ptr %11, align 4, !tbaa !95
  %242 = load ptr, ptr %3, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.ImGuiContext, ptr %242, i32 0, i32 166
  %244 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %243)
  %245 = icmp slt i32 %241, %244
  br i1 %245, label %247, label %246

246:                                              ; preds = %240
  store i32 5, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %431

247:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %248 = load ptr, ptr %3, align 8, !tbaa !5
  %249 = getelementptr inbounds %struct.ImGuiContext, ptr %248, i32 0, i32 166
  %250 = load i32, ptr %11, align 4, !tbaa !95
  %251 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %249, i32 noundef %250)
  store ptr %251, ptr %13, align 8, !tbaa !5
  %252 = load ptr, ptr %13, align 8, !tbaa !5
  %253 = icmp eq ptr %252, null
  br i1 %253, label %279, label %254

254:                                              ; preds = %247
  %255 = load ptr, ptr %13, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.ImGuiTable, ptr %255, i32 0, i32 13
  %257 = load i32, ptr %256, align 8, !tbaa !103
  %258 = load ptr, ptr %3, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.ImGuiContext, ptr %258, i32 0, i32 10
  %260 = load i32, ptr %259, align 8, !tbaa !111
  %261 = sub nsw i32 %260, 1
  %262 = icmp slt i32 %257, %261
  br i1 %262, label %279, label %263

263:                                              ; preds = %254
  %264 = load ptr, ptr %13, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.ImGuiTable, ptr %264, i32 0, i32 55
  %266 = load ptr, ptr %265, align 8, !tbaa !112
  %267 = load ptr, ptr %3, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.ImGuiContext, ptr %267, i32 0, i32 84
  %269 = load ptr, ptr %268, align 8, !tbaa !28
  %270 = icmp ne ptr %266, %269
  br i1 %270, label %271, label %280

271:                                              ; preds = %263
  %272 = load ptr, ptr %13, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.ImGuiTable, ptr %272, i32 0, i32 56
  %274 = load ptr, ptr %273, align 8, !tbaa !113
  %275 = load ptr, ptr %3, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiContext, ptr %275, i32 0, i32 84
  %277 = load ptr, ptr %276, align 8, !tbaa !28
  %278 = icmp ne ptr %274, %277
  br i1 %278, label %279, label %280

279:                                              ; preds = %271, %254, %247
  store i32 7, ptr %12, align 4
  br label %425

280:                                              ; preds = %271, %263
  %281 = load ptr, ptr %13, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.ImGuiTable, ptr %281, i32 0, i32 0
  %283 = load i32, ptr %282, align 8, !tbaa !114
  %284 = load ptr, ptr %13, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiTable, ptr %284, i32 0, i32 14
  %286 = load i32, ptr %285, align 4, !tbaa !115
  %287 = load ptr, ptr %13, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.ImGuiTable, ptr %287, i32 0, i32 55
  %289 = load ptr, ptr %288, align 8, !tbaa !112
  %290 = getelementptr inbounds %struct.ImGuiWindow, ptr %289, i32 0, i32 0
  %291 = load ptr, ptr %290, align 8, !tbaa !79
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.260, i32 noundef %283, i32 noundef %286, ptr noundef %291)
  %292 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %292, label %293, label %303

293:                                              ; preds = %280
  %294 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %295 = load ptr, ptr %13, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.ImGuiTable, ptr %295, i32 0, i32 46
  %297 = getelementptr inbounds %struct.ImRect, ptr %296, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %298 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %297, ptr noundef nonnull align 4 dereferenceable(8) %15)
  store <2 x float> %298, ptr %14, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %299 = load ptr, ptr %13, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.ImGuiTable, ptr %299, i32 0, i32 46
  %301 = getelementptr inbounds %struct.ImRect, ptr %300, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %302 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %301, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %302, ptr %16, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %294, 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 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %303

303:                                              ; preds = %293, %280
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 128, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 0, ptr %19, align 4, !tbaa !95
  br label %304

304:                                              ; preds = %421, %303
  %305 = load i32, ptr %19, align 4, !tbaa !95
  %306 = icmp slt i32 %305, 13
  br i1 %306, label %308, label %307

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

308:                                              ; preds = %304
  %309 = load i32, ptr %19, align 4, !tbaa !95
  %310 = icmp sge i32 %309, 6
  br i1 %310, label %311, label %376

311:                                              ; preds = %308
  %312 = load i32, ptr %19, align 4, !tbaa !95
  %313 = icmp ne i32 %312, 6
  br i1 %313, label %314, label %318

314:                                              ; preds = %311
  %315 = load i32, ptr %19, align 4, !tbaa !95
  %316 = icmp ne i32 %315, 8
  br i1 %316, label %317, label %318

317:                                              ; preds = %314
  br label %421

318:                                              ; preds = %314, %311
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 0, ptr %20, align 4, !tbaa !95
  br label %319

319:                                              ; preds = %372, %318
  %320 = load i32, ptr %20, align 4, !tbaa !95
  %321 = load ptr, ptr %13, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.ImGuiTable, ptr %321, i32 0, i32 14
  %323 = load i32, ptr %322, align 4, !tbaa !115
  %324 = icmp slt i32 %320, %323
  br i1 %324, label %326, label %325

325:                                              ; preds = %319
  store i32 11, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %375

326:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #9
  %327 = load ptr, ptr %13, align 8, !tbaa !5
  %328 = load i32, ptr %19, align 4, !tbaa !95
  %329 = load i32, ptr %20, align 4, !tbaa !95
  %330 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %327, i32 noundef %328, i32 noundef %329)
  %331 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 0
  %332 = extractvalue { <2 x float>, <2 x float> } %330, 0
  store <2 x float> %332, ptr %331, align 4
  %333 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %21, i32 0, i32 1
  %334 = extractvalue { <2 x float>, <2 x float> } %330, 1
  store <2 x float> %334, ptr %333, align 4
  %335 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %336 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %337 = getelementptr inbounds %struct.ImVec2, ptr %336, i32 0, i32 0
  %338 = load float, ptr %337, align 4, !tbaa !96
  %339 = fpext float %338 to double
  %340 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  %341 = getelementptr inbounds %struct.ImVec2, ptr %340, i32 0, i32 1
  %342 = load float, ptr %341, align 4, !tbaa !97
  %343 = fpext float %342 to double
  %344 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %345 = getelementptr inbounds %struct.ImVec2, ptr %344, i32 0, i32 0
  %346 = load float, ptr %345, align 4, !tbaa !98
  %347 = fpext float %346 to double
  %348 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  %349 = getelementptr inbounds %struct.ImVec2, ptr %348, i32 0, i32 1
  %350 = load float, ptr %349, align 4, !tbaa !99
  %351 = fpext float %350 to double
  %352 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %353 = fpext float %352 to double
  %354 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %21)
  %355 = fpext float %354 to double
  %356 = load i32, ptr %20, align 4, !tbaa !95
  %357 = load i32, ptr %19, align 4, !tbaa !95
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds [13 x ptr], ptr %7, i64 0, i64 %358
  %360 = load ptr, ptr %359, align 8, !tbaa !5
  %361 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %335, i64 noundef 128, ptr noundef @.str.261, double noundef %339, double noundef %343, double noundef %347, double noundef %351, double noundef %353, double noundef %355, i32 noundef %356, ptr noundef %360)
  %362 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %363 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %362, 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) #9
  %364 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %364, label %365, label %371

365:                                              ; preds = %326
  %366 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %367 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %368 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %367, ptr noundef nonnull align 4 dereferenceable(8) %24)
  store <2 x float> %368, ptr %23, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %369 = getelementptr inbounds %struct.ImRect, ptr %21, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %26, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %370 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %369, ptr noundef nonnull align 4 dereferenceable(8) %26)
  store <2 x float> %370, ptr %25, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %366, 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 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %371

371:                                              ; preds = %365, %326
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #9
  br label %372

372:                                              ; preds = %371
  %373 = load i32, ptr %20, align 4, !tbaa !95
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr %20, align 4, !tbaa !95
  br label %319, !llvm.loop !116

375:                                              ; preds = %325
  br label %420

376:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #9
  %377 = load ptr, ptr %13, align 8, !tbaa !5
  %378 = load i32, ptr %19, align 4, !tbaa !95
  %379 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %377, i32 noundef %378, i32 noundef -1)
  %380 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 0
  %381 = extractvalue { <2 x float>, <2 x float> } %379, 0
  store <2 x float> %381, ptr %380, align 4
  %382 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %27, i32 0, i32 1
  %383 = extractvalue { <2 x float>, <2 x float> } %379, 1
  store <2 x float> %383, ptr %382, align 4
  %384 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  %385 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %386 = getelementptr inbounds %struct.ImVec2, ptr %385, i32 0, i32 0
  %387 = load float, ptr %386, align 4, !tbaa !96
  %388 = fpext float %387 to double
  %389 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  %390 = getelementptr inbounds %struct.ImVec2, ptr %389, i32 0, i32 1
  %391 = load float, ptr %390, align 4, !tbaa !97
  %392 = fpext float %391 to double
  %393 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %394 = getelementptr inbounds %struct.ImVec2, ptr %393, i32 0, i32 0
  %395 = load float, ptr %394, align 4, !tbaa !98
  %396 = fpext float %395 to double
  %397 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  %398 = getelementptr inbounds %struct.ImVec2, ptr %397, i32 0, i32 1
  %399 = load float, ptr %398, align 4, !tbaa !99
  %400 = fpext float %399 to double
  %401 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %402 = fpext float %401 to double
  %403 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %27)
  %404 = fpext float %403 to double
  %405 = load i32, ptr %19, align 4, !tbaa !95
  %406 = sext i32 %405 to i64
  %407 = getelementptr inbounds [13 x ptr], ptr %7, i64 0, i64 %406
  %408 = load ptr, ptr %407, align 8, !tbaa !5
  %409 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %384, i64 noundef 128, ptr noundef @.str.255, double noundef %388, double noundef %392, double noundef %396, double noundef %400, double noundef %402, double noundef %404, ptr noundef %408)
  %410 = getelementptr inbounds [128 x i8], ptr %18, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %28, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %411 = call noundef zeroext i1 @_ZN5ImGui10SelectableEPKcbiRK6ImVec2(ptr noundef %410, 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) #9
  %412 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %412, label %413, label %419

413:                                              ; preds = %376
  %414 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %415 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %416 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %415, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %416, ptr %29, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %417 = getelementptr inbounds %struct.ImRect, ptr %27, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %32, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %418 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %417, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %418, ptr %31, align 4
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %414, 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 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %419

419:                                              ; preds = %413, %376
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #9
  br label %420

420:                                              ; preds = %419, %375
  br label %421

421:                                              ; preds = %420, %317
  %422 = load i32, ptr %19, align 4, !tbaa !95
  %423 = add nsw i32 %422, 1
  store i32 %423, ptr %19, align 4, !tbaa !95
  br label %304, !llvm.loop !117

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

425:                                              ; preds = %424, %279
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  %426 = load i32, ptr %12, align 4
  switch i32 %426, label %1190 [
    i32 0, label %427
    i32 7, label %428
  ]

427:                                              ; preds = %425
  br label %428

428:                                              ; preds = %427, %425
  %429 = load i32, ptr %11, align 4, !tbaa !95
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr %11, align 4, !tbaa !95
  br label %240, !llvm.loop !118

431:                                              ; preds = %246
  br label %432

432:                                              ; preds = %431, %234, %205
  call void @_ZN5ImGui7TreePopEv()
  br label %433

433:                                              ; preds = %432, %121
  %434 = load ptr, ptr %3, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.ImGuiContext, ptr %434, i32 0, i32 21
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef %435, ptr noundef @.str.262)
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  store i32 0, ptr %33, align 4, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  store i32 0, ptr %34, align 4, !tbaa !95
  br label %436

436:                                              ; preds = %454, %433
  %437 = load i32, ptr %34, align 4, !tbaa !95
  %438 = load ptr, ptr %3, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.ImGuiContext, ptr %438, i32 0, i32 83
  %440 = getelementptr inbounds %struct.ImVector.12, ptr %439, i32 0, i32 0
  %441 = load i32, ptr %440, align 8, !tbaa !119
  %442 = icmp slt i32 %437, %441
  br i1 %442, label %444, label %443

443:                                              ; preds = %436
  store i32 14, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %457

444:                                              ; preds = %436
  %445 = load ptr, ptr %3, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.ImGuiContext, ptr %445, i32 0, i32 83
  %447 = load i32, ptr %34, align 4, !tbaa !95
  %448 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %446, i32 noundef %447)
  %449 = load ptr, ptr %448, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.ImGuiViewportP, ptr %449, i32 0, i32 4
  %451 = call noundef i32 @_ZNK17ImDrawDataBuilder16GetDrawListCountEv(ptr noundef nonnull align 8 dereferenceable(32) %450)
  %452 = load i32, ptr %33, align 4, !tbaa !95
  %453 = add nsw i32 %452, %451
  store i32 %453, ptr %33, align 4, !tbaa !95
  br label %454

454:                                              ; preds = %444
  %455 = load i32, ptr %34, align 4, !tbaa !95
  %456 = add nsw i32 %455, 1
  store i32 %456, ptr %34, align 4, !tbaa !95
  br label %436, !llvm.loop !120

457:                                              ; preds = %443
  %458 = load i32, ptr %33, align 4, !tbaa !95
  %459 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.263, ptr noundef @.str.264, i32 noundef %458)
  br i1 %459, label %460, label %514

460:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  store i32 0, ptr %35, align 4, !tbaa !95
  br label %461

461:                                              ; preds = %510, %460
  %462 = load i32, ptr %35, align 4, !tbaa !95
  %463 = load ptr, ptr %3, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.ImGuiContext, ptr %463, i32 0, i32 83
  %465 = getelementptr inbounds %struct.ImVector.12, 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 %35) #9
  br label %513

469:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %470 = load ptr, ptr %3, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.ImGuiContext, ptr %470, i32 0, i32 83
  %472 = load i32, ptr %35, align 4, !tbaa !95
  %473 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %471, i32 noundef %472)
  %474 = load ptr, ptr %473, align 8, !tbaa !5
  store ptr %474, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  store i32 0, ptr %37, align 4, !tbaa !95
  br label %475

475:                                              ; preds = %506, %469
  %476 = load i32, ptr %37, align 4, !tbaa !95
  %477 = icmp slt i32 %476, 2
  br i1 %477, label %479, label %478

478:                                              ; preds = %475
  store i32 20, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %509

479:                                              ; preds = %475
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  store i32 0, ptr %38, align 4, !tbaa !95
  br label %480

480:                                              ; preds = %502, %479
  %481 = load i32, ptr %38, align 4, !tbaa !95
  %482 = load ptr, ptr %36, align 8, !tbaa !5
  %483 = getelementptr inbounds %struct.ImGuiViewportP, ptr %482, i32 0, i32 4
  %484 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %483, i32 0, i32 0
  %485 = load i32, ptr %37, align 4, !tbaa !95
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds [2 x %struct.ImVector.36], ptr %484, i64 0, i64 %486
  %488 = getelementptr inbounds %struct.ImVector.36, ptr %487, i32 0, i32 0
  %489 = load i32, ptr %488, align 8, !tbaa !121
  %490 = icmp slt i32 %481, %489
  br i1 %490, label %492, label %491

491:                                              ; preds = %480
  store i32 23, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %505

492:                                              ; preds = %480
  %493 = load ptr, ptr %36, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.ImGuiViewportP, ptr %493, i32 0, i32 4
  %495 = getelementptr inbounds %struct.ImDrawDataBuilder, ptr %494, i32 0, i32 0
  %496 = load i32, ptr %37, align 4, !tbaa !95
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds [2 x %struct.ImVector.36], ptr %495, i64 0, i64 %497
  %499 = load i32, ptr %38, align 4, !tbaa !95
  %500 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %498, i32 noundef %499)
  %501 = load ptr, ptr %500, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %501, ptr noundef @.str.265)
  br label %502

502:                                              ; preds = %492
  %503 = load i32, ptr %38, align 4, !tbaa !95
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr %38, align 4, !tbaa !95
  br label %480, !llvm.loop !123

505:                                              ; preds = %491
  br label %506

506:                                              ; preds = %505
  %507 = load i32, ptr %37, align 4, !tbaa !95
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr %37, align 4, !tbaa !95
  br label %475, !llvm.loop !124

509:                                              ; preds = %478
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  br label %510

510:                                              ; preds = %509
  %511 = load i32, ptr %35, align 4, !tbaa !95
  %512 = add nsw i32 %511, 1
  store i32 %512, ptr %35, align 4, !tbaa !95
  br label %461, !llvm.loop !125

513:                                              ; preds = %468
  call void @_ZN5ImGui7TreePopEv()
  br label %514

514:                                              ; preds = %513, %457
  %515 = load ptr, ptr %3, align 8, !tbaa !5
  %516 = getelementptr inbounds %struct.ImGuiContext, ptr %515, i32 0, i32 83
  %517 = getelementptr inbounds %struct.ImVector.12, ptr %516, i32 0, i32 0
  %518 = load i32, ptr %517, align 8, !tbaa !119
  %519 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.266, ptr noundef @.str.267, i32 noundef %518)
  br i1 %519, label %520, label %541

520:                                              ; preds = %514
  %521 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %521)
  call void @_ZL25RenderViewportsThumbnailsv()
  %522 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %522)
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  store i32 0, ptr %39, align 4, !tbaa !95
  br label %523

523:                                              ; preds = %537, %520
  %524 = load i32, ptr %39, align 4, !tbaa !95
  %525 = load ptr, ptr %3, align 8, !tbaa !5
  %526 = getelementptr inbounds %struct.ImGuiContext, ptr %525, i32 0, i32 83
  %527 = getelementptr inbounds %struct.ImVector.12, ptr %526, i32 0, i32 0
  %528 = load i32, ptr %527, align 8, !tbaa !119
  %529 = icmp slt i32 %524, %528
  br i1 %529, label %531, label %530

530:                                              ; preds = %523
  store i32 26, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %540

531:                                              ; preds = %523
  %532 = load ptr, ptr %3, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.ImGuiContext, ptr %532, i32 0, i32 83
  %534 = load i32, ptr %39, align 4, !tbaa !95
  %535 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %533, i32 noundef %534)
  %536 = load ptr, ptr %535, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %536)
  br label %537

537:                                              ; preds = %531
  %538 = load i32, ptr %39, align 4, !tbaa !95
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr %39, align 4, !tbaa !95
  br label %523, !llvm.loop !126

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

541:                                              ; preds = %540, %514
  %542 = load ptr, ptr %3, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.ImGuiContext, ptr %542, i32 0, i32 81
  %544 = getelementptr inbounds %struct.ImVector.11, ptr %543, i32 0, i32 0
  %545 = load i32, ptr %544, align 8, !tbaa !127
  %546 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.268, ptr noundef @.str.269, i32 noundef %545)
  br i1 %546, label %547, label %606

547:                                              ; preds = %541
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  store i32 0, ptr %40, align 4, !tbaa !95
  br label %548

548:                                              ; preds = %602, %547
  %549 = load i32, ptr %40, align 4, !tbaa !95
  %550 = load ptr, ptr %3, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.ImGuiContext, ptr %550, i32 0, i32 81
  %552 = getelementptr inbounds %struct.ImVector.11, ptr %551, i32 0, i32 0
  %553 = load i32, ptr %552, align 8, !tbaa !127
  %554 = icmp slt i32 %549, %553
  br i1 %554, label %556, label %555

555:                                              ; preds = %548
  store i32 29, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %605

556:                                              ; preds = %548
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %557 = load ptr, ptr %3, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct.ImGuiContext, ptr %557, i32 0, i32 81
  %559 = load i32, ptr %40, align 4, !tbaa !95
  %560 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %558, i32 noundef %559)
  %561 = getelementptr inbounds %struct.ImGuiPopupData, ptr %560, i32 0, i32 1
  %562 = load ptr, ptr %561, align 8, !tbaa !128
  store ptr %562, ptr %41, align 8, !tbaa !5
  %563 = load ptr, ptr %3, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.ImGuiContext, ptr %563, i32 0, i32 81
  %565 = load i32, ptr %40, align 4, !tbaa !95
  %566 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %564, i32 noundef %565)
  %567 = getelementptr inbounds %struct.ImGuiPopupData, ptr %566, i32 0, i32 0
  %568 = load i32, ptr %567, align 8, !tbaa !130
  %569 = load ptr, ptr %41, align 8, !tbaa !5
  %570 = icmp ne ptr %569, null
  br i1 %570, label %571, label %575

571:                                              ; preds = %556
  %572 = load ptr, ptr %41, align 8, !tbaa !5
  %573 = getelementptr inbounds %struct.ImGuiWindow, ptr %572, i32 0, i32 0
  %574 = load ptr, ptr %573, align 8, !tbaa !79
  br label %576

575:                                              ; preds = %556
  br label %576

576:                                              ; preds = %575, %571
  %577 = phi ptr [ %574, %571 ], [ @.str.271, %575 ]
  %578 = load ptr, ptr %41, align 8, !tbaa !5
  %579 = icmp ne ptr %578, null
  br i1 %579, label %580, label %586

580:                                              ; preds = %576
  %581 = load ptr, ptr %41, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.ImGuiWindow, ptr %581, i32 0, i32 2
  %583 = load i32, ptr %582, align 4, !tbaa !131
  %584 = and i32 %583, 16777216
  %585 = icmp ne i32 %584, 0
  br label %586

586:                                              ; preds = %580, %576
  %587 = phi i1 [ false, %576 ], [ %585, %580 ]
  %588 = zext i1 %587 to i64
  %589 = select i1 %587, ptr @.str.272, ptr @.str.6
  %590 = load ptr, ptr %41, align 8, !tbaa !5
  %591 = icmp ne ptr %590, null
  br i1 %591, label %592, label %598

592:                                              ; preds = %586
  %593 = load ptr, ptr %41, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.ImGuiWindow, ptr %593, i32 0, i32 2
  %595 = load i32, ptr %594, align 4, !tbaa !131
  %596 = and i32 %595, 268435456
  %597 = icmp ne i32 %596, 0
  br label %598

598:                                              ; preds = %592, %586
  %599 = phi i1 [ false, %586 ], [ %597, %592 ]
  %600 = zext i1 %599 to i64
  %601 = select i1 %599, ptr @.str.273, ptr @.str.6
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.270, i32 noundef %568, ptr noundef %577, ptr noundef %589, ptr noundef %601)
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  br label %602

602:                                              ; preds = %598
  %603 = load i32, ptr %40, align 4, !tbaa !95
  %604 = add nsw i32 %603, 1
  store i32 %604, ptr %40, align 4, !tbaa !95
  br label %548, !llvm.loop !132

605:                                              ; preds = %555
  call void @_ZN5ImGui7TreePopEv()
  br label %606

606:                                              ; preds = %605, %541
  %607 = load ptr, ptr %3, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct.ImGuiContext, ptr %607, i32 0, i32 171
  %609 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %608)
  %610 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.274, ptr noundef @.str.275, i32 noundef %609)
  br i1 %610, label %611, label %634

611:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  store i32 0, ptr %42, align 4, !tbaa !95
  br label %612

612:                                              ; preds = %630, %611
  %613 = load i32, ptr %42, align 4, !tbaa !95
  %614 = load ptr, ptr %3, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.ImGuiContext, ptr %614, i32 0, i32 171
  %616 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %615)
  %617 = icmp slt i32 %613, %616
  br i1 %617, label %619, label %618

618:                                              ; preds = %612
  store i32 32, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %633

619:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %620 = load ptr, ptr %3, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.ImGuiContext, ptr %620, i32 0, i32 171
  %622 = load i32, ptr %42, align 4, !tbaa !95
  %623 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %621, i32 noundef %622)
  store ptr %623, ptr %43, align 8, !tbaa !5
  %624 = load ptr, ptr %43, align 8, !tbaa !5
  %625 = icmp ne ptr %624, null
  br i1 %625, label %626, label %629

626:                                              ; preds = %619
  %627 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef %627)
  %628 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef %628, ptr noundef @.str.276)
  call void @_ZN5ImGui5PopIDEv()
  br label %629

629:                                              ; preds = %626, %619
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  br label %630

630:                                              ; preds = %629
  %631 = load i32, ptr %42, align 4, !tbaa !95
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr %42, align 4, !tbaa !95
  br label %612, !llvm.loop !133

633:                                              ; preds = %618
  call void @_ZN5ImGui7TreePopEv()
  br label %634

634:                                              ; preds = %633, %606
  %635 = load ptr, ptr %3, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.ImGuiContext, ptr %635, i32 0, i32 166
  %637 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %636)
  %638 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.277, ptr noundef @.str.278, i32 noundef %637)
  br i1 %638, label %639, label %661

639:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  store i32 0, ptr %44, align 4, !tbaa !95
  br label %640

640:                                              ; preds = %657, %639
  %641 = load i32, ptr %44, align 4, !tbaa !95
  %642 = load ptr, ptr %3, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.ImGuiContext, ptr %642, i32 0, i32 166
  %644 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %643)
  %645 = icmp slt i32 %641, %644
  br i1 %645, label %647, label %646

646:                                              ; preds = %640
  store i32 35, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %660

647:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  %648 = load ptr, ptr %3, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.ImGuiContext, ptr %648, i32 0, i32 166
  %650 = load i32, ptr %44, align 4, !tbaa !95
  %651 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %649, i32 noundef %650)
  store ptr %651, ptr %45, align 8, !tbaa !5
  %652 = load ptr, ptr %45, align 8, !tbaa !5
  %653 = icmp ne ptr %652, null
  br i1 %653, label %654, label %656

654:                                              ; preds = %647
  %655 = load ptr, ptr %45, align 8, !tbaa !5
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef %655)
  br label %656

656:                                              ; preds = %654, %647
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  br label %657

657:                                              ; preds = %656
  %658 = load i32, ptr %44, align 4, !tbaa !95
  %659 = add nsw i32 %658, 1
  store i32 %659, ptr %44, align 4, !tbaa !95
  br label %640, !llvm.loop !134

660:                                              ; preds = %646
  call void @_ZN5ImGui7TreePopEv()
  br label %661

661:                                              ; preds = %660, %634
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  %662 = load ptr, ptr %3, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.ImGuiContext, ptr %662, i32 0, i32 3
  %664 = getelementptr inbounds %struct.ImGuiIO, ptr %663, i32 0, i32 14
  %665 = load ptr, ptr %664, align 8, !tbaa !135
  store ptr %665, ptr %46, align 8, !tbaa !5
  %666 = load ptr, ptr %46, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.ImFontAtlas, ptr %666, i32 0, i32 15
  %668 = getelementptr inbounds %struct.ImVector.7, ptr %667, i32 0, i32 0
  %669 = load i32, ptr %668, align 8, !tbaa !136
  %670 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.279, ptr noundef @.str.280, i32 noundef %669)
  br i1 %670, label %671, label %673

671:                                              ; preds = %661
  %672 = load ptr, ptr %46, align 8, !tbaa !5
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef %672)
  call void @_ZN5ImGui7TreePopEv()
  br label %673

673:                                              ; preds = %671, %661
  %674 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.281)
  br i1 %674, label %675, label %792

675:                                              ; preds = %673
  %676 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.282)
  br i1 %676, label %677, label %678

677:                                              ; preds = %675
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %678

678:                                              ; preds = %677, %675
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %679 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.283)
  br i1 %679, label %680, label %682

680:                                              ; preds = %678
  %681 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %682

682:                                              ; preds = %680, %678
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %683 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef @.str.284)
  br i1 %683, label %684, label %689

684:                                              ; preds = %682
  %685 = load ptr, ptr %3, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.ImGuiContext, ptr %685, i32 0, i32 3
  %687 = getelementptr inbounds %struct.ImGuiIO, ptr %686, i32 0, i32 5
  %688 = load ptr, ptr %687, align 8, !tbaa !140
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %688)
  br label %689

689:                                              ; preds = %684, %682
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %690 = load ptr, ptr %3, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.ImGuiContext, ptr %690, i32 0, i32 3
  %692 = getelementptr inbounds %struct.ImGuiIO, ptr %691, i32 0, i32 5
  %693 = load ptr, ptr %692, align 8, !tbaa !140
  %694 = icmp ne ptr %693, null
  br i1 %694, label %695, label %700

695:                                              ; preds = %689
  %696 = load ptr, ptr %3, align 8, !tbaa !5
  %697 = getelementptr inbounds %struct.ImGuiContext, ptr %696, i32 0, i32 3
  %698 = getelementptr inbounds %struct.ImGuiIO, ptr %697, i32 0, i32 5
  %699 = load ptr, ptr %698, align 8, !tbaa !140
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.285, ptr noundef %699)
  br label %701

700:                                              ; preds = %689
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef @.str.286, ptr noundef null)
  br label %701

701:                                              ; preds = %700, %695
  %702 = load ptr, ptr %3, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.ImGuiContext, ptr %702, i32 0, i32 202
  %704 = load float, ptr %703, align 4, !tbaa !141
  %705 = fpext float %704 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.287, double noundef %705)
  %706 = load ptr, ptr %3, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.ImGuiContext, ptr %706, i32 0, i32 204
  %708 = getelementptr inbounds %struct.ImVector.23, ptr %707, i32 0, i32 0
  %709 = load i32, ptr %708, align 8, !tbaa !142
  %710 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.288, ptr noundef @.str.289, i32 noundef %709)
  br i1 %710, label %711, label %731

711:                                              ; preds = %701
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  store i32 0, ptr %47, align 4, !tbaa !95
  br label %712

712:                                              ; preds = %727, %711
  %713 = load i32, ptr %47, align 4, !tbaa !95
  %714 = load ptr, ptr %3, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.ImGuiContext, ptr %714, i32 0, i32 204
  %716 = getelementptr inbounds %struct.ImVector.23, ptr %715, i32 0, i32 0
  %717 = load i32, ptr %716, align 8, !tbaa !142
  %718 = icmp slt i32 %713, %717
  br i1 %718, label %720, label %719

719:                                              ; preds = %712
  store i32 38, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %730

720:                                              ; preds = %712
  %721 = load ptr, ptr %3, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.ImGuiContext, ptr %721, i32 0, i32 204
  %723 = load i32, ptr %47, align 4, !tbaa !95
  %724 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %722, i32 noundef %723)
  %725 = getelementptr inbounds %struct.ImGuiSettingsHandler, ptr %724, i32 0, i32 0
  %726 = load ptr, ptr %725, align 8, !tbaa !143
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef @.str.290, ptr noundef %726)
  br label %727

727:                                              ; preds = %720
  %728 = load i32, ptr %47, align 4, !tbaa !95
  %729 = add nsw i32 %728, 1
  store i32 %729, ptr %47, align 4, !tbaa !95
  br label %712, !llvm.loop !145

730:                                              ; preds = %719
  call void @_ZN5ImGui7TreePopEv()
  br label %731

731:                                              ; preds = %730, %701
  %732 = load ptr, ptr %3, align 8, !tbaa !5
  %733 = getelementptr inbounds %struct.ImGuiContext, ptr %732, i32 0, i32 205
  %734 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %733)
  %735 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.291, ptr noundef @.str.292, i32 noundef %734)
  br i1 %735, label %736, label %752

736:                                              ; preds = %731
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %737 = load ptr, ptr %3, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.ImGuiContext, ptr %737, i32 0, i32 205
  %739 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %738)
  store ptr %739, ptr %48, align 8, !tbaa !5
  br label %740

740:                                              ; preds = %746, %736
  %741 = load ptr, ptr %48, align 8, !tbaa !5
  %742 = icmp ne ptr %741, null
  br i1 %742, label %744, label %743

743:                                              ; preds = %740
  store i32 41, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  br label %751

744:                                              ; preds = %740
  %745 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef %745)
  br label %746

746:                                              ; preds = %744
  %747 = load ptr, ptr %3, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.ImGuiContext, ptr %747, i32 0, i32 205
  %749 = load ptr, ptr %48, align 8, !tbaa !5
  %750 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %748, ptr noundef %749)
  store ptr %750, ptr %48, align 8, !tbaa !5
  br label %740, !llvm.loop !146

751:                                              ; preds = %743
  call void @_ZN5ImGui7TreePopEv()
  br label %752

752:                                              ; preds = %751, %731
  %753 = load ptr, ptr %3, align 8, !tbaa !5
  %754 = getelementptr inbounds %struct.ImGuiContext, ptr %753, i32 0, i32 206
  %755 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %754)
  %756 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.293, ptr noundef @.str.294, i32 noundef %755)
  br i1 %756, label %757, label %773

757:                                              ; preds = %752
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %758 = load ptr, ptr %3, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.ImGuiContext, ptr %758, i32 0, i32 206
  %760 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %759)
  store ptr %760, ptr %49, align 8, !tbaa !5
  br label %761

761:                                              ; preds = %767, %757
  %762 = load ptr, ptr %49, align 8, !tbaa !5
  %763 = icmp ne ptr %762, null
  br i1 %763, label %765, label %764

764:                                              ; preds = %761
  store i32 44, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %772

765:                                              ; preds = %761
  %766 = load ptr, ptr %49, align 8, !tbaa !5
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef %766)
  br label %767

767:                                              ; preds = %765
  %768 = load ptr, ptr %3, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.ImGuiContext, ptr %768, i32 0, i32 206
  %770 = load ptr, ptr %49, align 8, !tbaa !5
  %771 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %769, ptr noundef %770)
  store ptr %771, ptr %49, align 8, !tbaa !5
  br label %761, !llvm.loop !147

772:                                              ; preds = %764
  call void @_ZN5ImGui7TreePopEv()
  br label %773

773:                                              ; preds = %772, %752
  %774 = load ptr, ptr %3, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.ImGuiContext, ptr %774, i32 0, i32 203
  %776 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %775)
  %777 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef @.str.295, ptr noundef @.str.296, i32 noundef %776)
  br i1 %777, label %778, label %791

778:                                              ; preds = %773
  %779 = load ptr, ptr %3, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.ImGuiContext, ptr %779, i32 0, i32 203
  %781 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %780)
  %782 = load ptr, ptr %3, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.ImGuiContext, ptr %782, i32 0, i32 203
  %784 = getelementptr inbounds %struct.ImGuiTextBuffer, ptr %783, i32 0, i32 0
  %785 = getelementptr inbounds %struct.ImVector.2, ptr %784, i32 0, i32 0
  %786 = load i32, ptr %785, align 8, !tbaa !148
  %787 = sext i32 %786 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %788 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %789 = fmul float %788, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %50, float noundef 0xB810000000000000, float noundef %789)
  %790 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef @.str.297, ptr noundef %781, i64 noundef %787, ptr noundef nonnull align 4 dereferenceable(8) %50, i32 noundef 16384, ptr noundef null, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @_ZN5ImGui7TreePopEv()
  br label %791

791:                                              ; preds = %778, %773
  call void @_ZN5ImGui7TreePopEv()
  br label %792

792:                                              ; preds = %791, %673
  %793 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef @.str.298)
  br i1 %793, label %794, label %995

794:                                              ; preds = %792
  call void @llvm.lifetime.start.p0(i64 48, ptr %51) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %51, ptr align 16 @__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names, i64 48, i1 false)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.305)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %795 = load ptr, ptr %3, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.ImGuiContext, ptr %795, i32 0, i32 30
  %797 = load ptr, ptr %796, align 8, !tbaa !149
  %798 = icmp ne ptr %797, null
  br i1 %798, label %799, label %805

799:                                              ; preds = %794
  %800 = load ptr, ptr %3, align 8, !tbaa !5
  %801 = getelementptr inbounds %struct.ImGuiContext, ptr %800, i32 0, i32 30
  %802 = load ptr, ptr %801, align 8, !tbaa !149
  %803 = getelementptr inbounds %struct.ImGuiWindow, ptr %802, i32 0, i32 0
  %804 = load ptr, ptr %803, align 8, !tbaa !79
  br label %806

805:                                              ; preds = %794
  br label %806

806:                                              ; preds = %805, %799
  %807 = phi ptr [ %804, %799 ], [ @.str.271, %805 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.306, ptr noundef %807)
  %808 = load ptr, ptr %3, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.ImGuiContext, ptr %808, i32 0, i32 30
  %810 = load ptr, ptr %809, align 8, !tbaa !149
  %811 = icmp ne ptr %810, null
  br i1 %811, label %812, label %820

812:                                              ; preds = %806
  %813 = load ptr, ptr %3, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.ImGuiContext, ptr %813, i32 0, i32 30
  %815 = load ptr, ptr %814, align 8, !tbaa !149
  %816 = getelementptr inbounds %struct.ImGuiWindow, ptr %815, i32 0, i32 75
  %817 = load ptr, ptr %816, align 8, !tbaa !150
  %818 = getelementptr inbounds %struct.ImGuiWindow, ptr %817, i32 0, i32 0
  %819 = load ptr, ptr %818, align 8, !tbaa !79
  br label %821

820:                                              ; preds = %806
  br label %821

821:                                              ; preds = %820, %812
  %822 = phi ptr [ %819, %812 ], [ @.str.271, %820 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.307, ptr noundef %822)
  %823 = load ptr, ptr %3, align 8, !tbaa !5
  %824 = getelementptr inbounds %struct.ImGuiContext, ptr %823, i32 0, i32 31
  %825 = load ptr, ptr %824, align 8, !tbaa !151
  %826 = icmp ne ptr %825, null
  br i1 %826, label %827, label %833

827:                                              ; preds = %821
  %828 = load ptr, ptr %3, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.ImGuiContext, ptr %828, i32 0, i32 31
  %830 = load ptr, ptr %829, align 8, !tbaa !151
  %831 = getelementptr inbounds %struct.ImGuiWindow, ptr %830, i32 0, i32 0
  %832 = load ptr, ptr %831, align 8, !tbaa !79
  br label %834

833:                                              ; preds = %821
  br label %834

834:                                              ; preds = %833, %827
  %835 = phi ptr [ %832, %827 ], [ @.str.271, %833 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.308, ptr noundef %835)
  %836 = load ptr, ptr %3, align 8, !tbaa !5
  %837 = getelementptr inbounds %struct.ImGuiContext, ptr %836, i32 0, i32 32
  %838 = load ptr, ptr %837, align 8, !tbaa !152
  %839 = icmp ne ptr %838, null
  br i1 %839, label %840, label %846

840:                                              ; preds = %834
  %841 = load ptr, ptr %3, align 8, !tbaa !5
  %842 = getelementptr inbounds %struct.ImGuiContext, ptr %841, i32 0, i32 32
  %843 = load ptr, ptr %842, align 8, !tbaa !152
  %844 = getelementptr inbounds %struct.ImGuiWindow, ptr %843, i32 0, i32 0
  %845 = load ptr, ptr %844, align 8, !tbaa !79
  br label %847

846:                                              ; preds = %834
  br label %847

847:                                              ; preds = %846, %840
  %848 = phi ptr [ %845, %840 ], [ @.str.271, %846 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.309, ptr noundef %848)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.310)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %849 = load ptr, ptr %3, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.ImGuiContext, ptr %849, i32 0, i32 44
  %851 = load i32, ptr %850, align 8, !tbaa !153
  %852 = load ptr, ptr %3, align 8, !tbaa !5
  %853 = getelementptr inbounds %struct.ImGuiContext, ptr %852, i32 0, i32 63
  %854 = load i32, ptr %853, align 8, !tbaa !154
  %855 = load ptr, ptr %3, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.ImGuiContext, ptr %855, i32 0, i32 46
  %857 = load float, ptr %856, align 8, !tbaa !155
  %858 = fpext float %857 to double
  %859 = load ptr, ptr %3, align 8, !tbaa !5
  %860 = getelementptr inbounds %struct.ImGuiContext, ptr %859, i32 0, i32 48
  %861 = load i8, ptr %860, align 1, !tbaa !156, !range !26, !noundef !27
  %862 = trunc i8 %861 to i1
  %863 = zext i1 %862 to i32
  %864 = load ptr, ptr %3, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.ImGuiContext, ptr %864, i32 0, i32 61
  %866 = load i32, ptr %865, align 8, !tbaa !157
  %867 = zext i32 %866 to i64
  %868 = getelementptr inbounds [6 x ptr], ptr %51, i64 0, i64 %867
  %869 = load ptr, ptr %868, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.311, i32 noundef %851, i32 noundef %854, double noundef %858, i32 noundef %863, ptr noundef %869)
  %870 = load ptr, ptr %3, align 8, !tbaa !5
  %871 = getelementptr inbounds %struct.ImGuiContext, ptr %870, i32 0, i32 60
  %872 = load ptr, ptr %871, align 8, !tbaa !158
  %873 = icmp ne ptr %872, null
  br i1 %873, label %874, label %880

874:                                              ; preds = %847
  %875 = load ptr, ptr %3, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.ImGuiContext, ptr %875, i32 0, i32 60
  %877 = load ptr, ptr %876, align 8, !tbaa !158
  %878 = getelementptr inbounds %struct.ImGuiWindow, ptr %877, i32 0, i32 0
  %879 = load ptr, ptr %878, align 8, !tbaa !79
  br label %881

880:                                              ; preds = %847
  br label %881

881:                                              ; preds = %880, %874
  %882 = phi ptr [ %879, %874 ], [ @.str.271, %880 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.312, ptr noundef %882)
  %883 = load ptr, ptr %3, align 8, !tbaa !5
  %884 = getelementptr inbounds %struct.ImGuiContext, ptr %883, i32 0, i32 53
  %885 = load i8, ptr %884, align 2, !tbaa !159, !range !26, !noundef !27
  %886 = trunc i8 %885 to i1
  %887 = zext i1 %886 to i32
  %888 = load ptr, ptr %3, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.ImGuiContext, ptr %888, i32 0, i32 55
  %890 = load i32, ptr %889, align 4, !tbaa !160
  %891 = load ptr, ptr %3, align 8, !tbaa !5
  %892 = getelementptr inbounds %struct.ImGuiContext, ptr %891, i32 0, i32 56
  %893 = load i32, ptr %892, align 8, !tbaa !161
  %894 = load ptr, ptr %3, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.ImGuiContext, ptr %894, i32 0, i32 58
  %896 = load i64, ptr %895, align 8, !tbaa !162
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.313, i32 noundef %887, i32 noundef %890, i32 noundef %893, i64 noundef %896)
  %897 = load ptr, ptr %3, align 8, !tbaa !5
  %898 = getelementptr inbounds %struct.ImGuiContext, ptr %897, i32 0, i32 37
  %899 = load i32, ptr %898, align 8, !tbaa !163
  %900 = load ptr, ptr %3, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.ImGuiContext, ptr %900, i32 0, i32 42
  %902 = load float, ptr %901, align 8, !tbaa !164
  %903 = fpext float %902 to double
  %904 = load ptr, ptr %3, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.ImGuiContext, ptr %904, i32 0, i32 38
  %906 = load i8, ptr %905, align 4, !tbaa !165, !range !26, !noundef !27
  %907 = trunc i8 %906 to i1
  %908 = zext i1 %907 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.314, i32 noundef %899, double noundef %903, i32 noundef %908)
  %909 = load ptr, ptr %3, align 8, !tbaa !5
  %910 = getelementptr inbounds %struct.ImGuiContext, ptr %909, i32 0, i32 143
  %911 = load i8, ptr %910, align 4, !tbaa !166, !range !26, !noundef !27
  %912 = trunc i8 %911 to i1
  %913 = zext i1 %912 to i32
  %914 = load ptr, ptr %3, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.ImGuiContext, ptr %914, i32 0, i32 151
  %916 = getelementptr inbounds %struct.ImGuiPayload, ptr %915, i32 0, i32 2
  %917 = load i32, ptr %916, align 4, !tbaa !167
  %918 = load ptr, ptr %3, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.ImGuiContext, ptr %918, i32 0, i32 151
  %920 = getelementptr inbounds %struct.ImGuiPayload, ptr %919, i32 0, i32 5
  %921 = getelementptr inbounds [33 x i8], ptr %920, i64 0, i64 0
  %922 = load ptr, ptr %3, align 8, !tbaa !5
  %923 = getelementptr inbounds %struct.ImGuiContext, ptr %922, i32 0, i32 151
  %924 = getelementptr inbounds %struct.ImGuiPayload, ptr %923, i32 0, i32 1
  %925 = load i32, ptr %924, align 8, !tbaa !168
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.315, i32 noundef %913, i32 noundef %917, ptr noundef %921, i32 noundef %925)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.316)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %926 = load ptr, ptr %3, align 8, !tbaa !5
  %927 = getelementptr inbounds %struct.ImGuiContext, ptr %926, i32 0, i32 84
  %928 = load ptr, ptr %927, align 8, !tbaa !28
  %929 = icmp ne ptr %928, null
  br i1 %929, label %930, label %936

930:                                              ; preds = %881
  %931 = load ptr, ptr %3, align 8, !tbaa !5
  %932 = getelementptr inbounds %struct.ImGuiContext, ptr %931, i32 0, i32 84
  %933 = load ptr, ptr %932, align 8, !tbaa !28
  %934 = getelementptr inbounds %struct.ImGuiWindow, ptr %933, i32 0, i32 0
  %935 = load ptr, ptr %934, align 8, !tbaa !79
  br label %937

936:                                              ; preds = %881
  br label %937

937:                                              ; preds = %936, %930
  %938 = phi ptr [ %935, %930 ], [ @.str.271, %936 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.317, ptr noundef %938)
  %939 = load ptr, ptr %3, align 8, !tbaa !5
  %940 = getelementptr inbounds %struct.ImGuiContext, ptr %939, i32 0, i32 85
  %941 = load i32, ptr %940, align 8, !tbaa !169
  %942 = load ptr, ptr %3, align 8, !tbaa !5
  %943 = getelementptr inbounds %struct.ImGuiContext, ptr %942, i32 0, i32 99
  %944 = load i32, ptr %943, align 4, !tbaa !170
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.318, i32 noundef %941, i32 noundef %944)
  %945 = load ptr, ptr %3, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.ImGuiContext, ptr %945, i32 0, i32 96
  %947 = load i32, ptr %946, align 4, !tbaa !171
  %948 = zext i32 %947 to i64
  %949 = getelementptr inbounds [6 x ptr], ptr %51, i64 0, i64 %948
  %950 = load ptr, ptr %949, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.319, ptr noundef %950)
  %951 = load ptr, ptr %3, align 8, !tbaa !5
  %952 = getelementptr inbounds %struct.ImGuiContext, ptr %951, i32 0, i32 3
  %953 = getelementptr inbounds %struct.ImGuiIO, ptr %952, i32 0, i32 51
  %954 = load i8, ptr %953, align 1, !tbaa !172, !range !26, !noundef !27
  %955 = trunc i8 %954 to i1
  %956 = zext i1 %955 to i32
  %957 = load ptr, ptr %3, align 8, !tbaa !5
  %958 = getelementptr inbounds %struct.ImGuiContext, ptr %957, i32 0, i32 3
  %959 = getelementptr inbounds %struct.ImGuiIO, ptr %958, i32 0, i32 52
  %960 = load i8, ptr %959, align 2, !tbaa !173, !range !26, !noundef !27
  %961 = trunc i8 %960 to i1
  %962 = zext i1 %961 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.320, i32 noundef %956, i32 noundef %962)
  %963 = load ptr, ptr %3, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.ImGuiContext, ptr %963, i32 0, i32 87
  %965 = load i32, ptr %964, align 8, !tbaa !174
  %966 = load ptr, ptr %3, align 8, !tbaa !5
  %967 = getelementptr inbounds %struct.ImGuiContext, ptr %966, i32 0, i32 90
  %968 = load i32, ptr %967, align 4, !tbaa !175
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.321, i32 noundef %965, i32 noundef %968)
  %969 = load ptr, ptr %3, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.ImGuiContext, ptr %969, i32 0, i32 103
  %971 = load i8, ptr %970, align 2, !tbaa !176, !range !26, !noundef !27
  %972 = trunc i8 %971 to i1
  %973 = zext i1 %972 to i32
  %974 = load ptr, ptr %3, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.ImGuiContext, ptr %974, i32 0, i32 104
  %976 = load i8, ptr %975, align 1, !tbaa !177, !range !26, !noundef !27
  %977 = trunc i8 %976 to i1
  %978 = zext i1 %977 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.322, i32 noundef %973, i32 noundef %978)
  %979 = load ptr, ptr %3, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.ImGuiContext, ptr %979, i32 0, i32 86
  %981 = load i32, ptr %980, align 4, !tbaa !178
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.323, i32 noundef %981)
  %982 = load ptr, ptr %3, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.ImGuiContext, ptr %982, i32 0, i32 126
  %984 = load ptr, ptr %983, align 8, !tbaa !179
  %985 = icmp ne ptr %984, null
  br i1 %985, label %986, label %992

986:                                              ; preds = %937
  %987 = load ptr, ptr %3, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.ImGuiContext, ptr %987, i32 0, i32 126
  %989 = load ptr, ptr %988, align 8, !tbaa !179
  %990 = getelementptr inbounds %struct.ImGuiWindow, ptr %989, i32 0, i32 0
  %991 = load ptr, ptr %990, align 8, !tbaa !79
  br label %993

992:                                              ; preds = %937
  br label %993

993:                                              ; preds = %992, %986
  %994 = phi ptr [ %991, %986 ], [ @.str.271, %992 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef @.str.324, ptr noundef %994)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  call void @llvm.lifetime.end.p0(i64 48, ptr %51) #9
  br label %995

995:                                              ; preds = %993, %792
  %996 = load ptr, ptr %5, align 8, !tbaa !5
  %997 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %996, i32 0, i32 0
  %998 = load i8, ptr %997, align 4, !tbaa !25, !range !26, !noundef !27
  %999 = trunc i8 %998 to i1
  br i1 %999, label %1005, label %1000

1000:                                             ; preds = %995
  %1001 = load ptr, ptr %5, align 8, !tbaa !5
  %1002 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1001, i32 0, i32 1
  %1003 = load i8, ptr %1002, align 1, !tbaa !180, !range !26, !noundef !27
  %1004 = trunc i8 %1003 to i1
  br i1 %1004, label %1005, label %1084

1005:                                             ; preds = %1000, %995
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  store i32 0, ptr %52, align 4, !tbaa !95
  br label %1006

1006:                                             ; preds = %1080, %1005
  %1007 = load i32, ptr %52, align 4, !tbaa !95
  %1008 = load ptr, ptr %3, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.ImGuiContext, ptr %1008, i32 0, i32 21
  %1010 = getelementptr inbounds %struct.ImVector.3, ptr %1009, i32 0, i32 0
  %1011 = load i32, ptr %1010, align 8, !tbaa !181
  %1012 = icmp slt i32 %1007, %1011
  br i1 %1012, label %1014, label %1013

1013:                                             ; preds = %1006
  store i32 47, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %1083

1014:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %1015 = load ptr, ptr %3, align 8, !tbaa !5
  %1016 = getelementptr inbounds %struct.ImGuiContext, ptr %1015, i32 0, i32 21
  %1017 = load i32, ptr %52, align 4, !tbaa !95
  %1018 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1016, i32 noundef %1017)
  %1019 = load ptr, ptr %1018, align 8, !tbaa !5
  store ptr %1019, ptr %53, align 8, !tbaa !5
  %1020 = load ptr, ptr %53, align 8, !tbaa !5
  %1021 = getelementptr inbounds %struct.ImGuiWindow, ptr %1020, i32 0, i32 24
  %1022 = load i8, ptr %1021, align 1, !tbaa !182, !range !26, !noundef !27
  %1023 = trunc i8 %1022 to i1
  br i1 %1023, label %1025, label %1024

1024:                                             ; preds = %1014
  store i32 49, ptr %12, align 4
  br label %1077

1025:                                             ; preds = %1014
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %1026 = load ptr, ptr %53, align 8, !tbaa !5
  %1027 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1026)
  store ptr %1027, ptr %54, align 8, !tbaa !5
  %1028 = load ptr, ptr %5, align 8, !tbaa !5
  %1029 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1028, i32 0, i32 0
  %1030 = load i8, ptr %1029, align 4, !tbaa !25, !range !26, !noundef !27
  %1031 = trunc i8 %1030 to i1
  br i1 %1031, label %1032, label %1045

1032:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #9
  %1033 = load ptr, ptr %53, align 8, !tbaa !5
  %1034 = load ptr, ptr %5, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1034, i32 0, i32 5
  %1036 = load i32, ptr %1035, align 4, !tbaa !22
  %1037 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef %1033, i32 noundef %1036)
  %1038 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %55, i32 0, i32 0
  %1039 = extractvalue { <2 x float>, <2 x float> } %1037, 0
  store <2 x float> %1039, ptr %1038, align 4
  %1040 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %55, i32 0, i32 1
  %1041 = extractvalue { <2 x float>, <2 x float> } %1037, 1
  store <2 x float> %1041, ptr %1040, align 4
  %1042 = load ptr, ptr %54, align 8, !tbaa !5
  %1043 = getelementptr inbounds %struct.ImRect, ptr %55, i32 0, i32 0
  %1044 = getelementptr inbounds %struct.ImRect, ptr %55, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1042, ptr noundef nonnull align 4 dereferenceable(8) %1043, ptr noundef nonnull align 4 dereferenceable(8) %1044, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #9
  br label %1045

1045:                                             ; preds = %1032, %1025
  %1046 = load ptr, ptr %5, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1046, i32 0, i32 1
  %1048 = load i8, ptr %1047, align 1, !tbaa !180, !range !26, !noundef !27
  %1049 = trunc i8 %1048 to i1
  br i1 %1049, label %1050, label %1076

1050:                                             ; preds = %1045
  %1051 = load ptr, ptr %53, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.ImGuiWindow, ptr %1051, i32 0, i32 2
  %1053 = load i32, ptr %1052, align 4, !tbaa !131
  %1054 = and i32 %1053, 16777216
  %1055 = icmp ne i32 %1054, 0
  br i1 %1055, label %1076, label %1056

1056:                                             ; preds = %1050
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #9
  %1057 = getelementptr inbounds [32 x i8], ptr %56, i64 0, i64 0
  %1058 = load ptr, ptr %53, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.ImGuiWindow, ptr %1058, i32 0, i32 37
  %1060 = load i16, ptr %1059, align 2, !tbaa !183
  %1061 = sext i16 %1060 to i32
  %1062 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef %1057, i64 noundef 32, ptr noundef @.str.325, i32 noundef %1061)
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %1063 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  store float %1063, ptr %57, align 4, !tbaa !184
  %1064 = load ptr, ptr %54, align 8, !tbaa !5
  %1065 = load ptr, ptr %53, align 8, !tbaa !5
  %1066 = getelementptr inbounds %struct.ImGuiWindow, ptr %1065, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  %1067 = load ptr, ptr %53, align 8, !tbaa !5
  %1068 = getelementptr inbounds %struct.ImGuiWindow, ptr %1067, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  %1069 = load float, ptr %57, align 4, !tbaa !184
  %1070 = load float, ptr %57, align 4, !tbaa !184
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %1069, float noundef %1070)
  %1071 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1068, ptr noundef nonnull align 4 dereferenceable(8) %59)
  store <2 x float> %1071, ptr %58, align 4
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1064, ptr noundef nonnull align 4 dereferenceable(8) %1066, ptr noundef nonnull align 4 dereferenceable(8) %58, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  %1072 = load ptr, ptr %54, align 8, !tbaa !5
  %1073 = load ptr, ptr %53, align 8, !tbaa !5
  %1074 = getelementptr inbounds %struct.ImGuiWindow, ptr %1073, i32 0, i32 3
  %1075 = getelementptr inbounds [32 x i8], ptr %56, i64 0, i64 0
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %1072, ptr noundef nonnull align 4 dereferenceable(8) %1074, i32 noundef -1, ptr noundef %1075, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  br label %1076

1076:                                             ; preds = %1056, %1050, %1045
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  store i32 0, ptr %12, align 4
  br label %1077

1077:                                             ; preds = %1076, %1024
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  %1078 = load i32, ptr %12, align 4
  switch i32 %1078, label %1190 [
    i32 0, label %1079
    i32 49, label %1080
  ]

1079:                                             ; preds = %1077
  br label %1080

1080:                                             ; preds = %1079, %1077
  %1081 = load i32, ptr %52, align 4, !tbaa !95
  %1082 = add nsw i32 %1081, 1
  store i32 %1082, ptr %52, align 4, !tbaa !95
  br label %1006, !llvm.loop !185

1083:                                             ; preds = %1013
  br label %1084

1084:                                             ; preds = %1083, %1000
  %1085 = load ptr, ptr %5, align 8, !tbaa !5
  %1086 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1085, i32 0, i32 2
  %1087 = load i8, ptr %1086, align 2, !tbaa !102, !range !26, !noundef !27
  %1088 = trunc i8 %1087 to i1
  br i1 %1088, label %1089, label %1188

1089:                                             ; preds = %1084
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  store i32 0, ptr %60, align 4, !tbaa !95
  br label %1090

1090:                                             ; preds = %1184, %1089
  %1091 = load i32, ptr %60, align 4, !tbaa !95
  %1092 = load ptr, ptr %3, align 8, !tbaa !5
  %1093 = getelementptr inbounds %struct.ImGuiContext, ptr %1092, i32 0, i32 166
  %1094 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %1093)
  %1095 = icmp slt i32 %1091, %1094
  br i1 %1095, label %1097, label %1096

1096:                                             ; preds = %1090
  store i32 50, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %1187

1097:                                             ; preds = %1090
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %1098 = load ptr, ptr %3, align 8, !tbaa !5
  %1099 = getelementptr inbounds %struct.ImGuiContext, ptr %1098, i32 0, i32 166
  %1100 = load i32, ptr %60, align 4, !tbaa !95
  %1101 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %1099, i32 noundef %1100)
  store ptr %1101, ptr %61, align 8, !tbaa !5
  %1102 = load ptr, ptr %61, align 8, !tbaa !5
  %1103 = icmp eq ptr %1102, null
  br i1 %1103, label %1113, label %1104

1104:                                             ; preds = %1097
  %1105 = load ptr, ptr %61, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.ImGuiTable, ptr %1105, i32 0, i32 13
  %1107 = load i32, ptr %1106, align 8, !tbaa !103
  %1108 = load ptr, ptr %3, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.ImGuiContext, ptr %1108, i32 0, i32 10
  %1110 = load i32, ptr %1109, align 8, !tbaa !111
  %1111 = sub nsw i32 %1110, 1
  %1112 = icmp slt i32 %1107, %1111
  br i1 %1112, label %1113, label %1114

1113:                                             ; preds = %1104, %1097
  store i32 52, ptr %12, align 4
  br label %1181

1114:                                             ; preds = %1104
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %1115 = load ptr, ptr %61, align 8, !tbaa !5
  %1116 = getelementptr inbounds %struct.ImGuiTable, ptr %1115, i32 0, i32 55
  %1117 = load ptr, ptr %1116, align 8, !tbaa !112
  %1118 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %1117)
  store ptr %1118, ptr %62, align 8, !tbaa !5
  %1119 = load ptr, ptr %5, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1119, i32 0, i32 6
  %1121 = load i32, ptr %1120, align 4, !tbaa !24
  %1122 = icmp sge i32 %1121, 6
  br i1 %1122, label %1123, label %1167

1123:                                             ; preds = %1114
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  store i32 0, ptr %63, align 4, !tbaa !95
  br label %1124

1124:                                             ; preds = %1163, %1123
  %1125 = load i32, ptr %63, align 4, !tbaa !95
  %1126 = load ptr, ptr %61, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.ImGuiTable, ptr %1126, i32 0, i32 14
  %1128 = load i32, ptr %1127, align 4, !tbaa !115
  %1129 = icmp slt i32 %1125, %1128
  br i1 %1129, label %1131, label %1130

1130:                                             ; preds = %1124
  store i32 53, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %1166

1131:                                             ; preds = %1124
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #9
  %1132 = load ptr, ptr %61, align 8, !tbaa !5
  %1133 = load ptr, ptr %5, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1133, i32 0, i32 6
  %1135 = load i32, ptr %1134, align 4, !tbaa !24
  %1136 = load i32, ptr %63, align 4, !tbaa !95
  %1137 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1132, i32 noundef %1135, i32 noundef %1136)
  %1138 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %64, i32 0, i32 0
  %1139 = extractvalue { <2 x float>, <2 x float> } %1137, 0
  store <2 x float> %1139, ptr %1138, align 4
  %1140 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %64, i32 0, i32 1
  %1141 = extractvalue { <2 x float>, <2 x float> } %1137, 1
  store <2 x float> %1141, ptr %1140, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %1142 = load ptr, ptr %61, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.ImGuiTable, ptr %1142, i32 0, i32 66
  %1144 = load i8, ptr %1143, align 4, !tbaa !186
  %1145 = sext i8 %1144 to i32
  %1146 = load i32, ptr %63, align 4, !tbaa !95
  %1147 = icmp eq i32 %1145, %1146
  %1148 = zext i1 %1147 to i64
  %1149 = select i1 %1147, i32 -8323073, i32 -8388353
  store i32 %1149, ptr %65, align 4, !tbaa !95
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %1150 = load ptr, ptr %61, align 8, !tbaa !5
  %1151 = getelementptr inbounds %struct.ImGuiTable, ptr %1150, i32 0, i32 66
  %1152 = load i8, ptr %1151, align 4, !tbaa !186
  %1153 = sext i8 %1152 to i32
  %1154 = load i32, ptr %63, align 4, !tbaa !95
  %1155 = icmp eq i32 %1153, %1154
  %1156 = zext i1 %1155 to i64
  %1157 = select i1 %1155, float 3.000000e+00, float 1.000000e+00
  store float %1157, ptr %66, align 4, !tbaa !184
  %1158 = load ptr, ptr %62, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.ImRect, ptr %64, i32 0, i32 0
  %1160 = getelementptr inbounds %struct.ImRect, ptr %64, i32 0, i32 1
  %1161 = load i32, ptr %65, align 4, !tbaa !95
  %1162 = load float, ptr %66, align 4, !tbaa !184
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1158, ptr noundef nonnull align 4 dereferenceable(8) %1159, ptr noundef nonnull align 4 dereferenceable(8) %1160, i32 noundef %1161, float noundef 0.000000e+00, i32 noundef 0, float noundef %1162)
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #9
  br label %1163

1163:                                             ; preds = %1131
  %1164 = load i32, ptr %63, align 4, !tbaa !95
  %1165 = add nsw i32 %1164, 1
  store i32 %1165, ptr %63, align 4, !tbaa !95
  br label %1124, !llvm.loop !187

1166:                                             ; preds = %1130
  br label %1180

1167:                                             ; preds = %1114
  call void @llvm.lifetime.start.p0(i64 16, ptr %67) #9
  %1168 = load ptr, ptr %61, align 8, !tbaa !5
  %1169 = load ptr, ptr %5, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.ImGuiMetricsConfig, ptr %1169, i32 0, i32 6
  %1171 = load i32, ptr %1170, align 4, !tbaa !24
  %1172 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef %1168, i32 noundef %1171, i32 noundef -1)
  %1173 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %67, i32 0, i32 0
  %1174 = extractvalue { <2 x float>, <2 x float> } %1172, 0
  store <2 x float> %1174, ptr %1173, align 4
  %1175 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %67, i32 0, i32 1
  %1176 = extractvalue { <2 x float>, <2 x float> } %1172, 1
  store <2 x float> %1176, ptr %1175, align 4
  %1177 = load ptr, ptr %62, align 8, !tbaa !5
  %1178 = getelementptr inbounds %struct.ImRect, ptr %67, i32 0, i32 0
  %1179 = getelementptr inbounds %struct.ImRect, ptr %67, i32 0, i32 1
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %1177, ptr noundef nonnull align 4 dereferenceable(8) %1178, ptr noundef nonnull align 4 dereferenceable(8) %1179, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #9
  br label %1180

1180:                                             ; preds = %1167, %1166
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  store i32 0, ptr %12, align 4
  br label %1181

1181:                                             ; preds = %1180, %1113
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  %1182 = load i32, ptr %12, align 4
  switch i32 %1182, label %1190 [
    i32 0, label %1183
    i32 52, label %1184
  ]

1183:                                             ; preds = %1181
  br label %1184

1184:                                             ; preds = %1183, %1181
  %1185 = load i32, ptr %60, align 4, !tbaa !95
  %1186 = add nsw i32 %1185, 1
  store i32 %1186, ptr %60, align 4, !tbaa !95
  br label %1090, !llvm.loop !188

1187:                                             ; preds = %1096
  br label %1188

1188:                                             ; preds = %1187, %1084
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 104, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #9
  br label %1189

1189:                                             ; preds = %1188, %70
  ret void

1190:                                             ; preds = %1181, %1077, %425
  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 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) #5 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

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

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

declare noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv() #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL25RenderViewportsThumbnailsv() #7

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) #5 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 i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40)) #1 align 2

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) #4

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

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 uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef) #8

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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { 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 916}
!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 908, !14, i64 909, !14, i64 910, !14, i64 911, !14, i64 912, !14, i64 913, !14, i64 914, !13, i64 916, !11, i64 920, !11, i64 924, !11, i64 928, !11, i64 932, !11, i64 936, !12, i64 940, !11, i64 948, !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 5352, !13, i64 5432, !15, i64 5436, !16, i64 5440}
!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 920}
!18 = !{!10, !11, i64 924}
!19 = !{!10, !11, i64 932}
!20 = !{!10, !11, i64 928}
!21 = !{!10, !11, i64 936}
!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 7664}
!29 = !{!"_ZTS12ImGuiContext", !14, i64 0, !14, i64 1, !10, i64 8, !30, i64 5464, !6, i64 6512, !13, i64 6520, !13, i64 6524, !31, i64 6528, !33, i64 7040, !11, i64 7048, !11, i64 7052, !11, i64 7056, !14, i64 7060, !14, i64 7061, !14, i64 7062, !14, i64 7063, !14, i64 7064, !11, i64 7068, !6, i64 7072, !34, i64 7080, !34, i64 7096, !34, i64 7112, !35, i64 7128, !36, i64 7144, !11, i64 7160, !12, i64 7164, !6, i64 7176, !6, i64 7184, !6, i64 7192, !6, i64 7200, !6, i64 7208, !12, i64 7216, !13, i64 7224, !11, i64 7228, !11, i64 7232, !14, i64 7236, !14, i64 7237, !14, i64 7238, !14, i64 7239, !13, i64 7240, !13, i64 7244, !11, i64 7248, !11, i64 7252, !13, i64 7256, !14, i64 7260, !14, i64 7261, !14, i64 7262, !14, i64 7263, !14, i64 7264, !14, i64 7265, !14, i64 7266, !11, i64 7268, !11, i64 7272, !38, i64 7280, !12, i64 7288, !6, i64 7296, !39, i64 7304, !11, i64 7308, !11, i64 7312, !14, i64 7316, !14, i64 7317, !6, i64 7320, !11, i64 7328, !13, i64 7332, !11, i64 7336, !40, i64 7340, !41, i64 7360, !43, i64 7408, !44, i64 7520, !45, i64 7536, !46, i64 7552, !47, i64 7568, !48, i64 7584, !49, i64 7600, !50, i64 7616, !50, i64 7632, !51, i64 7648, !6, i64 7664, !11, i64 7672, !11, i64 7676, !11, i64 7680, !11, i64 7684, !11, i64 7688, !11, i64 7692, !11, i64 7696, !11, i64 7700, !11, i64 7704, !11, i64 7708, !11, i64 7712, !39, i64 7716, !42, i64 7720, !11, i64 7736, !52, i64 7740, !11, i64 7744, !14, i64 7748, !14, i64 7749, !14, i64 7750, !14, i64 7751, !14, i64 7752, !14, i64 7753, !14, i64 7754, !11, i64 7756, !42, i64 7760, !14, i64 7776, !11, i64 7780, !53, i64 7784, !11, i64 7788, !11, i64 7792, !11, i64 7796, !11, i64 7800, !54, i64 7808, !54, i64 7856, !54, i64 7904, !6, i64 7952, !11, i64 7960, !6, i64 7968, !6, i64 7976, !6, i64 7984, !13, i64 7992, !13, i64 7996, !14, i64 8000, !6, i64 8008, !6, i64 8016, !11, i64 8024, !11, i64 8028, !11, i64 8032, !11, i64 8036, !14, i64 8040, !13, i64 8044, !11, i64 8048, !14, i64 8052, !14, i64 8053, !14, i64 8054, !11, i64 8056, !11, i64 8060, !11, i64 8064, !55, i64 8072, !42, i64 8136, !11, i64 8152, !11, i64 8156, !13, i64 8160, !11, i64 8164, !11, i64 8168, !11, i64 8172, !11, i64 8176, !56, i64 8184, !7, i64 8200, !6, i64 8216, !11, i64 8224, !57, i64 8232, !59, i64 8272, !60, i64 8288, !61, i64 8304, !6, i64 8320, !62, i64 8328, !64, i64 8368, !65, i64 8384, !12, i64 8400, !66, i64 8408, !70, i64 12144, !11, i64 12256, !11, i64 12260, !13, i64 12264, !13, i64 12268, !7, i64 12272, !32, i64 12284, !72, i64 12300, !13, i64 12348, !14, i64 12352, !14, i64 12353, !13, i64 12356, !13, i64 12360, !13, i64 12364, !13, i64 12368, !11, i64 12372, !13, i64 12376, !67, i64 12384, !47, i64 12400, !12, i64 12416, !12, i64 12424, !7, i64 12432, !14, i64 12433, !13, i64 12436, !73, i64 12440, !74, i64 12456, !75, i64 12472, !76, i64 12488, !77, i64 12504, !11, i64 12520, !14, i64 12524, !78, i64 12528, !6, i64 12536, !73, i64 12544, !6, i64 12560, !6, i64 12568, !13, i64 12576, !14, i64 12580, !11, i64 12584, !11, i64 12588, !11, i64 12592, !14, i64 12596, !11, i64 12600, !23, i64 12604, !7, i64 12620, !11, i64 13100, !11, i64 13104, !13, i64 13108, !11, i64 13112, !11, i64 13116, !11, i64 13120, !7, i64 13124}
!30 = !{!"_ZTS10ImGuiStyle", !13, i64 0, !13, i64 4, !12, i64 8, !13, i64 16, !13, i64 20, !12, i64 24, !12, i64 32, !11, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !13, i64 56, !12, i64 60, !13, i64 68, !13, i64 72, !12, i64 76, !12, i64 84, !12, i64 92, !12, i64 100, !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, !13, i64 144, !11, i64 148, !12, i64 152, !12, i64 160, !12, i64 168, !12, i64 176, !13, i64 184, !14, i64 188, !14, i64 189, !14, i64 190, !13, i64 192, !13, i64 196, !7, i64 200}
!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, !13, i64 432, !7, i64 436, !6, i64 504}
!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 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!36 = !{!"_ZTS12ImGuiStorage", !37, i64 0}
!37 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!38 = !{!"long long", !7, i64 0}
!39 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!40 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !13, i64 4, !11, i64 8, !11, i64 12, !14, i64 16}
!41 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !42, i64 12, !42, i64 28}
!42 = !{!"_ZTS6ImRect", !12, i64 0, !12, i64 8}
!43 = !{!"_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, !42, i64 60, !6, i64 80, !6, i64 88, !13, i64 96, !12, i64 100}
!44 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!49 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!50 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!52 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!53 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!54 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !42, i64 16, !13, i64 32, !13, i64 36, !13, i64 40}
!55 = !{!"_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}
!56 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS6ImPoolI10ImGuiTableE", !58, i64 0, !36, i64 16, !11, i64 32, !11, i64 36}
!58 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!62 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !63, i64 0, !36, i64 16, !11, i64 32, !11, i64 36}
!63 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS19ImGuiInputTextState", !11, i64 0, !11, i64 4, !11, i64 8, !16, i64 16, !67, i64 32, !67, i64 48, !14, i64 64, !11, i64 68, !13, i64 72, !68, i64 76, !13, i64 3704, !14, i64 3708, !14, i64 3709, !14, i64 3710, !11, i64 3712, !6, i64 3720, !6, i64 3728}
!67 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_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, !69, i64 32}
!69 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!70 = !{!"_ZTS6ImFont", !60, i64 0, !13, i64 16, !13, i64 20, !16, i64 24, !71, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !14, i64 88, !13, i64 92, !13, i64 96, !13, i64 100, !11, i64 104, !7, i64 108}
!71 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS21ImGuiComboPreviewData", !42, i64 0, !12, i64 16, !12, i64 24, !12, i64 32, !13, i64 40, !11, i64 44}
!73 = !{!"_ZTS15ImGuiTextBuffer", !67, i64 0}
!74 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!75 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !67, i64 0}
!76 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !67, i64 0}
!77 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!79 = !{!80, !6, i64 0}
!80 = !{!"_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, !15, i64 160, !11, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !14, i64 171, !11, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !12, i64 184, !12, i64 192, !47, i64 200, !81, i64 216, !42, i64 464, !42, i64 480, !42, i64 496, !42, i64 512, !42, i64 528, !42, i64 544, !42, i64 560, !85, i64 576, !85, i64 580, !11, i64 584, !13, i64 588, !13, i64 592, !36, i64 600, !86, i64 616, !13, i64 632, !11, i64 636, !6, i64 640, !87, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !11, i64 928, !11, i64 932, !14, i64 936}
!81 = !{!"_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, !82, i64 64, !82, i64 68, !82, i64 72, !52, i64 76, !15, i64 80, !15, i64 82, !11, i64 84, !14, i64 88, !14, i64 89, !14, i64 90, !12, i64 92, !83, i64 100, !11, i64 128, !11, i64 132, !34, i64 136, !6, i64 152, !6, i64 160, !11, i64 168, !11, i64 172, !11, i64 176, !11, i64 180, !11, i64 184, !13, i64 188, !13, i64 192, !60, i64 200, !60, i64 216, !84, i64 232}
!82 = !{!"_ZTS6ImVec1", !13, i64 0}
!83 = !{!"_ZTS16ImGuiMenuColumns", !11, i64 0, !11, i64 4, !15, i64 8, !15, i64 10, !15, i64 12, !15, i64 14, !15, i64 16, !7, i64 18}
!84 = !{!"_ZTS15ImGuiStackSizes", !15, i64 0, !15, i64 2, !15, i64 4, !15, i64 6, !15, i64 8, !15, i64 10, !15, i64 12}
!85 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!86 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!87 = !{!"_ZTS10ImDrawList", !88, i64 0, !16, i64 16, !89, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !90, i64 88, !91, i64 104, !92, i64 120, !93, i64 136, !94, i64 168, !13, i64 192}
!88 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!89 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!90 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!91 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!92 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!93 = !{!"_ZTS15ImDrawCmdHeader", !32, i64 0, !6, i64 16, !11, i64 24}
!94 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !61, i64 8}
!95 = !{!11, !11, i64 0}
!96 = !{!42, !13, i64 0}
!97 = !{!42, !13, i64 4}
!98 = !{!42, !13, i64 8}
!99 = !{!42, !13, i64 12}
!100 = distinct !{!100, !101}
!101 = !{!"llvm.loop.mustprogress"}
!102 = !{!23, !14, i64 2}
!103 = !{!104, !11, i64 112}
!104 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !105, i64 24, !106, i64 40, !107, i64 56, !38, i64 72, !38, i64 80, !38, i64 88, !38, i64 96, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !11, i64 120, !11, i64 124, !15, i64 128, !15, i64 130, !13, i64 132, !13, i64 136, !13, i64 140, !13, i64 144, !13, i64 148, !11, i64 152, !11, i64 154, !11, i64 156, !7, i64 160, !11, i64 168, !11, 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, !13, i64 236, !13, i64 240, !42, i64 244, !42, i64 260, !42, i64 276, !42, i64 292, !42, i64 308, !42, i64 324, !42, i64 340, !42, i64 356, !42, i64 372, !6, i64 392, !6, i64 400, !73, i64 408, !6, i64 424, !108, i64 432, !109, i64 448, !110, i64 464, !7, i64 480, !7, i64 481, !7, i64 482, !7, i64 483, !7, i64 484, !7, i64 485, !7, i64 486, !7, i64 487, !7, i64 488, !7, i64 489, !7, i64 490, !7, i64 491, !7, i64 492, !7, i64 493, !7, i64 494, !7, i64 495, !7, i64 496, !7, i64 497, !7, i64 498, !7, i64 499, !7, i64 500, !7, i64 501, !7, i64 502, !7, i64 503, !7, i64 504, !14, i64 505, !14, i64 506, !14, i64 507, !14, i64 508, !14, i64 509, !14, i64 510, !14, i64 511, !14, i64 512, !14, i64 513, !14, i64 514, !14, i64 515, !14, i64 516, !14, i64 517, !14, i64 518, !14, i64 519}
!105 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!106 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!107 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!108 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !15, i64 4, !15, i64 6, !11, i64 8}
!109 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!110 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !14, i64 12}
!111 = !{!29, !11, i64 7048}
!112 = !{!104, !6, i64 392}
!113 = !{!104, !6, i64 400}
!114 = !{!104, !11, i64 0}
!115 = !{!104, !11, i64 116}
!116 = distinct !{!116, !101}
!117 = distinct !{!117, !101}
!118 = distinct !{!118, !101}
!119 = !{!29, !11, i64 7648}
!120 = distinct !{!120, !101}
!121 = !{!122, !11, i64 0}
!122 = !{!"_ZTS8ImVectorIP10ImDrawListE", !11, i64 0, !11, i64 4, !6, i64 8}
!123 = distinct !{!123, !101}
!124 = distinct !{!124, !101}
!125 = distinct !{!125, !101}
!126 = distinct !{!126, !101}
!127 = !{!29, !11, i64 7616}
!128 = !{!129, !6, i64 8}
!129 = !{!"_ZTS14ImGuiPopupData", !11, i64 0, !6, i64 8, !6, i64 16, !11, i64 24, !11, i64 28, !12, i64 32, !12, i64 40}
!130 = !{!129, !11, i64 0}
!131 = !{!80, !11, i64 12}
!132 = distinct !{!132, !101}
!133 = distinct !{!133, !101}
!134 = distinct !{!134, !101}
!135 = !{!29, !6, i64 168}
!136 = !{!137, !11, i64 72}
!137 = !{!"_ZTS11ImFontAtlas", !11, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !14, i64 24, !14, i64 25, !14, i64 26, !6, i64 32, !6, i64 40, !11, i64 48, !11, i64 52, !12, i64 56, !12, i64 64, !46, i64 72, !138, i64 88, !139, i64 104, !7, i64 120, !6, i64 1144, !11, i64 1152, !11, i64 1156, !11, i64 1160}
!138 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !11, i64 0, !11, i64 4, !6, i64 8}
!139 = !{!"_ZTS8ImVectorI12ImFontConfigE", !11, i64 0, !11, i64 4, !6, i64 8}
!140 = !{!29, !6, i64 32}
!141 = !{!29, !13, i64 12436}
!142 = !{!29, !11, i64 12456}
!143 = !{!144, !6, i64 0}
!144 = !{!"_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}
!145 = distinct !{!145, !101}
!146 = distinct !{!146, !101}
!147 = distinct !{!147, !101}
!148 = !{!29, !11, i64 12440}
!149 = !{!29, !6, i64 7184}
!150 = !{!80, !6, i64 856}
!151 = !{!29, !6, i64 7192}
!152 = !{!29, !6, i64 7200}
!153 = !{!29, !11, i64 7248}
!154 = !{!29, !11, i64 7312}
!155 = !{!29, !13, i64 7256}
!156 = !{!29, !14, i64 7261}
!157 = !{!29, !39, i64 7304}
!158 = !{!29, !6, i64 7296}
!159 = !{!29, !14, i64 7266}
!160 = !{!29, !11, i64 7268}
!161 = !{!29, !11, i64 7272}
!162 = !{!29, !38, i64 7280}
!163 = !{!29, !11, i64 7232}
!164 = !{!29, !13, i64 7240}
!165 = !{!29, !14, i64 7236}
!166 = !{!29, !14, i64 8052}
!167 = !{!29, !11, i64 8084}
!168 = !{!29, !11, i64 8080}
!169 = !{!29, !11, i64 7672}
!170 = !{!29, !52, i64 7740}
!171 = !{!29, !39, i64 7716}
!172 = !{!29, !14, i64 921}
!173 = !{!29, !14, i64 922}
!174 = !{!29, !11, i64 7680}
!175 = !{!29, !11, i64 7692}
!176 = !{!29, !14, i64 7750}
!177 = !{!29, !14, i64 7751}
!178 = !{!29, !11, i64 7676}
!179 = !{!29, !6, i64 7968}
!180 = !{!23, !14, i64 1}
!181 = !{!29, !11, i64 7080}
!182 = !{!80, !14, i64 143}
!183 = !{!80, !15, i64 158}
!184 = !{!13, !13, i64 0}
!185 = distinct !{!185, !101}
!186 = !{!104, !7, i64 484}
!187 = distinct !{!187, !101}
!188 = distinct !{!188, !101}


; 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.225 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.230 = 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.248 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [15 x i8], align 1
@__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names = external hidden unnamed_addr constant [6 x ptr], align 16
@.str.305 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.325 = 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 uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEv() local_unnamed_addr #5

; 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 @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #6 align 2

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

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

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

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

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 nounwind uwtable
declare dso_local noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; 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 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.225, ptr noundef %0, i32 noundef 0)
  br i1 %30, label %32, label %31

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

32:                                               ; preds = %1
  %33 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %34 = getelementptr inbounds i8, ptr %33, i64 12604
  %35 = tail call noundef ptr @_ZN5ImGui10GetVersionEv()
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.226, ptr noundef %35)
  %36 = getelementptr inbounds i8, ptr %33, i64 924
  %37 = load float, ptr %36, align 4, !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.227, double noundef %39, double noundef %40)
  %41 = getelementptr inbounds i8, ptr %33, i64 928
  %42 = load i32, ptr %41, align 8, !tbaa !17
  %43 = getelementptr inbounds i8, ptr %33, i64 932
  %44 = load i32, ptr %43, align 4, !tbaa !18
  %45 = sdiv i32 %44, 3
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.228, i32 noundef %42, i32 noundef %44, i32 noundef %45)
  %46 = getelementptr inbounds i8, ptr %33, i64 940
  %47 = load i32, ptr %46, align 4, !tbaa !19
  %48 = getelementptr inbounds i8, ptr %33, i64 936
  %49 = load i32, ptr %48, align 8, !tbaa !20
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.229, i32 noundef %47, i32 noundef %49)
  %50 = getelementptr inbounds i8, ptr %33, i64 944
  %51 = load i32, ptr %50, align 8, !tbaa !21
  tail call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.230, i32 noundef %51)
  tail call void @_ZN5ImGui9SeparatorEv()
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %2) #9
  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) #9
  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 12612
  %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 12616
  %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.248)
  br i1 %62, label %63, label %344

63:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  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.249, ptr noundef nonnull align 4 dereferenceable(8) %4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  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.250)
  %67 = getelementptr inbounds i8, ptr %33, i64 12605
  %68 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.251, ptr noundef nonnull %67)
  %69 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.252, 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.253, 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 7664
  %78 = load ptr, ptr %77, align 8, !tbaa !28
  %.not277 = icmp eq ptr %78, null
  br i1 %.not277, label %225, label %79

79:                                               ; preds = %76
  %80 = load ptr, ptr %78, align 8, !tbaa !79
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.254, 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) #9
  %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.255, 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) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #9
  %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.255, 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) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #9
  %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.255, 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) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #9
  %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.255, 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) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #9
  %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.255, 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) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #9
  %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.255, 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) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #9
  %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.255, 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) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #9
  %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.255, 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) #9
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  br label %225

225:                                              ; preds = %79, %76, %66
  %226 = getelementptr inbounds i8, ptr %33, i64 12607
  %227 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.256, ptr noundef nonnull %226)
  %228 = getelementptr inbounds i8, ptr %33, i64 12608
  %229 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.257, ptr noundef nonnull %228)
  %230 = getelementptr inbounds i8, ptr %33, i64 12606
  %231 = call noundef zeroext i1 @_ZN5ImGui8CheckboxEPKcPb(ptr noundef nonnull @.str.258, 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.259, ptr noundef nonnull %57, ptr noundef nonnull %3, i32 noundef 13, i32 noundef 13)
  %235 = load i8, ptr %230, align 2, !tbaa !95, !range !26, !noundef !27
  %236 = zext i1 %234 to i8
  %237 = or i8 %235, %236
  %.not278 = icmp eq i8 %237, 0
  store i8 %237, ptr %230, align 2, !tbaa !95
  br i1 %.not278, label %.loopexit318, label %238

238:                                              ; preds = %225
  %239 = getelementptr inbounds i8, ptr %33, i64 7664
  %240 = load ptr, ptr %239, align 8, !tbaa !28
  %.not279 = icmp eq ptr %240, null
  br i1 %.not279, label %.loopexit318, label %.preheader317

.preheader317:                                    ; preds = %238
  %241 = getelementptr inbounds i8, ptr %33, i64 8232
  %242 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %241)
  %243 = icmp sgt i32 %242, 0
  br i1 %243, label %.lr.ph324, label %.loopexit318

.lr.ph324:                                        ; preds = %.preheader317
  %244 = getelementptr inbounds i8, ptr %33, i64 7048
  %245 = getelementptr inbounds i8, ptr %17, i64 8
  %246 = getelementptr inbounds i8, ptr %11, i64 8
  br label %247

247:                                              ; preds = %.lr.ph324, %340
  %.0244323 = phi i32 [ 0, %.lr.ph324 ], [ %341, %340 ]
  %248 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %241, i32 noundef %.0244323)
  %249 = icmp eq ptr %248, null
  br i1 %249, label %340, label %250

250:                                              ; preds = %247
  %251 = getelementptr inbounds i8, ptr %248, i64 112
  %252 = load i32, ptr %251, align 8, !tbaa !96
  %253 = load i32, ptr %244, align 8, !tbaa !104
  %254 = add nsw i32 %253, -1
  %255 = icmp slt i32 %252, %254
  br i1 %255, label %340, label %256

256:                                              ; preds = %250
  %257 = getelementptr inbounds i8, ptr %248, i64 392
  %258 = load ptr, ptr %257, align 8, !tbaa !105
  %259 = load ptr, ptr %239, align 8, !tbaa !28
  %.not294 = icmp eq ptr %258, %259
  br i1 %.not294, label %263, label %260

260:                                              ; preds = %256
  %261 = getelementptr inbounds i8, ptr %248, i64 400
  %262 = load ptr, ptr %261, align 8, !tbaa !106
  %.not295 = icmp eq ptr %262, %259
  br i1 %.not295, label %263, label %340

263:                                              ; preds = %260, %256
  %264 = load i32, ptr %248, align 8, !tbaa !107
  %265 = getelementptr inbounds i8, ptr %248, i64 116
  %266 = load i32, ptr %265, align 4, !tbaa !108
  %267 = load ptr, ptr %258, align 8, !tbaa !79
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.260, i32 noundef %264, i32 noundef %266, ptr noundef %267)
  %268 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %268, label %269, label %275

269:                                              ; preds = %263
  %270 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %271 = getelementptr inbounds i8, ptr %248, i64 244
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %272 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %271, ptr noundef nonnull align 4 dereferenceable(8) %7)
  store <2 x float> %272, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  %273 = getelementptr inbounds i8, ptr %248, i64 252
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %274 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %273, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %274, ptr %8, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %270, 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 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  br label %275

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

276:                                              ; preds = %.loopexit316
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %10) #9
  br label %340

277:                                              ; preds = %275, %.loopexit316
  %indvars.iv = phi i64 [ 0, %275 ], [ %indvars.iv.next, %.loopexit316 ]
  %278 = icmp ugt i64 %indvars.iv, 5
  br i1 %278, label %279, label %313

279:                                              ; preds = %277
  %280 = trunc nuw nsw i64 %indvars.iv to i32
  switch i32 %280, label %.loopexit316 [
    i32 8, label %281
    i32 6, label %281
  ]

281:                                              ; preds = %279, %279
  %282 = load i32, ptr %265, align 4, !tbaa !108
  %283 = icmp sgt i32 %282, 0
  br i1 %283, label %.lr.ph, label %.loopexit316

.lr.ph:                                           ; preds = %281
  %284 = getelementptr inbounds [13 x ptr], ptr %3, i64 0, i64 %indvars.iv
  br label %285

285:                                              ; preds = %.lr.ph, %309
  %.0248320 = phi i32 [ 0, %.lr.ph ], [ %310, %309 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #9
  %286 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %248, i32 noundef %280, i32 noundef %.0248320)
  %287 = extractvalue { <2 x float>, <2 x float> } %286, 0
  store <2 x float> %287, ptr %11, align 8
  %288 = extractvalue { <2 x float>, <2 x float> } %286, 1
  store <2 x float> %288, ptr %246, align 8
  %289 = extractelement <2 x float> %287, i64 0
  %290 = fpext float %289 to double
  %291 = extractelement <2 x float> %287, i64 1
  %292 = fpext float %291 to double
  %293 = extractelement <2 x float> %288, i64 0
  %294 = fpext float %293 to double
  %295 = extractelement <2 x float> %288, i64 1
  %296 = fpext float %295 to double
  %297 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %298 = fpext float %297 to double
  %299 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  %300 = fpext float %299 to double
  %301 = load ptr, ptr %284, align 8, !tbaa !5
  %302 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %10, i64 noundef 128, ptr noundef nonnull @.str.261, double noundef %290, double noundef %292, double noundef %294, double noundef %296, double noundef %298, double noundef %300, i32 noundef %.0248320, ptr noundef %301)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %12, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %303 = 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) #9
  %304 = call noundef zeroext i1 @_ZN5ImGui13IsItemHoveredEi(i32 noundef 0)
  br i1 %304, label %305, label %309

305:                                              ; preds = %285
  %306 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %14, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %307 = 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> %307, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %308 = 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> %308, ptr %15, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %306, 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 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  br label %309

309:                                              ; preds = %305, %285
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #9
  %310 = add nuw nsw i32 %.0248320, 1
  %311 = load i32, ptr %265, align 4, !tbaa !108
  %312 = icmp slt i32 %310, %311
  br i1 %312, label %285, label %.loopexit316, !llvm.loop !109

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

335:                                              ; preds = %313
  %336 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %337 = 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> %337, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef 1.000000e+00, float noundef 1.000000e+00)
  %338 = 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> %338, ptr %21, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %336, 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 0, float noundef 2.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  br label %339

339:                                              ; preds = %335, %313
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #9
  br label %.loopexit316

.loopexit316:                                     ; preds = %309, %281, %279, %339
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 13
  br i1 %exitcond.not, label %276, label %277, !llvm.loop !111

340:                                              ; preds = %247, %250, %260, %276
  %341 = add nuw nsw i32 %.0244323, 1
  %342 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %241)
  %343 = icmp slt i32 %341, %342
  br i1 %343, label %247, label %.loopexit318, !llvm.loop !112

.loopexit318:                                     ; preds = %340, %.preheader317, %238, %225
  call void @_ZN5ImGui7TreePopEv()
  br label %344

344:                                              ; preds = %.loopexit318, %61
  %345 = getelementptr inbounds i8, ptr %33, i64 7080
  call void @_ZN5ImGui20DebugNodeWindowsListEP8ImVectorIP11ImGuiWindowEPKc(ptr noundef nonnull %345, ptr noundef nonnull @.str.262)
  %346 = getelementptr inbounds i8, ptr %33, i64 7648
  %347 = load i32, ptr %346, align 8, !tbaa !113
  %348 = icmp sgt i32 %347, 0
  br i1 %348, label %.lr.ph327, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph327, %344
  %.0249.lcssa = phi i32 [ 0, %344 ], [ %356, %.lr.ph327 ]
  %349 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.263, ptr noundef nonnull @.str.264, i32 noundef %.0249.lcssa)
  br i1 %349, label %.preheader315, label %381

.preheader315:                                    ; preds = %._crit_edge
  %350 = load i32, ptr %346, align 8, !tbaa !113
  %351 = icmp sgt i32 %350, 0
  br i1 %351, label %.lr.ph334, label %._crit_edge335

.lr.ph327:                                        ; preds = %344, %.lr.ph327
  %.0249326 = phi i32 [ %356, %.lr.ph327 ], [ 0, %344 ]
  %.0250325 = phi i32 [ %357, %.lr.ph327 ], [ 0, %344 ]
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %346, i32 noundef %.0250325)
  %353 = load ptr, ptr %352, align 8, !tbaa !5
  %354 = getelementptr inbounds i8, ptr %353, i64 112
  %355 = call noundef i32 @_ZNK17ImDrawDataBuilder16GetDrawListCountEv(ptr noundef nonnull align 8 dereferenceable(32) %354)
  %356 = add nsw i32 %355, %.0249326
  %357 = add nuw nsw i32 %.0250325, 1
  %358 = load i32, ptr %346, align 8, !tbaa !113
  %359 = icmp slt i32 %357, %358
  br i1 %359, label %.lr.ph327, label %._crit_edge, !llvm.loop !114

._crit_edge335:                                   ; preds = %._crit_edge331.1, %.preheader315
  call void @_ZN5ImGui7TreePopEv()
  br label %381

.lr.ph334:                                        ; preds = %.preheader315, %._crit_edge331.1
  %.0255333 = phi i32 [ %373, %._crit_edge331.1 ], [ 0, %.preheader315 ]
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %346, i32 noundef %.0255333)
  %361 = load ptr, ptr %360, align 8, !tbaa !5
  %362 = getelementptr inbounds i8, ptr %361, i64 112
  %363 = load i32, ptr %362, align 8, !tbaa !115
  %364 = icmp sgt i32 %363, 0
  br i1 %364, label %.lr.ph330, label %._crit_edge331

._crit_edge331:                                   ; preds = %.lr.ph330, %.lr.ph334
  %365 = getelementptr inbounds i8, ptr %361, i64 128
  %366 = load i32, ptr %365, align 8, !tbaa !115
  %367 = icmp sgt i32 %366, 0
  br i1 %367, label %.lr.ph330.1, label %._crit_edge331.1

.lr.ph330.1:                                      ; preds = %._crit_edge331, %.lr.ph330.1
  %.0258329.1 = phi i32 [ %370, %.lr.ph330.1 ], [ 0, %._crit_edge331 ]
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %365, i32 noundef %.0258329.1)
  %369 = load ptr, ptr %368, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %369, ptr noundef nonnull @.str.265)
  %370 = add nuw nsw i32 %.0258329.1, 1
  %371 = load i32, ptr %365, align 8, !tbaa !115
  %372 = icmp slt i32 %370, %371
  br i1 %372, label %.lr.ph330.1, label %._crit_edge331.1, !llvm.loop !117

._crit_edge331.1:                                 ; preds = %.lr.ph330.1, %._crit_edge331
  %373 = add nuw nsw i32 %.0255333, 1
  %374 = load i32, ptr %346, align 8, !tbaa !113
  %375 = icmp slt i32 %373, %374
  br i1 %375, label %.lr.ph334, label %._crit_edge335, !llvm.loop !118

.lr.ph330:                                        ; preds = %.lr.ph334, %.lr.ph330
  %.0258329 = phi i32 [ %378, %.lr.ph330 ], [ 0, %.lr.ph334 ]
  %376 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP10ImDrawListEixEi(ptr noundef nonnull align 8 dereferenceable(16) %362, i32 noundef %.0258329)
  %377 = load ptr, ptr %376, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeDrawListEP11ImGuiWindowPK10ImDrawListPKc(ptr noundef null, ptr noundef %377, ptr noundef nonnull @.str.265)
  %378 = add nuw nsw i32 %.0258329, 1
  %379 = load i32, ptr %362, align 8, !tbaa !115
  %380 = icmp slt i32 %378, %379
  br i1 %380, label %.lr.ph330, label %._crit_edge331, !llvm.loop !117

381:                                              ; preds = %._crit_edge335, %._crit_edge
  %382 = load i32, ptr %346, align 8, !tbaa !113
  %383 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.266, ptr noundef nonnull @.str.267, i32 noundef %382)
  br i1 %383, label %384, label %394

384:                                              ; preds = %381
  %385 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui6IndentEf(float noundef %385)
  call void @_ZL25RenderViewportsThumbnailsv()
  %386 = call noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv()
  call void @_ZN5ImGui8UnindentEf(float noundef %386)
  %387 = load i32, ptr %346, align 8, !tbaa !113
  %388 = icmp sgt i32 %387, 0
  br i1 %388, label %.lr.ph338, label %._crit_edge339

._crit_edge339:                                   ; preds = %.lr.ph338, %384
  call void @_ZN5ImGui7TreePopEv()
  br label %394

.lr.ph338:                                        ; preds = %384, %.lr.ph338
  %.0260336 = phi i32 [ %391, %.lr.ph338 ], [ 0, %384 ]
  %389 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP14ImGuiViewportPEixEi(ptr noundef nonnull align 8 dereferenceable(16) %346, i32 noundef %.0260336)
  %390 = load ptr, ptr %389, align 8, !tbaa !5
  call void @_ZN5ImGui17DebugNodeViewportEP14ImGuiViewportP(ptr noundef %390)
  %391 = add nuw nsw i32 %.0260336, 1
  %392 = load i32, ptr %346, align 8, !tbaa !113
  %393 = icmp slt i32 %391, %392
  br i1 %393, label %.lr.ph338, label %._crit_edge339, !llvm.loop !119

394:                                              ; preds = %._crit_edge339, %381
  %395 = getelementptr inbounds i8, ptr %33, i64 7616
  %396 = load i32, ptr %395, align 8, !tbaa !120
  %397 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.268, ptr noundef nonnull @.str.269, i32 noundef %396)
  br i1 %397, label %.preheader313, label %417

.preheader313:                                    ; preds = %394
  %398 = load i32, ptr %395, align 8, !tbaa !120
  %399 = icmp sgt i32 %398, 0
  br i1 %399, label %.lr.ph341, label %._crit_edge342

._crit_edge342:                                   ; preds = %.thread300, %.preheader313
  call void @_ZN5ImGui7TreePopEv()
  br label %417

.lr.ph341:                                        ; preds = %.preheader313, %.thread300
  %.0261340 = phi i32 [ %414, %.thread300 ], [ 0, %.preheader313 ]
  %400 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %395, i32 noundef %.0261340)
  %401 = getelementptr inbounds i8, ptr %400, i64 8
  %402 = load ptr, ptr %401, align 8, !tbaa !121
  %403 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI14ImGuiPopupDataEixEi(ptr noundef nonnull align 8 dereferenceable(16) %395, i32 noundef %.0261340)
  %404 = load i32, ptr %403, align 8, !tbaa !123
  %.not293 = icmp eq ptr %402, null
  br i1 %.not293, label %.thread300, label %405

405:                                              ; preds = %.lr.ph341
  %406 = load ptr, ptr %402, align 8, !tbaa !79
  %407 = getelementptr inbounds i8, ptr %402, i64 12
  %408 = load i32, ptr %407, align 4, !tbaa !124
  %.fr305 = freeze i32 %408
  %409 = and i32 %.fr305, 16777216
  %.not304 = icmp eq i32 %409, 0
  %spec.select = select i1 %.not304, ptr @.str.6, ptr @.str.272
  %410 = and i32 %.fr305, 268435456
  %.not306 = icmp eq i32 %410, 0
  %spec.select302 = select i1 %.not306, ptr @.str.6, ptr @.str.273
  br label %.thread300

.thread300:                                       ; preds = %405, %.lr.ph341
  %411 = phi ptr [ @.str.271, %.lr.ph341 ], [ %406, %405 ]
  %412 = phi ptr [ @.str.6, %.lr.ph341 ], [ %spec.select, %405 ]
  %413 = phi ptr [ @.str.6, %.lr.ph341 ], [ %spec.select302, %405 ]
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.270, i32 noundef %404, ptr noundef %411, ptr noundef nonnull %412, ptr noundef nonnull %413)
  %414 = add nuw nsw i32 %.0261340, 1
  %415 = load i32, ptr %395, align 8, !tbaa !120
  %416 = icmp slt i32 %414, %415
  br i1 %416, label %.lr.ph341, label %._crit_edge342, !llvm.loop !125

417:                                              ; preds = %._crit_edge342, %394
  %418 = getelementptr inbounds i8, ptr %33, i64 8328
  %419 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %418)
  %420 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.274, ptr noundef nonnull @.str.275, i32 noundef %419)
  br i1 %420, label %.preheader312, label %429

.preheader312:                                    ; preds = %417
  %421 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %418)
  %422 = icmp sgt i32 %421, 0
  br i1 %422, label %.lr.ph344, label %._crit_edge345

._crit_edge345:                                   ; preds = %425, %.preheader312
  call void @_ZN5ImGui7TreePopEv()
  br label %429

.lr.ph344:                                        ; preds = %.preheader312, %425
  %.0259343 = phi i32 [ %426, %425 ], [ 0, %.preheader312 ]
  %423 = call noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %418, i32 noundef %.0259343)
  %.not292 = icmp eq ptr %423, null
  br i1 %.not292, label %425, label %424

424:                                              ; preds = %.lr.ph344
  call void @_ZN5ImGui6PushIDEPKv(ptr noundef nonnull %423)
  call void @_ZN5ImGui15DebugNodeTabBarEP11ImGuiTabBarPKc(ptr noundef nonnull %423, ptr noundef nonnull @.str.276)
  call void @_ZN5ImGui5PopIDEv()
  br label %425

425:                                              ; preds = %424, %.lr.ph344
  %426 = add nuw nsw i32 %.0259343, 1
  %427 = call noundef i32 @_ZNK6ImPoolI11ImGuiTabBarE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %418)
  %428 = icmp slt i32 %426, %427
  br i1 %428, label %.lr.ph344, label %._crit_edge345, !llvm.loop !126

429:                                              ; preds = %._crit_edge345, %417
  %430 = getelementptr inbounds i8, ptr %33, i64 8232
  %431 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40) %430)
  %432 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.277, ptr noundef nonnull @.str.278, i32 noundef %431)
  br i1 %432, label %.preheader311, label %441

.preheader311:                                    ; preds = %429
  %433 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %430)
  %434 = icmp sgt i32 %433, 0
  br i1 %434, label %.lr.ph347, label %._crit_edge348

._crit_edge348:                                   ; preds = %437, %.preheader311
  call void @_ZN5ImGui7TreePopEv()
  br label %441

.lr.ph347:                                        ; preds = %.preheader311, %437
  %.0257346 = phi i32 [ %438, %437 ], [ 0, %.preheader311 ]
  %435 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %430, i32 noundef %.0257346)
  %.not291 = icmp eq ptr %435, null
  br i1 %.not291, label %437, label %436

436:                                              ; preds = %.lr.ph347
  call void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef nonnull %435)
  br label %437

437:                                              ; preds = %436, %.lr.ph347
  %438 = add nuw nsw i32 %.0257346, 1
  %439 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %430)
  %440 = icmp slt i32 %438, %439
  br i1 %440, label %.lr.ph347, label %._crit_edge348, !llvm.loop !127

441:                                              ; preds = %._crit_edge348, %429
  %442 = getelementptr inbounds i8, ptr %33, i64 168
  %443 = load ptr, ptr %442, align 8, !tbaa !128
  %444 = getelementptr inbounds i8, ptr %443, i64 72
  %445 = load i32, ptr %444, align 8, !tbaa !129
  %446 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.279, ptr noundef nonnull @.str.280, i32 noundef %445)
  br i1 %446, label %447, label %448

447:                                              ; preds = %441
  call void @_ZN5ImGui13ShowFontAtlasEP11ImFontAtlas(ptr noundef nonnull %443)
  call void @_ZN5ImGui7TreePopEv()
  br label %448

448:                                              ; preds = %447, %441
  %449 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.281)
  br i1 %449, label %450, label %507

450:                                              ; preds = %448
  %451 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.282)
  br i1 %451, label %452, label %453

452:                                              ; preds = %450
  call void @_ZN5ImGui16ClearIniSettingsEv()
  br label %453

453:                                              ; preds = %452, %450
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %454 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.283)
  br i1 %454, label %455, label %457

455:                                              ; preds = %453
  %456 = call noundef ptr @_ZN5ImGui23SaveIniSettingsToMemoryEPm(ptr noundef null)
  br label %457

457:                                              ; preds = %455, %453
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %458 = call noundef zeroext i1 @_ZN5ImGui11SmallButtonEPKc(ptr noundef nonnull @.str.284)
  br i1 %458, label %459, label %462

459:                                              ; preds = %457
  %460 = getelementptr inbounds i8, ptr %33, i64 32
  %461 = load ptr, ptr %460, align 8, !tbaa !133
  call void @_ZN5ImGui21SaveIniSettingsToDiskEPKc(ptr noundef %461)
  br label %462

462:                                              ; preds = %459, %457
  call void @_ZN5ImGui8SameLineEff(float noundef 0.000000e+00, float noundef -1.000000e+00)
  %463 = getelementptr inbounds i8, ptr %33, i64 32
  %464 = load ptr, ptr %463, align 8, !tbaa !133
  %.not280 = icmp eq ptr %464, null
  br i1 %.not280, label %466, label %465

465:                                              ; preds = %462
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.285, ptr noundef nonnull %464)
  br label %467

466:                                              ; preds = %462
  call void @_ZN5ImGui15TextUnformattedEPKcS1_(ptr noundef nonnull @.str.286, ptr noundef null)
  br label %467

467:                                              ; preds = %466, %465
  %468 = getelementptr inbounds i8, ptr %33, i64 12436
  %469 = load float, ptr %468, align 4, !tbaa !134
  %470 = fpext float %469 to double
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.287, double noundef %470)
  %471 = getelementptr inbounds i8, ptr %33, i64 12456
  %472 = load i32, ptr %471, align 8, !tbaa !135
  %473 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.288, ptr noundef nonnull @.str.289, i32 noundef %472)
  br i1 %473, label %.preheader310, label %481

.preheader310:                                    ; preds = %467
  %474 = load i32, ptr %471, align 8, !tbaa !135
  %475 = icmp sgt i32 %474, 0
  br i1 %475, label %.lr.ph350, label %._crit_edge351

._crit_edge351:                                   ; preds = %.lr.ph350, %.preheader310
  call void @_ZN5ImGui7TreePopEv()
  br label %481

.lr.ph350:                                        ; preds = %.preheader310, %.lr.ph350
  %.0254349 = phi i32 [ %478, %.lr.ph350 ], [ 0, %.preheader310 ]
  %476 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZN8ImVectorI20ImGuiSettingsHandlerEixEi(ptr noundef nonnull align 8 dereferenceable(16) %471, i32 noundef %.0254349)
  %477 = load ptr, ptr %476, align 8, !tbaa !136
  call void (ptr, ...) @_ZN5ImGui10BulletTextEPKcz(ptr noundef nonnull @.str.290, ptr noundef %477)
  %478 = add nuw nsw i32 %.0254349, 1
  %479 = load i32, ptr %471, align 8, !tbaa !135
  %480 = icmp slt i32 %478, %479
  br i1 %480, label %.lr.ph350, label %._crit_edge351, !llvm.loop !138

481:                                              ; preds = %._crit_edge351, %467
  %482 = getelementptr inbounds i8, ptr %33, i64 12472
  %483 = call noundef i32 @_ZNK13ImChunkStreamI19ImGuiWindowSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %482)
  %484 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.291, ptr noundef nonnull @.str.292, i32 noundef %483)
  br i1 %484, label %485, label %488

485:                                              ; preds = %481
  %486 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %482)
  %.not281352 = icmp eq ptr %486, null
  br i1 %.not281352, label %._crit_edge356, label %.lr.ph355

._crit_edge356:                                   ; preds = %.lr.ph355, %485
  call void @_ZN5ImGui7TreePopEv()
  br label %488

.lr.ph355:                                        ; preds = %485, %.lr.ph355
  %.0253353 = phi ptr [ %487, %.lr.ph355 ], [ %486, %485 ]
  call void @_ZN5ImGui23DebugNodeWindowSettingsEP19ImGuiWindowSettings(ptr noundef nonnull %.0253353)
  %487 = call noundef ptr @_ZN13ImChunkStreamI19ImGuiWindowSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %482, ptr noundef nonnull %.0253353)
  %.not281 = icmp eq ptr %487, null
  br i1 %.not281, label %._crit_edge356, label %.lr.ph355, !llvm.loop !139

488:                                              ; preds = %._crit_edge356, %481
  %489 = getelementptr inbounds i8, ptr %33, i64 12488
  %490 = call noundef i32 @_ZNK13ImChunkStreamI18ImGuiTableSettingsE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %489)
  %491 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.293, ptr noundef nonnull @.str.294, i32 noundef %490)
  br i1 %491, label %492, label %495

492:                                              ; preds = %488
  %493 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) %489)
  %.not282357 = icmp eq ptr %493, null
  br i1 %.not282357, label %._crit_edge361, label %.lr.ph360

._crit_edge361:                                   ; preds = %.lr.ph360, %492
  call void @_ZN5ImGui7TreePopEv()
  br label %495

.lr.ph360:                                        ; preds = %492, %.lr.ph360
  %.0252358 = phi ptr [ %494, %.lr.ph360 ], [ %493, %492 ]
  call void @_ZN5ImGui22DebugNodeTableSettingsEP18ImGuiTableSettings(ptr noundef nonnull %.0252358)
  %494 = call noundef ptr @_ZN13ImChunkStreamI18ImGuiTableSettingsE10next_chunkEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %489, ptr noundef nonnull %.0252358)
  %.not282 = icmp eq ptr %494, null
  br i1 %.not282, label %._crit_edge361, label %.lr.ph360, !llvm.loop !140

495:                                              ; preds = %._crit_edge361, %488
  %496 = getelementptr inbounds i8, ptr %33, i64 12440
  %497 = call noundef i32 @_ZNK15ImGuiTextBuffer4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
  %498 = call noundef zeroext i1 (ptr, ptr, ...) @_ZN5ImGui8TreeNodeEPKcS1_z(ptr noundef nonnull @.str.295, ptr noundef nonnull @.str.296, i32 noundef %497)
  br i1 %498, label %499, label %506

499:                                              ; preds = %495
  %500 = call noundef ptr @_ZNK15ImGuiTextBuffer5c_strEv(ptr noundef nonnull align 8 dereferenceable(16) %496)
  %501 = load i32, ptr %496, align 8, !tbaa !141
  %502 = sext i32 %501 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %503 = call noundef float @_ZN5ImGui17GetTextLineHeightEv()
  %504 = fmul float %503, 2.000000e+01
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0xB810000000000000, float noundef %504)
  %505 = call noundef zeroext i1 @_ZN5ImGui18InputTextMultilineEPKcPcmRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef nonnull @.str.297, ptr noundef %500, i64 noundef %502, 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) #9
  call void @_ZN5ImGui7TreePopEv()
  br label %506

506:                                              ; preds = %499, %495
  call void @_ZN5ImGui7TreePopEv()
  br label %507

507:                                              ; preds = %506, %448
  %508 = call noundef zeroext i1 @_ZN5ImGui8TreeNodeEPKc(ptr noundef nonnull @.str.298)
  br i1 %508, label %509, label %620

509:                                              ; preds = %507
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.305)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %510 = getelementptr inbounds i8, ptr %33, i64 7184
  %511 = load ptr, ptr %510, align 8, !tbaa !142
  %.not283 = icmp eq ptr %511, null
  br i1 %.not283, label %514, label %512

512:                                              ; preds = %509
  %513 = load ptr, ptr %511, align 8, !tbaa !79
  br label %514

514:                                              ; preds = %509, %512
  %515 = phi ptr [ %513, %512 ], [ @.str.271, %509 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.306, ptr noundef %515)
  %516 = load ptr, ptr %510, align 8, !tbaa !142
  %.not284 = icmp eq ptr %516, null
  br i1 %.not284, label %521, label %517

517:                                              ; preds = %514
  %518 = getelementptr inbounds i8, ptr %516, i64 856
  %519 = load ptr, ptr %518, align 8, !tbaa !143
  %520 = load ptr, ptr %519, align 8, !tbaa !79
  br label %521

521:                                              ; preds = %514, %517
  %522 = phi ptr [ %520, %517 ], [ @.str.271, %514 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.307, ptr noundef %522)
  %523 = getelementptr inbounds i8, ptr %33, i64 7192
  %524 = load ptr, ptr %523, align 8, !tbaa !144
  %.not285 = icmp eq ptr %524, null
  br i1 %.not285, label %527, label %525

525:                                              ; preds = %521
  %526 = load ptr, ptr %524, align 8, !tbaa !79
  br label %527

527:                                              ; preds = %521, %525
  %528 = phi ptr [ %526, %525 ], [ @.str.271, %521 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.308, ptr noundef %528)
  %529 = getelementptr inbounds i8, ptr %33, i64 7200
  %530 = load ptr, ptr %529, align 8, !tbaa !145
  %.not286 = icmp eq ptr %530, null
  br i1 %.not286, label %533, label %531

531:                                              ; preds = %527
  %532 = load ptr, ptr %530, align 8, !tbaa !79
  br label %533

533:                                              ; preds = %527, %531
  %534 = phi ptr [ %532, %531 ], [ @.str.271, %527 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.309, ptr noundef %534)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.310)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %535 = getelementptr inbounds i8, ptr %33, i64 7248
  %536 = load i32, ptr %535, align 8, !tbaa !146
  %537 = getelementptr inbounds i8, ptr %33, i64 7312
  %538 = load i32, ptr %537, align 8, !tbaa !147
  %539 = getelementptr inbounds i8, ptr %33, i64 7256
  %540 = load float, ptr %539, align 8, !tbaa !148
  %541 = fpext float %540 to double
  %542 = getelementptr inbounds i8, ptr %33, i64 7261
  %543 = load i8, ptr %542, align 1, !tbaa !149, !range !26, !noundef !27
  %544 = zext nneg i8 %543 to i32
  %545 = getelementptr inbounds i8, ptr %33, i64 7304
  %546 = load i32, ptr %545, align 8, !tbaa !150
  %547 = zext i32 %546 to i64
  %548 = getelementptr inbounds [6 x ptr], ptr @__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names, i64 0, i64 %547
  %549 = load ptr, ptr %548, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.311, i32 noundef %536, i32 noundef %538, double noundef %541, i32 noundef %544, ptr noundef %549)
  %550 = getelementptr inbounds i8, ptr %33, i64 7296
  %551 = load ptr, ptr %550, align 8, !tbaa !151
  %.not287 = icmp eq ptr %551, null
  br i1 %.not287, label %554, label %552

552:                                              ; preds = %533
  %553 = load ptr, ptr %551, align 8, !tbaa !79
  br label %554

554:                                              ; preds = %533, %552
  %555 = phi ptr [ %553, %552 ], [ @.str.271, %533 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.312, ptr noundef %555)
  %556 = getelementptr inbounds i8, ptr %33, i64 7266
  %557 = load i8, ptr %556, align 2, !tbaa !152, !range !26, !noundef !27
  %558 = zext nneg i8 %557 to i32
  %559 = getelementptr inbounds i8, ptr %33, i64 7268
  %560 = load i32, ptr %559, align 4, !tbaa !153
  %561 = getelementptr inbounds i8, ptr %33, i64 7272
  %562 = load i32, ptr %561, align 8, !tbaa !154
  %563 = getelementptr inbounds i8, ptr %33, i64 7280
  %564 = load i64, ptr %563, align 8, !tbaa !155
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.313, i32 noundef %558, i32 noundef %560, i32 noundef %562, i64 noundef %564)
  %565 = getelementptr inbounds i8, ptr %33, i64 7232
  %566 = load i32, ptr %565, align 8, !tbaa !156
  %567 = getelementptr inbounds i8, ptr %33, i64 7240
  %568 = load float, ptr %567, align 8, !tbaa !157
  %569 = fpext float %568 to double
  %570 = getelementptr inbounds i8, ptr %33, i64 7236
  %571 = load i8, ptr %570, align 4, !tbaa !158, !range !26, !noundef !27
  %572 = zext nneg i8 %571 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.314, i32 noundef %566, double noundef %569, i32 noundef %572)
  %573 = getelementptr inbounds i8, ptr %33, i64 8052
  %574 = load i8, ptr %573, align 4, !tbaa !159, !range !26, !noundef !27
  %575 = zext nneg i8 %574 to i32
  %576 = getelementptr inbounds i8, ptr %33, i64 8084
  %577 = load i32, ptr %576, align 4, !tbaa !160
  %578 = getelementptr inbounds i8, ptr %33, i64 8096
  %579 = getelementptr inbounds i8, ptr %33, i64 8080
  %580 = load i32, ptr %579, align 8, !tbaa !161
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.315, i32 noundef %575, i32 noundef %577, ptr noundef nonnull %578, i32 noundef %580)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.316)
  call void @_ZN5ImGui6IndentEf(float noundef 0.000000e+00)
  %581 = getelementptr inbounds i8, ptr %33, i64 7664
  %582 = load ptr, ptr %581, align 8, !tbaa !28
  %.not288 = icmp eq ptr %582, null
  br i1 %.not288, label %585, label %583

583:                                              ; preds = %554
  %584 = load ptr, ptr %582, align 8, !tbaa !79
  br label %585

585:                                              ; preds = %554, %583
  %586 = phi ptr [ %584, %583 ], [ @.str.271, %554 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.317, ptr noundef %586)
  %587 = getelementptr inbounds i8, ptr %33, i64 7672
  %588 = load i32, ptr %587, align 8, !tbaa !162
  %589 = getelementptr inbounds i8, ptr %33, i64 7740
  %590 = load i32, ptr %589, align 4, !tbaa !163
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.318, i32 noundef %588, i32 noundef %590)
  %591 = getelementptr inbounds i8, ptr %33, i64 7716
  %592 = load i32, ptr %591, align 4, !tbaa !164
  %593 = zext i32 %592 to i64
  %594 = getelementptr inbounds [6 x ptr], ptr @__const._ZN5ImGui17ShowMetricsWindowEPb.input_source_names, i64 0, i64 %593
  %595 = load ptr, ptr %594, align 8, !tbaa !5
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.319, ptr noundef %595)
  %596 = getelementptr inbounds i8, ptr %33, i64 921
  %597 = load i8, ptr %596, align 1, !tbaa !165, !range !26, !noundef !27
  %598 = zext nneg i8 %597 to i32
  %599 = getelementptr inbounds i8, ptr %33, i64 922
  %600 = load i8, ptr %599, align 2, !tbaa !166, !range !26, !noundef !27
  %601 = zext nneg i8 %600 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.320, i32 noundef %598, i32 noundef %601)
  %602 = getelementptr inbounds i8, ptr %33, i64 7680
  %603 = load i32, ptr %602, align 8, !tbaa !167
  %604 = getelementptr inbounds i8, ptr %33, i64 7692
  %605 = load i32, ptr %604, align 4, !tbaa !168
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.321, i32 noundef %603, i32 noundef %605)
  %606 = getelementptr inbounds i8, ptr %33, i64 7750
  %607 = load i8, ptr %606, align 2, !tbaa !169, !range !26, !noundef !27
  %608 = zext nneg i8 %607 to i32
  %609 = getelementptr inbounds i8, ptr %33, i64 7751
  %610 = load i8, ptr %609, align 1, !tbaa !170, !range !26, !noundef !27
  %611 = zext nneg i8 %610 to i32
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.322, i32 noundef %608, i32 noundef %611)
  %612 = getelementptr inbounds i8, ptr %33, i64 7676
  %613 = load i32, ptr %612, align 4, !tbaa !171
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.323, i32 noundef %613)
  %614 = getelementptr inbounds i8, ptr %33, i64 7968
  %615 = load ptr, ptr %614, align 8, !tbaa !172
  %.not289 = icmp eq ptr %615, null
  br i1 %.not289, label %618, label %616

616:                                              ; preds = %585
  %617 = load ptr, ptr %615, align 8, !tbaa !79
  br label %618

618:                                              ; preds = %585, %616
  %619 = phi ptr [ %617, %616 ], [ @.str.271, %585 ]
  call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.324, ptr noundef %619)
  call void @_ZN5ImGui8UnindentEf(float noundef 0.000000e+00)
  call void @_ZN5ImGui7TreePopEv()
  br label %620

620:                                              ; preds = %618, %507
  %621 = load i8, ptr %34, align 4, !tbaa !25, !range !26, !noundef !27
  %622 = trunc nuw i8 %621 to i1
  br i1 %622, label %627, label %623

623:                                              ; preds = %620
  %624 = getelementptr inbounds i8, ptr %33, i64 12605
  %625 = load i8, ptr %624, align 1, !tbaa !173, !range !26, !noundef !27
  %626 = trunc nuw i8 %625 to i1
  br i1 %626, label %627, label %.loopexit309

627:                                              ; preds = %623, %620
  %628 = load i32, ptr %345, align 8, !tbaa !174
  %629 = icmp sgt i32 %628, 0
  br i1 %629, label %.lr.ph364, label %.loopexit309

.lr.ph364:                                        ; preds = %627
  %630 = getelementptr inbounds i8, ptr %24, i64 8
  %631 = getelementptr inbounds i8, ptr %33, i64 12605
  br label %632

632:                                              ; preds = %.lr.ph364, %662
  %.0251362 = phi i32 [ 0, %.lr.ph364 ], [ %663, %662 ]
  %633 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowEixEi(ptr noundef nonnull align 8 dereferenceable(16) %345, i32 noundef %.0251362)
  %634 = load ptr, ptr %633, align 8, !tbaa !5
  %635 = getelementptr inbounds i8, ptr %634, i64 143
  %636 = load i8, ptr %635, align 1, !tbaa !175, !range !26, !noundef !27
  %637 = trunc nuw i8 %636 to i1
  br i1 %637, label %638, label %662

638:                                              ; preds = %632
  %639 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef nonnull %634)
  %640 = load i8, ptr %34, align 4, !tbaa !25, !range !26, !noundef !27
  %641 = trunc nuw i8 %640 to i1
  br i1 %641, label %642, label %647

642:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #9
  %643 = load i32, ptr %52, align 4, !tbaa !22
  %644 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs13GetWindowRectEP11ImGuiWindowi(ptr noundef nonnull %634, i32 noundef %643)
  %645 = extractvalue { <2 x float>, <2 x float> } %644, 0
  store <2 x float> %645, ptr %24, align 8
  %646 = extractvalue { <2 x float>, <2 x float> } %644, 1
  store <2 x float> %646, ptr %630, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %639, ptr noundef nonnull align 4 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(8) %630, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #9
  br label %647

647:                                              ; preds = %642, %638
  %648 = load i8, ptr %631, align 1, !tbaa !173, !range !26, !noundef !27
  %649 = trunc nuw i8 %648 to i1
  br i1 %649, label %650, label %662

650:                                              ; preds = %647
  %651 = getelementptr inbounds i8, ptr %634, i64 12
  %652 = load i32, ptr %651, align 4, !tbaa !124
  %653 = and i32 %652, 16777216
  %.not290 = icmp eq i32 %653, 0
  br i1 %.not290, label %654, label %662

654:                                              ; preds = %650
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  %655 = getelementptr inbounds i8, ptr %634, i64 158
  %656 = load i16, ptr %655, align 2, !tbaa !176
  %657 = sext i16 %656 to i32
  %658 = call noundef i32 (ptr, i64, ptr, ...) @_Z14ImFormatStringPcmPKcz(ptr noundef nonnull %25, i64 noundef 32, ptr noundef nonnull @.str.325, i32 noundef %657)
  %659 = call noundef float @_ZN5ImGui11GetFontSizeEv()
  %660 = getelementptr inbounds i8, ptr %634, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %27, float noundef %659, float noundef %659)
  %661 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %660, ptr noundef nonnull align 4 dereferenceable(8) %27)
  store <2 x float> %661, ptr %26, align 8
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %639, ptr noundef nonnull align 4 dereferenceable(8) %660, ptr noundef nonnull align 4 dereferenceable(8) %26, i32 noundef -10197816, float noundef 0.000000e+00, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  call void @_ZN10ImDrawList7AddTextERK6ImVec2jPKcS4_(ptr noundef nonnull align 8 dereferenceable(196) %639, ptr noundef nonnull align 4 dereferenceable(8) %660, i32 noundef -1, ptr noundef nonnull %25, ptr noundef null)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  br label %662

662:                                              ; preds = %647, %650, %654, %632
  %663 = add nuw nsw i32 %.0251362, 1
  %664 = load i32, ptr %345, align 8, !tbaa !174
  %665 = icmp slt i32 %663, %664
  br i1 %665, label %632, label %.loopexit309, !llvm.loop !177

.loopexit309:                                     ; preds = %662, %627, %623
  %666 = getelementptr inbounds i8, ptr %33, i64 12606
  %667 = load i8, ptr %666, align 2, !tbaa !95, !range !26, !noundef !27
  %668 = trunc nuw i8 %667 to i1
  br i1 %668, label %.preheader307, label %.loopexit308

.preheader307:                                    ; preds = %.loopexit309
  %669 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %430)
  %670 = icmp sgt i32 %669, 0
  br i1 %670, label %.lr.ph368, label %.loopexit308

.lr.ph368:                                        ; preds = %.preheader307
  %671 = getelementptr inbounds i8, ptr %33, i64 7048
  %672 = getelementptr inbounds i8, ptr %29, i64 8
  %673 = getelementptr inbounds i8, ptr %28, i64 8
  br label %674

674:                                              ; preds = %.lr.ph368, %.loopexit
  %.0247367 = phi i32 [ 0, %.lr.ph368 ], [ %710, %.loopexit ]
  %675 = call noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40) %430, i32 noundef %.0247367)
  %676 = icmp eq ptr %675, null
  br i1 %676, label %.loopexit, label %677

677:                                              ; preds = %674
  %678 = getelementptr inbounds i8, ptr %675, i64 112
  %679 = load i32, ptr %678, align 8, !tbaa !96
  %680 = load i32, ptr %671, align 8, !tbaa !104
  %681 = add nsw i32 %680, -1
  %682 = icmp slt i32 %679, %681
  br i1 %682, label %.loopexit, label %683

683:                                              ; preds = %677
  %684 = getelementptr inbounds i8, ptr %675, i64 392
  %685 = load ptr, ptr %684, align 8, !tbaa !105
  %686 = call noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef %685)
  %687 = load i32, ptr %57, align 4, !tbaa !24
  %688 = icmp sgt i32 %687, 5
  br i1 %688, label %.preheader, label %706

.preheader:                                       ; preds = %683
  %689 = getelementptr inbounds i8, ptr %675, i64 116
  %690 = load i32, ptr %689, align 4, !tbaa !108
  %691 = icmp sgt i32 %690, 0
  br i1 %691, label %.lr.ph366, label %.loopexit

.lr.ph366:                                        ; preds = %.preheader
  %692 = getelementptr inbounds i8, ptr %675, i64 484
  br label %693

693:                                              ; preds = %.lr.ph366, %693
  %.0245365 = phi i32 [ 0, %.lr.ph366 ], [ %703, %693 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #9
  %694 = load i32, ptr %57, align 4, !tbaa !24
  %695 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %675, i32 noundef %694, i32 noundef %.0245365)
  %696 = extractvalue { <2 x float>, <2 x float> } %695, 0
  store <2 x float> %696, ptr %28, align 8
  %697 = extractvalue { <2 x float>, <2 x float> } %695, 1
  store <2 x float> %697, ptr %673, align 8
  %698 = load i8, ptr %692, align 4, !tbaa !178
  %699 = sext i8 %698 to i32
  %700 = icmp eq i32 %.0245365, %699
  %701 = select i1 %700, i32 -8323073, i32 -8388353
  %702 = select i1 %700, float 3.000000e+00, float 1.000000e+00
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %686, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %673, i32 noundef %701, float noundef 0.000000e+00, i32 noundef 0, float noundef %702)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #9
  %703 = add nuw nsw i32 %.0245365, 1
  %704 = load i32, ptr %689, align 4, !tbaa !108
  %705 = icmp slt i32 %703, %704
  br i1 %705, label %693, label %.loopexit, !llvm.loop !179

706:                                              ; preds = %683
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #9
  %707 = call { <2 x float>, <2 x float> } @_ZZN5ImGui17ShowMetricsWindowEPbEN5Funcs12GetTableRectEP10ImGuiTableii(ptr noundef nonnull %675, i32 noundef %687, i32 noundef -1)
  %708 = extractvalue { <2 x float>, <2 x float> } %707, 0
  store <2 x float> %708, ptr %29, align 8
  %709 = extractvalue { <2 x float>, <2 x float> } %707, 1
  store <2 x float> %709, ptr %672, align 8
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(196) %686, ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %672, i32 noundef -8388353, float noundef 0.000000e+00, i32 noundef 0, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #9
  br label %.loopexit

.loopexit:                                        ; preds = %693, %.preheader, %706, %674, %677
  %710 = add nuw nsw i32 %.0247367, 1
  %711 = call noundef i32 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40) %430)
  %712 = icmp slt i32 %710, %711
  br i1 %712, label %674, label %.loopexit308, !llvm.loop !180

.loopexit308:                                     ; preds = %.loopexit, %.preheader307, %.loopexit309
  call void @_ZN5ImGui3EndEv()
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %3) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %2) #9
  br label %713

713:                                              ; preds = %.loopexit308, %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 @_ZNK6ImPoolI10ImGuiTableE10GetMapSizeEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ImPoolI10ImGuiTableE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) local_unnamed_addr #5 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

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

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

declare noundef float @_ZN5ImGui25GetTreeNodeToLabelSpacingEv() local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL25RenderViewportsThumbnailsv() local_unnamed_addr #7

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6ImPoolI11ImGuiTabBarE13TryGetMapDataEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) local_unnamed_addr #5 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 i32 @_ZNK6ImPoolI10ImGuiTableE13GetAliveCountEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #1 align 2

declare void @_ZN5ImGui14DebugNodeTableEP10ImGuiTable(ptr noundef) local_unnamed_addr #4

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

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 uwtable
declare dso_local noundef ptr @_ZN5ImGui21GetForegroundDrawListEP11ImGuiWindow(ptr noundef) local_unnamed_addr #8

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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { 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 916}
!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 908, !14, i64 909, !14, i64 910, !14, i64 911, !14, i64 912, !14, i64 913, !14, i64 914, !13, i64 916, !11, i64 920, !11, i64 924, !11, i64 928, !11, i64 932, !11, i64 936, !12, i64 940, !11, i64 948, !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 5352, !13, i64 5432, !15, i64 5436, !16, i64 5440}
!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 920}
!18 = !{!10, !11, i64 924}
!19 = !{!10, !11, i64 932}
!20 = !{!10, !11, i64 928}
!21 = !{!10, !11, i64 936}
!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 7664}
!29 = !{!"_ZTS12ImGuiContext", !14, i64 0, !14, i64 1, !10, i64 8, !30, i64 5464, !6, i64 6512, !13, i64 6520, !13, i64 6524, !31, i64 6528, !33, i64 7040, !11, i64 7048, !11, i64 7052, !11, i64 7056, !14, i64 7060, !14, i64 7061, !14, i64 7062, !14, i64 7063, !14, i64 7064, !11, i64 7068, !6, i64 7072, !34, i64 7080, !34, i64 7096, !34, i64 7112, !35, i64 7128, !36, i64 7144, !11, i64 7160, !12, i64 7164, !6, i64 7176, !6, i64 7184, !6, i64 7192, !6, i64 7200, !6, i64 7208, !12, i64 7216, !13, i64 7224, !11, i64 7228, !11, i64 7232, !14, i64 7236, !14, i64 7237, !14, i64 7238, !14, i64 7239, !13, i64 7240, !13, i64 7244, !11, i64 7248, !11, i64 7252, !13, i64 7256, !14, i64 7260, !14, i64 7261, !14, i64 7262, !14, i64 7263, !14, i64 7264, !14, i64 7265, !14, i64 7266, !11, i64 7268, !11, i64 7272, !38, i64 7280, !12, i64 7288, !6, i64 7296, !39, i64 7304, !11, i64 7308, !11, i64 7312, !14, i64 7316, !14, i64 7317, !6, i64 7320, !11, i64 7328, !13, i64 7332, !11, i64 7336, !40, i64 7340, !41, i64 7360, !43, i64 7408, !44, i64 7520, !45, i64 7536, !46, i64 7552, !47, i64 7568, !48, i64 7584, !49, i64 7600, !50, i64 7616, !50, i64 7632, !51, i64 7648, !6, i64 7664, !11, i64 7672, !11, i64 7676, !11, i64 7680, !11, i64 7684, !11, i64 7688, !11, i64 7692, !11, i64 7696, !11, i64 7700, !11, i64 7704, !11, i64 7708, !11, i64 7712, !39, i64 7716, !42, i64 7720, !11, i64 7736, !52, i64 7740, !11, i64 7744, !14, i64 7748, !14, i64 7749, !14, i64 7750, !14, i64 7751, !14, i64 7752, !14, i64 7753, !14, i64 7754, !11, i64 7756, !42, i64 7760, !14, i64 7776, !11, i64 7780, !53, i64 7784, !11, i64 7788, !11, i64 7792, !11, i64 7796, !11, i64 7800, !54, i64 7808, !54, i64 7856, !54, i64 7904, !6, i64 7952, !11, i64 7960, !6, i64 7968, !6, i64 7976, !6, i64 7984, !13, i64 7992, !13, i64 7996, !14, i64 8000, !6, i64 8008, !6, i64 8016, !11, i64 8024, !11, i64 8028, !11, i64 8032, !11, i64 8036, !14, i64 8040, !13, i64 8044, !11, i64 8048, !14, i64 8052, !14, i64 8053, !14, i64 8054, !11, i64 8056, !11, i64 8060, !11, i64 8064, !55, i64 8072, !42, i64 8136, !11, i64 8152, !11, i64 8156, !13, i64 8160, !11, i64 8164, !11, i64 8168, !11, i64 8172, !11, i64 8176, !56, i64 8184, !7, i64 8200, !6, i64 8216, !11, i64 8224, !57, i64 8232, !59, i64 8272, !60, i64 8288, !61, i64 8304, !6, i64 8320, !62, i64 8328, !64, i64 8368, !65, i64 8384, !12, i64 8400, !66, i64 8408, !70, i64 12144, !11, i64 12256, !11, i64 12260, !13, i64 12264, !13, i64 12268, !7, i64 12272, !32, i64 12284, !72, i64 12300, !13, i64 12348, !14, i64 12352, !14, i64 12353, !13, i64 12356, !13, i64 12360, !13, i64 12364, !13, i64 12368, !11, i64 12372, !13, i64 12376, !67, i64 12384, !47, i64 12400, !12, i64 12416, !12, i64 12424, !7, i64 12432, !14, i64 12433, !13, i64 12436, !73, i64 12440, !74, i64 12456, !75, i64 12472, !76, i64 12488, !77, i64 12504, !11, i64 12520, !14, i64 12524, !78, i64 12528, !6, i64 12536, !73, i64 12544, !6, i64 12560, !6, i64 12568, !13, i64 12576, !14, i64 12580, !11, i64 12584, !11, i64 12588, !11, i64 12592, !14, i64 12596, !11, i64 12600, !23, i64 12604, !7, i64 12620, !11, i64 13100, !11, i64 13104, !13, i64 13108, !11, i64 13112, !11, i64 13116, !11, i64 13120, !7, i64 13124}
!30 = !{!"_ZTS10ImGuiStyle", !13, i64 0, !13, i64 4, !12, i64 8, !13, i64 16, !13, i64 20, !12, i64 24, !12, i64 32, !11, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !13, i64 56, !12, i64 60, !13, i64 68, !13, i64 72, !12, i64 76, !12, i64 84, !12, i64 92, !12, i64 100, !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, !13, i64 144, !11, i64 148, !12, i64 152, !12, i64 160, !12, i64 168, !12, i64 176, !13, i64 184, !14, i64 188, !14, i64 189, !14, i64 190, !13, i64 192, !13, i64 196, !7, i64 200}
!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, !13, i64 432, !7, i64 436, !6, i64 504}
!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 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!36 = !{!"_ZTS12ImGuiStorage", !37, i64 0}
!37 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!38 = !{!"long long", !7, i64 0}
!39 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!40 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !13, i64 4, !11, i64 8, !11, i64 12, !14, i64 16}
!41 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !42, i64 12, !42, i64 28}
!42 = !{!"_ZTS6ImRect", !12, i64 0, !12, i64 8}
!43 = !{!"_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, !42, i64 60, !6, i64 80, !6, i64 88, !13, i64 96, !12, i64 100}
!44 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!45 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!46 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!48 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!49 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!50 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!52 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!53 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!54 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !42, i64 16, !13, i64 32, !13, i64 36, !13, i64 40}
!55 = !{!"_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}
!56 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS6ImPoolI10ImGuiTableE", !58, i64 0, !36, i64 16, !11, i64 32, !11, i64 36}
!58 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!62 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !63, i64 0, !36, i64 16, !11, i64 32, !11, i64 36}
!63 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS19ImGuiInputTextState", !11, i64 0, !11, i64 4, !11, i64 8, !16, i64 16, !67, i64 32, !67, i64 48, !14, i64 64, !11, i64 68, !13, i64 72, !68, i64 76, !13, i64 3704, !14, i64 3708, !14, i64 3709, !14, i64 3710, !11, i64 3712, !6, i64 3720, !6, i64 3728}
!67 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_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, !69, i64 32}
!69 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!70 = !{!"_ZTS6ImFont", !60, i64 0, !13, i64 16, !13, i64 20, !16, i64 24, !71, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !14, i64 88, !13, i64 92, !13, i64 96, !13, i64 100, !11, i64 104, !7, i64 108}
!71 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS21ImGuiComboPreviewData", !42, i64 0, !12, i64 16, !12, i64 24, !12, i64 32, !13, i64 40, !11, i64 44}
!73 = !{!"_ZTS15ImGuiTextBuffer", !67, i64 0}
!74 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!75 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !67, i64 0}
!76 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !67, i64 0}
!77 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!79 = !{!80, !6, i64 0}
!80 = !{!"_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, !15, i64 160, !11, i64 164, !7, i64 168, !7, i64 169, !7, i64 170, !14, i64 171, !11, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !7, i64 179, !11, i64 180, !11, i64 181, !11, i64 182, !12, i64 184, !12, i64 192, !47, i64 200, !81, i64 216, !42, i64 464, !42, i64 480, !42, i64 496, !42, i64 512, !42, i64 528, !42, i64 544, !42, i64 560, !85, i64 576, !85, i64 580, !11, i64 584, !13, i64 588, !13, i64 592, !36, i64 600, !86, i64 616, !13, i64 632, !11, i64 636, !6, i64 640, !87, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !7, i64 888, !7, i64 896, !11, i64 928, !11, i64 932, !14, i64 936}
!81 = !{!"_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, !82, i64 64, !82, i64 68, !82, i64 72, !52, i64 76, !15, i64 80, !15, i64 82, !11, i64 84, !14, i64 88, !14, i64 89, !14, i64 90, !12, i64 92, !83, i64 100, !11, i64 128, !11, i64 132, !34, i64 136, !6, i64 152, !6, i64 160, !11, i64 168, !11, i64 172, !11, i64 176, !11, i64 180, !11, i64 184, !13, i64 188, !13, i64 192, !60, i64 200, !60, i64 216, !84, i64 232}
!82 = !{!"_ZTS6ImVec1", !13, i64 0}
!83 = !{!"_ZTS16ImGuiMenuColumns", !11, i64 0, !11, i64 4, !15, i64 8, !15, i64 10, !15, i64 12, !15, i64 14, !15, i64 16, !7, i64 18}
!84 = !{!"_ZTS15ImGuiStackSizes", !15, i64 0, !15, i64 2, !15, i64 4, !15, i64 6, !15, i64 8, !15, i64 10, !15, i64 12}
!85 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!86 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!87 = !{!"_ZTS10ImDrawList", !88, i64 0, !16, i64 16, !89, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !90, i64 88, !91, i64 104, !92, i64 120, !93, i64 136, !94, i64 168, !13, i64 192}
!88 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!89 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!90 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!91 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!92 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!93 = !{!"_ZTS15ImDrawCmdHeader", !32, i64 0, !6, i64 16, !11, i64 24}
!94 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !61, i64 8}
!95 = !{!23, !14, i64 2}
!96 = !{!97, !11, i64 112}
!97 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !98, i64 24, !99, i64 40, !100, i64 56, !38, i64 72, !38, i64 80, !38, i64 88, !38, i64 96, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !11, i64 120, !11, i64 124, !15, i64 128, !15, i64 130, !13, i64 132, !13, i64 136, !13, i64 140, !13, i64 144, !13, i64 148, !11, i64 152, !11, i64 154, !11, i64 156, !7, i64 160, !11, i64 168, !11, 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, !13, i64 236, !13, i64 240, !42, i64 244, !42, i64 260, !42, i64 276, !42, i64 292, !42, i64 308, !42, i64 324, !42, i64 340, !42, i64 356, !42, i64 372, !6, i64 392, !6, i64 400, !73, i64 408, !6, i64 424, !101, i64 432, !102, i64 448, !103, i64 464, !7, i64 480, !7, i64 481, !7, i64 482, !7, i64 483, !7, i64 484, !7, i64 485, !7, i64 486, !7, i64 487, !7, i64 488, !7, i64 489, !7, i64 490, !7, i64 491, !7, i64 492, !7, i64 493, !7, i64 494, !7, i64 495, !7, i64 496, !7, i64 497, !7, i64 498, !7, i64 499, !7, i64 500, !7, i64 501, !7, i64 502, !7, i64 503, !7, i64 504, !14, i64 505, !14, i64 506, !14, i64 507, !14, i64 508, !14, i64 509, !14, i64 510, !14, i64 511, !14, i64 512, !14, i64 513, !14, i64 514, !14, i64 515, !14, i64 516, !14, i64 517, !14, i64 518, !14, i64 519}
!98 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!99 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!100 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!101 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !15, i64 4, !15, i64 6, !11, i64 8}
!102 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!103 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !14, i64 12}
!104 = !{!29, !11, i64 7048}
!105 = !{!97, !6, i64 392}
!106 = !{!97, !6, i64 400}
!107 = !{!97, !11, i64 0}
!108 = !{!97, !11, i64 116}
!109 = distinct !{!109, !110}
!110 = !{!"llvm.loop.mustprogress"}
!111 = distinct !{!111, !110}
!112 = distinct !{!112, !110}
!113 = !{!29, !11, i64 7648}
!114 = distinct !{!114, !110}
!115 = !{!116, !11, i64 0}
!116 = !{!"_ZTS8ImVectorIP10ImDrawListE", !11, i64 0, !11, i64 4, !6, i64 8}
!117 = distinct !{!117, !110}
!118 = distinct !{!118, !110}
!119 = distinct !{!119, !110}
!120 = !{!29, !11, i64 7616}
!121 = !{!122, !6, i64 8}
!122 = !{!"_ZTS14ImGuiPopupData", !11, i64 0, !6, i64 8, !6, i64 16, !11, i64 24, !11, i64 28, !12, i64 32, !12, i64 40}
!123 = !{!122, !11, i64 0}
!124 = !{!80, !11, i64 12}
!125 = distinct !{!125, !110}
!126 = distinct !{!126, !110}
!127 = distinct !{!127, !110}
!128 = !{!29, !6, i64 168}
!129 = !{!130, !11, i64 72}
!130 = !{!"_ZTS11ImFontAtlas", !11, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !14, i64 24, !14, i64 25, !14, i64 26, !6, i64 32, !6, i64 40, !11, i64 48, !11, i64 52, !12, i64 56, !12, i64 64, !46, i64 72, !131, i64 88, !132, i64 104, !7, i64 120, !6, i64 1144, !11, i64 1152, !11, i64 1156, !11, i64 1160}
!131 = !{!"_ZTS8ImVectorI21ImFontAtlasCustomRectE", !11, i64 0, !11, i64 4, !6, i64 8}
!132 = !{!"_ZTS8ImVectorI12ImFontConfigE", !11, i64 0, !11, i64 4, !6, i64 8}
!133 = !{!29, !6, i64 32}
!134 = !{!29, !13, i64 12436}
!135 = !{!29, !11, i64 12456}
!136 = !{!137, !6, i64 0}
!137 = !{!"_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}
!138 = distinct !{!138, !110}
!139 = distinct !{!139, !110}
!140 = distinct !{!140, !110}
!141 = !{!29, !11, i64 12440}
!142 = !{!29, !6, i64 7184}
!143 = !{!80, !6, i64 856}
!144 = !{!29, !6, i64 7192}
!145 = !{!29, !6, i64 7200}
!146 = !{!29, !11, i64 7248}
!147 = !{!29, !11, i64 7312}
!148 = !{!29, !13, i64 7256}
!149 = !{!29, !14, i64 7261}
!150 = !{!29, !39, i64 7304}
!151 = !{!29, !6, i64 7296}
!152 = !{!29, !14, i64 7266}
!153 = !{!29, !11, i64 7268}
!154 = !{!29, !11, i64 7272}
!155 = !{!29, !38, i64 7280}
!156 = !{!29, !11, i64 7232}
!157 = !{!29, !13, i64 7240}
!158 = !{!29, !14, i64 7236}
!159 = !{!29, !14, i64 8052}
!160 = !{!29, !11, i64 8084}
!161 = !{!29, !11, i64 8080}
!162 = !{!29, !11, i64 7672}
!163 = !{!29, !52, i64 7740}
!164 = !{!29, !39, i64 7716}
!165 = !{!29, !14, i64 921}
!166 = !{!29, !14, i64 922}
!167 = !{!29, !11, i64 7680}
!168 = !{!29, !11, i64 7692}
!169 = !{!29, !14, i64 7750}
!170 = !{!29, !14, i64 7751}
!171 = !{!29, !11, i64 7676}
!172 = !{!29, !6, i64 7968}
!173 = !{!23, !14, i64 1}
!174 = !{!29, !11, i64 7080}
!175 = !{!80, !14, i64 143}
!176 = !{!80, !15, i64 158}
!177 = distinct !{!177, !110}
!178 = !{!97, !7, i64 484}
!179 = distinct !{!179, !110}
!180 = distinct !{!180, !110}


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