; LLVM IR from hadryansalles/Luz :: deps/imgui/imgui_tables.ll (ZN5ImGui17TableUpdateLayoutEP10ImGuiTable)

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

%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec2 = type { float, float }
%struct.ImGuiTable = type <{ i32, i32, ptr, ptr, %struct.ImSpan, %struct.ImSpan.41, %struct.ImSpan.42, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i16, i16, float, 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.ImGuiTableInstanceData, %struct.ImVector.43, %struct.ImGuiTableColumnSortSpecs, [4 x i8], %struct.ImVector.44, %struct.ImGuiTableSortSpecs, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [6 x i8] }>
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.41 = type { ptr, ptr }
%struct.ImSpan.42 = type { ptr, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.27 }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImGuiTableInstanceData = type { i32, float, float, float, i32, i32 }
%struct.ImVector.43 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.44 = type { i32, i32, ptr }
%struct.ImGuiTableSortSpecs = type <{ ptr, i32, i8, [3 x i8] }>
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImGuiPlatformIO, %struct.ImGuiStyle, i32, i32, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.3, %struct.ImVector.3, i32, i32, %struct.ImVector.4, %struct.ImVector.4, %struct.ImVector.4, %struct.ImVector.5, %struct.ImGuiStorage, i32, %struct.ImVec2, i32, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i8, i8, ptr, i32, float, double, double, double, %struct.ImBitArray, [154 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, i32, [4 x i8], %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, [4 x i8], %struct.ImGuiNextWindowData, i8, i32, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.11, %struct.ImVector.12, %struct.ImVector.13, %struct.ImVector.14, %struct.ImVector.14, %struct.ImVector.15, i32, %struct.ImVector.16, float, ptr, ptr, ptr, i32, %struct.ImGuiPlatformMonitor, i32, i32, i32, ptr, i32, i32, %struct.ImVector.11, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i64, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImGuiNavItemData, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, %struct.ImGuiPayload, %struct.ImRect, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.17, [16 x i8], i32, %struct.ImVector.18, ptr, i32, i32, %struct.ImVector.19, %struct.ImPool, %struct.ImVector.21, %struct.ImVector.22, ptr, %struct.ImPool.23, %struct.ImVector.25, %struct.ImVector.26, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, float, float, i8, i8, float, float, float, float, i16, i16, i16, %struct.ImVector.27, %struct.ImVector.29, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i32, [4 x i8], %struct.ImGuiDockContext, ptr, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.32, %struct.ImChunkStream, %struct.ImChunkStream.33, %struct.ImVector.34, i32, [11 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i32, i8, i8, i8, i32, i8, i8, i8, i32, float, %struct.ImVec4, %struct.ImGuiMetricsConfig, %struct.ImGuiIDStackTool, %struct.ImGuiDebugAllocInfo, ptr, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.27, [64 x i8] }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, i8, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, %struct.ImVec2, [666 x i32], [666 x i8], [16 x float], ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, i8, i8, i8, i8, i32, [666 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], i8, [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImVector = type { i32, i32, ptr }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVector.0, %struct.ImVector.1 }
%struct.ImVector.0 = type { i32, i32, ptr }
%struct.ImVector.1 = 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, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, i8, float, float, [55 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.2, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.6 }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImBitArray = type { [5 x i32] }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [154 x i16], %struct.ImVector.7, %struct.ImVector.7 }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, i64, float, i32, i8, i8, [6 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, i8, i8, [2 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, i32, i32, %struct.ImGuiWindowClass, %struct.ImVec2, [4 x i8] }>
%struct.ImGuiWindowClass = type <{ i32, i32, i32, i32, i32, i32, i32, i8, i8, [2 x i8] }>
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImGuiPlatformMonitor = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type <{ ptr, i32, i32, %struct.ImRect, i32, [4 x i8], i64, float, float, float, [4 x i8] }>
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.20, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImPool.23 = type { %struct.ImVector.24, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector, %struct.ImVector.27, %struct.ImVector.27, i8, [3 x i8], i32, float, %"struct.ImStb::STB_TexteditState", float, i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ImStb::STB_TexteditState" = type { i32, i32, i32, i8, i32, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImStb::StbUndoState" }
%"struct.ImStb::StbUndoState" = type { [99 x %"struct.ImStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImGuiInputTextDeactivatedState = type { i32, %struct.ImVector.27 }
%struct.ImFont = type <{ %struct.ImVector.21, float, float, %struct.ImVector, %struct.ImVector.28, ptr, ptr, ptr, i16, i16, i16, i16, float, float, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImGuiTypingSelectState = type <{ %struct.ImGuiTypingSelectRequest, [64 x i8], i32, i32, float, i8, [3 x i8] }>
%struct.ImGuiTypingSelectRequest = type { i32, i32, ptr, i8, i8, i8 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImGuiDockContext = type <{ %struct.ImGuiStorage, %struct.ImVector.30, %struct.ImVector.31, i8, [7 x i8] }>
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImVector.32 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.27 }
%struct.ImChunkStream.33 = type { %struct.ImVector.27 }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.12, i32, [4 x i8] }>
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiIDStackTool = type { i32, i32, i32, %struct.ImVector.35, i8, float }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImGuiTableColumn = type <{ i32, float, float, float, float, float, float, float, %struct.ImRect, i32, float, float, float, float, float, float, float, i16, i16, i16, i16, i16, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }>
%struct.ImGuiWindow = type { ptr, ptr, i32, i32, i32, i32, %struct.ImGuiWindowClass, ptr, i32, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, i32, i32, i32, 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, i8, i8, i16, i16, i16, i16, i16, i32, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.29, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, i32, float, float, %struct.ImGuiStorage, %struct.ImVector.36, float, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], [2 x %struct.ImVec2], i32, i32, i32, i8, i8, i16, %struct.ImGuiWindowDockStyle, ptr, ptr, i32, i32, %struct.ImRect }
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i8, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.4, ptr, ptr, i32, i32, i32, float, float, %struct.ImVector.21, %struct.ImVector.21 }
%struct.ImVec1 = type { float }
%struct.ImGuiMenuColumns = type <{ i32, i32, i16, i16, i16, i16, i16, [4 x i16], [2 x i8] }>
%struct.ImVec2ih = type { i16, i16 }
%struct.ImVector.36 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.37, %struct.ImVector, %struct.ImVector.38, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.39, %struct.ImVector.40, %struct.ImVector.2, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImVector.40 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.22 }
%struct.ImGuiWindowDockStyle = type { [6 x i32] }

@GImGui = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable = external hidden unnamed_addr constant [44 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [12 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

; 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef, float noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef, i32 noundef) #4

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17TableUpdateLayoutEP10ImGuiTable(ptr noundef %0) #6 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i8, align 1
  %9 = alloca i8, align 1
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i8, align 1
  %23 = alloca float, align 4
  %24 = alloca %struct.ImRect, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca %struct.ImRect, align 4
  %37 = alloca i32, align 4
  %38 = alloca i8, align 1
  %39 = alloca float, align 4
  %40 = alloca i32, align 4
  %41 = alloca i8, align 1
  %42 = alloca i8, align 1
  %43 = alloca float, align 4
  %44 = alloca %struct.ImRect, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca float, align 4
  %49 = alloca i8, align 1
  %50 = alloca float, align 4
  %51 = alloca float, align 4
  %52 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #10
  %53 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %53, ptr %3, align 8, !tbaa !5
  %54 = load ptr, ptr %2, align 8, !tbaa !5
  %55 = getelementptr inbounds %struct.ImGuiTable, ptr %54, i32 0, i32 92
  %56 = load i8, ptr %55, align 2, !tbaa !9, !range !27, !noundef !28
  %57 = trunc i8 %56 to i1
  %58 = zext i1 %57 to i32
  %59 = icmp eq i32 %58, 0
  br i1 %59, label %60, label %61

60:                                               ; preds = %1
  br label %63

61:                                               ; preds = %1
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 769, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

62:                                               ; No predecessors!
  br label %63

63:                                               ; preds = %62, %60
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #10
  %64 = load ptr, ptr %2, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.ImGuiTable, ptr %64, i32 0, i32 1
  %66 = load i32, ptr %65, align 4, !tbaa !29
  %67 = and i32 %66, 57344
  store i32 %67, ptr %4, align 4, !tbaa !30
  %68 = load ptr, ptr %2, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.ImGuiTable, ptr %68, i32 0, i32 101
  store i8 1, ptr %69, align 1, !tbaa !31
  %70 = load ptr, ptr %2, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.ImGuiTable, ptr %70, i32 0, i32 66
  store i16 0, ptr %71, align 2, !tbaa !32
  %72 = load ptr, ptr %2, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct.ImGuiTable, ptr %72, i32 0, i32 8
  %74 = load ptr, ptr %73, align 8, !tbaa !33
  %75 = load ptr, ptr %2, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct.ImGuiTable, ptr %75, i32 0, i32 13
  %77 = load i32, ptr %76, align 4, !tbaa !34
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %74, i32 noundef %77)
  %78 = load ptr, ptr %2, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.ImGuiTable, ptr %78, i32 0, i32 7
  %80 = load ptr, ptr %79, align 8, !tbaa !35
  %81 = load ptr, ptr %2, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.ImGuiTable, ptr %81, i32 0, i32 13
  %83 = load i32, ptr %82, align 4, !tbaa !34
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %80, i32 noundef %83)
  %84 = load ptr, ptr %2, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.ImGuiTable, ptr %84, i32 0, i32 79
  store i16 -1, ptr %85, align 4, !tbaa !36
  %86 = load ptr, ptr %3, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.ImGuiContext, ptr %86, i32 0, i32 4
  %88 = getelementptr inbounds %struct.ImGuiStyle, ptr %87, i32 0, i32 12
  %89 = getelementptr inbounds %struct.ImVec2, ptr %88, i32 0, i32 0
  %90 = load float, ptr %89, align 4, !tbaa !37
  %91 = fmul float %90, 1.000000e+00
  %92 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %91)
  %93 = load ptr, ptr %2, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.ImGuiTable, ptr %93, i32 0, i32 32
  store float %92, ptr %94, align 8, !tbaa !112
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #10
  store i32 0, ptr %5, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  store i32 0, ptr %6, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  store i32 -1, ptr %7, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #10
  store i8 0, ptr %8, align 1, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #10
  store i8 0, ptr %9, align 1, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  store float 0.000000e+00, ptr %10, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  store float 0.000000e+00, ptr %11, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 0, ptr %12, align 4, !tbaa !30
  br label %95

95:                                               ; preds = %377, %63
  %96 = load i32, ptr %12, align 4, !tbaa !30
  %97 = load ptr, ptr %2, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.ImGuiTable, ptr %97, i32 0, i32 13
  %99 = load i32, ptr %98, align 4, !tbaa !34
  %100 = icmp slt i32 %96, %99
  br i1 %100, label %102, label %101

101:                                              ; preds = %95
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %380

102:                                              ; preds = %95
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %103 = load ptr, ptr %2, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.ImGuiTable, ptr %103, i32 0, i32 5
  %105 = load i32, ptr %12, align 4, !tbaa !30
  %106 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %104, i32 noundef %105)
  %107 = load i16, ptr %106, align 2, !tbaa !115
  %108 = sext i16 %107 to i32
  store i32 %108, ptr %14, align 4, !tbaa !30
  %109 = load i32, ptr %14, align 4, !tbaa !30
  %110 = load i32, ptr %12, align 4, !tbaa !30
  %111 = icmp ne i32 %109, %110
  br i1 %111, label %112, label %115

112:                                              ; preds = %102
  %113 = load ptr, ptr %2, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.ImGuiTable, ptr %113, i32 0, i32 101
  store i8 0, ptr %114, align 1, !tbaa !31
  br label %115

115:                                              ; preds = %112, %102
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %116 = load ptr, ptr %2, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.ImGuiTable, ptr %116, i32 0, i32 4
  %118 = load i32, ptr %14, align 4, !tbaa !30
  %119 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %117, i32 noundef %118)
  store ptr %119, ptr %15, align 8, !tbaa !5
  %120 = load ptr, ptr %2, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.ImGuiTable, ptr %120, i32 0, i32 68
  %122 = load i16, ptr %121, align 2, !tbaa !116
  %123 = sext i16 %122 to i32
  %124 = load i32, ptr %14, align 4, !tbaa !30
  %125 = icmp sle i32 %123, %124
  br i1 %125, label %126, label %135

126:                                              ; preds = %115
  %127 = load ptr, ptr %2, align 8, !tbaa !5
  %128 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef %127, ptr noundef %128, i32 noundef 0)
  %129 = load ptr, ptr %15, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %129, i32 0, i32 17
  store i16 -1, ptr %130, align 4, !tbaa !117
  %131 = load ptr, ptr %15, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %131, i32 0, i32 9
  store i32 0, ptr %132, align 4, !tbaa !119
  %133 = load ptr, ptr %15, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %133, i32 0, i32 7
  store float -1.000000e+00, ptr %134, align 4, !tbaa !120
  br label %135

135:                                              ; preds = %126, %115
  %136 = load ptr, ptr %2, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.ImGuiTable, ptr %136, i32 0, i32 1
  %138 = load i32, ptr %137, align 4, !tbaa !29
  %139 = and i32 %138, 4
  %140 = icmp ne i32 %139, 0
  br i1 %140, label %141, label %147

141:                                              ; preds = %135
  %142 = load ptr, ptr %15, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %142, i32 0, i32 0
  %144 = load i32, ptr %143, align 4, !tbaa !121
  %145 = and i32 %144, 128
  %146 = icmp ne i32 %145, 0
  br i1 %146, label %147, label %150

147:                                              ; preds = %141, %135
  %148 = load ptr, ptr %15, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %148, i32 0, i32 28
  store i8 1, ptr %149, align 4, !tbaa !122
  br label %150

150:                                              ; preds = %147, %141
  %151 = load ptr, ptr %15, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %151, i32 0, i32 27
  %153 = load i8, ptr %152, align 1, !tbaa !123, !range !27, !noundef !28
  %154 = trunc i8 %153 to i1
  %155 = zext i1 %154 to i32
  %156 = load ptr, ptr %15, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %156, i32 0, i32 28
  %158 = load i8, ptr %157, align 4, !tbaa !122, !range !27, !noundef !28
  %159 = trunc i8 %158 to i1
  %160 = zext i1 %159 to i32
  %161 = icmp ne i32 %155, %160
  br i1 %161, label %162, label %172

162:                                              ; preds = %150
  %163 = load ptr, ptr %15, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %163, i32 0, i32 28
  %165 = load i8, ptr %164, align 4, !tbaa !122, !range !27, !noundef !28
  %166 = trunc i8 %165 to i1
  %167 = load ptr, ptr %15, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %167, i32 0, i32 27
  %169 = zext i1 %166 to i8
  store i8 %169, ptr %168, align 1, !tbaa !123
  %170 = load ptr, ptr %2, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.ImGuiTable, ptr %170, i32 0, i32 100
  store i8 1, ptr %171, align 2, !tbaa !124
  br label %172

172:                                              ; preds = %162, %150
  %173 = load ptr, ptr %15, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %173, i32 0, i32 27
  %175 = load i8, ptr %174, align 1, !tbaa !123, !range !27, !noundef !28
  %176 = trunc i8 %175 to i1
  br i1 %176, label %177, label %183

177:                                              ; preds = %172
  %178 = load ptr, ptr %15, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %178, i32 0, i32 0
  %180 = load i32, ptr %179, align 4, !tbaa !121
  %181 = and i32 %180, 1
  %182 = icmp eq i32 %181, 0
  br label %183

183:                                              ; preds = %177, %172
  %184 = phi i1 [ false, %172 ], [ %182, %177 ]
  %185 = load ptr, ptr %15, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %185, i32 0, i32 26
  %187 = zext i1 %184 to i8
  store i8 %187, ptr %186, align 2, !tbaa !125
  %188 = load ptr, ptr %15, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %188, i32 0, i32 22
  %190 = load i16, ptr %189, align 2, !tbaa !126
  %191 = sext i16 %190 to i32
  %192 = icmp ne i32 %191, -1
  br i1 %192, label %193, label %201

193:                                              ; preds = %183
  %194 = load ptr, ptr %15, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %194, i32 0, i32 26
  %196 = load i8, ptr %195, align 2, !tbaa !125, !range !27, !noundef !28
  %197 = trunc i8 %196 to i1
  br i1 %197, label %201, label %198

198:                                              ; preds = %193
  %199 = load ptr, ptr %2, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.ImGuiTable, ptr %199, i32 0, i32 95
  store i8 1, ptr %200, align 1, !tbaa !127
  br label %201

201:                                              ; preds = %198, %193, %183
  %202 = load ptr, ptr %15, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %202, i32 0, i32 22
  %204 = load i16, ptr %203, align 2, !tbaa !126
  %205 = sext i16 %204 to i32
  %206 = icmp sgt i32 %205, 0
  br i1 %206, label %207, label %216

207:                                              ; preds = %201
  %208 = load ptr, ptr %2, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.ImGuiTable, ptr %208, i32 0, i32 1
  %210 = load i32, ptr %209, align 4, !tbaa !29
  %211 = and i32 %210, 67108864
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %216, label %213

213:                                              ; preds = %207
  %214 = load ptr, ptr %2, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.ImGuiTable, ptr %214, i32 0, i32 95
  store i8 1, ptr %215, align 1, !tbaa !127
  br label %216

216:                                              ; preds = %213, %207, %201
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #10
  %217 = load ptr, ptr %15, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %217, i32 0, i32 0
  %219 = load i32, ptr %218, align 4, !tbaa !121
  %220 = and i32 %219, 16
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %222, label %227

222:                                              ; preds = %216
  %223 = load ptr, ptr %15, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %223, i32 0, i32 4
  %225 = load float, ptr %224, align 4, !tbaa !128
  %226 = fcmp olt float %225, 0.000000e+00
  br label %232

227:                                              ; preds = %216
  %228 = load ptr, ptr %15, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %228, i32 0, i32 6
  %230 = load float, ptr %229, align 4, !tbaa !129
  %231 = fcmp olt float %230, 0.000000e+00
  br label %232

232:                                              ; preds = %227, %222
  %233 = phi i1 [ %226, %222 ], [ %231, %227 ]
  %234 = zext i1 %233 to i8
  store i8 %234, ptr %16, align 1, !tbaa !113
  %235 = load i8, ptr %16, align 1, !tbaa !113, !range !27, !noundef !28
  %236 = trunc i8 %235 to i1
  br i1 %236, label %237, label %242

237:                                              ; preds = %232
  %238 = load ptr, ptr %15, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %238, i32 0, i32 36
  store i8 7, ptr %239, align 4, !tbaa !130
  %240 = load ptr, ptr %15, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %240, i32 0, i32 35
  store i8 7, ptr %241, align 1, !tbaa !131
  br label %242

242:                                              ; preds = %237, %232
  %243 = load ptr, ptr %15, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %243, i32 0, i32 26
  %245 = load i8, ptr %244, align 2, !tbaa !125, !range !27, !noundef !28
  %246 = trunc i8 %245 to i1
  br i1 %246, label %250, label %247

247:                                              ; preds = %242
  %248 = load ptr, ptr %15, align 8, !tbaa !5
  %249 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %248, i32 0, i32 19
  store i16 -1, ptr %249, align 4, !tbaa !132
  store i32 4, ptr %13, align 4
  br label %374

250:                                              ; preds = %242
  %251 = load i32, ptr %7, align 4, !tbaa !30
  %252 = trunc i32 %251 to i16
  %253 = load ptr, ptr %15, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %253, i32 0, i32 20
  store i16 %252, ptr %254, align 2, !tbaa !133
  %255 = load ptr, ptr %15, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %255, i32 0, i32 21
  store i16 -1, ptr %256, align 4, !tbaa !134
  %257 = load i32, ptr %7, align 4, !tbaa !30
  %258 = icmp ne i32 %257, -1
  br i1 %258, label %259, label %267

259:                                              ; preds = %250
  %260 = load i32, ptr %14, align 4, !tbaa !30
  %261 = trunc i32 %260 to i16
  %262 = load ptr, ptr %2, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.ImGuiTable, ptr %262, i32 0, i32 4
  %264 = load i32, ptr %7, align 4, !tbaa !30
  %265 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %263, i32 noundef %264)
  %266 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %265, i32 0, i32 21
  store i16 %261, ptr %266, align 4, !tbaa !134
  br label %272

267:                                              ; preds = %250
  %268 = load i32, ptr %14, align 4, !tbaa !30
  %269 = trunc i32 %268 to i16
  %270 = load ptr, ptr %2, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.ImGuiTable, ptr %270, i32 0, i32 79
  store i16 %269, ptr %271, align 4, !tbaa !36
  br label %272

272:                                              ; preds = %267, %259
  %273 = load ptr, ptr %2, align 8, !tbaa !5
  %274 = getelementptr inbounds %struct.ImGuiTable, ptr %273, i32 0, i32 66
  %275 = load i16, ptr %274, align 2, !tbaa !32
  %276 = add i16 %275, 1
  store i16 %276, ptr %274, align 2, !tbaa !32
  %277 = load ptr, ptr %15, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %277, i32 0, i32 19
  store i16 %275, ptr %278, align 4, !tbaa !132
  %279 = load ptr, ptr %2, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.ImGuiTable, ptr %279, i32 0, i32 8
  %281 = load ptr, ptr %280, align 8, !tbaa !33
  %282 = load i32, ptr %14, align 4, !tbaa !30
  call void @_Z16ImBitArraySetBitPji(ptr noundef %281, i32 noundef %282)
  %283 = load ptr, ptr %2, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.ImGuiTable, ptr %283, i32 0, i32 7
  %285 = load ptr, ptr %284, align 8, !tbaa !35
  %286 = load ptr, ptr %15, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %286, i32 0, i32 18
  %288 = load i16, ptr %287, align 2, !tbaa !135
  %289 = sext i16 %288 to i32
  call void @_Z16ImBitArraySetBitPji(ptr noundef %285, i32 noundef %289)
  %290 = load i32, ptr %14, align 4, !tbaa !30
  store i32 %290, ptr %7, align 4, !tbaa !30
  %291 = load ptr, ptr %15, align 8, !tbaa !5
  %292 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %291, i32 0, i32 19
  %293 = load i16, ptr %292, align 4, !tbaa !132
  %294 = sext i16 %293 to i32
  %295 = load ptr, ptr %15, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %295, i32 0, i32 18
  %297 = load i16, ptr %296, align 2, !tbaa !135
  %298 = sext i16 %297 to i32
  %299 = icmp sle i32 %294, %298
  br i1 %299, label %300, label %301

300:                                              ; preds = %272
  br label %303

301:                                              ; preds = %272
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 843, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

302:                                              ; No predecessors!
  br label %303

303:                                              ; preds = %302, %300
  %304 = load ptr, ptr %15, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %304, i32 0, i32 33
  %306 = load i8, ptr %305, align 1, !tbaa !136, !range !27, !noundef !28
  %307 = trunc i8 %306 to i1
  br i1 %307, label %314, label %308

308:                                              ; preds = %303
  %309 = load ptr, ptr %2, align 8, !tbaa !5
  %310 = load ptr, ptr %15, align 8, !tbaa !5
  %311 = call noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef %309, ptr noundef %310)
  %312 = load ptr, ptr %15, align 8, !tbaa !5
  %313 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %312, i32 0, i32 5
  store float %311, ptr %313, align 4, !tbaa !137
  br label %314

314:                                              ; preds = %308, %303
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #10
  %315 = load ptr, ptr %15, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %315, i32 0, i32 0
  %317 = load i32, ptr %316, align 4, !tbaa !121
  %318 = and i32 %317, 32
  %319 = icmp eq i32 %318, 0
  %320 = zext i1 %319 to i8
  store i8 %320, ptr %17, align 1, !tbaa !113
  %321 = load i8, ptr %17, align 1, !tbaa !113, !range !27, !noundef !28
  %322 = trunc i8 %321 to i1
  br i1 %322, label %323, label %324

323:                                              ; preds = %314
  store i8 1, ptr %9, align 1, !tbaa !113
  br label %324

324:                                              ; preds = %323, %314
  %325 = load ptr, ptr %15, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %325, i32 0, i32 0
  %327 = load i32, ptr %326, align 4, !tbaa !121
  %328 = and i32 %327, 16
  %329 = icmp ne i32 %328, 0
  br i1 %329, label %330, label %344

330:                                              ; preds = %324
  %331 = load ptr, ptr %15, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %331, i32 0, i32 7
  %333 = load float, ptr %332, align 4, !tbaa !120
  %334 = fcmp ogt float %333, 0.000000e+00
  br i1 %334, label %335, label %344

335:                                              ; preds = %330
  %336 = load i8, ptr %17, align 1, !tbaa !113, !range !27, !noundef !28
  %337 = trunc i8 %336 to i1
  br i1 %337, label %344, label %338

338:                                              ; preds = %335
  %339 = load ptr, ptr %15, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %339, i32 0, i32 7
  %341 = load float, ptr %340, align 4, !tbaa !120
  %342 = load ptr, ptr %15, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %342, i32 0, i32 5
  store float %341, ptr %343, align 4, !tbaa !137
  br label %344

344:                                              ; preds = %338, %335, %330, %324
  %345 = load ptr, ptr %15, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %345, i32 0, i32 35
  %347 = load i8, ptr %346, align 1, !tbaa !131
  %348 = zext i8 %347 to i32
  %349 = icmp ne i32 %348, 0
  br i1 %349, label %350, label %351

350:                                              ; preds = %344
  store i8 1, ptr %8, align 1, !tbaa !113
  br label %351

351:                                              ; preds = %350, %344
  %352 = load ptr, ptr %15, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %352, i32 0, i32 0
  %354 = load i32, ptr %353, align 4, !tbaa !121
  %355 = and i32 %354, 8
  %356 = icmp ne i32 %355, 0
  br i1 %356, label %357, label %365

357:                                              ; preds = %351
  %358 = load ptr, ptr %15, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %358, i32 0, i32 5
  %360 = load float, ptr %359, align 4, !tbaa !137
  %361 = load float, ptr %10, align 4, !tbaa !114
  %362 = fadd float %361, %360
  store float %362, ptr %10, align 4, !tbaa !114
  %363 = load i32, ptr %6, align 4, !tbaa !30
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr %6, align 4, !tbaa !30
  br label %373

365:                                              ; preds = %351
  %366 = load float, ptr %11, align 4, !tbaa !114
  %367 = load ptr, ptr %15, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %367, i32 0, i32 5
  %369 = load float, ptr %368, align 4, !tbaa !137
  %370 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %366, float noundef %369)
  store float %370, ptr %11, align 4, !tbaa !114
  %371 = load i32, ptr %5, align 4, !tbaa !30
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr %5, align 4, !tbaa !30
  br label %373

373:                                              ; preds = %365, %357
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #10
  store i32 0, ptr %13, align 4
  br label %374

374:                                              ; preds = %373, %247
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  %375 = load i32, ptr %13, align 4
  switch i32 %375, label %1935 [
    i32 0, label %376
    i32 4, label %377
  ]

376:                                              ; preds = %374
  br label %377

377:                                              ; preds = %376, %374
  %378 = load i32, ptr %12, align 4, !tbaa !30
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr %12, align 4, !tbaa !30
  br label %95, !llvm.loop !138

380:                                              ; preds = %101
  %381 = load ptr, ptr %2, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.ImGuiTable, ptr %381, i32 0, i32 1
  %383 = load i32, ptr %382, align 4, !tbaa !29
  %384 = and i32 %383, 8
  %385 = icmp ne i32 %384, 0
  br i1 %385, label %386, label %401

386:                                              ; preds = %380
  %387 = load ptr, ptr %2, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.ImGuiTable, ptr %387, i32 0, i32 65
  %389 = load i16, ptr %388, align 8, !tbaa !140
  %390 = sext i16 %389 to i32
  %391 = icmp eq i32 %390, 0
  br i1 %391, label %392, label %401

392:                                              ; preds = %386
  %393 = load ptr, ptr %2, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.ImGuiTable, ptr %393, i32 0, i32 1
  %395 = load i32, ptr %394, align 4, !tbaa !29
  %396 = and i32 %395, 134217728
  %397 = icmp ne i32 %396, 0
  br i1 %397, label %401, label %398

398:                                              ; preds = %392
  %399 = load ptr, ptr %2, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImGuiTable, ptr %399, i32 0, i32 95
  store i8 1, ptr %400, align 1, !tbaa !127
  br label %401

401:                                              ; preds = %398, %392, %386, %380
  %402 = load i32, ptr %7, align 4, !tbaa !30
  %403 = trunc i32 %402 to i16
  %404 = load ptr, ptr %2, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.ImGuiTable, ptr %404, i32 0, i32 80
  store i16 %403, ptr %405, align 2, !tbaa !141
  %406 = load ptr, ptr %2, align 8, !tbaa !5
  %407 = getelementptr inbounds %struct.ImGuiTable, ptr %406, i32 0, i32 79
  %408 = load i16, ptr %407, align 4, !tbaa !36
  %409 = sext i16 %408 to i32
  %410 = icmp sge i32 %409, 0
  br i1 %410, label %411, label %417

411:                                              ; preds = %401
  %412 = load ptr, ptr %2, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.ImGuiTable, ptr %412, i32 0, i32 80
  %414 = load i16, ptr %413, align 2, !tbaa !141
  %415 = sext i16 %414 to i32
  %416 = icmp sge i32 %415, 0
  br label %417

417:                                              ; preds = %411, %401
  %418 = phi i1 [ false, %401 ], [ %416, %411 ]
  br i1 %418, label %419, label %420

419:                                              ; preds = %417
  br label %422

420:                                              ; preds = %417
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 873, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

421:                                              ; No predecessors!
  br label %422

422:                                              ; preds = %421, %419
  %423 = load i8, ptr %8, align 1, !tbaa !113, !range !27, !noundef !28
  %424 = trunc i8 %423 to i1
  br i1 %424, label %425, label %438

425:                                              ; preds = %422
  %426 = load ptr, ptr %2, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.ImGuiTable, ptr %426, i32 0, i32 55
  %428 = load ptr, ptr %427, align 8, !tbaa !142
  %429 = load ptr, ptr %2, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.ImGuiTable, ptr %429, i32 0, i32 56
  %431 = load ptr, ptr %430, align 8, !tbaa !143
  %432 = icmp ne ptr %428, %431
  br i1 %432, label %433, label %438

433:                                              ; preds = %425
  %434 = load ptr, ptr %2, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.ImGuiTable, ptr %434, i32 0, i32 56
  %436 = load ptr, ptr %435, align 8, !tbaa !143
  %437 = getelementptr inbounds %struct.ImGuiWindow, ptr %436, i32 0, i32 44
  store i8 0, ptr %437, align 8, !tbaa !144
  br label %438

438:                                              ; preds = %433, %425, %422
  %439 = load i8, ptr %8, align 1, !tbaa !113, !range !27, !noundef !28
  %440 = trunc i8 %439 to i1
  br i1 %440, label %441, label %444

441:                                              ; preds = %438
  %442 = load ptr, ptr %2, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.ImGuiTable, ptr %442, i32 0, i32 100
  store i8 1, ptr %443, align 2, !tbaa !124
  br label %444

444:                                              ; preds = %441, %438
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  store float 0.000000e+00, ptr %18, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  store float 0.000000e+00, ptr %19, align 4, !tbaa !114
  %445 = load ptr, ptr %2, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.ImGuiTable, ptr %445, i32 0, i32 82
  store i16 -1, ptr %446, align 2, !tbaa !159
  %447 = load ptr, ptr %2, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.ImGuiTable, ptr %447, i32 0, i32 81
  store i16 -1, ptr %448, align 8, !tbaa !160
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !30
  br label %449

449:                                              ; preds = %678, %444
  %450 = load i32, ptr %20, align 4, !tbaa !30
  %451 = load ptr, ptr %2, align 8, !tbaa !5
  %452 = getelementptr inbounds %struct.ImGuiTable, ptr %451, i32 0, i32 13
  %453 = load i32, ptr %452, align 4, !tbaa !34
  %454 = icmp slt i32 %450, %453
  br i1 %454, label %456, label %455

455:                                              ; preds = %449
  store i32 5, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %681

456:                                              ; preds = %449
  %457 = load ptr, ptr %2, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.ImGuiTable, ptr %457, i32 0, i32 8
  %459 = load ptr, ptr %458, align 8, !tbaa !33
  %460 = load i32, ptr %20, align 4, !tbaa !30
  %461 = ashr i32 %460, 5
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds i32, ptr %459, i64 %462
  %464 = load i32, ptr %463, align 4, !tbaa !30
  %465 = load i32, ptr %20, align 4, !tbaa !30
  %466 = and i32 %465, 31
  %467 = shl i32 1, %466
  %468 = and i32 %464, %467
  %469 = icmp ne i32 %468, 0
  br i1 %469, label %471, label %470

470:                                              ; preds = %456
  br label %678

471:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %472 = load ptr, ptr %2, align 8, !tbaa !5
  %473 = getelementptr inbounds %struct.ImGuiTable, ptr %472, i32 0, i32 4
  %474 = load i32, ptr %20, align 4, !tbaa !30
  %475 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %473, i32 noundef %474)
  store ptr %475, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #10
  %476 = load ptr, ptr %21, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %476, i32 0, i32 0
  %478 = load i32, ptr %477, align 4, !tbaa !121
  %479 = and i32 %478, 32
  %480 = icmp eq i32 %479, 0
  %481 = zext i1 %480 to i8
  store i8 %481, ptr %22, align 1, !tbaa !113
  %482 = load ptr, ptr %21, align 8, !tbaa !5
  %483 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %482, i32 0, i32 0
  %484 = load i32, ptr %483, align 4, !tbaa !121
  %485 = and i32 %484, 16
  %486 = icmp ne i32 %485, 0
  br i1 %486, label %487, label %566

487:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %488 = load ptr, ptr %21, align 8, !tbaa !5
  %489 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %488, i32 0, i32 5
  %490 = load float, ptr %489, align 4, !tbaa !137
  store float %490, ptr %23, align 4, !tbaa !114
  %491 = load i32, ptr %4, align 4, !tbaa !30
  %492 = icmp eq i32 %491, 16384
  br i1 %492, label %493, label %504

493:                                              ; preds = %487
  %494 = load ptr, ptr %21, align 8, !tbaa !5
  %495 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %494, i32 0, i32 35
  %496 = load i8, ptr %495, align 1, !tbaa !131
  %497 = zext i8 %496 to i32
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %502, label %499

499:                                              ; preds = %493
  %500 = load i8, ptr %22, align 1, !tbaa !113, !range !27, !noundef !28
  %501 = trunc i8 %500 to i1
  br i1 %501, label %504, label %502

502:                                              ; preds = %499, %493
  %503 = load float, ptr %11, align 4, !tbaa !114
  store float %503, ptr %23, align 4, !tbaa !114
  br label %504

504:                                              ; preds = %502, %499, %487
  %505 = load ptr, ptr %21, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %505, i32 0, i32 35
  %507 = load i8, ptr %506, align 1, !tbaa !131
  %508 = zext i8 %507 to i32
  %509 = icmp ne i32 %508, 0
  br i1 %509, label %510, label %514

510:                                              ; preds = %504
  %511 = load float, ptr %23, align 4, !tbaa !114
  %512 = load ptr, ptr %21, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %512, i32 0, i32 4
  store float %511, ptr %513, align 4, !tbaa !128
  br label %533

514:                                              ; preds = %504
  %515 = load ptr, ptr %21, align 8, !tbaa !5
  %516 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %515, i32 0, i32 0
  %517 = load i32, ptr %516, align 4, !tbaa !121
  %518 = and i32 %517, 16
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %532

520:                                              ; preds = %514
  %521 = load i8, ptr %22, align 1, !tbaa !113, !range !27, !noundef !28
  %522 = trunc i8 %521 to i1
  br i1 %522, label %532, label %523

523:                                              ; preds = %520
  %524 = load ptr, ptr %21, align 8, !tbaa !5
  %525 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %524, i32 0, i32 31
  %526 = load i8, ptr %525, align 1, !tbaa !161, !range !27, !noundef !28
  %527 = trunc i8 %526 to i1
  br i1 %527, label %528, label %532

528:                                              ; preds = %523
  %529 = load float, ptr %23, align 4, !tbaa !114
  %530 = load ptr, ptr %21, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %530, i32 0, i32 4
  store float %529, ptr %531, align 4, !tbaa !128
  br label %532

532:                                              ; preds = %528, %523, %520, %514
  br label %533

533:                                              ; preds = %532, %510
  %534 = load ptr, ptr %21, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %534, i32 0, i32 35
  %536 = load i8, ptr %535, align 1, !tbaa !131
  %537 = zext i8 %536 to i32
  %538 = icmp sgt i32 %537, 1
  br i1 %538, label %539, label %560

539:                                              ; preds = %533
  %540 = load ptr, ptr %2, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.ImGuiTable, ptr %540, i32 0, i32 94
  %542 = load i8, ptr %541, align 8, !tbaa !162, !range !27, !noundef !28
  %543 = trunc i8 %542 to i1
  br i1 %543, label %544, label %560

544:                                              ; preds = %539
  %545 = load ptr, ptr %21, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %545, i32 0, i32 33
  %547 = load i8, ptr %546, align 1, !tbaa !136, !range !27, !noundef !28
  %548 = trunc i8 %547 to i1
  br i1 %548, label %560, label %549

549:                                              ; preds = %544
  %550 = load ptr, ptr %21, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %550, i32 0, i32 4
  %552 = load float, ptr %551, align 4, !tbaa !128
  %553 = load ptr, ptr %2, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.ImGuiTable, ptr %553, i32 0, i32 32
  %555 = load float, ptr %554, align 8, !tbaa !112
  %556 = fmul float %555, 4.000000e+00
  %557 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %552, float noundef %556)
  %558 = load ptr, ptr %21, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %558, i32 0, i32 4
  store float %557, ptr %559, align 4, !tbaa !128
  br label %560

560:                                              ; preds = %549, %544, %539, %533
  %561 = load ptr, ptr %21, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %561, i32 0, i32 4
  %563 = load float, ptr %562, align 4, !tbaa !128
  %564 = load float, ptr %18, align 4, !tbaa !114
  %565 = fadd float %564, %563
  store float %565, ptr %18, align 4, !tbaa !114
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %670

566:                                              ; preds = %471
  %567 = load ptr, ptr %21, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %567, i32 0, i32 35
  %569 = load i8, ptr %568, align 1, !tbaa !131
  %570 = zext i8 %569 to i32
  %571 = icmp ne i32 %570, 0
  br i1 %571, label %580, label %572

572:                                              ; preds = %566
  %573 = load ptr, ptr %21, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %573, i32 0, i32 6
  %575 = load float, ptr %574, align 4, !tbaa !129
  %576 = fcmp olt float %575, 0.000000e+00
  br i1 %576, label %580, label %577

577:                                              ; preds = %572
  %578 = load i8, ptr %22, align 1, !tbaa !113, !range !27, !noundef !28
  %579 = trunc i8 %578 to i1
  br i1 %579, label %610, label %580

580:                                              ; preds = %577, %572, %566
  %581 = load ptr, ptr %21, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %581, i32 0, i32 7
  %583 = load float, ptr %582, align 4, !tbaa !120
  %584 = fcmp ogt float %583, 0.000000e+00
  br i1 %584, label %585, label %591

585:                                              ; preds = %580
  %586 = load ptr, ptr %21, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %586, i32 0, i32 7
  %588 = load float, ptr %587, align 4, !tbaa !120
  %589 = load ptr, ptr %21, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %589, i32 0, i32 6
  store float %588, ptr %590, align 4, !tbaa !129
  br label %609

591:                                              ; preds = %580
  %592 = load i32, ptr %4, align 4, !tbaa !30
  %593 = icmp eq i32 %592, 24576
  br i1 %593, label %594, label %605

594:                                              ; preds = %591
  %595 = load ptr, ptr %21, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %595, i32 0, i32 5
  %597 = load float, ptr %596, align 4, !tbaa !137
  %598 = load float, ptr %10, align 4, !tbaa !114
  %599 = fdiv float %597, %598
  %600 = load i32, ptr %6, align 4, !tbaa !30
  %601 = sitofp i32 %600 to float
  %602 = fmul float %599, %601
  %603 = load ptr, ptr %21, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %603, i32 0, i32 6
  store float %602, ptr %604, align 4, !tbaa !129
  br label %608

605:                                              ; preds = %591
  %606 = load ptr, ptr %21, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %606, i32 0, i32 6
  store float 1.000000e+00, ptr %607, align 4, !tbaa !129
  br label %608

608:                                              ; preds = %605, %594
  br label %609

609:                                              ; preds = %608, %585
  br label %610

610:                                              ; preds = %609, %577
  %611 = load ptr, ptr %21, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %611, i32 0, i32 6
  %613 = load float, ptr %612, align 4, !tbaa !129
  %614 = load float, ptr %19, align 4, !tbaa !114
  %615 = fadd float %614, %613
  store float %615, ptr %19, align 4, !tbaa !114
  %616 = load ptr, ptr %2, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ImGuiTable, ptr %616, i32 0, i32 81
  %618 = load i16, ptr %617, align 8, !tbaa !160
  %619 = sext i16 %618 to i32
  %620 = icmp eq i32 %619, -1
  br i1 %620, label %637, label %621

621:                                              ; preds = %610
  %622 = load ptr, ptr %2, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.ImGuiTable, ptr %622, i32 0, i32 4
  %624 = load ptr, ptr %2, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.ImGuiTable, ptr %624, i32 0, i32 81
  %626 = load i16, ptr %625, align 8, !tbaa !160
  %627 = sext i16 %626 to i32
  %628 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %623, i32 noundef %627)
  %629 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %628, i32 0, i32 18
  %630 = load i16, ptr %629, align 2, !tbaa !135
  %631 = sext i16 %630 to i32
  %632 = load ptr, ptr %21, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %632, i32 0, i32 18
  %634 = load i16, ptr %633, align 2, !tbaa !135
  %635 = sext i16 %634 to i32
  %636 = icmp sgt i32 %631, %635
  br i1 %636, label %637, label %642

637:                                              ; preds = %621, %610
  %638 = load i32, ptr %20, align 4, !tbaa !30
  %639 = trunc i32 %638 to i16
  %640 = load ptr, ptr %2, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.ImGuiTable, ptr %640, i32 0, i32 81
  store i16 %639, ptr %641, align 8, !tbaa !160
  br label %642

642:                                              ; preds = %637, %621
  %643 = load ptr, ptr %2, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.ImGuiTable, ptr %643, i32 0, i32 82
  %645 = load i16, ptr %644, align 2, !tbaa !159
  %646 = sext i16 %645 to i32
  %647 = icmp eq i32 %646, -1
  br i1 %647, label %664, label %648

648:                                              ; preds = %642
  %649 = load ptr, ptr %2, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct.ImGuiTable, ptr %649, i32 0, i32 4
  %651 = load ptr, ptr %2, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.ImGuiTable, ptr %651, i32 0, i32 82
  %653 = load i16, ptr %652, align 2, !tbaa !159
  %654 = sext i16 %653 to i32
  %655 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %650, i32 noundef %654)
  %656 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %655, i32 0, i32 18
  %657 = load i16, ptr %656, align 2, !tbaa !135
  %658 = sext i16 %657 to i32
  %659 = load ptr, ptr %21, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %659, i32 0, i32 18
  %661 = load i16, ptr %660, align 2, !tbaa !135
  %662 = sext i16 %661 to i32
  %663 = icmp slt i32 %658, %662
  br i1 %663, label %664, label %669

664:                                              ; preds = %648, %642
  %665 = load i32, ptr %20, align 4, !tbaa !30
  %666 = trunc i32 %665 to i16
  %667 = load ptr, ptr %2, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.ImGuiTable, ptr %667, i32 0, i32 82
  store i16 %666, ptr %668, align 2, !tbaa !159
  br label %669

669:                                              ; preds = %664, %648
  br label %670

670:                                              ; preds = %669, %560
  %671 = load ptr, ptr %21, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %671, i32 0, i32 33
  store i8 0, ptr %672, align 1, !tbaa !136
  %673 = load ptr, ptr %2, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.ImGuiTable, ptr %673, i32 0, i32 34
  %675 = load float, ptr %674, align 8, !tbaa !163
  %676 = load float, ptr %18, align 4, !tbaa !114
  %677 = call float @llvm.fmuladd.f32(float %675, float 2.000000e+00, float %676)
  store float %677, ptr %18, align 4, !tbaa !114
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %678

678:                                              ; preds = %670, %470
  %679 = load i32, ptr %20, align 4, !tbaa !30
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr %20, align 4, !tbaa !30
  br label %449, !llvm.loop !164

681:                                              ; preds = %455
  %682 = load i32, ptr %5, align 4, !tbaa !30
  %683 = trunc i32 %682 to i16
  %684 = load ptr, ptr %2, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.ImGuiTable, ptr %684, i32 0, i32 67
  store i16 %683, ptr %685, align 4, !tbaa !165
  %686 = load float, ptr %19, align 4, !tbaa !114
  %687 = load ptr, ptr %2, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.ImGuiTable, ptr %687, i32 0, i32 40
  store float %686, ptr %688, align 8, !tbaa !166
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #10
  %689 = load ptr, ptr %2, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.ImGuiTable, ptr %689, i32 0, i32 48
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 8 %690, i64 16, i1 false), !tbaa.struct !167
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %691 = load ptr, ptr %2, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.ImGuiTable, ptr %691, i32 0, i32 33
  %693 = load float, ptr %692, align 4, !tbaa !168
  %694 = load ptr, ptr %2, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiTable, ptr %694, i32 0, i32 35
  %696 = load float, ptr %695, align 4, !tbaa !169
  %697 = load ptr, ptr %2, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.ImGuiTable, ptr %697, i32 0, i32 36
  %699 = load float, ptr %698, align 8, !tbaa !170
  %700 = fadd float %696, %699
  %701 = load ptr, ptr %2, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.ImGuiTable, ptr %701, i32 0, i32 66
  %703 = load i16, ptr %702, align 2, !tbaa !32
  %704 = sext i16 %703 to i32
  %705 = sub nsw i32 %704, 1
  %706 = sitofp i32 %705 to float
  %707 = fmul float %700, %706
  %708 = call float @llvm.fmuladd.f32(float %693, float 2.000000e+00, float %707)
  store float %708, ptr %25, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %709 = load ptr, ptr %2, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.ImGuiTable, ptr %709, i32 0, i32 109
  %711 = load i8, ptr %710, align 1, !tbaa !171, !range !27, !noundef !28
  %712 = trunc i8 %711 to i1
  br i1 %712, label %713, label %725

713:                                              ; preds = %681
  %714 = load ptr, ptr %2, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.ImGuiTable, ptr %714, i32 0, i32 56
  %716 = load ptr, ptr %715, align 8, !tbaa !143
  %717 = getelementptr inbounds %struct.ImGuiWindow, ptr %716, i32 0, i32 37
  %718 = load i8, ptr %717, align 1, !tbaa !172, !range !27, !noundef !28
  %719 = trunc i8 %718 to i1
  br i1 %719, label %725, label %720

720:                                              ; preds = %713
  %721 = load ptr, ptr %3, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.ImGuiContext, ptr %721, i32 0, i32 4
  %723 = getelementptr inbounds %struct.ImGuiStyle, ptr %722, i32 0, i32 21
  %724 = load float, ptr %723, align 4, !tbaa !173
  br label %726

725:                                              ; preds = %713, %681
  br label %726

726:                                              ; preds = %725, %720
  %727 = phi float [ %724, %720 ], [ 0.000000e+00, %725 ]
  store float %727, ptr %26, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %728 = load ptr, ptr %2, align 8, !tbaa !5
  %729 = getelementptr inbounds %struct.ImGuiTable, ptr %728, i32 0, i32 1
  %730 = load i32, ptr %729, align 4, !tbaa !29
  %731 = and i32 %730, 16777216
  %732 = icmp ne i32 %731, 0
  br i1 %732, label %733, label %742

733:                                              ; preds = %726
  %734 = load ptr, ptr %2, align 8, !tbaa !5
  %735 = getelementptr inbounds %struct.ImGuiTable, ptr %734, i32 0, i32 37
  %736 = load float, ptr %735, align 4, !tbaa !174
  %737 = fcmp oeq float %736, 0.000000e+00
  br i1 %737, label %738, label %742

738:                                              ; preds = %733
  %739 = load ptr, ptr %2, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.ImGuiTable, ptr %739, i32 0, i32 49
  %741 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %740)
  br label %744

742:                                              ; preds = %733, %726
  %743 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %24)
  br label %744

744:                                              ; preds = %742, %738
  %745 = phi float [ %741, %738 ], [ %743, %742 ]
  %746 = load float, ptr %26, align 4, !tbaa !114
  %747 = fsub float %745, %746
  %748 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %747)
  store float %748, ptr %27, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %749 = load float, ptr %27, align 4, !tbaa !114
  %750 = load float, ptr %25, align 4, !tbaa !114
  %751 = fsub float %749, %750
  %752 = load float, ptr %18, align 4, !tbaa !114
  %753 = fsub float %751, %752
  store float %753, ptr %28, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %754 = load float, ptr %28, align 4, !tbaa !114
  store float %754, ptr %29, align 4, !tbaa !114
  %755 = load float, ptr %25, align 4, !tbaa !114
  %756 = load ptr, ptr %2, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.ImGuiTable, ptr %756, i32 0, i32 34
  %758 = load float, ptr %757, align 8, !tbaa !163
  %759 = fmul float %758, 2.000000e+00
  %760 = load ptr, ptr %2, align 8, !tbaa !5
  %761 = getelementptr inbounds %struct.ImGuiTable, ptr %760, i32 0, i32 66
  %762 = load i16, ptr %761, align 2, !tbaa !32
  %763 = sext i16 %762 to i32
  %764 = sitofp i32 %763 to float
  %765 = call float @llvm.fmuladd.f32(float %759, float %764, float %755)
  %766 = load ptr, ptr %2, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.ImGuiTable, ptr %766, i32 0, i32 38
  store float %765, ptr %767, align 8, !tbaa !175
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  store i32 0, ptr %30, align 4, !tbaa !30
  br label %768

768:                                              ; preds = %858, %744
  %769 = load i32, ptr %30, align 4, !tbaa !30
  %770 = load ptr, ptr %2, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.ImGuiTable, ptr %770, i32 0, i32 13
  %772 = load i32, ptr %771, align 4, !tbaa !34
  %773 = icmp slt i32 %769, %772
  br i1 %773, label %775, label %774

774:                                              ; preds = %768
  store i32 8, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %861

775:                                              ; preds = %768
  %776 = load ptr, ptr %2, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.ImGuiTable, ptr %776, i32 0, i32 8
  %778 = load ptr, ptr %777, align 8, !tbaa !33
  %779 = load i32, ptr %30, align 4, !tbaa !30
  %780 = ashr i32 %779, 5
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds i32, ptr %778, i64 %781
  %783 = load i32, ptr %782, align 4, !tbaa !30
  %784 = load i32, ptr %30, align 4, !tbaa !30
  %785 = and i32 %784, 31
  %786 = shl i32 1, %785
  %787 = and i32 %783, %786
  %788 = icmp ne i32 %787, 0
  br i1 %788, label %790, label %789

789:                                              ; preds = %775
  br label %858

790:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %791 = load ptr, ptr %2, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.ImGuiTable, ptr %791, i32 0, i32 4
  %793 = load i32, ptr %30, align 4, !tbaa !30
  %794 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %792, i32 noundef %793)
  store ptr %794, ptr %31, align 8, !tbaa !5
  %795 = load ptr, ptr %31, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %795, i32 0, i32 0
  %797 = load i32, ptr %796, align 4, !tbaa !121
  %798 = and i32 %797, 8
  %799 = icmp ne i32 %798, 0
  br i1 %799, label %800, label %823

800:                                              ; preds = %790
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %801 = load ptr, ptr %31, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %801, i32 0, i32 6
  %803 = load float, ptr %802, align 4, !tbaa !129
  %804 = load float, ptr %19, align 4, !tbaa !114
  %805 = fdiv float %803, %804
  store float %805, ptr %32, align 4, !tbaa !114
  %806 = load float, ptr %28, align 4, !tbaa !114
  %807 = load float, ptr %32, align 4, !tbaa !114
  %808 = fmul float %806, %807
  %809 = load ptr, ptr %2, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.ImGuiTable, ptr %809, i32 0, i32 32
  %811 = load float, ptr %810, align 8, !tbaa !112
  %812 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %808, float noundef %811)
  %813 = fadd float %812, 0x3F847AE140000000
  %814 = fptosi float %813 to i32
  %815 = sitofp i32 %814 to float
  %816 = load ptr, ptr %31, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %816, i32 0, i32 4
  store float %815, ptr %817, align 4, !tbaa !128
  %818 = load ptr, ptr %31, align 8, !tbaa !5
  %819 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %818, i32 0, i32 4
  %820 = load float, ptr %819, align 4, !tbaa !128
  %821 = load float, ptr %29, align 4, !tbaa !114
  %822 = fsub float %821, %820
  store float %822, ptr %29, align 4, !tbaa !114
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %823

823:                                              ; preds = %800, %790
  %824 = load ptr, ptr %31, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %824, i32 0, i32 21
  %826 = load i16, ptr %825, align 4, !tbaa !134
  %827 = sext i16 %826 to i32
  %828 = icmp eq i32 %827, -1
  br i1 %828, label %829, label %840

829:                                              ; preds = %823
  %830 = load ptr, ptr %2, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.ImGuiTable, ptr %830, i32 0, i32 81
  %832 = load i16, ptr %831, align 8, !tbaa !160
  %833 = sext i16 %832 to i32
  %834 = icmp ne i32 %833, -1
  br i1 %834, label %835, label %840

835:                                              ; preds = %829
  %836 = load ptr, ptr %31, align 8, !tbaa !5
  %837 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %836, i32 0, i32 0
  %838 = load i32, ptr %837, align 4, !tbaa !121
  %839 = or i32 %838, 1073741824
  store i32 %839, ptr %837, align 4, !tbaa !121
  br label %840

840:                                              ; preds = %835, %829, %823
  %841 = load ptr, ptr %31, align 8, !tbaa !5
  %842 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %841, i32 0, i32 4
  %843 = load float, ptr %842, align 4, !tbaa !128
  %844 = load ptr, ptr %2, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.ImGuiTable, ptr %844, i32 0, i32 32
  %846 = load float, ptr %845, align 8, !tbaa !112
  %847 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %843, float noundef %846)
  %848 = call noundef float @_ZL7ImTruncf(float noundef %847)
  %849 = load ptr, ptr %31, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %849, i32 0, i32 1
  store float %848, ptr %850, align 4, !tbaa !176
  %851 = load ptr, ptr %31, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %851, i32 0, i32 1
  %853 = load float, ptr %852, align 4, !tbaa !176
  %854 = load ptr, ptr %2, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.ImGuiTable, ptr %854, i32 0, i32 38
  %856 = load float, ptr %855, align 8, !tbaa !175
  %857 = fadd float %856, %853
  store float %857, ptr %855, align 8, !tbaa !175
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %858

858:                                              ; preds = %840, %789
  %859 = load i32, ptr %30, align 4, !tbaa !30
  %860 = add nsw i32 %859, 1
  store i32 %860, ptr %30, align 4, !tbaa !30
  br label %768, !llvm.loop !177

861:                                              ; preds = %774
  %862 = load float, ptr %29, align 4, !tbaa !114
  %863 = fcmp oge float %862, 1.000000e+00
  br i1 %863, label %864, label %936

864:                                              ; preds = %861
  %865 = load ptr, ptr %2, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.ImGuiTable, ptr %865, i32 0, i32 1
  %867 = load i32, ptr %866, align 4, !tbaa !29
  %868 = and i32 %867, 524288
  %869 = icmp ne i32 %868, 0
  br i1 %869, label %936, label %870

870:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %871 = load ptr, ptr %2, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.ImGuiTable, ptr %871, i32 0, i32 13
  %873 = load i32, ptr %872, align 4, !tbaa !34
  %874 = sub nsw i32 %873, 1
  store i32 %874, ptr %33, align 4, !tbaa !30
  br label %875

875:                                              ; preds = %932, %870
  %876 = load float, ptr %19, align 4, !tbaa !114
  %877 = fcmp ogt float %876, 0.000000e+00
  br i1 %877, label %878, label %884

878:                                              ; preds = %875
  %879 = load float, ptr %29, align 4, !tbaa !114
  %880 = fcmp oge float %879, 1.000000e+00
  br i1 %880, label %881, label %884

881:                                              ; preds = %878
  %882 = load i32, ptr %33, align 4, !tbaa !30
  %883 = icmp sge i32 %882, 0
  br label %884

884:                                              ; preds = %881, %878, %875
  %885 = phi i1 [ false, %878 ], [ false, %875 ], [ %883, %881 ]
  br i1 %885, label %887, label %886

886:                                              ; preds = %884
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %935

887:                                              ; preds = %884
  %888 = load ptr, ptr %2, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.ImGuiTable, ptr %888, i32 0, i32 7
  %890 = load ptr, ptr %889, align 8, !tbaa !35
  %891 = load i32, ptr %33, align 4, !tbaa !30
  %892 = ashr i32 %891, 5
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds i32, ptr %890, i64 %893
  %895 = load i32, ptr %894, align 4, !tbaa !30
  %896 = load i32, ptr %33, align 4, !tbaa !30
  %897 = and i32 %896, 31
  %898 = shl i32 1, %897
  %899 = and i32 %895, %898
  %900 = icmp ne i32 %899, 0
  br i1 %900, label %902, label %901

901:                                              ; preds = %887
  br label %932

902:                                              ; preds = %887
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %903 = load ptr, ptr %2, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.ImGuiTable, ptr %903, i32 0, i32 4
  %905 = load ptr, ptr %2, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.ImGuiTable, ptr %905, i32 0, i32 5
  %907 = load i32, ptr %33, align 4, !tbaa !30
  %908 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %906, i32 noundef %907)
  %909 = load i16, ptr %908, align 2, !tbaa !115
  %910 = sext i16 %909 to i32
  %911 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %904, i32 noundef %910)
  store ptr %911, ptr %34, align 8, !tbaa !5
  %912 = load ptr, ptr %34, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %912, i32 0, i32 0
  %914 = load i32, ptr %913, align 4, !tbaa !121
  %915 = and i32 %914, 8
  %916 = icmp ne i32 %915, 0
  br i1 %916, label %918, label %917

917:                                              ; preds = %902
  store i32 13, ptr %13, align 4
  br label %929

918:                                              ; preds = %902
  %919 = load ptr, ptr %34, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %919, i32 0, i32 4
  %921 = load float, ptr %920, align 4, !tbaa !128
  %922 = fadd float %921, 1.000000e+00
  store float %922, ptr %920, align 4, !tbaa !128
  %923 = load ptr, ptr %34, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %923, i32 0, i32 1
  %925 = load float, ptr %924, align 4, !tbaa !176
  %926 = fadd float %925, 1.000000e+00
  store float %926, ptr %924, align 4, !tbaa !176
  %927 = load float, ptr %29, align 4, !tbaa !114
  %928 = fsub float %927, 1.000000e+00
  store float %928, ptr %29, align 4, !tbaa !114
  store i32 0, ptr %13, align 4
  br label %929

929:                                              ; preds = %918, %917
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  %930 = load i32, ptr %13, align 4
  switch i32 %930, label %1935 [
    i32 0, label %931
    i32 13, label %932
  ]

931:                                              ; preds = %929
  br label %932

932:                                              ; preds = %931, %929, %901
  %933 = load i32, ptr %33, align 4, !tbaa !30
  %934 = add nsw i32 %933, -1
  store i32 %934, ptr %33, align 4, !tbaa !30
  br label %875, !llvm.loop !178

935:                                              ; preds = %886
  br label %936

936:                                              ; preds = %935, %864, %861
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %937 = load ptr, ptr %2, align 8, !tbaa !5
  %938 = load ptr, ptr %2, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.ImGuiTable, ptr %938, i32 0, i32 16
  %940 = load i16, ptr %939, align 8, !tbaa !179
  %941 = sext i16 %940 to i32
  %942 = call noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef %937, i32 noundef %941)
  store ptr %942, ptr %35, align 8, !tbaa !5
  %943 = load ptr, ptr %35, align 8, !tbaa !5
  %944 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %943, i32 0, i32 5
  %945 = load i32, ptr %944, align 4, !tbaa !180
  %946 = load ptr, ptr %35, align 8, !tbaa !5
  %947 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %946, i32 0, i32 4
  store i32 %945, ptr %947, align 4, !tbaa !181
  %948 = load ptr, ptr %35, align 8, !tbaa !5
  %949 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %948, i32 0, i32 5
  store i32 -1, ptr %949, align 4, !tbaa !180
  %950 = load ptr, ptr %2, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiTable, ptr %950, i32 0, i32 71
  store i16 -1, ptr %951, align 4, !tbaa !182
  %952 = load ptr, ptr %2, align 8, !tbaa !5
  %953 = getelementptr inbounds %struct.ImGuiTable, ptr %952, i32 0, i32 70
  store i16 -1, ptr %953, align 2, !tbaa !183
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #10
  %954 = load ptr, ptr %2, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.ImGuiTable, ptr %954, i32 0, i32 46
  %956 = getelementptr inbounds %struct.ImRect, ptr %955, i32 0, i32 0
  %957 = getelementptr inbounds %struct.ImVec2, ptr %956, i32 0, i32 0
  %958 = load float, ptr %957, align 8, !tbaa !184
  %959 = load ptr, ptr %2, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.ImGuiTable, ptr %959, i32 0, i32 46
  %961 = getelementptr inbounds %struct.ImRect, ptr %960, i32 0, i32 0
  %962 = getelementptr inbounds %struct.ImVec2, ptr %961, i32 0, i32 1
  %963 = load float, ptr %962, align 4, !tbaa !185
  %964 = load ptr, ptr %2, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.ImGuiTable, ptr %964, i32 0, i32 46
  %966 = getelementptr inbounds %struct.ImRect, ptr %965, i32 0, i32 1
  %967 = getelementptr inbounds %struct.ImVec2, ptr %966, i32 0, i32 0
  %968 = load float, ptr %967, align 8, !tbaa !186
  %969 = load ptr, ptr %2, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.ImGuiTable, ptr %969, i32 0, i32 46
  %971 = getelementptr inbounds %struct.ImRect, ptr %970, i32 0, i32 1
  %972 = getelementptr inbounds %struct.ImVec2, ptr %971, i32 0, i32 1
  %973 = load float, ptr %972, align 4, !tbaa !187
  %974 = load ptr, ptr %2, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.ImGuiTable, ptr %974, i32 0, i32 46
  %976 = getelementptr inbounds %struct.ImRect, ptr %975, i32 0, i32 0
  %977 = getelementptr inbounds %struct.ImVec2, ptr %976, i32 0, i32 1
  %978 = load float, ptr %977, align 4, !tbaa !185
  %979 = load ptr, ptr %35, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %979, i32 0, i32 1
  %981 = load float, ptr %980, align 4, !tbaa !188
  %982 = fadd float %978, %981
  %983 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %973, float noundef %982)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %958, float noundef %963, float noundef %968, float noundef %983)
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %984 = load ptr, ptr %3, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.ImGuiContext, ptr %984, i32 0, i32 52
  %986 = load i32, ptr %985, align 4, !tbaa !189
  store i32 %986, ptr %37, align 4, !tbaa !30
  %987 = load ptr, ptr %3, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.ImGuiContext, ptr %987, i32 0, i32 52
  store i32 0, ptr %988, align 4, !tbaa !189
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #10
  %989 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef 0, i32 noundef 0)
  %990 = zext i1 %989 to i8
  store i8 %990, ptr %38, align 1, !tbaa !113
  %991 = load i32, ptr %37, align 4, !tbaa !30
  %992 = load ptr, ptr %3, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.ImGuiContext, ptr %992, i32 0, i32 52
  store i32 %991, ptr %993, align 4, !tbaa !189
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %994 = load ptr, ptr %3, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.ImGuiContext, ptr %994, i32 0, i32 2
  %996 = getelementptr inbounds %struct.ImGuiIO, ptr %995, i32 0, i32 67
  %997 = getelementptr inbounds %struct.ImVec2, ptr %996, i32 0, i32 0
  %998 = load float, ptr %997, align 8, !tbaa !190
  store float %998, ptr %39, align 4, !tbaa !114
  %999 = load ptr, ptr %2, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.ImGuiTable, ptr %999, i32 0, i32 44
  %1001 = load float, ptr %1000, align 8, !tbaa !191
  %1002 = fcmp ogt float %1001, 0.000000e+00
  br i1 %1002, label %1003, label %1055

1003:                                             ; preds = %936
  %1004 = load ptr, ptr %3, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.ImGuiContext, ptr %1004, i32 0, i32 2
  %1006 = getelementptr inbounds %struct.ImGuiIO, ptr %1005, i32 0, i32 67
  %1007 = getelementptr inbounds %struct.ImVec2, ptr %1006, i32 0, i32 1
  %1008 = load float, ptr %1007, align 4, !tbaa !192
  %1009 = load ptr, ptr %2, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.ImGuiTable, ptr %1009, i32 0, i32 46
  %1011 = getelementptr inbounds %struct.ImRect, ptr %1010, i32 0, i32 0
  %1012 = getelementptr inbounds %struct.ImVec2, ptr %1011, i32 0, i32 1
  %1013 = load float, ptr %1012, align 4, !tbaa !185
  %1014 = fcmp oge float %1008, %1013
  br i1 %1014, label %1015, label %1054

1015:                                             ; preds = %1003
  %1016 = load ptr, ptr %3, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.ImGuiContext, ptr %1016, i32 0, i32 2
  %1018 = getelementptr inbounds %struct.ImGuiIO, ptr %1017, i32 0, i32 67
  %1019 = getelementptr inbounds %struct.ImVec2, ptr %1018, i32 0, i32 1
  %1020 = load float, ptr %1019, align 4, !tbaa !192
  %1021 = load ptr, ptr %2, align 8, !tbaa !5
  %1022 = getelementptr inbounds %struct.ImGuiTable, ptr %1021, i32 0, i32 46
  %1023 = getelementptr inbounds %struct.ImRect, ptr %1022, i32 0, i32 0
  %1024 = getelementptr inbounds %struct.ImVec2, ptr %1023, i32 0, i32 1
  %1025 = load float, ptr %1024, align 4, !tbaa !185
  %1026 = load ptr, ptr %2, align 8, !tbaa !5
  %1027 = getelementptr inbounds %struct.ImGuiTable, ptr %1026, i32 0, i32 44
  %1028 = load float, ptr %1027, align 8, !tbaa !191
  %1029 = fadd float %1025, %1028
  %1030 = fcmp ole float %1020, %1029
  br i1 %1030, label %1031, label %1054

1031:                                             ; preds = %1015
  %1032 = load ptr, ptr %2, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.ImGuiTable, ptr %1032, i32 0, i32 46
  %1034 = getelementptr inbounds %struct.ImRect, ptr %1033, i32 0, i32 0
  %1035 = getelementptr inbounds %struct.ImVec2, ptr %1034, i32 0, i32 1
  %1036 = load float, ptr %1035, align 4, !tbaa !185
  %1037 = load ptr, ptr %2, align 8, !tbaa !5
  %1038 = getelementptr inbounds %struct.ImGuiTable, ptr %1037, i32 0, i32 44
  %1039 = load float, ptr %1038, align 8, !tbaa !191
  %1040 = fadd float %1036, %1039
  %1041 = load ptr, ptr %3, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.ImGuiContext, ptr %1041, i32 0, i32 2
  %1043 = getelementptr inbounds %struct.ImGuiIO, ptr %1042, i32 0, i32 67
  %1044 = getelementptr inbounds %struct.ImVec2, ptr %1043, i32 0, i32 1
  %1045 = load float, ptr %1044, align 4, !tbaa !192
  %1046 = fsub float %1040, %1045
  %1047 = load ptr, ptr %2, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.ImGuiTable, ptr %1047, i32 0, i32 45
  %1049 = load float, ptr %1048, align 4, !tbaa !193
  %1050 = fmul float %1046, %1049
  %1051 = call noundef float @_ZL7ImTruncf(float noundef %1050)
  %1052 = load float, ptr %39, align 4, !tbaa !114
  %1053 = fadd float %1052, %1051
  store float %1053, ptr %39, align 4, !tbaa !114
  br label %1054

1054:                                             ; preds = %1031, %1015, %1003
  br label %1055

1055:                                             ; preds = %1054, %936
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  store i32 0, ptr %40, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #10
  store i8 0, ptr %41, align 1, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #10
  %1056 = load ptr, ptr %2, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.ImGuiTable, ptr %1056, i32 0, i32 87
  %1058 = load i16, ptr %1057, align 4, !tbaa !194
  %1059 = sext i16 %1058 to i32
  %1060 = icmp sgt i32 %1059, 0
  %1061 = zext i1 %1060 to i8
  store i8 %1061, ptr %42, align 1, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1062 = load ptr, ptr %2, align 8, !tbaa !5
  %1063 = getelementptr inbounds %struct.ImGuiTable, ptr %1062, i32 0, i32 87
  %1064 = load i16, ptr %1063, align 4, !tbaa !194
  %1065 = sext i16 %1064 to i32
  %1066 = icmp sgt i32 %1065, 0
  br i1 %1066, label %1067, label %1073

1067:                                             ; preds = %1055
  %1068 = load ptr, ptr %2, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.ImGuiTable, ptr %1068, i32 0, i32 46
  %1070 = getelementptr inbounds %struct.ImRect, ptr %1069, i32 0, i32 0
  %1071 = getelementptr inbounds %struct.ImVec2, ptr %1070, i32 0, i32 0
  %1072 = load float, ptr %1071, align 8, !tbaa !184
  br label %1077

1073:                                             ; preds = %1055
  %1074 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1075 = getelementptr inbounds %struct.ImVec2, ptr %1074, i32 0, i32 0
  %1076 = load float, ptr %1075, align 4, !tbaa !195
  br label %1077

1077:                                             ; preds = %1073, %1067
  %1078 = phi float [ %1072, %1067 ], [ %1076, %1073 ]
  %1079 = load ptr, ptr %2, align 8, !tbaa !5
  %1080 = getelementptr inbounds %struct.ImGuiTable, ptr %1079, i32 0, i32 33
  %1081 = load float, ptr %1080, align 4, !tbaa !168
  %1082 = fadd float %1078, %1081
  %1083 = load ptr, ptr %2, align 8, !tbaa !5
  %1084 = getelementptr inbounds %struct.ImGuiTable, ptr %1083, i32 0, i32 35
  %1085 = load float, ptr %1084, align 4, !tbaa !169
  %1086 = fsub float %1082, %1085
  store float %1086, ptr %43, align 4, !tbaa !114
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #10
  %1087 = load ptr, ptr %2, align 8, !tbaa !5
  %1088 = getelementptr inbounds %struct.ImGuiTable, ptr %1087, i32 0, i32 49
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %44, ptr align 8 %1088, i64 16, i1 false), !tbaa.struct !167
  %1089 = load ptr, ptr %2, align 8, !tbaa !5
  %1090 = getelementptr inbounds %struct.ImGuiTable, ptr %1089, i32 0, i32 9
  %1091 = load ptr, ptr %1090, align 8, !tbaa !196
  %1092 = load ptr, ptr %2, align 8, !tbaa !5
  %1093 = getelementptr inbounds %struct.ImGuiTable, ptr %1092, i32 0, i32 13
  %1094 = load i32, ptr %1093, align 4, !tbaa !34
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %1091, i32 noundef %1094)
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  store i32 0, ptr %45, align 4, !tbaa !30
  br label %1095

1095:                                             ; preds = %1531, %1077
  %1096 = load i32, ptr %45, align 4, !tbaa !30
  %1097 = load ptr, ptr %2, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.ImGuiTable, ptr %1097, i32 0, i32 13
  %1099 = load i32, ptr %1098, align 4, !tbaa !34
  %1100 = icmp slt i32 %1096, %1099
  br i1 %1100, label %1102, label %1101

1101:                                             ; preds = %1095
  store i32 14, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1534

1102:                                             ; preds = %1095
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1103 = load ptr, ptr %2, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.ImGuiTable, ptr %1103, i32 0, i32 5
  %1105 = load i32, ptr %45, align 4, !tbaa !30
  %1106 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1104, i32 noundef %1105)
  %1107 = load i16, ptr %1106, align 2, !tbaa !115
  %1108 = sext i16 %1107 to i32
  store i32 %1108, ptr %46, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %1109 = load ptr, ptr %2, align 8, !tbaa !5
  %1110 = getelementptr inbounds %struct.ImGuiTable, ptr %1109, i32 0, i32 4
  %1111 = load i32, ptr %46, align 4, !tbaa !30
  %1112 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1110, i32 noundef %1111)
  store ptr %1112, ptr %47, align 8, !tbaa !5
  %1113 = load ptr, ptr %2, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.ImGuiTable, ptr %1113, i32 0, i32 85
  %1115 = load i16, ptr %1114, align 8, !tbaa !197
  %1116 = sext i16 %1115 to i32
  %1117 = icmp sgt i32 %1116, 0
  %1118 = zext i1 %1117 to i64
  %1119 = select i1 %1117, i32 1, i32 0
  %1120 = trunc i32 %1119 to i8
  %1121 = load ptr, ptr %47, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1121, i32 0, i32 34
  store i8 %1120, ptr %1122, align 2, !tbaa !198
  %1123 = load i8, ptr %42, align 1, !tbaa !113, !range !27, !noundef !28
  %1124 = trunc i8 %1123 to i1
  br i1 %1124, label %1125, label %1144

1125:                                             ; preds = %1102
  %1126 = load ptr, ptr %2, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.ImGuiTable, ptr %1126, i32 0, i32 87
  %1128 = load i16, ptr %1127, align 4, !tbaa !194
  %1129 = sext i16 %1128 to i32
  %1130 = load i32, ptr %40, align 4, !tbaa !30
  %1131 = icmp eq i32 %1129, %1130
  br i1 %1131, label %1132, label %1144

1132:                                             ; preds = %1125
  %1133 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1134 = getelementptr inbounds %struct.ImVec2, ptr %1133, i32 0, i32 0
  %1135 = load float, ptr %1134, align 4, !tbaa !195
  %1136 = load ptr, ptr %2, align 8, !tbaa !5
  %1137 = getelementptr inbounds %struct.ImGuiTable, ptr %1136, i32 0, i32 46
  %1138 = getelementptr inbounds %struct.ImRect, ptr %1137, i32 0, i32 0
  %1139 = getelementptr inbounds %struct.ImVec2, ptr %1138, i32 0, i32 0
  %1140 = load float, ptr %1139, align 8, !tbaa !184
  %1141 = fsub float %1135, %1140
  %1142 = load float, ptr %43, align 4, !tbaa !114
  %1143 = fadd float %1142, %1141
  store float %1143, ptr %43, align 4, !tbaa !114
  store i8 0, ptr %42, align 1, !tbaa !113
  br label %1144

1144:                                             ; preds = %1132, %1125, %1102
  %1145 = load ptr, ptr %47, align 8, !tbaa !5
  %1146 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1145, i32 0, i32 0
  %1147 = load i32, ptr %1146, align 4, !tbaa !121
  %1148 = and i32 %1147, -251658241
  store i32 %1148, ptr %1146, align 4, !tbaa !121
  %1149 = load ptr, ptr %2, align 8, !tbaa !5
  %1150 = getelementptr inbounds %struct.ImGuiTable, ptr %1149, i32 0, i32 7
  %1151 = load ptr, ptr %1150, align 8, !tbaa !35
  %1152 = load i32, ptr %45, align 4, !tbaa !30
  %1153 = ashr i32 %1152, 5
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds i32, ptr %1151, i64 %1154
  %1156 = load i32, ptr %1155, align 4, !tbaa !30
  %1157 = load i32, ptr %45, align 4, !tbaa !30
  %1158 = and i32 %1157, 31
  %1159 = shl i32 1, %1158
  %1160 = and i32 %1156, %1159
  %1161 = icmp ne i32 %1160, 0
  br i1 %1161, label %1203, label %1162

1162:                                             ; preds = %1144
  %1163 = load float, ptr %43, align 4, !tbaa !114
  %1164 = load ptr, ptr %47, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1164, i32 0, i32 8
  %1166 = getelementptr inbounds %struct.ImRect, ptr %1165, i32 0, i32 1
  %1167 = getelementptr inbounds %struct.ImVec2, ptr %1166, i32 0, i32 0
  store float %1163, ptr %1167, align 4, !tbaa !199
  %1168 = load ptr, ptr %47, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1168, i32 0, i32 8
  %1170 = getelementptr inbounds %struct.ImRect, ptr %1169, i32 0, i32 0
  %1171 = getelementptr inbounds %struct.ImVec2, ptr %1170, i32 0, i32 0
  store float %1163, ptr %1171, align 4, !tbaa !200
  %1172 = load ptr, ptr %47, align 8, !tbaa !5
  %1173 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1172, i32 0, i32 10
  store float %1163, ptr %1173, align 4, !tbaa !201
  %1174 = load ptr, ptr %47, align 8, !tbaa !5
  %1175 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1174, i32 0, i32 3
  store float %1163, ptr %1175, align 4, !tbaa !202
  %1176 = load ptr, ptr %47, align 8, !tbaa !5
  %1177 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1176, i32 0, i32 2
  store float %1163, ptr %1177, align 4, !tbaa !203
  %1178 = load ptr, ptr %47, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1178, i32 0, i32 1
  store float 0.000000e+00, ptr %1179, align 4, !tbaa !176
  %1180 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1181 = getelementptr inbounds %struct.ImVec2, ptr %1180, i32 0, i32 1
  %1182 = load float, ptr %1181, align 4, !tbaa !204
  %1183 = load ptr, ptr %47, align 8, !tbaa !5
  %1184 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1183, i32 0, i32 8
  %1185 = getelementptr inbounds %struct.ImRect, ptr %1184, i32 0, i32 0
  %1186 = getelementptr inbounds %struct.ImVec2, ptr %1185, i32 0, i32 1
  store float %1182, ptr %1186, align 4, !tbaa !205
  %1187 = load ptr, ptr %47, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1187, i32 0, i32 8
  %1189 = getelementptr inbounds %struct.ImRect, ptr %1188, i32 0, i32 1
  %1190 = getelementptr inbounds %struct.ImVec2, ptr %1189, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1190, align 4, !tbaa !206
  %1191 = load ptr, ptr %47, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1191, i32 0, i32 8
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1192, ptr noundef nonnull align 4 dereferenceable(16) %44)
  %1193 = load ptr, ptr %47, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1193, i32 0, i32 31
  store i8 0, ptr %1194, align 1, !tbaa !161
  %1195 = load ptr, ptr %47, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1195, i32 0, i32 30
  store i8 0, ptr %1196, align 2, !tbaa !207
  %1197 = load ptr, ptr %47, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1197, i32 0, i32 29
  store i8 0, ptr %1198, align 1, !tbaa !208
  %1199 = load ptr, ptr %47, align 8, !tbaa !5
  %1200 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1199, i32 0, i32 32
  store i8 1, ptr %1200, align 4, !tbaa !209
  %1201 = load ptr, ptr %47, align 8, !tbaa !5
  %1202 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1201, i32 0, i32 12
  store float 1.000000e+00, ptr %1202, align 4, !tbaa !210
  store i32 16, ptr %13, align 4
  br label %1528

1203:                                             ; preds = %1144
  %1204 = load i8, ptr %38, align 1, !tbaa !113, !range !27, !noundef !28
  %1205 = trunc i8 %1204 to i1
  br i1 %1205, label %1206, label %1227

1206:                                             ; preds = %1203
  %1207 = load float, ptr %39, align 4, !tbaa !114
  %1208 = load ptr, ptr %47, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1208, i32 0, i32 8
  %1210 = getelementptr inbounds %struct.ImRect, ptr %1209, i32 0, i32 0
  %1211 = getelementptr inbounds %struct.ImVec2, ptr %1210, i32 0, i32 0
  %1212 = load float, ptr %1211, align 4, !tbaa !200
  %1213 = fcmp oge float %1207, %1212
  br i1 %1213, label %1214, label %1227

1214:                                             ; preds = %1206
  %1215 = load float, ptr %39, align 4, !tbaa !114
  %1216 = load ptr, ptr %47, align 8, !tbaa !5
  %1217 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1216, i32 0, i32 8
  %1218 = getelementptr inbounds %struct.ImRect, ptr %1217, i32 0, i32 1
  %1219 = getelementptr inbounds %struct.ImVec2, ptr %1218, i32 0, i32 0
  %1220 = load float, ptr %1219, align 4, !tbaa !199
  %1221 = fcmp olt float %1215, %1220
  br i1 %1221, label %1222, label %1227

1222:                                             ; preds = %1214
  %1223 = load i32, ptr %46, align 4, !tbaa !30
  %1224 = trunc i32 %1223 to i16
  %1225 = load ptr, ptr %2, align 8, !tbaa !5
  %1226 = getelementptr inbounds %struct.ImGuiTable, ptr %1225, i32 0, i32 70
  store i16 %1224, ptr %1226, align 2, !tbaa !183
  br label %1227

1227:                                             ; preds = %1222, %1214, %1206, %1203
  %1228 = load float, ptr %43, align 4, !tbaa !114
  %1229 = load ptr, ptr %47, align 8, !tbaa !5
  %1230 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1229, i32 0, i32 2
  store float %1228, ptr %1230, align 4, !tbaa !203
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %1231 = load ptr, ptr %2, align 8, !tbaa !5
  %1232 = load i32, ptr %46, align 4, !tbaa !30
  %1233 = call noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef %1231, i32 noundef %1232)
  store float %1233, ptr %48, align 4, !tbaa !114
  %1234 = load ptr, ptr %47, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1234, i32 0, i32 1
  %1236 = load float, ptr %1235, align 4, !tbaa !176
  %1237 = load float, ptr %48, align 4, !tbaa !114
  %1238 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1236, float noundef %1237)
  %1239 = load ptr, ptr %47, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1239, i32 0, i32 1
  store float %1238, ptr %1240, align 4, !tbaa !176
  %1241 = load ptr, ptr %47, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1241, i32 0, i32 1
  %1243 = load float, ptr %1242, align 4, !tbaa !176
  %1244 = load ptr, ptr %47, align 8, !tbaa !5
  %1245 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1244, i32 0, i32 4
  %1246 = load float, ptr %1245, align 4, !tbaa !128
  %1247 = load ptr, ptr %2, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.ImGuiTable, ptr %1247, i32 0, i32 32
  %1249 = load float, ptr %1248, align 8, !tbaa !112
  %1250 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1246, float noundef %1249)
  %1251 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1243, float noundef %1250)
  %1252 = load ptr, ptr %47, align 8, !tbaa !5
  %1253 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1252, i32 0, i32 1
  store float %1251, ptr %1253, align 4, !tbaa !176
  %1254 = load float, ptr %43, align 4, !tbaa !114
  %1255 = load ptr, ptr %47, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1255, i32 0, i32 1
  %1257 = load float, ptr %1256, align 4, !tbaa !176
  %1258 = fadd float %1254, %1257
  %1259 = load ptr, ptr %2, align 8, !tbaa !5
  %1260 = getelementptr inbounds %struct.ImGuiTable, ptr %1259, i32 0, i32 35
  %1261 = load float, ptr %1260, align 4, !tbaa !169
  %1262 = fadd float %1258, %1261
  %1263 = load ptr, ptr %2, align 8, !tbaa !5
  %1264 = getelementptr inbounds %struct.ImGuiTable, ptr %1263, i32 0, i32 36
  %1265 = load float, ptr %1264, align 8, !tbaa !170
  %1266 = fadd float %1262, %1265
  %1267 = load ptr, ptr %2, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.ImGuiTable, ptr %1267, i32 0, i32 34
  %1269 = load float, ptr %1268, align 8, !tbaa !163
  %1270 = call float @llvm.fmuladd.f32(float %1269, float 2.000000e+00, float %1266)
  %1271 = load ptr, ptr %47, align 8, !tbaa !5
  %1272 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1271, i32 0, i32 3
  store float %1270, ptr %1272, align 4, !tbaa !202
  %1273 = load ptr, ptr %47, align 8, !tbaa !5
  %1274 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1273, i32 0, i32 2
  %1275 = load float, ptr %1274, align 4, !tbaa !203
  %1276 = load ptr, ptr %2, align 8, !tbaa !5
  %1277 = getelementptr inbounds %struct.ImGuiTable, ptr %1276, i32 0, i32 34
  %1278 = load float, ptr %1277, align 8, !tbaa !163
  %1279 = fadd float %1275, %1278
  %1280 = load ptr, ptr %2, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.ImGuiTable, ptr %1280, i32 0, i32 35
  %1282 = load float, ptr %1281, align 4, !tbaa !169
  %1283 = fadd float %1279, %1282
  %1284 = load ptr, ptr %47, align 8, !tbaa !5
  %1285 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1284, i32 0, i32 10
  store float %1283, ptr %1285, align 4, !tbaa !201
  %1286 = load ptr, ptr %47, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1286, i32 0, i32 3
  %1288 = load float, ptr %1287, align 4, !tbaa !202
  %1289 = load ptr, ptr %2, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.ImGuiTable, ptr %1289, i32 0, i32 34
  %1291 = load float, ptr %1290, align 8, !tbaa !163
  %1292 = fsub float %1288, %1291
  %1293 = load ptr, ptr %2, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.ImGuiTable, ptr %1293, i32 0, i32 36
  %1295 = load float, ptr %1294, align 8, !tbaa !170
  %1296 = fsub float %1292, %1295
  %1297 = load ptr, ptr %47, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1297, i32 0, i32 11
  store float %1296, ptr %1298, align 4, !tbaa !211
  %1299 = load ptr, ptr %47, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1299, i32 0, i32 1
  %1301 = load float, ptr %1300, align 4, !tbaa !176
  %1302 = fmul float %1301, 0x3FE4CCCCC0000000
  %1303 = call noundef float @_ZL7ImTruncf(float noundef %1302)
  %1304 = load ptr, ptr %47, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1304, i32 0, i32 12
  store float %1303, ptr %1305, align 4, !tbaa !210
  %1306 = load ptr, ptr %47, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1306, i32 0, i32 2
  %1308 = load float, ptr %1307, align 4, !tbaa !203
  %1309 = load ptr, ptr %47, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1309, i32 0, i32 8
  %1311 = getelementptr inbounds %struct.ImRect, ptr %1310, i32 0, i32 0
  %1312 = getelementptr inbounds %struct.ImVec2, ptr %1311, i32 0, i32 0
  store float %1308, ptr %1312, align 4, !tbaa !200
  %1313 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1314 = getelementptr inbounds %struct.ImVec2, ptr %1313, i32 0, i32 1
  %1315 = load float, ptr %1314, align 4, !tbaa !204
  %1316 = load ptr, ptr %47, align 8, !tbaa !5
  %1317 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1316, i32 0, i32 8
  %1318 = getelementptr inbounds %struct.ImRect, ptr %1317, i32 0, i32 0
  %1319 = getelementptr inbounds %struct.ImVec2, ptr %1318, i32 0, i32 1
  store float %1315, ptr %1319, align 4, !tbaa !205
  %1320 = load ptr, ptr %47, align 8, !tbaa !5
  %1321 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1320, i32 0, i32 3
  %1322 = load float, ptr %1321, align 4, !tbaa !202
  %1323 = load ptr, ptr %47, align 8, !tbaa !5
  %1324 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1323, i32 0, i32 8
  %1325 = getelementptr inbounds %struct.ImRect, ptr %1324, i32 0, i32 1
  %1326 = getelementptr inbounds %struct.ImVec2, ptr %1325, i32 0, i32 0
  store float %1322, ptr %1326, align 4, !tbaa !199
  %1327 = load ptr, ptr %47, align 8, !tbaa !5
  %1328 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1327, i32 0, i32 8
  %1329 = getelementptr inbounds %struct.ImRect, ptr %1328, i32 0, i32 1
  %1330 = getelementptr inbounds %struct.ImVec2, ptr %1329, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1330, align 4, !tbaa !206
  %1331 = load ptr, ptr %47, align 8, !tbaa !5
  %1332 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1331, i32 0, i32 8
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1332, ptr noundef nonnull align 4 dereferenceable(16) %44)
  %1333 = load ptr, ptr %47, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1333, i32 0, i32 8
  %1335 = getelementptr inbounds %struct.ImRect, ptr %1334, i32 0, i32 1
  %1336 = getelementptr inbounds %struct.ImVec2, ptr %1335, i32 0, i32 0
  %1337 = load float, ptr %1336, align 4, !tbaa !199
  %1338 = load ptr, ptr %47, align 8, !tbaa !5
  %1339 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1338, i32 0, i32 8
  %1340 = getelementptr inbounds %struct.ImRect, ptr %1339, i32 0, i32 0
  %1341 = getelementptr inbounds %struct.ImVec2, ptr %1340, i32 0, i32 0
  %1342 = load float, ptr %1341, align 4, !tbaa !200
  %1343 = fcmp ogt float %1337, %1342
  %1344 = load ptr, ptr %47, align 8, !tbaa !5
  %1345 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1344, i32 0, i32 29
  %1346 = zext i1 %1343 to i8
  store i8 %1346, ptr %1345, align 1, !tbaa !208
  %1347 = load ptr, ptr %47, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1347, i32 0, i32 30
  store i8 1, ptr %1348, align 2, !tbaa !207
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #10
  %1349 = load ptr, ptr %47, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1349, i32 0, i32 29
  %1351 = load i8, ptr %1350, align 1, !tbaa !208, !range !27, !noundef !28
  %1352 = trunc i8 %1351 to i1
  %1353 = zext i1 %1352 to i8
  store i8 %1353, ptr %49, align 1, !tbaa !113
  %1354 = load i8, ptr %49, align 1, !tbaa !113, !range !27, !noundef !28
  %1355 = trunc i8 %1354 to i1
  br i1 %1355, label %1356, label %1361

1356:                                             ; preds = %1227
  %1357 = load ptr, ptr %2, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.ImGuiTable, ptr %1357, i32 0, i32 9
  %1359 = load ptr, ptr %1358, align 8, !tbaa !196
  %1360 = load i32, ptr %46, align 4, !tbaa !30
  call void @_Z16ImBitArraySetBitPji(ptr noundef %1359, i32 noundef %1360)
  br label %1361

1361:                                             ; preds = %1356, %1227
  %1362 = load i8, ptr %49, align 1, !tbaa !113, !range !27, !noundef !28
  %1363 = trunc i8 %1362 to i1
  br i1 %1363, label %1376, label %1364

1364:                                             ; preds = %1361
  %1365 = load ptr, ptr %47, align 8, !tbaa !5
  %1366 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1365, i32 0, i32 35
  %1367 = load i8, ptr %1366, align 1, !tbaa !131
  %1368 = zext i8 %1367 to i32
  %1369 = icmp ne i32 %1368, 0
  br i1 %1369, label %1376, label %1370

1370:                                             ; preds = %1364
  %1371 = load ptr, ptr %47, align 8, !tbaa !5
  %1372 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1371, i32 0, i32 36
  %1373 = load i8, ptr %1372, align 4, !tbaa !130
  %1374 = zext i8 %1373 to i32
  %1375 = icmp ne i32 %1374, 0
  br label %1376

1376:                                             ; preds = %1370, %1364, %1361
  %1377 = phi i1 [ true, %1364 ], [ true, %1361 ], [ %1375, %1370 ]
  %1378 = load ptr, ptr %47, align 8, !tbaa !5
  %1379 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1378, i32 0, i32 31
  %1380 = zext i1 %1377 to i8
  store i8 %1380, ptr %1379, align 1, !tbaa !161
  %1381 = load ptr, ptr %47, align 8, !tbaa !5
  %1382 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1381, i32 0, i32 26
  %1383 = load i8, ptr %1382, align 2, !tbaa !125, !range !27, !noundef !28
  %1384 = trunc i8 %1383 to i1
  br i1 %1384, label %1385, label %1390

1385:                                             ; preds = %1376
  %1386 = load ptr, ptr %2, align 8, !tbaa !5
  %1387 = getelementptr inbounds %struct.ImGuiTable, ptr %1386, i32 0, i32 111
  %1388 = load i8, ptr %1387, align 1, !tbaa !212, !range !27, !noundef !28
  %1389 = trunc i8 %1388 to i1
  br label %1390

1390:                                             ; preds = %1385, %1376
  %1391 = phi i1 [ true, %1376 ], [ %1389, %1385 ]
  %1392 = load ptr, ptr %47, align 8, !tbaa !5
  %1393 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1392, i32 0, i32 32
  %1394 = zext i1 %1391 to i8
  store i8 %1394, ptr %1393, align 4, !tbaa !209
  %1395 = load ptr, ptr %47, align 8, !tbaa !5
  %1396 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1395, i32 0, i32 32
  %1397 = load i8, ptr %1396, align 4, !tbaa !209, !range !27, !noundef !28
  %1398 = trunc i8 %1397 to i1
  br i1 %1398, label %1399, label %1407

1399:                                             ; preds = %1390
  %1400 = load i8, ptr %49, align 1, !tbaa !113, !range !27, !noundef !28
  %1401 = trunc i8 %1400 to i1
  %1402 = xor i1 %1401, true
  br i1 %1402, label %1403, label %1404

1403:                                             ; preds = %1399
  br label %1406

1404:                                             ; preds = %1399
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 1098, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

1405:                                             ; No predecessors!
  br label %1406

1406:                                             ; preds = %1405, %1403
  br label %1407

1407:                                             ; preds = %1406, %1390
  %1408 = load ptr, ptr %47, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1408, i32 0, i32 31
  %1410 = load i8, ptr %1409, align 1, !tbaa !161, !range !27, !noundef !28
  %1411 = trunc i8 %1410 to i1
  br i1 %1411, label %1412, label %1418

1412:                                             ; preds = %1407
  %1413 = load ptr, ptr %47, align 8, !tbaa !5
  %1414 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1413, i32 0, i32 32
  %1415 = load i8, ptr %1414, align 4, !tbaa !209, !range !27, !noundef !28
  %1416 = trunc i8 %1415 to i1
  br i1 %1416, label %1418, label %1417

1417:                                             ; preds = %1412
  store i8 1, ptr %41, align 1, !tbaa !113
  br label %1418

1418:                                             ; preds = %1417, %1412, %1407
  %1419 = load ptr, ptr %47, align 8, !tbaa !5
  %1420 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1419, i32 0, i32 0
  %1421 = load i32, ptr %1420, align 4, !tbaa !121
  %1422 = or i32 %1421, 16777216
  store i32 %1422, ptr %1420, align 4, !tbaa !121
  %1423 = load i8, ptr %49, align 1, !tbaa !113, !range !27, !noundef !28
  %1424 = trunc i8 %1423 to i1
  br i1 %1424, label %1425, label %1430

1425:                                             ; preds = %1418
  %1426 = load ptr, ptr %47, align 8, !tbaa !5
  %1427 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1426, i32 0, i32 0
  %1428 = load i32, ptr %1427, align 4, !tbaa !121
  %1429 = or i32 %1428, 33554432
  store i32 %1429, ptr %1427, align 4, !tbaa !121
  br label %1430

1430:                                             ; preds = %1425, %1418
  %1431 = load ptr, ptr %47, align 8, !tbaa !5
  %1432 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1431, i32 0, i32 22
  %1433 = load i16, ptr %1432, align 2, !tbaa !126
  %1434 = sext i16 %1433 to i32
  %1435 = icmp ne i32 %1434, -1
  br i1 %1435, label %1436, label %1441

1436:                                             ; preds = %1430
  %1437 = load ptr, ptr %47, align 8, !tbaa !5
  %1438 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1437, i32 0, i32 0
  %1439 = load i32, ptr %1438, align 4, !tbaa !121
  %1440 = or i32 %1439, 67108864
  store i32 %1440, ptr %1438, align 4, !tbaa !121
  br label %1441

1441:                                             ; preds = %1436, %1430
  %1442 = load ptr, ptr %2, align 8, !tbaa !5
  %1443 = getelementptr inbounds %struct.ImGuiTable, ptr %1442, i32 0, i32 70
  %1444 = load i16, ptr %1443, align 2, !tbaa !183
  %1445 = sext i16 %1444 to i32
  %1446 = load i32, ptr %46, align 4, !tbaa !30
  %1447 = icmp eq i32 %1445, %1446
  br i1 %1447, label %1448, label %1453

1448:                                             ; preds = %1441
  %1449 = load ptr, ptr %47, align 8, !tbaa !5
  %1450 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1449, i32 0, i32 0
  %1451 = load i32, ptr %1450, align 4, !tbaa !121
  %1452 = or i32 %1451, 134217728
  store i32 %1452, ptr %1450, align 4, !tbaa !121
  br label %1453

1453:                                             ; preds = %1448, %1441
  %1454 = load ptr, ptr %47, align 8, !tbaa !5
  %1455 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1454, i32 0, i32 10
  %1456 = load float, ptr %1455, align 4, !tbaa !201
  %1457 = load ptr, ptr %47, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1457, i32 0, i32 14
  store float %1456, ptr %1458, align 4, !tbaa !213
  %1459 = load ptr, ptr %47, align 8, !tbaa !5
  %1460 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1459, i32 0, i32 13
  store float %1456, ptr %1460, align 4, !tbaa !214
  %1461 = load ptr, ptr %47, align 8, !tbaa !5
  %1462 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1461, i32 0, i32 10
  %1463 = load float, ptr %1462, align 4, !tbaa !201
  %1464 = load ptr, ptr %47, align 8, !tbaa !5
  %1465 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1464, i32 0, i32 16
  store float %1463, ptr %1465, align 4, !tbaa !215
  %1466 = load ptr, ptr %47, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1466, i32 0, i32 15
  store float %1463, ptr %1467, align 4, !tbaa !216
  %1468 = load ptr, ptr %2, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.ImGuiTable, ptr %1468, i32 0, i32 111
  %1470 = load i8, ptr %1469, align 1, !tbaa !212, !range !27, !noundef !28
  %1471 = trunc i8 %1470 to i1
  %1472 = zext i1 %1471 to i32
  %1473 = icmp eq i32 %1472, 0
  br i1 %1473, label %1474, label %1487

1474:                                             ; preds = %1453
  %1475 = load ptr, ptr %47, align 8, !tbaa !5
  %1476 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1475, i32 0, i32 35
  %1477 = load i8, ptr %1476, align 1, !tbaa !131
  %1478 = zext i8 %1477 to i32
  %1479 = ashr i32 %1478, 1
  %1480 = trunc i32 %1479 to i8
  store i8 %1480, ptr %1476, align 1, !tbaa !131
  %1481 = load ptr, ptr %47, align 8, !tbaa !5
  %1482 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1481, i32 0, i32 36
  %1483 = load i8, ptr %1482, align 4, !tbaa !130
  %1484 = zext i8 %1483 to i32
  %1485 = ashr i32 %1484, 1
  %1486 = trunc i32 %1485 to i8
  store i8 %1486, ptr %1482, align 4, !tbaa !130
  br label %1487

1487:                                             ; preds = %1474, %1453
  %1488 = load i32, ptr %40, align 4, !tbaa !30
  %1489 = load ptr, ptr %2, align 8, !tbaa !5
  %1490 = getelementptr inbounds %struct.ImGuiTable, ptr %1489, i32 0, i32 87
  %1491 = load i16, ptr %1490, align 4, !tbaa !194
  %1492 = sext i16 %1491 to i32
  %1493 = icmp slt i32 %1488, %1492
  br i1 %1493, label %1494, label %1508

1494:                                             ; preds = %1487
  %1495 = load ptr, ptr %47, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1495, i32 0, i32 3
  %1497 = load float, ptr %1496, align 4, !tbaa !202
  %1498 = fadd float %1497, 1.000000e+00
  %1499 = getelementptr inbounds %struct.ImRect, ptr %44, i32 0, i32 0
  %1500 = getelementptr inbounds %struct.ImVec2, ptr %1499, i32 0, i32 0
  %1501 = load float, ptr %1500, align 4, !tbaa !195
  %1502 = getelementptr inbounds %struct.ImRect, ptr %44, i32 0, i32 1
  %1503 = getelementptr inbounds %struct.ImVec2, ptr %1502, i32 0, i32 0
  %1504 = load float, ptr %1503, align 4, !tbaa !217
  %1505 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1498, float noundef %1501, float noundef %1504)
  %1506 = getelementptr inbounds %struct.ImRect, ptr %44, i32 0, i32 0
  %1507 = getelementptr inbounds %struct.ImVec2, ptr %1506, i32 0, i32 0
  store float %1505, ptr %1507, align 4, !tbaa !195
  br label %1508

1508:                                             ; preds = %1494, %1487
  %1509 = load ptr, ptr %47, align 8, !tbaa !5
  %1510 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1509, i32 0, i32 1
  %1511 = load float, ptr %1510, align 4, !tbaa !176
  %1512 = load ptr, ptr %2, align 8, !tbaa !5
  %1513 = getelementptr inbounds %struct.ImGuiTable, ptr %1512, i32 0, i32 35
  %1514 = load float, ptr %1513, align 4, !tbaa !169
  %1515 = fadd float %1511, %1514
  %1516 = load ptr, ptr %2, align 8, !tbaa !5
  %1517 = getelementptr inbounds %struct.ImGuiTable, ptr %1516, i32 0, i32 36
  %1518 = load float, ptr %1517, align 8, !tbaa !170
  %1519 = fadd float %1515, %1518
  %1520 = load ptr, ptr %2, align 8, !tbaa !5
  %1521 = getelementptr inbounds %struct.ImGuiTable, ptr %1520, i32 0, i32 34
  %1522 = load float, ptr %1521, align 8, !tbaa !163
  %1523 = call float @llvm.fmuladd.f32(float %1522, float 2.000000e+00, float %1519)
  %1524 = load float, ptr %43, align 4, !tbaa !114
  %1525 = fadd float %1524, %1523
  store float %1525, ptr %43, align 4, !tbaa !114
  %1526 = load i32, ptr %40, align 4, !tbaa !30
  %1527 = add nsw i32 %1526, 1
  store i32 %1527, ptr %40, align 4, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  store i32 0, ptr %13, align 4
  br label %1528

1528:                                             ; preds = %1508, %1162
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  %1529 = load i32, ptr %13, align 4
  switch i32 %1529, label %1935 [
    i32 0, label %1530
    i32 16, label %1531
  ]

1530:                                             ; preds = %1528
  br label %1531

1531:                                             ; preds = %1530, %1528
  %1532 = load i32, ptr %45, align 4, !tbaa !30
  %1533 = add nsw i32 %1532, 1
  store i32 %1533, ptr %45, align 4, !tbaa !30
  br label %1095, !llvm.loop !218

1534:                                             ; preds = %1101
  %1535 = load i8, ptr %41, align 1, !tbaa !113, !range !27, !noundef !28
  %1536 = trunc i8 %1535 to i1
  %1537 = zext i1 %1536 to i32
  %1538 = icmp eq i32 %1537, 0
  br i1 %1538, label %1539, label %1556

1539:                                             ; preds = %1534
  %1540 = load ptr, ptr %2, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.ImGuiTable, ptr %1540, i32 0, i32 4
  %1542 = load ptr, ptr %2, align 8, !tbaa !5
  %1543 = getelementptr inbounds %struct.ImGuiTable, ptr %1542, i32 0, i32 79
  %1544 = load i16, ptr %1543, align 4, !tbaa !36
  %1545 = sext i16 %1544 to i32
  %1546 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1541, i32 noundef %1545)
  %1547 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1546, i32 0, i32 31
  store i8 1, ptr %1547, align 1, !tbaa !161
  %1548 = load ptr, ptr %2, align 8, !tbaa !5
  %1549 = getelementptr inbounds %struct.ImGuiTable, ptr %1548, i32 0, i32 4
  %1550 = load ptr, ptr %2, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.ImGuiTable, ptr %1550, i32 0, i32 79
  %1552 = load i16, ptr %1551, align 4, !tbaa !36
  %1553 = sext i16 %1552 to i32
  %1554 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1549, i32 noundef %1553)
  %1555 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1554, i32 0, i32 32
  store i8 0, ptr %1555, align 4, !tbaa !209
  br label %1556

1556:                                             ; preds = %1539, %1534
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %1557 = load ptr, ptr %2, align 8, !tbaa !5
  %1558 = getelementptr inbounds %struct.ImGuiTable, ptr %1557, i32 0, i32 48
  %1559 = getelementptr inbounds %struct.ImRect, ptr %1558, i32 0, i32 0
  %1560 = getelementptr inbounds %struct.ImVec2, ptr %1559, i32 0, i32 0
  %1561 = load float, ptr %1560, align 8, !tbaa !219
  %1562 = load ptr, ptr %2, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.ImGuiTable, ptr %1562, i32 0, i32 4
  %1564 = load ptr, ptr %2, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.ImGuiTable, ptr %1564, i32 0, i32 80
  %1566 = load i16, ptr %1565, align 2, !tbaa !141
  %1567 = sext i16 %1566 to i32
  %1568 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1563, i32 noundef %1567)
  %1569 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1568, i32 0, i32 8
  %1570 = getelementptr inbounds %struct.ImRect, ptr %1569, i32 0, i32 1
  %1571 = getelementptr inbounds %struct.ImVec2, ptr %1570, i32 0, i32 0
  %1572 = load float, ptr %1571, align 4, !tbaa !199
  %1573 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1561, float noundef %1572)
  store float %1573, ptr %50, align 4, !tbaa !114
  %1574 = load i8, ptr %38, align 1, !tbaa !113, !range !27, !noundef !28
  %1575 = trunc i8 %1574 to i1
  br i1 %1575, label %1576, label %1594

1576:                                             ; preds = %1556
  %1577 = load ptr, ptr %2, align 8, !tbaa !5
  %1578 = getelementptr inbounds %struct.ImGuiTable, ptr %1577, i32 0, i32 70
  %1579 = load i16, ptr %1578, align 2, !tbaa !183
  %1580 = sext i16 %1579 to i32
  %1581 = icmp eq i32 %1580, -1
  br i1 %1581, label %1582, label %1594

1582:                                             ; preds = %1576
  %1583 = load float, ptr %39, align 4, !tbaa !114
  %1584 = load float, ptr %50, align 4, !tbaa !114
  %1585 = fcmp oge float %1583, %1584
  br i1 %1585, label %1586, label %1593

1586:                                             ; preds = %1582
  %1587 = load ptr, ptr %2, align 8, !tbaa !5
  %1588 = getelementptr inbounds %struct.ImGuiTable, ptr %1587, i32 0, i32 13
  %1589 = load i32, ptr %1588, align 4, !tbaa !34
  %1590 = trunc i32 %1589 to i16
  %1591 = load ptr, ptr %2, align 8, !tbaa !5
  %1592 = getelementptr inbounds %struct.ImGuiTable, ptr %1591, i32 0, i32 70
  store i16 %1590, ptr %1592, align 2, !tbaa !183
  br label %1593

1593:                                             ; preds = %1586, %1582
  br label %1594

1594:                                             ; preds = %1593, %1576, %1556
  %1595 = load i8, ptr %9, align 1, !tbaa !113, !range !27, !noundef !28
  %1596 = trunc i8 %1595 to i1
  %1597 = zext i1 %1596 to i32
  %1598 = icmp eq i32 %1597, 0
  br i1 %1598, label %1599, label %1610

1599:                                             ; preds = %1594
  %1600 = load ptr, ptr %2, align 8, !tbaa !5
  %1601 = getelementptr inbounds %struct.ImGuiTable, ptr %1600, i32 0, i32 1
  %1602 = load i32, ptr %1601, align 4, !tbaa !29
  %1603 = and i32 %1602, 1
  %1604 = icmp ne i32 %1603, 0
  br i1 %1604, label %1605, label %1610

1605:                                             ; preds = %1599
  %1606 = load ptr, ptr %2, align 8, !tbaa !5
  %1607 = getelementptr inbounds %struct.ImGuiTable, ptr %1606, i32 0, i32 1
  %1608 = load i32, ptr %1607, align 4, !tbaa !29
  %1609 = and i32 %1608, -2
  store i32 %1609, ptr %1607, align 4, !tbaa !29
  br label %1610

1610:                                             ; preds = %1605, %1599, %1594
  %1611 = load ptr, ptr %3, align 8, !tbaa !5
  %1612 = getelementptr inbounds %struct.ImGuiContext, ptr %1611, i32 0, i32 53
  %1613 = load i32, ptr %1612, align 8, !tbaa !220
  %1614 = icmp ne i32 %1613, 0
  %1615 = load ptr, ptr %2, align 8, !tbaa !5
  %1616 = getelementptr inbounds %struct.ImGuiTable, ptr %1615, i32 0, i32 106
  %1617 = zext i1 %1614 to i8
  store i8 %1617, ptr %1616, align 4, !tbaa !221
  %1618 = load ptr, ptr %2, align 8, !tbaa !5
  %1619 = getelementptr inbounds %struct.ImGuiTable, ptr %1618, i32 0, i32 82
  %1620 = load i16, ptr %1619, align 2, !tbaa !159
  %1621 = sext i16 %1620 to i32
  %1622 = icmp ne i32 %1621, -1
  br i1 %1622, label %1623, label %1628

1623:                                             ; preds = %1610
  %1624 = load ptr, ptr %2, align 8, !tbaa !5
  %1625 = getelementptr inbounds %struct.ImGuiTable, ptr %1624, i32 0, i32 1
  %1626 = load i32, ptr %1625, align 4, !tbaa !29
  %1627 = and i32 %1626, -65537
  store i32 %1627, ptr %1625, align 4, !tbaa !29
  br label %1628

1628:                                             ; preds = %1623, %1610
  %1629 = load ptr, ptr %2, align 8, !tbaa !5
  %1630 = getelementptr inbounds %struct.ImGuiTable, ptr %1629, i32 0, i32 1
  %1631 = load i32, ptr %1630, align 4, !tbaa !29
  %1632 = and i32 %1631, 65536
  %1633 = icmp ne i32 %1632, 0
  br i1 %1633, label %1634, label %1655

1634:                                             ; preds = %1628
  %1635 = load float, ptr %50, align 4, !tbaa !114
  %1636 = load ptr, ptr %2, align 8, !tbaa !5
  %1637 = getelementptr inbounds %struct.ImGuiTable, ptr %1636, i32 0, i32 48
  %1638 = getelementptr inbounds %struct.ImRect, ptr %1637, i32 0, i32 1
  %1639 = getelementptr inbounds %struct.ImVec2, ptr %1638, i32 0, i32 0
  store float %1635, ptr %1639, align 8, !tbaa !222
  %1640 = load ptr, ptr %2, align 8, !tbaa !5
  %1641 = getelementptr inbounds %struct.ImGuiTable, ptr %1640, i32 0, i32 46
  %1642 = getelementptr inbounds %struct.ImRect, ptr %1641, i32 0, i32 1
  %1643 = getelementptr inbounds %struct.ImVec2, ptr %1642, i32 0, i32 0
  store float %1635, ptr %1643, align 8, !tbaa !186
  %1644 = load ptr, ptr %2, align 8, !tbaa !5
  %1645 = getelementptr inbounds %struct.ImGuiTable, ptr %1644, i32 0, i32 49
  %1646 = getelementptr inbounds %struct.ImRect, ptr %1645, i32 0, i32 1
  %1647 = getelementptr inbounds %struct.ImVec2, ptr %1646, i32 0, i32 0
  %1648 = load float, ptr %1647, align 8, !tbaa !223
  %1649 = load float, ptr %50, align 4, !tbaa !114
  %1650 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1648, float noundef %1649)
  %1651 = load ptr, ptr %2, align 8, !tbaa !5
  %1652 = getelementptr inbounds %struct.ImGuiTable, ptr %1651, i32 0, i32 49
  %1653 = getelementptr inbounds %struct.ImRect, ptr %1652, i32 0, i32 1
  %1654 = getelementptr inbounds %struct.ImVec2, ptr %1653, i32 0, i32 0
  store float %1650, ptr %1654, align 8, !tbaa !223
  br label %1655

1655:                                             ; preds = %1634, %1628
  %1656 = load ptr, ptr %2, align 8, !tbaa !5
  %1657 = getelementptr inbounds %struct.ImGuiTable, ptr %1656, i32 0, i32 48
  %1658 = load ptr, ptr %2, align 8, !tbaa !5
  %1659 = getelementptr inbounds %struct.ImGuiTable, ptr %1658, i32 0, i32 56
  %1660 = load ptr, ptr %1659, align 8, !tbaa !143
  %1661 = getelementptr inbounds %struct.ImGuiWindow, ptr %1660, i32 0, i32 75
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1661, ptr align 8 %1657, i64 16, i1 false), !tbaa.struct !167
  %1662 = load ptr, ptr %2, align 8, !tbaa !5
  %1663 = getelementptr inbounds %struct.ImGuiTable, ptr %1662, i32 0, i32 49
  %1664 = getelementptr inbounds %struct.ImRect, ptr %1663, i32 0, i32 0
  %1665 = getelementptr inbounds %struct.ImVec2, ptr %1664, i32 0, i32 0
  %1666 = load float, ptr %1665, align 8, !tbaa !224
  %1667 = load ptr, ptr %2, align 8, !tbaa !5
  %1668 = getelementptr inbounds %struct.ImGuiTable, ptr %1667, i32 0, i32 29
  store float %1666, ptr %1668, align 4, !tbaa !225
  %1669 = load ptr, ptr %2, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.ImGuiTable, ptr %1669, i32 0, i32 49
  %1671 = getelementptr inbounds %struct.ImRect, ptr %1670, i32 0, i32 1
  %1672 = getelementptr inbounds %struct.ImVec2, ptr %1671, i32 0, i32 0
  %1673 = load float, ptr %1672, align 8, !tbaa !223
  %1674 = load ptr, ptr %2, align 8, !tbaa !5
  %1675 = getelementptr inbounds %struct.ImGuiTable, ptr %1674, i32 0, i32 30
  store float %1673, ptr %1675, align 8, !tbaa !226
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %1676 = load ptr, ptr %2, align 8, !tbaa !5
  %1677 = getelementptr inbounds %struct.ImGuiTable, ptr %1676, i32 0, i32 1
  %1678 = load i32, ptr %1677, align 4, !tbaa !29
  %1679 = and i32 %1678, 131072
  %1680 = icmp ne i32 %1679, 0
  br i1 %1680, label %1681, label %1687

1681:                                             ; preds = %1655
  %1682 = load ptr, ptr %2, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.ImGuiTable, ptr %1682, i32 0, i32 46
  %1684 = getelementptr inbounds %struct.ImRect, ptr %1683, i32 0, i32 1
  %1685 = getelementptr inbounds %struct.ImVec2, ptr %1684, i32 0, i32 1
  %1686 = load float, ptr %1685, align 4, !tbaa !187
  store float %1686, ptr %51, align 4, !tbaa !114
  br label %1710

1687:                                             ; preds = %1655
  %1688 = load ptr, ptr %2, align 8, !tbaa !5
  %1689 = getelementptr inbounds %struct.ImGuiTable, ptr %1688, i32 0, i32 56
  %1690 = load ptr, ptr %1689, align 8, !tbaa !143
  %1691 = getelementptr inbounds %struct.ImGuiWindow, ptr %1690, i32 0, i32 77
  %1692 = getelementptr inbounds %struct.ImRect, ptr %1691, i32 0, i32 1
  %1693 = getelementptr inbounds %struct.ImVec2, ptr %1692, i32 0, i32 1
  %1694 = load float, ptr %1693, align 4, !tbaa !227
  %1695 = load ptr, ptr %2, align 8, !tbaa !5
  %1696 = getelementptr inbounds %struct.ImGuiTable, ptr %1695, i32 0, i32 1
  %1697 = load i32, ptr %1696, align 4, !tbaa !29
  %1698 = and i32 %1697, 33554432
  %1699 = icmp ne i32 %1698, 0
  br i1 %1699, label %1700, label %1701

1700:                                             ; preds = %1687
  br label %1707

1701:                                             ; preds = %1687
  %1702 = load ptr, ptr %2, align 8, !tbaa !5
  %1703 = getelementptr inbounds %struct.ImGuiTable, ptr %1702, i32 0, i32 46
  %1704 = getelementptr inbounds %struct.ImRect, ptr %1703, i32 0, i32 1
  %1705 = getelementptr inbounds %struct.ImVec2, ptr %1704, i32 0, i32 1
  %1706 = load float, ptr %1705, align 4, !tbaa !187
  br label %1707

1707:                                             ; preds = %1701, %1700
  %1708 = phi float [ 0.000000e+00, %1700 ], [ %1706, %1701 ]
  %1709 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1694, float noundef %1708)
  store float %1709, ptr %51, align 4, !tbaa !114
  br label %1710

1710:                                             ; preds = %1707, %1681
  %1711 = load float, ptr %51, align 4, !tbaa !114
  %1712 = load ptr, ptr %3, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.ImGuiContext, ptr %1712, i32 0, i32 4
  %1714 = getelementptr inbounds %struct.ImGuiStyle, ptr %1713, i32 0, i32 17
  %1715 = getelementptr inbounds %struct.ImVec2, ptr %1714, i32 0, i32 1
  %1716 = load float, ptr %1715, align 4, !tbaa !228
  %1717 = fsub float %1711, %1716
  %1718 = load ptr, ptr %2, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.ImGuiTable, ptr %1718, i32 0, i32 56
  %1720 = load ptr, ptr %1719, align 8, !tbaa !143
  %1721 = getelementptr inbounds %struct.ImGuiWindow, ptr %1720, i32 0, i32 74
  %1722 = getelementptr inbounds %struct.ImRect, ptr %1721, i32 0, i32 0
  %1723 = getelementptr inbounds %struct.ImVec2, ptr %1722, i32 0, i32 1
  %1724 = load float, ptr %1723, align 4, !tbaa !229
  %1725 = load ptr, ptr %2, align 8, !tbaa !5
  %1726 = getelementptr inbounds %struct.ImGuiTable, ptr %1725, i32 0, i32 56
  %1727 = load ptr, ptr %1726, align 8, !tbaa !143
  %1728 = getelementptr inbounds %struct.ImGuiWindow, ptr %1727, i32 0, i32 74
  %1729 = getelementptr inbounds %struct.ImRect, ptr %1728, i32 0, i32 1
  %1730 = getelementptr inbounds %struct.ImVec2, ptr %1729, i32 0, i32 1
  %1731 = load float, ptr %1730, align 4, !tbaa !230
  %1732 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1717, float noundef %1724, float noundef %1731)
  %1733 = load ptr, ptr %2, align 8, !tbaa !5
  %1734 = getelementptr inbounds %struct.ImGuiTable, ptr %1733, i32 0, i32 56
  %1735 = load ptr, ptr %1734, align 8, !tbaa !143
  %1736 = getelementptr inbounds %struct.ImGuiWindow, ptr %1735, i32 0, i32 74
  %1737 = getelementptr inbounds %struct.ImRect, ptr %1736, i32 0, i32 1
  %1738 = getelementptr inbounds %struct.ImVec2, ptr %1737, i32 0, i32 1
  store float %1732, ptr %1738, align 4, !tbaa !230
  %1739 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef %1739)
  %1740 = load ptr, ptr %2, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.ImGuiTable, ptr %1740, i32 0, i32 1
  %1742 = load i32, ptr %1741, align 4, !tbaa !29
  %1743 = and i32 %1742, 1
  %1744 = icmp ne i32 %1743, 0
  br i1 %1744, label %1745, label %1747

1745:                                             ; preds = %1710
  %1746 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef %1746)
  br label %1747

1747:                                             ; preds = %1745, %1710
  %1748 = load ptr, ptr %35, align 8, !tbaa !5
  %1749 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1748, i32 0, i32 2
  store float 0.000000e+00, ptr %1749, align 4, !tbaa !231
  %1750 = load ptr, ptr %2, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.ImGuiTable, ptr %1750, i32 0, i32 92
  store i8 1, ptr %1751, align 2, !tbaa !9
  %1752 = load ptr, ptr %2, align 8, !tbaa !5
  %1753 = getelementptr inbounds %struct.ImGuiTable, ptr %1752, i32 0, i32 96
  store i8 0, ptr %1753, align 2, !tbaa !232
  %1754 = load ptr, ptr %2, align 8, !tbaa !5
  %1755 = getelementptr inbounds %struct.ImGuiTable, ptr %1754, i32 0, i32 72
  store i16 -1, ptr %1755, align 2, !tbaa !233
  %1756 = load ptr, ptr %2, align 8, !tbaa !5
  %1757 = getelementptr inbounds %struct.ImGuiTable, ptr %1756, i32 0, i32 97
  %1758 = load i8, ptr %1757, align 1, !tbaa !234, !range !27, !noundef !28
  %1759 = trunc i8 %1758 to i1
  br i1 %1759, label %1760, label %1782

1760:                                             ; preds = %1747
  %1761 = load ptr, ptr %2, align 8, !tbaa !5
  %1762 = getelementptr inbounds %struct.ImGuiTable, ptr %1761, i32 0, i32 83
  %1763 = load i16, ptr %1762, align 4, !tbaa !235
  %1764 = sext i16 %1763 to i32
  %1765 = icmp ne i32 %1764, -1
  br i1 %1765, label %1766, label %1782

1766:                                             ; preds = %1760
  %1767 = load ptr, ptr %2, align 8, !tbaa !5
  %1768 = getelementptr inbounds %struct.ImGuiTable, ptr %1767, i32 0, i32 17
  %1769 = load i16, ptr %1768, align 2, !tbaa !236
  %1770 = sext i16 %1769 to i32
  %1771 = load ptr, ptr %2, align 8, !tbaa !5
  %1772 = getelementptr inbounds %struct.ImGuiTable, ptr %1771, i32 0, i32 16
  %1773 = load i16, ptr %1772, align 8, !tbaa !179
  %1774 = sext i16 %1773 to i32
  %1775 = icmp eq i32 %1770, %1774
  br i1 %1775, label %1776, label %1782

1776:                                             ; preds = %1766
  %1777 = load ptr, ptr %2, align 8, !tbaa !5
  %1778 = getelementptr inbounds %struct.ImGuiTable, ptr %1777, i32 0, i32 83
  %1779 = load i16, ptr %1778, align 4, !tbaa !235
  %1780 = load ptr, ptr %2, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.ImGuiTable, ptr %1780, i32 0, i32 72
  store i16 %1779, ptr %1781, align 2, !tbaa !233
  br label %1832

1782:                                             ; preds = %1766, %1760, %1747
  %1783 = load ptr, ptr %2, align 8, !tbaa !5
  %1784 = getelementptr inbounds %struct.ImGuiTable, ptr %1783, i32 0, i32 1
  %1785 = load i32, ptr %1784, align 4, !tbaa !29
  %1786 = and i32 %1785, 268435456
  %1787 = icmp ne i32 %1786, 0
  br i1 %1787, label %1788, label %1831

1788:                                             ; preds = %1782
  %1789 = load ptr, ptr %2, align 8, !tbaa !5
  %1790 = getelementptr inbounds %struct.ImGuiTable, ptr %1789, i32 0, i32 70
  %1791 = load i16, ptr %1790, align 2, !tbaa !183
  %1792 = sext i16 %1791 to i32
  %1793 = icmp ne i32 %1792, -1
  br i1 %1793, label %1794, label %1831

1794:                                             ; preds = %1788
  %1795 = load ptr, ptr %2, align 8, !tbaa !5
  %1796 = getelementptr inbounds %struct.ImGuiTable, ptr %1795, i32 0, i32 70
  %1797 = load i16, ptr %1796, align 2, !tbaa !183
  %1798 = sext i16 %1797 to i32
  %1799 = load ptr, ptr %2, align 8, !tbaa !5
  %1800 = getelementptr inbounds %struct.ImGuiTable, ptr %1799, i32 0, i32 13
  %1801 = load i32, ptr %1800, align 4, !tbaa !34
  %1802 = icmp ne i32 %1798, %1801
  br i1 %1802, label %1803, label %1831

1803:                                             ; preds = %1794
  %1804 = load ptr, ptr %2, align 8, !tbaa !5
  %1805 = getelementptr inbounds %struct.ImGuiTable, ptr %1804, i32 0, i32 71
  %1806 = load i16, ptr %1805, align 4, !tbaa !182
  %1807 = sext i16 %1806 to i32
  %1808 = icmp eq i32 %1807, -1
  br i1 %1808, label %1809, label %1831

1809:                                             ; preds = %1803
  %1810 = load ptr, ptr %3, align 8, !tbaa !5
  %1811 = getelementptr inbounds %struct.ImGuiContext, ptr %1810, i32 0, i32 52
  %1812 = load i32, ptr %1811, align 4, !tbaa !189
  %1813 = icmp eq i32 %1812, 0
  br i1 %1813, label %1824, label %1814

1814:                                             ; preds = %1809
  %1815 = load ptr, ptr %2, align 8, !tbaa !5
  %1816 = getelementptr inbounds %struct.ImGuiTable, ptr %1815, i32 0, i32 107
  %1817 = load i8, ptr %1816, align 1, !tbaa !237, !range !27, !noundef !28
  %1818 = trunc i8 %1817 to i1
  br i1 %1818, label %1824, label %1819

1819:                                             ; preds = %1814
  %1820 = load ptr, ptr %3, align 8, !tbaa !5
  %1821 = getelementptr inbounds %struct.ImGuiContext, ptr %1820, i32 0, i32 168
  %1822 = load i8, ptr %1821, align 8, !tbaa !238, !range !27, !noundef !28
  %1823 = trunc i8 %1822 to i1
  br i1 %1823, label %1824, label %1830

1824:                                             ; preds = %1819, %1814, %1809
  %1825 = load ptr, ptr %2, align 8, !tbaa !5
  %1826 = getelementptr inbounds %struct.ImGuiTable, ptr %1825, i32 0, i32 70
  %1827 = load i16, ptr %1826, align 2, !tbaa !183
  %1828 = load ptr, ptr %2, align 8, !tbaa !5
  %1829 = getelementptr inbounds %struct.ImGuiTable, ptr %1828, i32 0, i32 72
  store i16 %1827, ptr %1829, align 2, !tbaa !233
  br label %1830

1830:                                             ; preds = %1824, %1819
  br label %1831

1831:                                             ; preds = %1830, %1803, %1794, %1788, %1782
  br label %1832

1832:                                             ; preds = %1831, %1776
  %1833 = load ptr, ptr %2, align 8, !tbaa !5
  %1834 = getelementptr inbounds %struct.ImGuiTable, ptr %1833, i32 0, i32 98
  %1835 = load i8, ptr %1834, align 4, !tbaa !239, !range !27, !noundef !28
  %1836 = trunc i8 %1835 to i1
  %1837 = zext i1 %1836 to i32
  %1838 = icmp eq i32 %1837, 0
  br i1 %1838, label %1839, label %1847

1839:                                             ; preds = %1832
  %1840 = load ptr, ptr %2, align 8, !tbaa !5
  %1841 = call noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef %1840)
  br i1 %1841, label %1842, label %1847

1842:                                             ; preds = %1839
  %1843 = load ptr, ptr %2, align 8, !tbaa !5
  %1844 = load ptr, ptr %2, align 8, !tbaa !5
  %1845 = getelementptr inbounds %struct.ImGuiTable, ptr %1844, i32 0, i32 1
  %1846 = load i32, ptr %1845, align 4, !tbaa !29
  call void @_ZN5ImGui27TableDrawDefaultContextMenuEP10ImGuiTablei(ptr noundef %1843, i32 noundef %1846)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1847

1847:                                             ; preds = %1842, %1839, %1832
  %1848 = load ptr, ptr %2, align 8, !tbaa !5
  %1849 = getelementptr inbounds %struct.ImGuiTable, ptr %1848, i32 0, i32 95
  %1850 = load i8, ptr %1849, align 1, !tbaa !127, !range !27, !noundef !28
  %1851 = trunc i8 %1850 to i1
  br i1 %1851, label %1852, label %1860

1852:                                             ; preds = %1847
  %1853 = load ptr, ptr %2, align 8, !tbaa !5
  %1854 = getelementptr inbounds %struct.ImGuiTable, ptr %1853, i32 0, i32 1
  %1855 = load i32, ptr %1854, align 4, !tbaa !29
  %1856 = and i32 %1855, 8
  %1857 = icmp ne i32 %1856, 0
  br i1 %1857, label %1858, label %1860

1858:                                             ; preds = %1852
  %1859 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef %1859)
  br label %1860

1860:                                             ; preds = %1858, %1852, %1847
  %1861 = load ptr, ptr %2, align 8, !tbaa !5
  %1862 = getelementptr inbounds %struct.ImGuiTable, ptr %1861, i32 0, i32 86
  %1863 = load i16, ptr %1862, align 2, !tbaa !240
  %1864 = sext i16 %1863 to i32
  %1865 = icmp sgt i32 %1864, 0
  br i1 %1865, label %1866, label %1892

1866:                                             ; preds = %1860
  %1867 = load ptr, ptr %2, align 8, !tbaa !5
  %1868 = getelementptr inbounds %struct.ImGuiTable, ptr %1867, i32 0, i32 4
  %1869 = load ptr, ptr %2, align 8, !tbaa !5
  %1870 = getelementptr inbounds %struct.ImGuiTable, ptr %1869, i32 0, i32 5
  %1871 = load ptr, ptr %2, align 8, !tbaa !5
  %1872 = getelementptr inbounds %struct.ImGuiTable, ptr %1871, i32 0, i32 86
  %1873 = load i16, ptr %1872, align 2, !tbaa !240
  %1874 = sext i16 %1873 to i32
  %1875 = sub nsw i32 %1874, 1
  %1876 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1870, i32 noundef %1875)
  %1877 = load i16, ptr %1876, align 2, !tbaa !115
  %1878 = sext i16 %1877 to i32
  %1879 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1868, i32 noundef %1878)
  %1880 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1879, i32 0, i32 3
  %1881 = load float, ptr %1880, align 4, !tbaa !202
  %1882 = load ptr, ptr %2, align 8, !tbaa !5
  %1883 = getelementptr inbounds %struct.ImGuiTable, ptr %1882, i32 0, i32 46
  %1884 = getelementptr inbounds %struct.ImRect, ptr %1883, i32 0, i32 0
  %1885 = getelementptr inbounds %struct.ImVec2, ptr %1884, i32 0, i32 0
  %1886 = load float, ptr %1885, align 8, !tbaa !184
  %1887 = fsub float %1881, %1886
  %1888 = load ptr, ptr %2, align 8, !tbaa !5
  %1889 = getelementptr inbounds %struct.ImGuiTable, ptr %1888, i32 0, i32 56
  %1890 = load ptr, ptr %1889, align 8, !tbaa !143
  %1891 = getelementptr inbounds %struct.ImGuiWindow, ptr %1890, i32 0, i32 24
  store float %1887, ptr %1891, align 8, !tbaa !241
  br label %1892

1892:                                             ; preds = %1866, %1860
  %1893 = load ptr, ptr %2, align 8, !tbaa !5
  %1894 = getelementptr inbounds %struct.ImGuiTable, ptr %1893, i32 0, i32 84
  %1895 = load i16, ptr %1894, align 2, !tbaa !242
  %1896 = sext i16 %1895 to i32
  %1897 = icmp sgt i32 %1896, 0
  br i1 %1897, label %1898, label %1906

1898:                                             ; preds = %1892
  %1899 = load ptr, ptr %35, align 8, !tbaa !5
  %1900 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1899, i32 0, i32 3
  %1901 = load float, ptr %1900, align 4, !tbaa !243
  %1902 = load ptr, ptr %2, align 8, !tbaa !5
  %1903 = getelementptr inbounds %struct.ImGuiTable, ptr %1902, i32 0, i32 56
  %1904 = load ptr, ptr %1903, align 8, !tbaa !143
  %1905 = getelementptr inbounds %struct.ImGuiWindow, ptr %1904, i32 0, i32 25
  store float %1901, ptr %1905, align 4, !tbaa !244
  br label %1906

1906:                                             ; preds = %1898, %1892
  %1907 = load ptr, ptr %35, align 8, !tbaa !5
  %1908 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1907, i32 0, i32 3
  store float 0.000000e+00, ptr %1908, align 4, !tbaa !243
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  %1909 = load ptr, ptr %2, align 8, !tbaa !5
  %1910 = getelementptr inbounds %struct.ImGuiTable, ptr %1909, i32 0, i32 56
  %1911 = load ptr, ptr %1910, align 8, !tbaa !143
  store ptr %1911, ptr %52, align 8, !tbaa !5
  %1912 = load ptr, ptr %2, align 8, !tbaa !5
  %1913 = getelementptr inbounds %struct.ImGuiTable, ptr %1912, i32 0, i32 1
  %1914 = load i32, ptr %1913, align 4, !tbaa !29
  %1915 = and i32 %1914, 1048576
  %1916 = icmp ne i32 %1915, 0
  br i1 %1916, label %1917, label %1924

1917:                                             ; preds = %1906
  %1918 = load ptr, ptr %2, align 8, !tbaa !5
  %1919 = getelementptr inbounds %struct.ImGuiTable, ptr %1918, i32 0, i32 58
  %1920 = load ptr, ptr %1919, align 8, !tbaa !245
  %1921 = load ptr, ptr %52, align 8, !tbaa !5
  %1922 = getelementptr inbounds %struct.ImGuiWindow, ptr %1921, i32 0, i32 89
  %1923 = load ptr, ptr %1922, align 8, !tbaa !246
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %1920, ptr noundef %1923, i32 noundef 2)
  br label %1934

1924:                                             ; preds = %1906
  %1925 = load ptr, ptr %52, align 8, !tbaa !5
  %1926 = getelementptr inbounds %struct.ImGuiWindow, ptr %1925, i32 0, i32 89
  %1927 = load ptr, ptr %1926, align 8, !tbaa !246
  %1928 = load ptr, ptr %52, align 8, !tbaa !5
  %1929 = getelementptr inbounds %struct.ImGuiWindow, ptr %1928, i32 0, i32 76
  %1930 = getelementptr inbounds %struct.ImRect, ptr %1929, i32 0, i32 0
  %1931 = load ptr, ptr %52, align 8, !tbaa !5
  %1932 = getelementptr inbounds %struct.ImGuiWindow, ptr %1931, i32 0, i32 76
  %1933 = getelementptr inbounds %struct.ImRect, ptr %1932, i32 0, i32 1
  call void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %1927, ptr noundef nonnull align 4 dereferenceable(8) %1930, ptr noundef nonnull align 4 dereferenceable(8) %1933, i1 noundef zeroext false)
  br label %1934

1934:                                             ; preds = %1924, %1917
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #10
  ret void

1935:                                             ; preds = %1528, %929, %374
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z22ImBitArrayClearAllBitsPji(ptr noundef, i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef, ptr noundef, i32 noundef) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z16ImBitArraySetBitPji(ptr noundef, i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef, ptr noundef) #6

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImTruncf(float noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef, float noundef, float noundef) unnamed_addr #6 align 2

declare noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef, i32 noundef) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui27TableDrawDefaultContextMenuEP10ImGuiTablei(ptr noundef, i32 noundef) #6

declare void @_ZN5ImGui8EndPopupEv() #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef) #6

declare void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, i32 noundef) #9

declare void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) #9

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { noreturn 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, !26, i64 566}
!10 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !12, i64 24, !13, i64 40, !14, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !15, i64 120, !15, i64 122, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !11, i64 148, !11, i64 150, !11, i64 152, !7, i64 156, !11, i64 164, !11, i64 168, !16, i64 172, !16, i64 176, !16, i64 180, !16, i64 184, !16, i64 188, !16, i64 192, !16, i64 196, !16, i64 200, !16, i64 204, !16, i64 208, !16, i64 212, !16, i64 216, !16, i64 220, !16, i64 224, !16, i64 228, !16, i64 232, !16, i64 236, !17, i64 240, !17, i64 256, !17, i64 272, !17, i64 288, !17, i64 304, !17, i64 320, !17, i64 336, !17, i64 352, !17, i64 368, !6, i64 384, !6, i64 392, !19, i64 400, !6, i64 416, !21, i64 424, !22, i64 448, !23, i64 464, !24, i64 480, !25, i64 496, !15, i64 512, !15, i64 514, !15, i64 516, !15, i64 518, !15, i64 520, !15, i64 522, !15, i64 524, !15, i64 526, !15, i64 528, !15, i64 530, !15, i64 532, !15, i64 534, !15, i64 536, !15, i64 538, !15, i64 540, !15, i64 542, !15, i64 544, !15, i64 546, !15, i64 548, !15, i64 550, !15, i64 552, !15, i64 554, !15, i64 556, !15, i64 558, !15, i64 560, !15, i64 562, !15, i64 564, !26, i64 566, !26, i64 567, !26, i64 568, !26, i64 569, !26, i64 570, !26, i64 571, !26, i64 572, !26, i64 573, !26, i64 574, !26, i64 575, !26, i64 576, !26, i64 577, !26, i64 578, !26, i64 579, !26, i64 580, !26, i64 581, !26, i64 582, !26, i64 583, !26, i64 584, !26, i64 585}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!13 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!14 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!15 = !{!"short", !7, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!18 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!19 = !{!"_ZTS15ImGuiTextBuffer", !20, i64 0}
!20 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!21 = !{!"_ZTS22ImGuiTableInstanceData", !11, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !11, i64 16, !11, i64 20}
!22 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!23 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !15, i64 4, !15, i64 6, !11, i64 8}
!24 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!25 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !26, i64 12}
!26 = !{!"bool", !7, i64 0}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = !{!10, !11, i64 4}
!30 = !{!11, !11, i64 0}
!31 = !{!10, !26, i64 575}
!32 = !{!10, !15, i64 514}
!33 = !{!10, !6, i64 80}
!34 = !{!10, !11, i64 108}
!35 = !{!10, !6, i64 72}
!36 = !{!10, !15, i64 540}
!37 = !{!38, !16, i64 14900}
!38 = !{!"_ZTS12ImGuiContext", !26, i64 0, !26, i64 1, !39, i64 8, !42, i64 14624, !45, i64 14840, !11, i64 15972, !11, i64 15976, !6, i64 15984, !16, i64 15992, !16, i64 15996, !46, i64 16000, !49, i64 16528, !11, i64 16536, !11, i64 16540, !11, i64 16544, !11, i64 16548, !26, i64 16552, !26, i64 16553, !26, i64 16554, !26, i64 16555, !26, i64 16556, !6, i64 16560, !50, i64 16568, !50, i64 16584, !40, i64 16600, !11, i64 16604, !51, i64 16608, !51, i64 16624, !51, i64 16640, !52, i64 16656, !53, i64 16672, !11, i64 16688, !18, i64 16692, !11, i64 16700, !6, i64 16704, !6, i64 16712, !6, i64 16720, !6, i64 16728, !6, i64 16736, !18, i64 16744, !11, i64 16752, !11, i64 16756, !16, i64 16760, !18, i64 16764, !18, i64 16772, !11, i64 16780, !11, i64 16784, !11, i64 16788, !26, i64 16792, !26, i64 16793, !16, i64 16796, !16, i64 16800, !11, i64 16804, !11, i64 16808, !16, i64 16812, !26, i64 16816, !26, i64 16817, !26, i64 16818, !26, i64 16819, !26, i64 16820, !26, i64 16821, !26, i64 16822, !11, i64 16823, !18, i64 16824, !6, i64 16832, !55, i64 16840, !11, i64 16844, !26, i64 16848, !26, i64 16849, !6, i64 16856, !11, i64 16864, !16, i64 16868, !49, i64 16872, !49, i64 16880, !49, i64 16888, !56, i64 16896, !7, i64 16916, !57, i64 18768, !11, i64 19112, !26, i64 19116, !11, i64 19120, !11, i64 19124, !11, i64 19128, !11, i64 19132, !11, i64 19136, !59, i64 19144, !61, i64 19176, !62, i64 19256, !26, i64 19416, !11, i64 19420, !64, i64 19424, !65, i64 19440, !66, i64 19456, !67, i64 19472, !68, i64 19488, !69, i64 19504, !70, i64 19520, !70, i64 19536, !71, i64 19552, !11, i64 19568, !72, i64 19576, !16, i64 19592, !6, i64 19600, !6, i64 19608, !6, i64 19616, !11, i64 19624, !73, i64 19632, !11, i64 19680, !11, i64 19684, !11, i64 19688, !6, i64 19696, !11, i64 19704, !11, i64 19708, !67, i64 19712, !11, i64 19728, !11, i64 19732, !11, i64 19736, !11, i64 19740, !11, i64 19744, !16, i64 19748, !11, i64 19752, !11, i64 19756, !11, i64 19760, !11, i64 19764, !11, i64 19768, !55, i64 19772, !74, i64 19776, !60, i64 19784, !26, i64 19792, !26, i64 19793, !26, i64 19794, !26, i64 19795, !26, i64 19796, !26, i64 19797, !26, i64 19798, !75, i64 19800, !26, i64 19864, !26, i64 19865, !26, i64 19866, !11, i64 19868, !11, i64 19872, !11, i64 19876, !11, i64 19880, !11, i64 19884, !11, i64 19888, !17, i64 19892, !17, i64 19908, !11, i64 19924, !11, i64 19928, !11, i64 19932, !75, i64 19936, !75, i64 20000, !75, i64 20064, !75, i64 20128, !11, i64 20192, !11, i64 20196, !6, i64 20200, !6, i64 20208, !6, i64 20216, !16, i64 20224, !16, i64 20228, !26, i64 20232, !18, i64 20236, !18, i64 20244, !16, i64 20252, !26, i64 20256, !26, i64 20257, !26, i64 20258, !11, i64 20260, !11, i64 20264, !11, i64 20268, !76, i64 20272, !17, i64 20336, !17, i64 20352, !11, i64 20368, !11, i64 20372, !16, i64 20376, !11, i64 20380, !11, i64 20384, !11, i64 20388, !11, i64 20392, !77, i64 20400, !7, i64 20416, !11, i64 20432, !78, i64 20440, !6, i64 20456, !11, i64 20464, !11, i64 20468, !79, i64 20472, !80, i64 20488, !82, i64 20528, !83, i64 20544, !6, i64 20560, !84, i64 20568, !86, i64 20608, !87, i64 20624, !11, i64 20640, !11, i64 20644, !16, i64 20648, !16, i64 20652, !11, i64 20656, !11, i64 20660, !11, i64 20664, !16, i64 20668, !18, i64 20672, !88, i64 20680, !91, i64 24408, !92, i64 24432, !11, i64 24552, !11, i64 24556, !11, i64 24560, !11, i64 24564, !16, i64 24568, !16, i64 24572, !11, i64 24576, !47, i64 24580, !94, i64 24596, !17, i64 24644, !26, i64 24660, !16, i64 24664, !16, i64 24668, !26, i64 24672, !26, i64 24673, !16, i64 24676, !16, i64 24680, !16, i64 24684, !16, i64 24688, !15, i64 24692, !15, i64 24694, !15, i64 24696, !20, i64 24704, !95, i64 24720, !96, i64 24736, !98, i64 24840, !98, i64 24856, !11, i64 24872, !99, i64 24880, !6, i64 24936, !26, i64 24944, !16, i64 24948, !19, i64 24952, !102, i64 24968, !103, i64 24984, !104, i64 25000, !105, i64 25016, !11, i64 25032, !7, i64 25040, !26, i64 25128, !106, i64 25132, !6, i64 25136, !19, i64 25144, !6, i64 25160, !6, i64 25168, !16, i64 25176, !26, i64 25180, !11, i64 25184, !11, i64 25188, !11, i64 25192, !11, i64 25196, !19, i64 25200, !107, i64 25216, !11, i64 25240, !7, i64 25244, !7, i64 25245, !26, i64 25246, !11, i64 25248, !7, i64 25252, !26, i64 25253, !7, i64 25254, !11, i64 25256, !16, i64 25260, !47, i64 25264, !108, i64 25280, !109, i64 25304, !111, i64 25344, !6, i64 25408, !7, i64 25416, !11, i64 25656, !11, i64 25660, !16, i64 25664, !11, i64 25668, !11, i64 25672, !11, i64 25676, !20, i64 25680, !7, i64 25696}
!39 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !16, i64 56, !26, i64 60, !6, i64 64, !18, i64 72, !26, i64 80, !26, i64 81, !26, i64 82, !26, i64 83, !26, i64 84, !26, i64 85, !26, i64 86, !26, i64 87, !26, i64 88, !26, i64 89, !26, i64 90, !26, i64 91, !26, i64 92, !26, i64 93, !26, i64 94, !26, i64 95, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !26, i64 120, !26, i64 121, !26, i64 122, !26, i64 123, !26, i64 124, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !15, i64 200, !26, i64 202, !26, i64 203, !26, i64 204, !26, i64 205, !26, i64 206, !26, i64 207, !26, i64 208, !16, i64 212, !11, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !18, i64 232, !7, i64 240, !7, i64 2904, !7, i64 3572, !6, i64 3640, !18, i64 3648, !7, i64 3656, !16, i64 3664, !16, i64 3668, !40, i64 3672, !11, i64 3676, !26, i64 3680, !26, i64 3681, !26, i64 3682, !26, i64 3683, !11, i64 3684, !7, i64 3688, !26, i64 14344, !18, i64 14348, !7, i64 14356, !7, i64 14400, !7, i64 14440, !7, i64 14445, !7, i64 14450, !7, i64 14460, !7, i64 14470, !7, i64 14475, !7, i64 14480, !26, i64 14485, !7, i64 14488, !7, i64 14508, !7, i64 14528, !7, i64 14568, !16, i64 14588, !26, i64 14592, !26, i64 14593, !7, i64 14594, !26, i64 14595, !15, i64 14596, !41, i64 14600}
!40 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!41 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!42 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !43, i64 184, !44, i64 200}
!43 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !11, i64 0, !11, i64 4, !6, i64 8}
!45 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !18, i64 24, !18, i64 32, !11, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !18, i64 60, !16, i64 68, !16, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !16, i64 148, !16, i64 152, !11, i64 156, !18, i64 160, !18, i64 168, !16, i64 176, !18, i64 180, !18, i64 188, !18, i64 196, !18, i64 204, !16, i64 212, !16, i64 216, !26, i64 220, !26, i64 221, !26, i64 222, !16, i64 224, !16, i64 228, !7, i64 232, !16, i64 1112, !16, i64 1116, !16, i64 1120, !11, i64 1124, !11, i64 1128}
!46 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !16, i64 16, !16, i64 20, !16, i64 24, !47, i64 28, !11, i64 44, !48, i64 48, !7, i64 64, !16, i64 448, !7, i64 452, !6, i64 520}
!47 = !{!"_ZTS6ImVec4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!48 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!49 = !{!"double", !7, i64 0}
!50 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !11, i64 0, !11, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!52 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!53 = !{!"_ZTS12ImGuiStorage", !54, i64 0}
!54 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!55 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!56 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!57 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !58, i64 312, !58, i64 328}
!58 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !11, i64 4, !60, i64 8, !16, i64 16, !11, i64 20, !26, i64 24, !11, i64 25}
!60 = !{!"long long", !7, i64 0}
!61 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !17, i64 12, !17, i64 28, !17, i64 44, !17, i64 60}
!62 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !18, i64 20, !18, i64 28, !18, i64 36, !18, i64 44, !18, i64 52, !11, i64 60, !26, i64 64, !26, i64 65, !17, i64 68, !6, i64 88, !6, i64 96, !16, i64 104, !11, i64 108, !11, i64 112, !63, i64 116, !18, i64 148}
!63 = !{!"_ZTS16ImGuiWindowClass", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !26, i64 28, !26, i64 29}
!64 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!73 = !{!"_ZTS20ImGuiPlatformMonitor", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !16, i64 32, !6, i64 40}
!74 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!75 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !17, i64 16, !11, i64 32, !60, i64 40, !16, i64 48, !16, i64 52, !16, i64 56}
!76 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !26, i64 57, !26, i64 58}
!77 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI10ImGuiTableE", !81, i64 0, !53, i64 16, !11, i64 32, !11, i64 36}
!81 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!84 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !85, i64 0, !53, i64 16, !11, i64 32, !11, i64 36}
!85 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!86 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!87 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!88 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !41, i64 24, !20, i64 40, !20, i64 56, !26, i64 72, !11, i64 76, !16, i64 80, !89, i64 84, !16, i64 3712, !26, i64 3716, !26, i64 3717, !26, i64 3718, !11, i64 3720}
!89 = !{!"_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, !16, i64 28, !90, i64 32}
!90 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!91 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !11, i64 0, !20, i64 8}
!92 = !{!"_ZTS6ImFont", !82, i64 0, !16, i64 16, !16, i64 20, !41, i64 24, !93, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !16, i64 88, !16, i64 92, !26, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !11, i64 112, !7, i64 116}
!93 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!94 = !{!"_ZTS21ImGuiComboPreviewData", !17, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !16, i64 40, !11, i64 44}
!95 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!96 = !{!"_ZTS22ImGuiTypingSelectState", !97, i64 0, !7, i64 24, !11, i64 88, !11, i64 92, !16, i64 96, !26, i64 100}
!97 = !{!"_ZTS24ImGuiTypingSelectRequest", !11, i64 0, !11, i64 4, !6, i64 8, !26, i64 16, !26, i64 17, !7, i64 18}
!98 = !{!"_ZTS20ImGuiPlatformImeData", !26, i64 0, !18, i64 4, !16, i64 12}
!99 = !{!"_ZTS16ImGuiDockContext", !53, i64 0, !100, i64 16, !101, i64 32, !26, i64 48}
!100 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !11, i64 0, !11, i64 4, !6, i64 8}
!101 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !11, i64 0, !11, i64 4, !6, i64 8}
!102 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!103 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !20, i64 0}
!104 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !20, i64 0}
!105 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!106 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!107 = !{!"_ZTS14ImGuiTextIndex", !68, i64 0, !11, i64 16}
!108 = !{!"_ZTS18ImGuiMetricsConfig", !26, i64 0, !26, i64 1, !26, i64 2, !26, i64 3, !26, i64 4, !26, i64 5, !26, i64 6, !26, i64 7, !26, i64 8, !26, i64 9, !11, i64 12, !11, i64 16}
!109 = !{!"_ZTS16ImGuiIDStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !110, i64 16, !26, i64 32, !16, i64 36}
!110 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!111 = !{!"_ZTS19ImGuiDebugAllocInfo", !11, i64 0, !11, i64 4, !15, i64 8, !7, i64 12}
!112 = !{!10, !16, i64 184}
!113 = !{!26, !26, i64 0}
!114 = !{!16, !16, i64 0}
!115 = !{!15, !15, i64 0}
!116 = !{!10, !15, i64 518}
!117 = !{!118, !15, i64 80}
!118 = !{!"_ZTS16ImGuiTableColumn", !11, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !17, i64 32, !11, i64 48, !16, i64 52, !16, i64 56, !16, i64 60, !16, i64 64, !16, i64 68, !16, i64 72, !16, i64 76, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !15, i64 88, !15, i64 90, !15, i64 92, !15, i64 94, !15, i64 96, !26, i64 98, !26, i64 99, !26, i64 100, !26, i64 101, !26, i64 102, !26, i64 103, !26, i64 104, !26, i64 105, !7, i64 106, !7, i64 107, !7, i64 108, !7, i64 109, !7, i64 109, !7, i64 109, !7, i64 110}
!119 = !{!118, !11, i64 48}
!120 = !{!118, !16, i64 28}
!121 = !{!118, !11, i64 0}
!122 = !{!118, !26, i64 100}
!123 = !{!118, !26, i64 99}
!124 = !{!10, !26, i64 574}
!125 = !{!118, !26, i64 98}
!126 = !{!118, !15, i64 90}
!127 = !{!10, !26, i64 569}
!128 = !{!118, !16, i64 16}
!129 = !{!118, !16, i64 24}
!130 = !{!118, !7, i64 108}
!131 = !{!118, !7, i64 107}
!132 = !{!118, !15, i64 84}
!133 = !{!118, !15, i64 86}
!134 = !{!118, !15, i64 88}
!135 = !{!118, !15, i64 82}
!136 = !{!118, !26, i64 105}
!137 = !{!118, !16, i64 20}
!138 = distinct !{!138, !139}
!139 = !{!"llvm.loop.mustprogress"}
!140 = !{!10, !15, i64 512}
!141 = !{!10, !15, i64 542}
!142 = !{!10, !6, i64 384}
!143 = !{!10, !6, i64 392}
!144 = !{!145, !26, i64 248}
!145 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !63, i64 32, !6, i64 64, !11, i64 72, !18, i64 76, !11, i64 84, !18, i64 88, !18, i64 96, !18, i64 104, !18, i64 112, !18, i64 120, !18, i64 128, !18, i64 136, !16, i64 144, !16, i64 148, !16, i64 152, !16, i64 156, !16, i64 160, !16, i64 164, !16, i64 168, !16, i64 172, !11, i64 176, !11, i64 180, !11, i64 184, !11, i64 188, !18, i64 192, !18, i64 200, !18, i64 208, !18, i64 216, !18, i64 224, !18, i64 232, !26, i64 240, !26, i64 241, !26, i64 242, !26, i64 243, !26, i64 244, !26, i64 245, !26, i64 246, !26, i64 247, !26, i64 248, !26, i64 249, !26, i64 250, !26, i64 251, !26, i64 252, !26, i64 253, !7, i64 254, !7, i64 255, !15, i64 256, !15, i64 258, !15, i64 260, !15, i64 262, !15, i64 264, !11, i64 268, !7, i64 272, !7, i64 273, !26, i64 274, !11, i64 276, !7, i64 280, !7, i64 281, !7, i64 282, !7, i64 283, !11, i64 284, !11, i64 285, !11, i64 286, !11, i64 287, !18, i64 288, !18, i64 296, !95, i64 304, !146, i64 320, !17, i64 552, !17, i64 568, !17, i64 584, !17, i64 600, !17, i64 616, !17, i64 632, !17, i64 648, !149, i64 664, !149, i64 668, !11, i64 672, !11, i64 676, !16, i64 680, !16, i64 684, !53, i64 688, !150, i64 704, !16, i64 720, !16, i64 724, !11, i64 728, !6, i64 736, !151, i64 744, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !6, i64 1000, !6, i64 1008, !7, i64 1016, !7, i64 1024, !7, i64 1056, !11, i64 1072, !11, i64 1076, !11, i64 1080, !26, i64 1084, !26, i64 1085, !26, i64 1085, !26, i64 1085, !26, i64 1085, !15, i64 1086, !158, i64 1088, !6, i64 1112, !6, i64 1120, !11, i64 1128, !11, i64 1132, !17, i64 1136}
!146 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !16, i64 56, !16, i64 60, !26, i64 64, !26, i64 65, !147, i64 68, !147, i64 72, !147, i64 76, !18, i64 80, !74, i64 88, !15, i64 92, !15, i64 94, !26, i64 96, !26, i64 97, !26, i64 98, !26, i64 99, !18, i64 100, !148, i64 108, !11, i64 136, !11, i64 140, !51, i64 144, !6, i64 160, !6, i64 168, !11, i64 176, !11, i64 180, !11, i64 184, !16, i64 188, !16, i64 192, !82, i64 200, !82, i64 216}
!147 = !{!"_ZTS6ImVec1", !16, i64 0}
!148 = !{!"_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}
!149 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!150 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!151 = !{!"_ZTS10ImDrawList", !152, i64 0, !41, i64 16, !153, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !154, i64 88, !155, i64 104, !48, i64 120, !156, i64 136, !157, i64 168, !16, i64 192}
!152 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!153 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!154 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!155 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!156 = !{!"_ZTS15ImDrawCmdHeader", !47, i64 0, !6, i64 16, !11, i64 24}
!157 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !83, i64 8}
!158 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!159 = !{!10, !15, i64 546}
!160 = !{!10, !15, i64 544}
!161 = !{!118, !26, i64 103}
!162 = !{!10, !26, i64 568}
!163 = !{!10, !16, i64 192}
!164 = distinct !{!164, !139}
!165 = !{!10, !15, i64 516}
!166 = !{!10, !16, i64 216}
!167 = !{i64 0, i64 4, !114, i64 4, i64 4, !114, i64 8, i64 4, !114, i64 12, i64 4, !114}
!168 = !{!10, !16, i64 188}
!169 = !{!10, !16, i64 196}
!170 = !{!10, !16, i64 200}
!171 = !{!10, !26, i64 583}
!172 = !{!145, !26, i64 241}
!173 = !{!38, !16, i64 14956}
!174 = !{!10, !16, i64 204}
!175 = !{!10, !16, i64 208}
!176 = !{!118, !16, i64 4}
!177 = distinct !{!177, !139}
!178 = distinct !{!178, !139}
!179 = !{!10, !15, i64 120}
!180 = !{!21, !11, i64 20}
!181 = !{!21, !11, i64 16}
!182 = !{!10, !15, i64 524}
!183 = !{!10, !15, i64 522}
!184 = !{!10, !16, i64 240}
!185 = !{!10, !16, i64 244}
!186 = !{!10, !16, i64 248}
!187 = !{!10, !16, i64 252}
!188 = !{!21, !16, i64 4}
!189 = !{!38, !11, i64 16804}
!190 = !{!38, !16, i64 3656}
!191 = !{!10, !16, i64 232}
!192 = !{!38, !16, i64 3660}
!193 = !{!10, !16, i64 236}
!194 = !{!10, !15, i64 556}
!195 = !{!17, !16, i64 0}
!196 = !{!10, !6, i64 88}
!197 = !{!10, !15, i64 552}
!198 = !{!118, !7, i64 106}
!199 = !{!118, !16, i64 40}
!200 = !{!118, !16, i64 32}
!201 = !{!118, !16, i64 52}
!202 = !{!118, !16, i64 12}
!203 = !{!118, !16, i64 8}
!204 = !{!17, !16, i64 4}
!205 = !{!118, !16, i64 36}
!206 = !{!118, !16, i64 44}
!207 = !{!118, !26, i64 102}
!208 = !{!118, !26, i64 101}
!209 = !{!118, !26, i64 104}
!210 = !{!118, !16, i64 60}
!211 = !{!118, !16, i64 56}
!212 = !{!10, !26, i64 585}
!213 = !{!118, !16, i64 68}
!214 = !{!118, !16, i64 64}
!215 = !{!118, !16, i64 76}
!216 = !{!118, !16, i64 72}
!217 = !{!17, !16, i64 8}
!218 = distinct !{!218, !139}
!219 = !{!10, !16, i64 272}
!220 = !{!38, !11, i64 16808}
!221 = !{!10, !26, i64 580}
!222 = !{!10, !16, i64 280}
!223 = !{!10, !16, i64 296}
!224 = !{!10, !16, i64 288}
!225 = !{!10, !16, i64 172}
!226 = !{!10, !16, i64 176}
!227 = !{!145, !16, i64 660}
!228 = !{!38, !16, i64 14936}
!229 = !{!145, !16, i64 604}
!230 = !{!145, !16, i64 612}
!231 = !{!21, !16, i64 8}
!232 = !{!10, !26, i64 570}
!233 = !{!10, !15, i64 526}
!234 = !{!10, !26, i64 571}
!235 = !{!10, !15, i64 548}
!236 = !{!10, !15, i64 122}
!237 = !{!10, !26, i64 581}
!238 = !{!38, !26, i64 20256}
!239 = !{!10, !26, i64 572}
!240 = !{!10, !15, i64 554}
!241 = !{!145, !16, i64 168}
!242 = !{!10, !15, i64 550}
!243 = !{!21, !16, i64 12}
!244 = !{!145, !16, i64 172}
!245 = !{!10, !6, i64 416}
!246 = !{!145, !6, i64 736}


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

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

@GImGui = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable = external hidden unnamed_addr constant [44 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [12 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

; 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: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef, float noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef, i32 noundef) local_unnamed_addr #4

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17TableUpdateLayoutEP10ImGuiTable(ptr noundef %0) local_unnamed_addr #6 {
  %2 = alloca %struct.ImRect, align 4
  %3 = alloca %struct.ImRect, align 4
  %4 = alloca %struct.ImRect, align 4
  %5 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %0, i64 566
  %7 = load i8, ptr %6, align 2, !tbaa !9, !range !27, !noundef !28
  %8 = icmp eq i8 %7, 0
  br i1 %8, label %10, label %9

9:                                                ; preds = %1
  tail call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 769, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

10:                                               ; preds = %1
  %11 = getelementptr inbounds i8, ptr %0, i64 4
  %12 = load i32, ptr %11, align 4, !tbaa !29
  %13 = and i32 %12, 57344
  %14 = getelementptr inbounds i8, ptr %0, i64 575
  store i8 1, ptr %14, align 1, !tbaa !30
  %15 = getelementptr inbounds i8, ptr %0, i64 514
  store i16 0, ptr %15, align 2, !tbaa !31
  %16 = getelementptr inbounds i8, ptr %0, i64 80
  %17 = load ptr, ptr %16, align 8, !tbaa !32
  %18 = getelementptr inbounds i8, ptr %0, i64 108
  %19 = load i32, ptr %18, align 4, !tbaa !33
  tail call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %17, i32 noundef %19)
  %20 = getelementptr inbounds i8, ptr %0, i64 72
  %21 = load ptr, ptr %20, align 8, !tbaa !34
  %22 = load i32, ptr %18, align 4, !tbaa !33
  tail call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %21, i32 noundef %22)
  %23 = getelementptr inbounds i8, ptr %0, i64 540
  store i16 -1, ptr %23, align 4, !tbaa !35
  %24 = getelementptr inbounds i8, ptr %5, i64 14900
  %25 = load float, ptr %24, align 4, !tbaa !36
  %26 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %25)
  %27 = getelementptr inbounds i8, ptr %0, i64 184
  store float %26, ptr %27, align 8, !tbaa !111
  %28 = load i32, ptr %18, align 4, !tbaa !33
  %29 = icmp sgt i32 %28, 0
  br i1 %29, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %10
  %30 = getelementptr inbounds i8, ptr %0, i64 40
  %31 = getelementptr inbounds i8, ptr %0, i64 24
  %32 = getelementptr inbounds i8, ptr %0, i64 518
  %33 = getelementptr inbounds i8, ptr %0, i64 574
  %34 = getelementptr inbounds i8, ptr %0, i64 569
  br label %38

._crit_edge:                                      ; preds = %134, %10
  %35 = phi i32 [ %28, %10 ], [ %136, %134 ]
  %.0513.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2515, %134 ]
  %.0498.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2500, %134 ]
  %.0495.lcssa = phi i8 [ 0, %10 ], [ %.2497, %134 ]
  %.0492.lcssa = phi i1 [ false, %10 ], [ %.2494, %134 ]
  %.0490.lcssa = phi i32 [ -1, %10 ], [ %.1491, %134 ]
  %.0487.lcssa = phi i32 [ 0, %10 ], [ %.2489, %134 ]
  %.0.lcssa = phi i16 [ 0, %10 ], [ %.2, %134 ]
  %36 = load i32, ptr %11, align 4, !tbaa !29
  %37 = and i32 %36, 8
  %.not542 = icmp eq i32 %37, 0
  br i1 %.not542, label %145, label %138

38:                                               ; preds = %.lr.ph, %134
  %.0636 = phi i16 [ 0, %.lr.ph ], [ %.2, %134 ]
  %.0487635 = phi i32 [ 0, %.lr.ph ], [ %.2489, %134 ]
  %.0490634 = phi i32 [ -1, %.lr.ph ], [ %.1491, %134 ]
  %.0492633 = phi i1 [ false, %.lr.ph ], [ %.2494, %134 ]
  %.0495632 = phi i8 [ 0, %.lr.ph ], [ %.2497, %134 ]
  %.0498631 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2500, %134 ]
  %.0513630 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2515, %134 ]
  %.0516629 = phi i32 [ 0, %.lr.ph ], [ %135, %134 ]
  %39 = tail call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %30, i32 noundef %.0516629)
  %40 = load i16, ptr %39, align 2, !tbaa !112
  %41 = sext i16 %40 to i32
  %.not572 = icmp eq i32 %.0516629, %41
  br i1 %.not572, label %43, label %42

42:                                               ; preds = %38
  store i8 0, ptr %14, align 1, !tbaa !30
  br label %43

43:                                               ; preds = %42, %38
  %44 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %31, i32 noundef %41)
  %45 = load i16, ptr %32, align 2, !tbaa !113
  %.not573 = icmp sgt i16 %45, %40
  br i1 %.not573, label %50, label %46

46:                                               ; preds = %43
  tail call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef nonnull %0, ptr noundef nonnull %44, i32 noundef 0)
  %47 = getelementptr inbounds i8, ptr %44, i64 80
  store i16 -1, ptr %47, align 4, !tbaa !114
  %48 = getelementptr inbounds i8, ptr %44, i64 48
  store i32 0, ptr %48, align 4, !tbaa !116
  %49 = getelementptr inbounds i8, ptr %44, i64 28
  store float -1.000000e+00, ptr %49, align 4, !tbaa !117
  br label %50

50:                                               ; preds = %46, %43
  %51 = load i32, ptr %11, align 4, !tbaa !29
  %52 = and i32 %51, 4
  %.not574 = icmp eq i32 %52, 0
  br i1 %.not574, label %56, label %53

53:                                               ; preds = %50
  %54 = load i32, ptr %44, align 4, !tbaa !118
  %55 = and i32 %54, 128
  %.not575 = icmp eq i32 %55, 0
  br i1 %.not575, label %._crit_edge674, label %56

._crit_edge674:                                   ; preds = %53
  %.phi.trans.insert = getelementptr inbounds i8, ptr %44, i64 100
  %.pre = load i8, ptr %.phi.trans.insert, align 4, !tbaa !119, !range !27
  br label %58

56:                                               ; preds = %53, %50
  %57 = getelementptr inbounds i8, ptr %44, i64 100
  store i8 1, ptr %57, align 4, !tbaa !119
  br label %58

58:                                               ; preds = %._crit_edge674, %56
  %59 = phi i8 [ %.pre, %._crit_edge674 ], [ 1, %56 ]
  %60 = getelementptr inbounds i8, ptr %44, i64 99
  %61 = load i8, ptr %60, align 1, !tbaa !120, !range !27, !noundef !28
  %.not576 = icmp eq i8 %61, %59
  br i1 %.not576, label %63, label %62

62:                                               ; preds = %58
  store i8 %59, ptr %60, align 1, !tbaa !120
  store i8 1, ptr %33, align 2, !tbaa !121
  br label %63

63:                                               ; preds = %62, %58
  %64 = trunc nuw i8 %59 to i1
  %65 = load i32, ptr %44, align 4
  %66 = and i32 %65, 1
  %67 = icmp eq i32 %66, 0
  %68 = select i1 %64, i1 %67, i1 false
  %69 = getelementptr inbounds i8, ptr %44, i64 98
  %70 = zext i1 %68 to i8
  store i8 %70, ptr %69, align 2, !tbaa !122
  %71 = getelementptr inbounds i8, ptr %44, i64 90
  %72 = load i16, ptr %71, align 2, !tbaa !123
  %.not577 = icmp eq i16 %72, -1
  %brmerge = select i1 %.not577, i1 true, i1 %68
  %73 = icmp slt i16 %72, 1
  %74 = and i32 %51, 67108864
  %.not578 = icmp ne i32 %74, 0
  %or.cond617.not.not.not701 = or i1 %.not578, %73
  %.not699 = and i1 %or.cond617.not.not.not701, %brmerge
  br i1 %.not699, label %76, label %75

75:                                               ; preds = %63
  store i8 1, ptr %34, align 1, !tbaa !124
  br label %76

76:                                               ; preds = %63, %75
  %77 = and i32 %65, 16
  %.not579 = icmp eq i32 %77, 0
  %.in580.in.v = select i1 %.not579, i64 24, i64 16
  %.in580.in = getelementptr inbounds i8, ptr %44, i64 %.in580.in.v
  %.in580 = load float, ptr %.in580.in, align 4, !tbaa !125
  %78 = fcmp olt float %.in580, 0.000000e+00
  br i1 %78, label %79, label %82

79:                                               ; preds = %76
  %80 = getelementptr inbounds i8, ptr %44, i64 108
  store i8 7, ptr %80, align 4, !tbaa !126
  %81 = getelementptr inbounds i8, ptr %44, i64 107
  store i8 7, ptr %81, align 1, !tbaa !127
  br label %82

82:                                               ; preds = %79, %76
  br i1 %68, label %85, label %83

83:                                               ; preds = %82
  %84 = getelementptr inbounds i8, ptr %44, i64 84
  store i16 -1, ptr %84, align 4, !tbaa !128
  br label %134

85:                                               ; preds = %82
  %86 = trunc nsw i32 %.0490634 to i16
  %87 = getelementptr inbounds i8, ptr %44, i64 86
  store i16 %86, ptr %87, align 2, !tbaa !129
  %88 = getelementptr inbounds i8, ptr %44, i64 88
  store i16 -1, ptr %88, align 4, !tbaa !130
  %.not581 = icmp eq i32 %.0490634, -1
  br i1 %.not581, label %92, label %89

89:                                               ; preds = %85
  %90 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %31, i32 noundef %.0490634)
  %91 = getelementptr inbounds i8, ptr %90, i64 88
  br label %92

92:                                               ; preds = %85, %89
  %.sink = phi ptr [ %91, %89 ], [ %23, %85 ]
  store i16 %40, ptr %.sink, align 4, !tbaa !112
  %93 = load i16, ptr %15, align 2, !tbaa !31
  %94 = add i16 %93, 1
  store i16 %94, ptr %15, align 2, !tbaa !31
  %95 = getelementptr inbounds i8, ptr %44, i64 84
  store i16 %93, ptr %95, align 4, !tbaa !128
  %96 = load ptr, ptr %16, align 8, !tbaa !32
  tail call void @_Z16ImBitArraySetBitPji(ptr noundef %96, i32 noundef %41)
  %97 = load ptr, ptr %20, align 8, !tbaa !34
  %98 = getelementptr inbounds i8, ptr %44, i64 82
  %99 = load i16, ptr %98, align 2, !tbaa !131
  %100 = sext i16 %99 to i32
  tail call void @_Z16ImBitArraySetBitPji(ptr noundef %97, i32 noundef %100)
  %101 = load i16, ptr %95, align 4, !tbaa !128
  %102 = load i16, ptr %98, align 2, !tbaa !131
  %.not582 = icmp sgt i16 %101, %102
  br i1 %.not582, label %103, label %104

103:                                              ; preds = %92
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 843, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

104:                                              ; preds = %92
  %105 = getelementptr inbounds i8, ptr %44, i64 105
  %106 = load i8, ptr %105, align 1, !tbaa !132, !range !27, !noundef !28
  %107 = trunc nuw i8 %106 to i1
  br i1 %107, label %111, label %108

108:                                              ; preds = %104
  %109 = tail call noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef nonnull %0, ptr noundef nonnull %44)
  %110 = getelementptr inbounds i8, ptr %44, i64 20
  store float %109, ptr %110, align 4, !tbaa !133
  br label %111

111:                                              ; preds = %108, %104
  %112 = load i32, ptr %44, align 4, !tbaa !118
  %113 = and i32 %112, 32
  %114 = icmp eq i32 %113, 0
  %spec.select = select i1 %114, i8 1, i8 %.0495632
  %115 = and i32 %112, 16
  %.not583 = icmp eq i32 %115, 0
  br i1 %.not583, label %122, label %116

116:                                              ; preds = %111
  %117 = getelementptr inbounds i8, ptr %44, i64 28
  %118 = load float, ptr %117, align 4, !tbaa !117
  %119 = fcmp ule float %118, 0.000000e+00
  %brmerge587 = or i1 %114, %119
  br i1 %brmerge587, label %122, label %120

120:                                              ; preds = %116
  %121 = getelementptr inbounds i8, ptr %44, i64 20
  store float %118, ptr %121, align 4, !tbaa !133
  br label %122

122:                                              ; preds = %116, %120, %111
  %123 = getelementptr inbounds i8, ptr %44, i64 107
  %124 = load i8, ptr %123, align 1, !tbaa !127
  %.not584 = icmp ne i8 %124, 0
  %spec.select588 = select i1 %.not584, i1 true, i1 %.0492633
  %125 = and i32 %112, 8
  %.not585 = icmp eq i32 %125, 0
  %126 = getelementptr inbounds i8, ptr %44, i64 20
  %127 = load float, ptr %126, align 4, !tbaa !133
  br i1 %.not585, label %131, label %128

128:                                              ; preds = %122
  %129 = fadd float %.0498631, %127
  %130 = add nsw i32 %.0487635, 1
  br label %134

131:                                              ; preds = %122
  %132 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %.0513630, float noundef %127)
  %133 = add i16 %.0636, 1
  br label %134

134:                                              ; preds = %128, %131, %83
  %.2515 = phi float [ %.0513630, %83 ], [ %.0513630, %128 ], [ %132, %131 ]
  %.2500 = phi float [ %.0498631, %83 ], [ %129, %128 ], [ %.0498631, %131 ]
  %.2497 = phi i8 [ %.0495632, %83 ], [ %spec.select, %128 ], [ %spec.select, %131 ]
  %.2494 = phi i1 [ %.0492633, %83 ], [ %spec.select588, %128 ], [ %spec.select588, %131 ]
  %.1491 = phi i32 [ %.0490634, %83 ], [ %41, %128 ], [ %41, %131 ]
  %.2489 = phi i32 [ %.0487635, %83 ], [ %130, %128 ], [ %.0487635, %131 ]
  %.2 = phi i16 [ %.0636, %83 ], [ %.0636, %128 ], [ %133, %131 ]
  %135 = add nuw nsw i32 %.0516629, 1
  %136 = load i32, ptr %18, align 4, !tbaa !33
  %137 = icmp slt i32 %135, %136
  br i1 %137, label %38, label %._crit_edge, !llvm.loop !134

138:                                              ; preds = %._crit_edge
  %139 = getelementptr inbounds i8, ptr %0, i64 512
  %140 = load i16, ptr %139, align 8, !tbaa !136
  %141 = icmp eq i16 %140, 0
  %142 = and i32 %36, 134217728
  %.not543 = icmp eq i32 %142, 0
  %or.cond589 = and i1 %.not543, %141
  br i1 %or.cond589, label %143, label %145

143:                                              ; preds = %138
  %144 = getelementptr inbounds i8, ptr %0, i64 569
  store i8 1, ptr %144, align 1, !tbaa !124
  br label %145

145:                                              ; preds = %143, %138, %._crit_edge
  %146 = trunc nsw i32 %.0490.lcssa to i16
  %147 = getelementptr inbounds i8, ptr %0, i64 542
  store i16 %146, ptr %147, align 2, !tbaa !137
  %148 = load i16, ptr %23, align 4, !tbaa !35
  %149 = icmp sgt i16 %148, -1
  %sext.mask = and i32 %.0490.lcssa, 32768
  %150 = icmp eq i32 %sext.mask, 0
  %or.cond590 = select i1 %149, i1 %150, i1 false
  br i1 %or.cond590, label %151, label %.critedge

.critedge:                                        ; preds = %145
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 873, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

151:                                              ; preds = %145
  br i1 %.0492.lcssa, label %152, label %.critedge592

152:                                              ; preds = %151
  %153 = getelementptr inbounds i8, ptr %0, i64 384
  %154 = load ptr, ptr %153, align 8, !tbaa !138
  %155 = getelementptr inbounds i8, ptr %0, i64 392
  %156 = load ptr, ptr %155, align 8, !tbaa !139
  %.not544 = icmp eq ptr %154, %156
  br i1 %.not544, label %159, label %157

157:                                              ; preds = %152
  %158 = getelementptr inbounds i8, ptr %156, i64 248
  store i8 0, ptr %158, align 8, !tbaa !140
  br label %159

159:                                              ; preds = %152, %157
  %160 = getelementptr inbounds i8, ptr %0, i64 574
  store i8 1, ptr %160, align 2, !tbaa !121
  br label %.critedge592

.critedge592:                                     ; preds = %151, %159
  %161 = getelementptr inbounds i8, ptr %0, i64 546
  store i16 -1, ptr %161, align 2, !tbaa !155
  %162 = getelementptr inbounds i8, ptr %0, i64 544
  store i16 -1, ptr %162, align 8, !tbaa !156
  %163 = icmp sgt i32 %35, 0
  br i1 %163, label %.lr.ph647, label %._crit_edge648

.lr.ph647:                                        ; preds = %.critedge592
  %164 = getelementptr inbounds i8, ptr %0, i64 24
  %165 = icmp eq i32 %13, 16384
  %166 = getelementptr inbounds i8, ptr %0, i64 568
  %.not702 = icmp eq i32 %13, 24576
  %167 = sitofp i32 %.0487.lcssa to float
  %168 = getelementptr inbounds i8, ptr %0, i64 192
  br label %188

._crit_edge648:                                   ; preds = %279, %.critedge592
  %.0521.lcssa = phi float [ 0.000000e+00, %.critedge592 ], [ %.2523, %279 ]
  %.0517.lcssa = phi float [ 0.000000e+00, %.critedge592 ], [ %.2519, %279 ]
  %.0521.lcssa.fr = freeze float %.0521.lcssa
  %169 = getelementptr inbounds i8, ptr %0, i64 516
  store i16 %.0.lcssa, ptr %169, align 4, !tbaa !157
  %170 = getelementptr inbounds i8, ptr %0, i64 216
  store float %.0521.lcssa.fr, ptr %170, align 8, !tbaa !158
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #11
  %171 = getelementptr inbounds i8, ptr %0, i64 272
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %2, ptr noundef nonnull align 8 dereferenceable(16) %171, i64 16, i1 false), !tbaa.struct !159
  %172 = getelementptr inbounds i8, ptr %0, i64 188
  %173 = load float, ptr %172, align 4, !tbaa !160
  %174 = getelementptr inbounds i8, ptr %0, i64 196
  %175 = load float, ptr %174, align 4, !tbaa !161
  %176 = getelementptr inbounds i8, ptr %0, i64 200
  %177 = load float, ptr %176, align 8, !tbaa !162
  %178 = fadd float %175, %177
  %179 = load i16, ptr %15, align 2, !tbaa !31
  %180 = sext i16 %179 to i32
  %181 = add nsw i32 %180, -1
  %182 = sitofp i32 %181 to float
  %183 = fmul float %178, %182
  %184 = tail call float @llvm.fmuladd.f32(float %173, float 2.000000e+00, float %183)
  %185 = getelementptr inbounds i8, ptr %0, i64 583
  %186 = load i8, ptr %185, align 1, !tbaa !163, !range !27, !noundef !28
  %187 = trunc nuw i8 %186 to i1
  br i1 %187, label %283, label %292

188:                                              ; preds = %.lr.ph647, %279
  %189 = phi i32 [ %35, %.lr.ph647 ], [ %280, %279 ]
  %.0517646 = phi float [ 0.000000e+00, %.lr.ph647 ], [ %.2519, %279 ]
  %.0521645 = phi float [ 0.000000e+00, %.lr.ph647 ], [ %.2523, %279 ]
  %.0524643 = phi i32 [ 0, %.lr.ph647 ], [ %281, %279 ]
  %190 = load ptr, ptr %16, align 8, !tbaa !32
  %191 = lshr i32 %.0524643, 5
  %192 = zext nneg i32 %191 to i64
  %193 = getelementptr inbounds i32, ptr %190, i64 %192
  %194 = load i32, ptr %193, align 4, !tbaa !164
  %195 = and i32 %.0524643, 31
  %196 = shl nuw i32 1, %195
  %197 = and i32 %194, %196
  %.not566 = icmp eq i32 %197, 0
  br i1 %.not566, label %279, label %198

198:                                              ; preds = %188
  %199 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %164, i32 noundef %.0524643)
  %200 = load i32, ptr %199, align 4, !tbaa !118
  %201 = and i32 %200, 32
  %202 = icmp ne i32 %201, 0
  %203 = and i32 %200, 16
  %.not567 = icmp eq i32 %203, 0
  br i1 %.not567, label %234, label %204

204:                                              ; preds = %198
  %205 = getelementptr inbounds i8, ptr %199, i64 20
  %206 = load float, ptr %205, align 4, !tbaa !133
  %207 = getelementptr inbounds i8, ptr %199, i64 107
  %208 = load i8, ptr %207, align 1, !tbaa !127
  br i1 %165, label %209, label %._crit_edge675

209:                                              ; preds = %204
  %.not569 = icmp ne i8 %208, 0
  %brmerge594 = or i1 %202, %.not569
  br i1 %brmerge594, label %._crit_edge675, label %.thread

._crit_edge675:                                   ; preds = %204, %209
  %210 = phi float [ %.0513.lcssa, %209 ], [ %206, %204 ]
  %.not570 = icmp eq i8 %208, 0
  br i1 %.not570, label %211, label %218

211:                                              ; preds = %._crit_edge675
  br i1 %202, label %212, label %.thread

212:                                              ; preds = %211
  %213 = getelementptr inbounds i8, ptr %199, i64 103
  %214 = load i8, ptr %213, align 1, !tbaa !165, !range !27, !noundef !28
  %215 = trunc nuw i8 %214 to i1
  br i1 %215, label %216, label %.thread

216:                                              ; preds = %212
  %217 = getelementptr inbounds i8, ptr %199, i64 16
  store float %210, ptr %217, align 4, !tbaa !166
  br label %.thread

218:                                              ; preds = %._crit_edge675
  %219 = getelementptr inbounds i8, ptr %199, i64 16
  store float %210, ptr %219, align 4, !tbaa !166
  %.not620 = icmp eq i8 %208, 1
  br i1 %.not620, label %.thread, label %220

220:                                              ; preds = %218
  %221 = load i8, ptr %166, align 8, !tbaa !167, !range !27, !noundef !28
  %222 = trunc nuw i8 %221 to i1
  br i1 %222, label %223, label %.thread

223:                                              ; preds = %220
  %224 = getelementptr inbounds i8, ptr %199, i64 105
  %225 = load i8, ptr %224, align 1, !tbaa !132, !range !27, !noundef !28
  %226 = trunc nuw i8 %225 to i1
  br i1 %226, label %.thread, label %227

227:                                              ; preds = %223
  %228 = load float, ptr %27, align 8, !tbaa !111
  %229 = fmul float %228, 4.000000e+00
  %230 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %210, float noundef %229)
  store float %230, ptr %219, align 4, !tbaa !166
  br label %.thread

.thread:                                          ; preds = %209, %216, %212, %211, %227, %223, %220, %218
  %231 = getelementptr inbounds i8, ptr %199, i64 16
  %232 = load float, ptr %231, align 4, !tbaa !166
  %233 = fadd float %.0517646, %232
  br label %275

234:                                              ; preds = %198
  %235 = getelementptr inbounds i8, ptr %199, i64 107
  %236 = load i8, ptr %235, align 1, !tbaa !127
  %.not568 = icmp ne i8 %236, 0
  %237 = getelementptr inbounds i8, ptr %199, i64 24
  %238 = load float, ptr %237, align 4
  %239 = fcmp olt float %238, 0.000000e+00
  %or.cond598 = select i1 %.not568, i1 true, i1 %239
  %brmerge600 = or i1 %202, %or.cond598
  br i1 %brmerge600, label %.sink.split, label %247

.sink.split:                                      ; preds = %234
  %240 = getelementptr inbounds i8, ptr %199, i64 28
  %241 = load float, ptr %240, align 4, !tbaa !117
  %242 = fcmp ogt float %241, 0.000000e+00
  %243 = getelementptr inbounds i8, ptr %199, i64 20
  %244 = load float, ptr %243, align 4
  %245 = fdiv float %244, %.0498.lcssa
  %246 = fmul float %245, %167
  %.mux = select i1 %.not702, float %246, float 1.000000e+00
  %.sink691 = select i1 %242, float %241, float %.mux
  store float %.sink691, ptr %237, align 4, !tbaa !168
  br label %247

247:                                              ; preds = %.sink.split, %234
  %248 = phi float [ %238, %234 ], [ %.sink691, %.sink.split ]
  %249 = fadd float %.0521645, %248
  %250 = load i16, ptr %162, align 8, !tbaa !156
  %251 = icmp eq i16 %250, -1
  br i1 %251, label %260, label %252

252:                                              ; preds = %247
  %253 = sext i16 %250 to i32
  %254 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %164, i32 noundef %253)
  %255 = getelementptr inbounds i8, ptr %254, i64 82
  %256 = load i16, ptr %255, align 2, !tbaa !131
  %257 = getelementptr inbounds i8, ptr %199, i64 82
  %258 = load i16, ptr %257, align 2, !tbaa !131
  %259 = icmp sgt i16 %256, %258
  br i1 %259, label %260, label %262

260:                                              ; preds = %252, %247
  %261 = trunc i32 %.0524643 to i16
  store i16 %261, ptr %162, align 8, !tbaa !156
  br label %262

262:                                              ; preds = %260, %252
  %263 = load i16, ptr %161, align 2, !tbaa !155
  %264 = icmp eq i16 %263, -1
  br i1 %264, label %273, label %265

265:                                              ; preds = %262
  %266 = sext i16 %263 to i32
  %267 = tail call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %164, i32 noundef %266)
  %268 = getelementptr inbounds i8, ptr %267, i64 82
  %269 = load i16, ptr %268, align 2, !tbaa !131
  %270 = getelementptr inbounds i8, ptr %199, i64 82
  %271 = load i16, ptr %270, align 2, !tbaa !131
  %272 = icmp slt i16 %269, %271
  br i1 %272, label %273, label %275

273:                                              ; preds = %265, %262
  %274 = trunc i32 %.0524643 to i16
  store i16 %274, ptr %161, align 2, !tbaa !155
  br label %275

275:                                              ; preds = %265, %273, %.thread
  %.1522 = phi float [ %.0521645, %.thread ], [ %249, %273 ], [ %249, %265 ]
  %.1518 = phi float [ %233, %.thread ], [ %.0517646, %273 ], [ %.0517646, %265 ]
  %276 = getelementptr inbounds i8, ptr %199, i64 105
  store i8 0, ptr %276, align 1, !tbaa !132
  %277 = load float, ptr %168, align 8, !tbaa !169
  %278 = tail call float @llvm.fmuladd.f32(float %277, float 2.000000e+00, float %.1518)
  %.pre678 = load i32, ptr %18, align 4, !tbaa !33
  br label %279

279:                                              ; preds = %188, %275
  %280 = phi i32 [ %.pre678, %275 ], [ %189, %188 ]
  %.2523 = phi float [ %.1522, %275 ], [ %.0521645, %188 ]
  %.2519 = phi float [ %278, %275 ], [ %.0517646, %188 ]
  %281 = add nuw nsw i32 %.0524643, 1
  %282 = icmp slt i32 %281, %280
  br i1 %282, label %188, label %._crit_edge648, !llvm.loop !170

283:                                              ; preds = %._crit_edge648
  %284 = getelementptr inbounds i8, ptr %0, i64 392
  %285 = load ptr, ptr %284, align 8, !tbaa !139
  %286 = getelementptr inbounds i8, ptr %285, i64 241
  %287 = load i8, ptr %286, align 1, !tbaa !171, !range !27, !noundef !28
  %288 = trunc nuw i8 %287 to i1
  br i1 %288, label %292, label %289

289:                                              ; preds = %283
  %290 = getelementptr inbounds i8, ptr %5, i64 14956
  %291 = load float, ptr %290, align 4, !tbaa !172
  br label %292

292:                                              ; preds = %._crit_edge648, %283, %289
  %293 = phi float [ %291, %289 ], [ 0.000000e+00, %283 ], [ 0.000000e+00, %._crit_edge648 ]
  %294 = load i32, ptr %11, align 4, !tbaa !29
  %295 = and i32 %294, 16777216
  %.not545 = icmp eq i32 %295, 0
  br i1 %.not545, label %303, label %296

296:                                              ; preds = %292
  %297 = getelementptr inbounds i8, ptr %0, i64 204
  %298 = load float, ptr %297, align 4, !tbaa !173
  %299 = fcmp oeq float %298, 0.000000e+00
  br i1 %299, label %300, label %303

300:                                              ; preds = %296
  %301 = getelementptr inbounds i8, ptr %0, i64 288
  %302 = tail call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %301)
  br label %305

303:                                              ; preds = %296, %292
  %304 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2)
  br label %305

305:                                              ; preds = %303, %300
  %306 = phi float [ %302, %300 ], [ %304, %303 ]
  %307 = fsub float %306, %293
  %308 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %307)
  %309 = fsub float %308, %184
  %310 = fsub float %309, %.0517.lcssa
  %311 = getelementptr inbounds i8, ptr %0, i64 192
  %312 = load float, ptr %311, align 8, !tbaa !169
  %313 = fmul float %312, 2.000000e+00
  %314 = load i16, ptr %15, align 2, !tbaa !31
  %315 = sitofp i16 %314 to float
  %316 = call float @llvm.fmuladd.f32(float %313, float %315, float %184)
  %317 = getelementptr inbounds i8, ptr %0, i64 208
  store float %316, ptr %317, align 8, !tbaa !174
  %318 = load i32, ptr %18, align 4, !tbaa !33
  %319 = icmp sgt i32 %318, 0
  br i1 %319, label %.lr.ph654, label %._crit_edge655

.lr.ph654:                                        ; preds = %305
  %320 = getelementptr inbounds i8, ptr %0, i64 24
  br label %322

._crit_edge655:                                   ; preds = %366, %305
  %.0526.lcssa = phi float [ %310, %305 ], [ %.2528, %366 ]
  %.lcssa = phi i32 [ %318, %305 ], [ %367, %366 ]
  %321 = fcmp ult float %.0526.lcssa, 1.000000e+00
  br i1 %321, label %.critedge3, label %370

322:                                              ; preds = %.lr.ph654, %366
  %323 = phi i32 [ %318, %.lr.ph654 ], [ %367, %366 ]
  %.0525652 = phi i32 [ 0, %.lr.ph654 ], [ %368, %366 ]
  %.0526651 = phi float [ %310, %.lr.ph654 ], [ %.2528, %366 ]
  %324 = load ptr, ptr %16, align 8, !tbaa !32
  %325 = lshr i32 %.0525652, 5
  %326 = zext nneg i32 %325 to i64
  %327 = getelementptr inbounds i32, ptr %324, i64 %326
  %328 = load i32, ptr %327, align 4, !tbaa !164
  %329 = and i32 %.0525652, 31
  %330 = shl nuw i32 1, %329
  %331 = and i32 %328, %330
  %.not563 = icmp eq i32 %331, 0
  br i1 %.not563, label %366, label %332

332:                                              ; preds = %322
  %333 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %320, i32 noundef %.0525652)
  %334 = load i32, ptr %333, align 4, !tbaa !118
  %335 = and i32 %334, 8
  %.not564 = icmp eq i32 %335, 0
  br i1 %.not564, label %348, label %336

336:                                              ; preds = %332
  %337 = getelementptr inbounds i8, ptr %333, i64 24
  %338 = load float, ptr %337, align 4, !tbaa !168
  %339 = fdiv float %338, %.0521.lcssa.fr
  %340 = fmul float %310, %339
  %341 = load float, ptr %27, align 8, !tbaa !111
  %342 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %340, float noundef %341)
  %343 = fadd float %342, 0x3F847AE140000000
  %344 = fptosi float %343 to i32
  %345 = sitofp i32 %344 to float
  %346 = getelementptr inbounds i8, ptr %333, i64 16
  store float %345, ptr %346, align 4, !tbaa !166
  %347 = fsub float %.0526651, %345
  br label %348

348:                                              ; preds = %336, %332
  %.1527 = phi float [ %347, %336 ], [ %.0526651, %332 ]
  %349 = getelementptr inbounds i8, ptr %333, i64 88
  %350 = load i16, ptr %349, align 4, !tbaa !130
  %351 = icmp eq i16 %350, -1
  br i1 %351, label %352, label %357

352:                                              ; preds = %348
  %353 = load i16, ptr %162, align 8, !tbaa !156
  %.not565 = icmp eq i16 %353, -1
  br i1 %.not565, label %357, label %354

354:                                              ; preds = %352
  %355 = load i32, ptr %333, align 4, !tbaa !118
  %356 = or i32 %355, 1073741824
  store i32 %356, ptr %333, align 4, !tbaa !118
  br label %357

357:                                              ; preds = %354, %352, %348
  %358 = getelementptr inbounds i8, ptr %333, i64 16
  %359 = load float, ptr %358, align 4, !tbaa !166
  %360 = load float, ptr %27, align 8, !tbaa !111
  %361 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %359, float noundef %360)
  %362 = call noundef float @_ZL7ImTruncf(float noundef %361)
  %363 = getelementptr inbounds i8, ptr %333, i64 4
  store float %362, ptr %363, align 4, !tbaa !175
  %364 = load float, ptr %317, align 8, !tbaa !174
  %365 = fadd float %362, %364
  store float %365, ptr %317, align 8, !tbaa !174
  %.pre679 = load i32, ptr %18, align 4, !tbaa !33
  br label %366

366:                                              ; preds = %322, %357
  %367 = phi i32 [ %.pre679, %357 ], [ %323, %322 ]
  %.2528 = phi float [ %.1527, %357 ], [ %.0526651, %322 ]
  %368 = add nuw nsw i32 %.0525652, 1
  %369 = icmp slt i32 %368, %367
  br i1 %369, label %322, label %._crit_edge655, !llvm.loop !176

370:                                              ; preds = %._crit_edge655
  %371 = load i32, ptr %11, align 4, !tbaa !29
  %372 = and i32 %371, 524288
  %.not546 = icmp eq i32 %372, 0
  br i1 %.not546, label %.preheader, label %.critedge3

.preheader:                                       ; preds = %370
  %373 = fcmp ogt float %.0521.lcssa.fr, 0.000000e+00
  %374 = icmp sgt i32 %.lcssa, 0
  %or.cond8660 = and i1 %374, %373
  br i1 %or.cond8660, label %.lr.ph663.split.preheader, label %.critedge3

.lr.ph663.split.preheader:                        ; preds = %.preheader
  %375 = getelementptr inbounds i8, ptr %0, i64 24
  %376 = getelementptr inbounds i8, ptr %0, i64 40
  br label %.lr.ph663.split

.lr.ph663.split:                                  ; preds = %.lr.ph663.split.preheader, %400
  %.0520662.in = phi i32 [ %.0520662, %400 ], [ %.lcssa, %.lr.ph663.split.preheader ]
  %.3661 = phi float [ %.5, %400 ], [ %.0526.lcssa, %.lr.ph663.split.preheader ]
  %.0520662 = add nsw i32 %.0520662.in, -1
  %377 = load ptr, ptr %20, align 8, !tbaa !34
  %378 = lshr i32 %.0520662, 5
  %379 = zext nneg i32 %378 to i64
  %380 = getelementptr inbounds i32, ptr %377, i64 %379
  %381 = load i32, ptr %380, align 4, !tbaa !164
  %382 = and i32 %.0520662, 31
  %383 = shl nuw i32 1, %382
  %384 = and i32 %381, %383
  %.not547 = icmp eq i32 %384, 0
  br i1 %.not547, label %400, label %385

385:                                              ; preds = %.lr.ph663.split
  %386 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %376, i32 noundef %.0520662)
  %387 = load i16, ptr %386, align 2, !tbaa !112
  %388 = sext i16 %387 to i32
  %389 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %375, i32 noundef %388)
  %390 = load i32, ptr %389, align 4, !tbaa !118
  %391 = and i32 %390, 8
  %.not548 = icmp eq i32 %391, 0
  br i1 %.not548, label %400, label %392

392:                                              ; preds = %385
  %393 = getelementptr inbounds i8, ptr %389, i64 16
  %394 = load float, ptr %393, align 4, !tbaa !166
  %395 = fadd float %394, 1.000000e+00
  store float %395, ptr %393, align 4, !tbaa !166
  %396 = getelementptr inbounds i8, ptr %389, i64 4
  %397 = load float, ptr %396, align 4, !tbaa !175
  %398 = fadd float %397, 1.000000e+00
  store float %398, ptr %396, align 4, !tbaa !175
  %399 = fadd float %.3661, -1.000000e+00
  br label %400

400:                                              ; preds = %392, %385, %.lr.ph663.split
  %.5 = phi float [ %.3661, %.lr.ph663.split ], [ %399, %392 ], [ %.3661, %385 ]
  %401 = fcmp oge float %.5, 1.000000e+00
  %402 = icmp ugt i32 %.0520662.in, 1
  %or.cond8 = and i1 %401, %402
  br i1 %or.cond8, label %.lr.ph663.split, label %.critedge3, !llvm.loop !177

.critedge3:                                       ; preds = %400, %.preheader, %370, %._crit_edge655
  %403 = getelementptr inbounds i8, ptr %0, i64 120
  %404 = load i16, ptr %403, align 8, !tbaa !178
  %405 = sext i16 %404 to i32
  %406 = call noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %405)
  %407 = getelementptr inbounds i8, ptr %406, i64 20
  %408 = load i32, ptr %407, align 4, !tbaa !179
  %409 = getelementptr inbounds i8, ptr %406, i64 16
  store i32 %408, ptr %409, align 4, !tbaa !180
  store i32 -1, ptr %407, align 4, !tbaa !179
  %410 = getelementptr inbounds i8, ptr %0, i64 524
  store i16 -1, ptr %410, align 4, !tbaa !181
  %411 = getelementptr inbounds i8, ptr %0, i64 522
  store i16 -1, ptr %411, align 2, !tbaa !182
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #11
  %412 = getelementptr inbounds i8, ptr %0, i64 240
  %413 = load float, ptr %412, align 8, !tbaa !183
  %414 = getelementptr inbounds i8, ptr %0, i64 244
  %415 = load float, ptr %414, align 4, !tbaa !184
  %416 = getelementptr inbounds i8, ptr %0, i64 248
  %417 = load float, ptr %416, align 8, !tbaa !185
  %418 = getelementptr inbounds i8, ptr %0, i64 252
  %419 = load float, ptr %418, align 4, !tbaa !186
  %420 = getelementptr inbounds i8, ptr %406, i64 4
  %421 = load float, ptr %420, align 4, !tbaa !187
  %422 = fadd float %415, %421
  %423 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %419, float noundef %422)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %3, float noundef %413, float noundef %415, float noundef %417, float noundef %423)
  %424 = getelementptr inbounds i8, ptr %5, i64 16804
  %425 = load i32, ptr %424, align 4, !tbaa !188
  store i32 0, ptr %424, align 4, !tbaa !188
  %426 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %3, i32 noundef 0, i32 noundef 0)
  store i32 %425, ptr %424, align 4, !tbaa !188
  %427 = getelementptr inbounds i8, ptr %5, i64 3656
  %428 = load float, ptr %427, align 8, !tbaa !189
  %429 = getelementptr inbounds i8, ptr %0, i64 232
  %430 = load float, ptr %429, align 8, !tbaa !190
  %431 = fcmp ogt float %430, 0.000000e+00
  br i1 %431, label %432, label %447

432:                                              ; preds = %.critedge3
  %433 = getelementptr inbounds i8, ptr %5, i64 3660
  %434 = load float, ptr %433, align 4, !tbaa !191
  %435 = load float, ptr %414, align 4, !tbaa !184
  %436 = fcmp ult float %434, %435
  br i1 %436, label %447, label %437

437:                                              ; preds = %432
  %438 = fadd float %430, %435
  %439 = fcmp ugt float %434, %438
  br i1 %439, label %447, label %440

440:                                              ; preds = %437
  %441 = fsub float %438, %434
  %442 = getelementptr inbounds i8, ptr %0, i64 236
  %443 = load float, ptr %442, align 4, !tbaa !192
  %444 = fmul float %441, %443
  %445 = call noundef float @_ZL7ImTruncf(float noundef %444)
  %446 = fadd float %428, %445
  br label %447

447:                                              ; preds = %432, %437, %440, %.critedge3
  %.0512 = phi float [ %446, %440 ], [ %428, %437 ], [ %428, %432 ], [ %428, %.critedge3 ]
  %448 = getelementptr inbounds i8, ptr %0, i64 556
  %449 = load i16, ptr %448, align 4, !tbaa !193
  %450 = icmp sgt i16 %449, 0
  %. = select i1 %450, ptr %412, ptr %2
  %451 = load float, ptr %., align 4, !tbaa !194
  %452 = load float, ptr %172, align 4, !tbaa !160
  %453 = load float, ptr %174, align 4, !tbaa !161
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  %454 = getelementptr inbounds i8, ptr %0, i64 288
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(16) %454, i64 16, i1 false), !tbaa.struct !159
  %455 = getelementptr inbounds i8, ptr %0, i64 88
  %456 = load ptr, ptr %455, align 8, !tbaa !195
  %457 = load i32, ptr %18, align 4, !tbaa !33
  call void @_Z22ImBitArrayClearAllBitsPji(ptr noundef %456, i32 noundef %457)
  %458 = load i32, ptr %18, align 4, !tbaa !33
  %459 = icmp sgt i32 %458, 0
  br i1 %459, label %.lr.ph670, label %._crit_edge671.thread

.lr.ph670:                                        ; preds = %447
  %460 = fadd float %451, %452
  %461 = fsub float %460, %453
  %462 = getelementptr inbounds i8, ptr %0, i64 40
  %463 = getelementptr inbounds i8, ptr %0, i64 24
  %464 = getelementptr inbounds i8, ptr %0, i64 552
  %465 = getelementptr inbounds i8, ptr %2, i64 4
  %466 = getelementptr inbounds i8, ptr %0, i64 585
  %467 = getelementptr inbounds i8, ptr %4, i64 8
  br label %470

._crit_edge671:                                   ; preds = %624
  %468 = and i8 %.2509, 1
  %469 = icmp eq i8 %468, 0
  br i1 %469, label %._crit_edge671.thread, label %637

470:                                              ; preds = %.lr.ph670, %624
  %.0501668 = phi i32 [ 0, %.lr.ph670 ], [ %625, %624 ]
  %.0502667 = phi float [ %461, %.lr.ph670 ], [ %.2504, %624 ]
  %.0505666 = phi i1 [ %450, %.lr.ph670 ], [ %.1506, %624 ]
  %.0507665 = phi i8 [ 0, %.lr.ph670 ], [ %.2509, %624 ]
  %.0510664 = phi i32 [ 0, %.lr.ph670 ], [ %.1511, %624 ]
  %471 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %462, i32 noundef %.0501668)
  %472 = load i16, ptr %471, align 2, !tbaa !112
  %473 = sext i16 %472 to i32
  %474 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %463, i32 noundef %473)
  %475 = load i16, ptr %464, align 8, !tbaa !196
  %476 = icmp sgt i16 %475, 0
  %477 = zext i1 %476 to i8
  %478 = getelementptr inbounds i8, ptr %474, i64 106
  store i8 %477, ptr %478, align 2, !tbaa !197
  br i1 %.0505666, label %479, label %488

479:                                              ; preds = %470
  %480 = load i16, ptr %448, align 4, !tbaa !193
  %481 = sext i16 %480 to i32
  %482 = icmp eq i32 %.0510664, %481
  br i1 %482, label %483, label %488

483:                                              ; preds = %479
  %484 = load float, ptr %2, align 4, !tbaa !194
  %485 = load float, ptr %412, align 8, !tbaa !183
  %486 = fsub float %484, %485
  %487 = fadd float %.0502667, %486
  br label %488

488:                                              ; preds = %483, %479, %470
  %.1506 = phi i1 [ false, %483 ], [ true, %479 ], [ false, %470 ]
  %.1503 = phi float [ %487, %483 ], [ %.0502667, %479 ], [ %.0502667, %470 ]
  %489 = load i32, ptr %474, align 4, !tbaa !118
  %490 = and i32 %489, -251658241
  store i32 %490, ptr %474, align 4, !tbaa !118
  %491 = load ptr, ptr %20, align 8, !tbaa !34
  %492 = lshr i32 %.0501668, 5
  %493 = zext nneg i32 %492 to i64
  %494 = getelementptr inbounds i32, ptr %491, i64 %493
  %495 = load i32, ptr %494, align 4, !tbaa !164
  %496 = and i32 %.0501668, 31
  %497 = shl nuw i32 1, %496
  %498 = and i32 %495, %497
  %.not561 = icmp eq i32 %498, 0
  %499 = getelementptr inbounds i8, ptr %474, i64 32
  br i1 %.not561, label %500, label %511

500:                                              ; preds = %488
  %501 = getelementptr inbounds i8, ptr %474, i64 40
  store float %.1503, ptr %501, align 4, !tbaa !198
  store float %.1503, ptr %499, align 4, !tbaa !199
  %502 = getelementptr inbounds i8, ptr %474, i64 52
  store float %.1503, ptr %502, align 4, !tbaa !200
  %503 = getelementptr inbounds i8, ptr %474, i64 12
  store float %.1503, ptr %503, align 4, !tbaa !201
  %504 = getelementptr inbounds i8, ptr %474, i64 8
  store float %.1503, ptr %504, align 4, !tbaa !202
  %505 = getelementptr inbounds i8, ptr %474, i64 4
  store float 0.000000e+00, ptr %505, align 4, !tbaa !175
  %506 = load float, ptr %465, align 4, !tbaa !203
  %507 = getelementptr inbounds i8, ptr %474, i64 36
  store float %506, ptr %507, align 4, !tbaa !204
  %508 = getelementptr inbounds i8, ptr %474, i64 44
  store float 0x47EFFFFFE0000000, ptr %508, align 4, !tbaa !205
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %499, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %509 = getelementptr inbounds i8, ptr %474, i64 101
  store <4 x i8> <i8 0, i8 0, i8 0, i8 1>, ptr %509, align 1, !tbaa !206
  %510 = getelementptr inbounds i8, ptr %474, i64 60
  store float 1.000000e+00, ptr %510, align 4, !tbaa !207
  br label %624

511:                                              ; preds = %488
  %512 = load float, ptr %499, align 4
  %513 = fcmp oge float %.0512, %512
  %or.cond604.not619 = select i1 %426, i1 %513, i1 false
  %514 = getelementptr inbounds i8, ptr %474, i64 40
  %515 = load float, ptr %514, align 4
  %516 = fcmp olt float %.0512, %515
  %or.cond607 = select i1 %or.cond604.not619, i1 %516, i1 false
  br i1 %or.cond607, label %517, label %518

517:                                              ; preds = %511
  store i16 %472, ptr %411, align 2, !tbaa !182
  br label %518

518:                                              ; preds = %517, %511
  %519 = getelementptr inbounds i8, ptr %474, i64 8
  store float %.1503, ptr %519, align 4, !tbaa !202
  %520 = call noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %473)
  %521 = getelementptr inbounds i8, ptr %474, i64 4
  %522 = load float, ptr %521, align 4, !tbaa !175
  %523 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %522, float noundef %520)
  store float %523, ptr %521, align 4, !tbaa !175
  %524 = getelementptr inbounds i8, ptr %474, i64 16
  %525 = load float, ptr %524, align 4, !tbaa !166
  %526 = load float, ptr %27, align 8, !tbaa !111
  %527 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %525, float noundef %526)
  %528 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %523, float noundef %527)
  store float %528, ptr %521, align 4, !tbaa !175
  %529 = fadd float %.1503, %528
  %530 = load float, ptr %174, align 4, !tbaa !161
  %531 = fadd float %529, %530
  %532 = load float, ptr %176, align 8, !tbaa !162
  %533 = fadd float %531, %532
  %534 = load float, ptr %311, align 8, !tbaa !169
  %535 = call float @llvm.fmuladd.f32(float %534, float 2.000000e+00, float %533)
  %536 = getelementptr inbounds i8, ptr %474, i64 12
  store float %535, ptr %536, align 4, !tbaa !201
  %537 = load float, ptr %519, align 4, !tbaa !202
  %538 = fadd float %534, %537
  %539 = fadd float %530, %538
  %540 = getelementptr inbounds i8, ptr %474, i64 52
  store float %539, ptr %540, align 4, !tbaa !200
  %541 = fsub float %535, %534
  %542 = fsub float %541, %532
  %543 = getelementptr inbounds i8, ptr %474, i64 56
  store float %542, ptr %543, align 4, !tbaa !208
  %544 = fmul float %528, 0x3FE4CCCCC0000000
  %545 = call noundef float @_ZL7ImTruncf(float noundef %544)
  %546 = getelementptr inbounds i8, ptr %474, i64 60
  store float %545, ptr %546, align 4, !tbaa !207
  %547 = load float, ptr %519, align 4, !tbaa !202
  store float %547, ptr %499, align 4, !tbaa !199
  %548 = load float, ptr %465, align 4, !tbaa !203
  %549 = getelementptr inbounds i8, ptr %474, i64 36
  store float %548, ptr %549, align 4, !tbaa !204
  %550 = load float, ptr %536, align 4, !tbaa !201
  store float %550, ptr %514, align 4, !tbaa !198
  %551 = getelementptr inbounds i8, ptr %474, i64 44
  store float 0x47EFFFFFE0000000, ptr %551, align 4, !tbaa !205
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %499, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %552 = load float, ptr %514, align 4, !tbaa !198
  %553 = load float, ptr %499, align 4, !tbaa !199
  %554 = fcmp ogt float %552, %553
  %555 = getelementptr inbounds i8, ptr %474, i64 101
  %556 = zext i1 %554 to i8
  store i8 %556, ptr %555, align 1, !tbaa !209
  %557 = getelementptr inbounds i8, ptr %474, i64 102
  store i8 1, ptr %557, align 2, !tbaa !210
  br i1 %554, label %558, label %.critedge609

558:                                              ; preds = %518
  %559 = load ptr, ptr %455, align 8, !tbaa !195
  call void @_Z16ImBitArraySetBitPji(ptr noundef %559, i32 noundef %473)
  br label %564

.critedge609:                                     ; preds = %518
  %.old = getelementptr inbounds i8, ptr %474, i64 107
  %.old611 = load i8, ptr %.old, align 1, !tbaa !127
  %.not562.old = icmp eq i8 %.old611, 0
  br i1 %.not562.old, label %560, label %564

560:                                              ; preds = %.critedge609
  %561 = getelementptr inbounds i8, ptr %474, i64 108
  %562 = load i8, ptr %561, align 4, !tbaa !126
  %563 = icmp ne i8 %562, 0
  br label %564

564:                                              ; preds = %558, %560, %.critedge609
  %565 = phi i1 [ true, %.critedge609 ], [ true, %558 ], [ %563, %560 ]
  %566 = getelementptr inbounds i8, ptr %474, i64 103
  %567 = zext i1 %565 to i8
  store i8 %567, ptr %566, align 1, !tbaa !165
  %568 = getelementptr inbounds i8, ptr %474, i64 98
  %569 = load i8, ptr %568, align 2, !tbaa !122, !range !27, !noundef !28
  %570 = trunc nuw i8 %569 to i1
  br i1 %570, label %571, label %574

571:                                              ; preds = %564
  %572 = load i8, ptr %466, align 1, !tbaa !211, !range !27, !noundef !28
  %573 = trunc nuw i8 %572 to i1
  br label %574

574:                                              ; preds = %571, %564
  %575 = phi i1 [ true, %564 ], [ %573, %571 ]
  %576 = getelementptr inbounds i8, ptr %474, i64 104
  %577 = zext i1 %575 to i8
  store i8 %577, ptr %576, align 4, !tbaa !212
  %or.cond6.demorgan = and i1 %554, %575
  br i1 %or.cond6.demorgan, label %578, label %579

578:                                              ; preds = %574
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 1098, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #10
  unreachable

579:                                              ; preds = %574
  %spec.select613 = select i1 %575, i8 %.0507665, i8 1
  %.1508 = select i1 %565, i8 %spec.select613, i8 %.0507665
  %580 = load i32, ptr %474, align 4, !tbaa !118
  %storemerge.v = select i1 %554, i32 50331648, i32 16777216
  %storemerge = or i32 %580, %storemerge.v
  store i32 %storemerge, ptr %474, align 4, !tbaa !118
  %581 = getelementptr inbounds i8, ptr %474, i64 90
  %582 = load i16, ptr %581, align 2, !tbaa !123
  %.not = icmp eq i16 %582, -1
  br i1 %.not, label %585, label %583

583:                                              ; preds = %579
  %584 = or i32 %storemerge, 67108864
  store i32 %584, ptr %474, align 4, !tbaa !118
  br label %585

585:                                              ; preds = %583, %579
  %586 = phi i32 [ %584, %583 ], [ %storemerge, %579 ]
  %587 = load i16, ptr %411, align 2, !tbaa !182
  %588 = icmp eq i16 %587, %472
  br i1 %588, label %589, label %591

589:                                              ; preds = %585
  %590 = or i32 %586, 134217728
  store i32 %590, ptr %474, align 4, !tbaa !118
  br label %591

591:                                              ; preds = %589, %585
  %592 = load <4 x float>, ptr %540, align 4
  %593 = getelementptr inbounds i8, ptr %474, i64 64
  %594 = shufflevector <4 x float> %592, <4 x float> poison, <4 x i32> zeroinitializer
  store <4 x float> %594, ptr %593, align 4, !tbaa !125
  %595 = load i8, ptr %466, align 1, !tbaa !211, !range !27, !noundef !28
  %596 = icmp eq i8 %595, 0
  br i1 %596, label %597, label %604

597:                                              ; preds = %591
  %598 = getelementptr inbounds i8, ptr %474, i64 107
  %599 = load i8, ptr %598, align 1, !tbaa !127
  %600 = lshr i8 %599, 1
  store i8 %600, ptr %598, align 1, !tbaa !127
  %601 = getelementptr inbounds i8, ptr %474, i64 108
  %602 = load i8, ptr %601, align 4, !tbaa !126
  %603 = lshr i8 %602, 1
  store i8 %603, ptr %601, align 4, !tbaa !126
  br label %604

604:                                              ; preds = %597, %591
  %605 = load i16, ptr %448, align 4, !tbaa !193
  %606 = sext i16 %605 to i32
  %607 = icmp slt i32 %.0510664, %606
  br i1 %607, label %608, label %614

608:                                              ; preds = %604
  %609 = load float, ptr %536, align 4, !tbaa !201
  %610 = fadd float %609, 1.000000e+00
  %611 = load float, ptr %4, align 4, !tbaa !194
  %612 = load float, ptr %467, align 4, !tbaa !213
  %613 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %610, float noundef %611, float noundef %612)
  store float %613, ptr %4, align 4, !tbaa !194
  br label %614

614:                                              ; preds = %608, %604
  %615 = load float, ptr %521, align 4, !tbaa !175
  %616 = load float, ptr %174, align 4, !tbaa !161
  %617 = fadd float %615, %616
  %618 = load float, ptr %176, align 8, !tbaa !162
  %619 = fadd float %617, %618
  %620 = load float, ptr %311, align 8, !tbaa !169
  %621 = call float @llvm.fmuladd.f32(float %620, float 2.000000e+00, float %619)
  %622 = fadd float %.1503, %621
  %623 = add nsw i32 %.0510664, 1
  br label %624

624:                                              ; preds = %614, %500
  %.1511 = phi i32 [ %623, %614 ], [ %.0510664, %500 ]
  %.2509 = phi i8 [ %.1508, %614 ], [ %.0507665, %500 ]
  %.2504 = phi float [ %622, %614 ], [ %.1503, %500 ]
  %625 = add nuw nsw i32 %.0501668, 1
  %626 = load i32, ptr %18, align 4, !tbaa !33
  %627 = icmp slt i32 %625, %626
  br i1 %627, label %470, label %._crit_edge671, !llvm.loop !214

._crit_edge671.thread:                            ; preds = %447, %._crit_edge671
  %628 = getelementptr inbounds i8, ptr %0, i64 24
  %629 = load i16, ptr %23, align 4, !tbaa !35
  %630 = sext i16 %629 to i32
  %631 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %628, i32 noundef %630)
  %632 = getelementptr inbounds i8, ptr %631, i64 103
  store i8 1, ptr %632, align 1, !tbaa !165
  %633 = load i16, ptr %23, align 4, !tbaa !35
  %634 = sext i16 %633 to i32
  %635 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %628, i32 noundef %634)
  %636 = getelementptr inbounds i8, ptr %635, i64 104
  store i8 0, ptr %636, align 4, !tbaa !212
  br label %637

637:                                              ; preds = %._crit_edge671.thread, %._crit_edge671
  %638 = load float, ptr %171, align 8, !tbaa !215
  %639 = getelementptr inbounds i8, ptr %0, i64 24
  %640 = load i16, ptr %147, align 2, !tbaa !137
  %641 = sext i16 %640 to i32
  %642 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %639, i32 noundef %641)
  %643 = getelementptr inbounds i8, ptr %642, i64 40
  %644 = load float, ptr %643, align 4, !tbaa !198
  %645 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %638, float noundef %644)
  br i1 %426, label %646, label %653

646:                                              ; preds = %637
  %647 = load i16, ptr %411, align 2, !tbaa !182
  %648 = icmp ne i16 %647, -1
  %649 = fcmp ult float %.0512, %645
  %or.cond615 = select i1 %648, i1 true, i1 %649
  br i1 %or.cond615, label %653, label %650

650:                                              ; preds = %646
  %651 = load i32, ptr %18, align 4, !tbaa !33
  %652 = trunc i32 %651 to i16
  store i16 %652, ptr %411, align 2, !tbaa !182
  br label %653

653:                                              ; preds = %650, %646, %637
  %654 = and i8 %.0495.lcssa, 1
  %655 = icmp ne i8 %654, 0
  %.pre680.pre = load i32, ptr %11, align 4, !tbaa !29
  %656 = and i32 %.pre680.pre, 1
  %.not549 = icmp eq i32 %656, 0
  %or.cond = select i1 %655, i1 true, i1 %.not549
  br i1 %or.cond, label %659, label %657

657:                                              ; preds = %653
  %658 = and i32 %.pre680.pre, -2
  store i32 %658, ptr %11, align 4, !tbaa !29
  br label %659

659:                                              ; preds = %657, %653
  %.pre680 = phi i32 [ %658, %657 ], [ %.pre680.pre, %653 ]
  %660 = getelementptr inbounds i8, ptr %5, i64 16808
  %661 = load i32, ptr %660, align 8, !tbaa !216
  %662 = icmp ne i32 %661, 0
  %663 = getelementptr inbounds i8, ptr %0, i64 580
  %664 = zext i1 %662 to i8
  store i8 %664, ptr %663, align 4, !tbaa !217
  %665 = load i16, ptr %161, align 2, !tbaa !155
  %.not550 = icmp eq i16 %665, -1
  br i1 %.not550, label %668, label %666

666:                                              ; preds = %659
  %667 = and i32 %.pre680, -65537
  store i32 %667, ptr %11, align 4, !tbaa !29
  br label %668

668:                                              ; preds = %666, %659
  %669 = phi i32 [ %667, %666 ], [ %.pre680, %659 ]
  %670 = and i32 %669, 65536
  %.not551 = icmp eq i32 %670, 0
  br i1 %.not551, label %676, label %671

671:                                              ; preds = %668
  %672 = getelementptr inbounds i8, ptr %0, i64 280
  store float %645, ptr %672, align 8, !tbaa !218
  store float %645, ptr %416, align 8, !tbaa !185
  %673 = getelementptr inbounds i8, ptr %0, i64 296
  %674 = load float, ptr %673, align 8, !tbaa !219
  %675 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %674, float noundef %645)
  store float %675, ptr %673, align 8, !tbaa !219
  br label %676

676:                                              ; preds = %671, %668
  %677 = getelementptr inbounds i8, ptr %0, i64 392
  %678 = load ptr, ptr %677, align 8, !tbaa !139
  %679 = getelementptr inbounds i8, ptr %678, i64 616
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %679, ptr noundef nonnull align 8 dereferenceable(16) %171, i64 16, i1 false), !tbaa.struct !159
  %680 = load float, ptr %454, align 8, !tbaa !220
  %681 = getelementptr inbounds i8, ptr %0, i64 172
  store float %680, ptr %681, align 4, !tbaa !221
  %682 = getelementptr inbounds i8, ptr %0, i64 296
  %683 = load float, ptr %682, align 8, !tbaa !219
  %684 = getelementptr inbounds i8, ptr %0, i64 176
  store float %683, ptr %684, align 8, !tbaa !222
  %685 = load i32, ptr %11, align 4, !tbaa !29
  %686 = and i32 %685, 131072
  %.not552 = icmp eq i32 %686, 0
  br i1 %.not552, label %689, label %687

687:                                              ; preds = %676
  %688 = load float, ptr %418, align 4, !tbaa !186
  br label %699

689:                                              ; preds = %676
  %690 = load ptr, ptr %677, align 8, !tbaa !139
  %691 = getelementptr inbounds i8, ptr %690, i64 660
  %692 = load float, ptr %691, align 4, !tbaa !223
  %693 = and i32 %685, 33554432
  %.not553 = icmp eq i32 %693, 0
  br i1 %.not553, label %694, label %696

694:                                              ; preds = %689
  %695 = load float, ptr %418, align 4, !tbaa !186
  br label %696

696:                                              ; preds = %689, %694
  %697 = phi float [ %695, %694 ], [ 0.000000e+00, %689 ]
  %698 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %692, float noundef %697)
  br label %699

699:                                              ; preds = %696, %687
  %.0486 = phi float [ %688, %687 ], [ %698, %696 ]
  %700 = getelementptr inbounds i8, ptr %5, i64 14936
  %701 = load float, ptr %700, align 4, !tbaa !224
  %702 = fsub float %.0486, %701
  %703 = load ptr, ptr %677, align 8, !tbaa !139
  %704 = getelementptr inbounds i8, ptr %703, i64 604
  %705 = load float, ptr %704, align 4, !tbaa !225
  %706 = getelementptr inbounds i8, ptr %703, i64 612
  %707 = load float, ptr %706, align 4, !tbaa !226
  %708 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %702, float noundef %705, float noundef %707)
  %709 = load ptr, ptr %677, align 8, !tbaa !139
  %710 = getelementptr inbounds i8, ptr %709, i64 612
  store float %708, ptr %710, align 4, !tbaa !226
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef nonnull %0)
  %711 = load i32, ptr %11, align 4, !tbaa !29
  %712 = and i32 %711, 1
  %.not554 = icmp eq i32 %712, 0
  br i1 %.not554, label %714, label %713

713:                                              ; preds = %699
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef nonnull %0)
  br label %714

714:                                              ; preds = %713, %699
  %715 = getelementptr inbounds i8, ptr %406, i64 8
  store float 0.000000e+00, ptr %715, align 4, !tbaa !227
  store i8 1, ptr %6, align 2, !tbaa !9
  %716 = getelementptr inbounds i8, ptr %0, i64 570
  store i8 0, ptr %716, align 2, !tbaa !228
  %717 = getelementptr inbounds i8, ptr %0, i64 526
  store i16 -1, ptr %717, align 2, !tbaa !229
  %718 = getelementptr inbounds i8, ptr %0, i64 571
  %719 = load i8, ptr %718, align 1, !tbaa !230, !range !27, !noundef !28
  %720 = trunc nuw i8 %719 to i1
  br i1 %720, label %721, label %729

721:                                              ; preds = %714
  %722 = getelementptr inbounds i8, ptr %0, i64 548
  %723 = load i16, ptr %722, align 4, !tbaa !231
  %.not555 = icmp eq i16 %723, -1
  br i1 %.not555, label %729, label %724

724:                                              ; preds = %721
  %725 = getelementptr inbounds i8, ptr %0, i64 122
  %726 = load i16, ptr %725, align 2, !tbaa !232
  %727 = load i16, ptr %403, align 8, !tbaa !178
  %728 = icmp eq i16 %726, %727
  br i1 %728, label %.sink.split693, label %729

729:                                              ; preds = %724, %721, %714
  %730 = load i32, ptr %11, align 4, !tbaa !29
  %731 = and i32 %730, 268435456
  %.not556 = icmp eq i32 %731, 0
  br i1 %.not556, label %751, label %732

732:                                              ; preds = %729
  %733 = load i16, ptr %411, align 2, !tbaa !182
  %.not557 = icmp eq i16 %733, -1
  br i1 %.not557, label %751, label %734

734:                                              ; preds = %732
  %735 = sext i16 %733 to i32
  %736 = load i32, ptr %18, align 4, !tbaa !33
  %.not558 = icmp eq i32 %736, %735
  br i1 %.not558, label %751, label %737

737:                                              ; preds = %734
  %738 = load i16, ptr %410, align 4, !tbaa !181
  %739 = icmp eq i16 %738, -1
  br i1 %739, label %740, label %751

740:                                              ; preds = %737
  %741 = load i32, ptr %424, align 4, !tbaa !188
  %742 = icmp eq i32 %741, 0
  br i1 %742, label %.sink.split693, label %743

743:                                              ; preds = %740
  %744 = getelementptr inbounds i8, ptr %0, i64 581
  %745 = load i8, ptr %744, align 1, !tbaa !233, !range !27, !noundef !28
  %746 = trunc nuw i8 %745 to i1
  br i1 %746, label %.sink.split693, label %747

747:                                              ; preds = %743
  %748 = getelementptr inbounds i8, ptr %5, i64 20256
  %749 = load i8, ptr %748, align 8, !tbaa !234, !range !27, !noundef !28
  %750 = trunc nuw i8 %749 to i1
  br i1 %750, label %.sink.split693, label %751

.sink.split693:                                   ; preds = %740, %743, %747, %724
  %.sink694 = phi i16 [ %723, %724 ], [ %733, %747 ], [ %733, %743 ], [ %733, %740 ]
  store i16 %.sink694, ptr %717, align 2, !tbaa !229
  br label %751

751:                                              ; preds = %.sink.split693, %729, %732, %734, %737, %747
  %752 = getelementptr inbounds i8, ptr %0, i64 572
  %753 = load i8, ptr %752, align 4, !tbaa !235, !range !27, !noundef !28
  %754 = icmp eq i8 %753, 0
  br i1 %754, label %755, label %759

755:                                              ; preds = %751
  %756 = call noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef nonnull %0)
  br i1 %756, label %757, label %759

757:                                              ; preds = %755
  %758 = load i32, ptr %11, align 4, !tbaa !29
  call void @_ZN5ImGui27TableDrawDefaultContextMenuEP10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %758)
  call void @_ZN5ImGui8EndPopupEv()
  br label %759

759:                                              ; preds = %757, %755, %751
  %760 = getelementptr inbounds i8, ptr %0, i64 569
  %761 = load i8, ptr %760, align 1, !tbaa !124, !range !27, !noundef !28
  %762 = trunc nuw i8 %761 to i1
  br i1 %762, label %763, label %767

763:                                              ; preds = %759
  %764 = load i32, ptr %11, align 4, !tbaa !29
  %765 = and i32 %764, 8
  %.not559 = icmp eq i32 %765, 0
  br i1 %.not559, label %767, label %766

766:                                              ; preds = %763
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef nonnull %0)
  br label %767

767:                                              ; preds = %766, %763, %759
  %768 = getelementptr inbounds i8, ptr %0, i64 554
  %769 = load i16, ptr %768, align 2, !tbaa !236
  %770 = icmp sgt i16 %769, 0
  br i1 %770, label %771, label %._crit_edge683

._crit_edge683:                                   ; preds = %767
  %.pre681.pre = load ptr, ptr %677, align 8, !tbaa !139
  br label %785

771:                                              ; preds = %767
  %772 = zext nneg i16 %769 to i32
  %773 = getelementptr inbounds i8, ptr %0, i64 40
  %774 = add nsw i32 %772, -1
  %775 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN6ImSpanIsEixEi(ptr noundef nonnull align 8 dereferenceable(16) %773, i32 noundef %774)
  %776 = load i16, ptr %775, align 2, !tbaa !112
  %777 = sext i16 %776 to i32
  %778 = call noundef nonnull align 4 dereferenceable(111) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %639, i32 noundef %777)
  %779 = getelementptr inbounds i8, ptr %778, i64 12
  %780 = load float, ptr %779, align 4, !tbaa !201
  %781 = load float, ptr %412, align 8, !tbaa !183
  %782 = fsub float %780, %781
  %783 = load ptr, ptr %677, align 8, !tbaa !139
  %784 = getelementptr inbounds i8, ptr %783, i64 168
  store float %782, ptr %784, align 8, !tbaa !237
  br label %785

785:                                              ; preds = %._crit_edge683, %771
  %.pre681 = phi ptr [ %.pre681.pre, %._crit_edge683 ], [ %783, %771 ]
  %786 = getelementptr inbounds i8, ptr %0, i64 550
  %787 = load i16, ptr %786, align 2, !tbaa !238
  %788 = icmp sgt i16 %787, 0
  br i1 %788, label %789, label %793

789:                                              ; preds = %785
  %790 = getelementptr inbounds i8, ptr %406, i64 12
  %791 = load float, ptr %790, align 4, !tbaa !239
  %792 = getelementptr inbounds i8, ptr %.pre681, i64 172
  store float %791, ptr %792, align 4, !tbaa !240
  br label %793

793:                                              ; preds = %789, %785
  %794 = getelementptr inbounds i8, ptr %406, i64 12
  store float 0.000000e+00, ptr %794, align 4, !tbaa !239
  %795 = load i32, ptr %11, align 4, !tbaa !29
  %796 = and i32 %795, 1048576
  %.not560 = icmp eq i32 %796, 0
  br i1 %.not560, label %802, label %797

797:                                              ; preds = %793
  %798 = getelementptr inbounds i8, ptr %0, i64 416
  %799 = load ptr, ptr %798, align 8, !tbaa !241
  %800 = getelementptr inbounds i8, ptr %.pre681, i64 736
  %801 = load ptr, ptr %800, align 8, !tbaa !242
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %799, ptr noundef %801, i32 noundef 2)
  br label %807

802:                                              ; preds = %793
  %803 = getelementptr inbounds i8, ptr %.pre681, i64 736
  %804 = load ptr, ptr %803, align 8, !tbaa !242
  %805 = getelementptr inbounds i8, ptr %.pre681, i64 632
  %806 = getelementptr inbounds i8, ptr %.pre681, i64 640
  call void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %804, ptr noundef nonnull align 4 dereferenceable(8) %805, ptr noundef nonnull align 4 dereferenceable(8) %806, i1 noundef zeroext false)
  br label %807

807:                                              ; preds = %802, %797
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #11
  ret void
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z22ImBitArrayClearAllBitsPji(ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z16ImBitArraySetBitPji(ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef, ptr noundef) local_unnamed_addr #6

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL7ImTruncf(float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16), float noundef, float noundef, float noundef, float noundef) unnamed_addr #6 align 2

declare noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef, i32 noundef) local_unnamed_addr #6

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui27TableDrawDefaultContextMenuEP10ImGuiTablei(ptr noundef, i32 noundef) local_unnamed_addr #6

declare void @_ZN5ImGui8EndPopupEv() local_unnamed_addr #9

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

declare void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, i32 noundef) local_unnamed_addr #9

declare void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #9

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { noreturn nounwind }
attributes #11 = { 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, !26, i64 566}
!10 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !12, i64 24, !13, i64 40, !14, i64 56, !6, i64 72, !6, i64 80, !6, i64 88, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !15, i64 120, !15, i64 122, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !11, i64 148, !11, i64 150, !11, i64 152, !7, i64 156, !11, i64 164, !11, i64 168, !16, i64 172, !16, i64 176, !16, i64 180, !16, i64 184, !16, i64 188, !16, i64 192, !16, i64 196, !16, i64 200, !16, i64 204, !16, i64 208, !16, i64 212, !16, i64 216, !16, i64 220, !16, i64 224, !16, i64 228, !16, i64 232, !16, i64 236, !17, i64 240, !17, i64 256, !17, i64 272, !17, i64 288, !17, i64 304, !17, i64 320, !17, i64 336, !17, i64 352, !17, i64 368, !6, i64 384, !6, i64 392, !19, i64 400, !6, i64 416, !21, i64 424, !22, i64 448, !23, i64 464, !24, i64 480, !25, i64 496, !15, i64 512, !15, i64 514, !15, i64 516, !15, i64 518, !15, i64 520, !15, i64 522, !15, i64 524, !15, i64 526, !15, i64 528, !15, i64 530, !15, i64 532, !15, i64 534, !15, i64 536, !15, i64 538, !15, i64 540, !15, i64 542, !15, i64 544, !15, i64 546, !15, i64 548, !15, i64 550, !15, i64 552, !15, i64 554, !15, i64 556, !15, i64 558, !15, i64 560, !15, i64 562, !15, i64 564, !26, i64 566, !26, i64 567, !26, i64 568, !26, i64 569, !26, i64 570, !26, i64 571, !26, i64 572, !26, i64 573, !26, i64 574, !26, i64 575, !26, i64 576, !26, i64 577, !26, i64 578, !26, i64 579, !26, i64 580, !26, i64 581, !26, i64 582, !26, i64 583, !26, i64 584, !26, i64 585}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!13 = !{!"_ZTS6ImSpanIsE", !6, i64 0, !6, i64 8}
!14 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!15 = !{!"short", !7, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = !{!"_ZTS6ImRect", !18, i64 0, !18, i64 8}
!18 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!19 = !{!"_ZTS15ImGuiTextBuffer", !20, i64 0}
!20 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!21 = !{!"_ZTS22ImGuiTableInstanceData", !11, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !11, i64 16, !11, i64 20}
!22 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!23 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !15, i64 4, !15, i64 6, !11, i64 8}
!24 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!25 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !26, i64 12}
!26 = !{!"bool", !7, i64 0}
!27 = !{i8 0, i8 2}
!28 = !{}
!29 = !{!10, !11, i64 4}
!30 = !{!10, !26, i64 575}
!31 = !{!10, !15, i64 514}
!32 = !{!10, !6, i64 80}
!33 = !{!10, !11, i64 108}
!34 = !{!10, !6, i64 72}
!35 = !{!10, !15, i64 540}
!36 = !{!37, !16, i64 14900}
!37 = !{!"_ZTS12ImGuiContext", !26, i64 0, !26, i64 1, !38, i64 8, !41, i64 14624, !44, i64 14840, !11, i64 15972, !11, i64 15976, !6, i64 15984, !16, i64 15992, !16, i64 15996, !45, i64 16000, !48, i64 16528, !11, i64 16536, !11, i64 16540, !11, i64 16544, !11, i64 16548, !26, i64 16552, !26, i64 16553, !26, i64 16554, !26, i64 16555, !26, i64 16556, !6, i64 16560, !49, i64 16568, !49, i64 16584, !39, i64 16600, !11, i64 16604, !50, i64 16608, !50, i64 16624, !50, i64 16640, !51, i64 16656, !52, i64 16672, !11, i64 16688, !18, i64 16692, !11, i64 16700, !6, i64 16704, !6, i64 16712, !6, i64 16720, !6, i64 16728, !6, i64 16736, !18, i64 16744, !11, i64 16752, !11, i64 16756, !16, i64 16760, !18, i64 16764, !18, i64 16772, !11, i64 16780, !11, i64 16784, !11, i64 16788, !26, i64 16792, !26, i64 16793, !16, i64 16796, !16, i64 16800, !11, i64 16804, !11, i64 16808, !16, i64 16812, !26, i64 16816, !26, i64 16817, !26, i64 16818, !26, i64 16819, !26, i64 16820, !26, i64 16821, !26, i64 16822, !11, i64 16823, !18, i64 16824, !6, i64 16832, !54, i64 16840, !11, i64 16844, !26, i64 16848, !26, i64 16849, !6, i64 16856, !11, i64 16864, !16, i64 16868, !48, i64 16872, !48, i64 16880, !48, i64 16888, !55, i64 16896, !7, i64 16916, !56, i64 18768, !11, i64 19112, !26, i64 19116, !11, i64 19120, !11, i64 19124, !11, i64 19128, !11, i64 19132, !11, i64 19136, !58, i64 19144, !60, i64 19176, !61, i64 19256, !26, i64 19416, !11, i64 19420, !63, i64 19424, !64, i64 19440, !65, i64 19456, !66, i64 19472, !67, i64 19488, !68, i64 19504, !69, i64 19520, !69, i64 19536, !70, i64 19552, !11, i64 19568, !71, i64 19576, !16, i64 19592, !6, i64 19600, !6, i64 19608, !6, i64 19616, !11, i64 19624, !72, i64 19632, !11, i64 19680, !11, i64 19684, !11, i64 19688, !6, i64 19696, !11, i64 19704, !11, i64 19708, !66, i64 19712, !11, i64 19728, !11, i64 19732, !11, i64 19736, !11, i64 19740, !11, i64 19744, !16, i64 19748, !11, i64 19752, !11, i64 19756, !11, i64 19760, !11, i64 19764, !11, i64 19768, !54, i64 19772, !73, i64 19776, !59, i64 19784, !26, i64 19792, !26, i64 19793, !26, i64 19794, !26, i64 19795, !26, i64 19796, !26, i64 19797, !26, i64 19798, !74, i64 19800, !26, i64 19864, !26, i64 19865, !26, i64 19866, !11, i64 19868, !11, i64 19872, !11, i64 19876, !11, i64 19880, !11, i64 19884, !11, i64 19888, !17, i64 19892, !17, i64 19908, !11, i64 19924, !11, i64 19928, !11, i64 19932, !74, i64 19936, !74, i64 20000, !74, i64 20064, !74, i64 20128, !11, i64 20192, !11, i64 20196, !6, i64 20200, !6, i64 20208, !6, i64 20216, !16, i64 20224, !16, i64 20228, !26, i64 20232, !18, i64 20236, !18, i64 20244, !16, i64 20252, !26, i64 20256, !26, i64 20257, !26, i64 20258, !11, i64 20260, !11, i64 20264, !11, i64 20268, !75, i64 20272, !17, i64 20336, !17, i64 20352, !11, i64 20368, !11, i64 20372, !16, i64 20376, !11, i64 20380, !11, i64 20384, !11, i64 20388, !11, i64 20392, !76, i64 20400, !7, i64 20416, !11, i64 20432, !77, i64 20440, !6, i64 20456, !11, i64 20464, !11, i64 20468, !78, i64 20472, !79, i64 20488, !81, i64 20528, !82, i64 20544, !6, i64 20560, !83, i64 20568, !85, i64 20608, !86, i64 20624, !11, i64 20640, !11, i64 20644, !16, i64 20648, !16, i64 20652, !11, i64 20656, !11, i64 20660, !11, i64 20664, !16, i64 20668, !18, i64 20672, !87, i64 20680, !90, i64 24408, !91, i64 24432, !11, i64 24552, !11, i64 24556, !11, i64 24560, !11, i64 24564, !16, i64 24568, !16, i64 24572, !11, i64 24576, !46, i64 24580, !93, i64 24596, !17, i64 24644, !26, i64 24660, !16, i64 24664, !16, i64 24668, !26, i64 24672, !26, i64 24673, !16, i64 24676, !16, i64 24680, !16, i64 24684, !16, i64 24688, !15, i64 24692, !15, i64 24694, !15, i64 24696, !20, i64 24704, !94, i64 24720, !95, i64 24736, !97, i64 24840, !97, i64 24856, !11, i64 24872, !98, i64 24880, !6, i64 24936, !26, i64 24944, !16, i64 24948, !19, i64 24952, !101, i64 24968, !102, i64 24984, !103, i64 25000, !104, i64 25016, !11, i64 25032, !7, i64 25040, !26, i64 25128, !105, i64 25132, !6, i64 25136, !19, i64 25144, !6, i64 25160, !6, i64 25168, !16, i64 25176, !26, i64 25180, !11, i64 25184, !11, i64 25188, !11, i64 25192, !11, i64 25196, !19, i64 25200, !106, i64 25216, !11, i64 25240, !7, i64 25244, !7, i64 25245, !26, i64 25246, !11, i64 25248, !7, i64 25252, !26, i64 25253, !7, i64 25254, !11, i64 25256, !16, i64 25260, !46, i64 25264, !107, i64 25280, !108, i64 25304, !110, i64 25344, !6, i64 25408, !7, i64 25416, !11, i64 25656, !11, i64 25660, !16, i64 25664, !11, i64 25668, !11, i64 25672, !11, i64 25676, !20, i64 25680, !7, i64 25696}
!38 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !16, i64 56, !26, i64 60, !6, i64 64, !18, i64 72, !26, i64 80, !26, i64 81, !26, i64 82, !26, i64 83, !26, i64 84, !26, i64 85, !26, i64 86, !26, i64 87, !26, i64 88, !26, i64 89, !26, i64 90, !26, i64 91, !26, i64 92, !26, i64 93, !26, i64 94, !26, i64 95, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !26, i64 120, !26, i64 121, !26, i64 122, !26, i64 123, !26, i64 124, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !15, i64 200, !26, i64 202, !26, i64 203, !26, i64 204, !26, i64 205, !26, i64 206, !26, i64 207, !26, i64 208, !16, i64 212, !11, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !18, i64 232, !7, i64 240, !7, i64 2904, !7, i64 3572, !6, i64 3640, !18, i64 3648, !7, i64 3656, !16, i64 3664, !16, i64 3668, !39, i64 3672, !11, i64 3676, !26, i64 3680, !26, i64 3681, !26, i64 3682, !26, i64 3683, !11, i64 3684, !7, i64 3688, !26, i64 14344, !18, i64 14348, !7, i64 14356, !7, i64 14400, !7, i64 14440, !7, i64 14445, !7, i64 14450, !7, i64 14460, !7, i64 14470, !7, i64 14475, !7, i64 14480, !26, i64 14485, !7, i64 14488, !7, i64 14508, !7, i64 14528, !7, i64 14568, !16, i64 14588, !26, i64 14592, !26, i64 14593, !7, i64 14594, !26, i64 14595, !15, i64 14596, !40, i64 14600}
!39 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!40 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!41 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !42, i64 184, !43, i64 200}
!42 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !11, i64 0, !11, i64 4, !6, i64 8}
!43 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !18, i64 8, !16, i64 16, !16, i64 20, !18, i64 24, !18, i64 32, !11, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !18, i64 60, !16, i64 68, !16, i64 72, !18, i64 76, !18, i64 84, !18, i64 92, !18, i64 100, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !16, i64 148, !16, i64 152, !11, i64 156, !18, i64 160, !18, i64 168, !16, i64 176, !18, i64 180, !18, i64 188, !18, i64 196, !18, i64 204, !16, i64 212, !16, i64 216, !26, i64 220, !26, i64 221, !26, i64 222, !16, i64 224, !16, i64 228, !7, i64 232, !16, i64 1112, !16, i64 1116, !16, i64 1120, !11, i64 1124, !11, i64 1128}
!45 = !{!"_ZTS20ImDrawListSharedData", !18, i64 0, !6, i64 8, !16, i64 16, !16, i64 20, !16, i64 24, !46, i64 28, !11, i64 44, !47, i64 48, !7, i64 64, !16, i64 448, !7, i64 452, !6, i64 520}
!46 = !{!"_ZTS6ImVec4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!47 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!48 = !{!"double", !7, i64 0}
!49 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !11, i64 0, !11, i64 4, !6, i64 8}
!50 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!52 = !{!"_ZTS12ImGuiStorage", !53, i64 0}
!53 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!54 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!55 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!56 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !57, i64 312, !57, i64 328}
!57 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!58 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !11, i64 4, !59, i64 8, !16, i64 16, !11, i64 20, !26, i64 24, !11, i64 25}
!59 = !{!"long long", !7, i64 0}
!60 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !17, i64 12, !17, i64 28, !17, i64 44, !17, i64 60}
!61 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !18, i64 20, !18, i64 28, !18, i64 36, !18, i64 44, !18, i64 52, !11, i64 60, !26, i64 64, !26, i64 65, !17, i64 68, !6, i64 88, !6, i64 96, !16, i64 104, !11, i64 108, !11, i64 112, !62, i64 116, !18, i64 148}
!62 = !{!"_ZTS16ImGuiWindowClass", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !26, i64 28, !26, i64 29}
!63 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS20ImGuiPlatformMonitor", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !16, i64 32, !6, i64 40}
!73 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!74 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !17, i64 16, !11, i64 32, !59, i64 40, !16, i64 48, !16, i64 52, !16, i64 56}
!75 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !26, i64 57, !26, i64 58}
!76 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!79 = !{!"_ZTS6ImPoolI10ImGuiTableE", !80, i64 0, !52, i64 16, !11, i64 32, !11, i64 36}
!80 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!83 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !84, i64 0, !52, i64 16, !11, i64 32, !11, i64 36}
!84 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!85 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!86 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!87 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !40, i64 24, !20, i64 40, !20, i64 56, !26, i64 72, !11, i64 76, !16, i64 80, !88, i64 84, !16, i64 3712, !26, i64 3716, !26, i64 3717, !26, i64 3718, !11, i64 3720}
!88 = !{!"_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, !16, i64 28, !89, i64 32}
!89 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !15, i64 3582, !15, i64 3584, !11, i64 3588, !11, i64 3592}
!90 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !11, i64 0, !20, i64 8}
!91 = !{!"_ZTS6ImFont", !81, i64 0, !16, i64 16, !16, i64 20, !40, i64 24, !92, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !16, i64 88, !16, i64 92, !26, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !11, i64 112, !7, i64 116}
!92 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!93 = !{!"_ZTS21ImGuiComboPreviewData", !17, i64 0, !18, i64 16, !18, i64 24, !18, i64 32, !16, i64 40, !11, i64 44}
!94 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!95 = !{!"_ZTS22ImGuiTypingSelectState", !96, i64 0, !7, i64 24, !11, i64 88, !11, i64 92, !16, i64 96, !26, i64 100}
!96 = !{!"_ZTS24ImGuiTypingSelectRequest", !11, i64 0, !11, i64 4, !6, i64 8, !26, i64 16, !26, i64 17, !7, i64 18}
!97 = !{!"_ZTS20ImGuiPlatformImeData", !26, i64 0, !18, i64 4, !16, i64 12}
!98 = !{!"_ZTS16ImGuiDockContext", !52, i64 0, !99, i64 16, !100, i64 32, !26, i64 48}
!99 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !11, i64 0, !11, i64 4, !6, i64 8}
!100 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !11, i64 0, !11, i64 4, !6, i64 8}
!101 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!102 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !20, i64 0}
!103 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !20, i64 0}
!104 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!105 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!106 = !{!"_ZTS14ImGuiTextIndex", !67, i64 0, !11, i64 16}
!107 = !{!"_ZTS18ImGuiMetricsConfig", !26, i64 0, !26, i64 1, !26, i64 2, !26, i64 3, !26, i64 4, !26, i64 5, !26, i64 6, !26, i64 7, !26, i64 8, !26, i64 9, !11, i64 12, !11, i64 16}
!108 = !{!"_ZTS16ImGuiIDStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !109, i64 16, !26, i64 32, !16, i64 36}
!109 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!110 = !{!"_ZTS19ImGuiDebugAllocInfo", !11, i64 0, !11, i64 4, !15, i64 8, !7, i64 12}
!111 = !{!10, !16, i64 184}
!112 = !{!15, !15, i64 0}
!113 = !{!10, !15, i64 518}
!114 = !{!115, !15, i64 80}
!115 = !{!"_ZTS16ImGuiTableColumn", !11, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !17, i64 32, !11, i64 48, !16, i64 52, !16, i64 56, !16, i64 60, !16, i64 64, !16, i64 68, !16, i64 72, !16, i64 76, !15, i64 80, !15, i64 82, !15, i64 84, !15, i64 86, !15, i64 88, !15, i64 90, !15, i64 92, !15, i64 94, !15, i64 96, !26, i64 98, !26, i64 99, !26, i64 100, !26, i64 101, !26, i64 102, !26, i64 103, !26, i64 104, !26, i64 105, !7, i64 106, !7, i64 107, !7, i64 108, !7, i64 109, !7, i64 109, !7, i64 109, !7, i64 110}
!116 = !{!115, !11, i64 48}
!117 = !{!115, !16, i64 28}
!118 = !{!115, !11, i64 0}
!119 = !{!115, !26, i64 100}
!120 = !{!115, !26, i64 99}
!121 = !{!10, !26, i64 574}
!122 = !{!115, !26, i64 98}
!123 = !{!115, !15, i64 90}
!124 = !{!10, !26, i64 569}
!125 = !{!16, !16, i64 0}
!126 = !{!115, !7, i64 108}
!127 = !{!115, !7, i64 107}
!128 = !{!115, !15, i64 84}
!129 = !{!115, !15, i64 86}
!130 = !{!115, !15, i64 88}
!131 = !{!115, !15, i64 82}
!132 = !{!115, !26, i64 105}
!133 = !{!115, !16, i64 20}
!134 = distinct !{!134, !135}
!135 = !{!"llvm.loop.mustprogress"}
!136 = !{!10, !15, i64 512}
!137 = !{!10, !15, i64 542}
!138 = !{!10, !6, i64 384}
!139 = !{!10, !6, i64 392}
!140 = !{!141, !26, i64 248}
!141 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !62, i64 32, !6, i64 64, !11, i64 72, !18, i64 76, !11, i64 84, !18, i64 88, !18, i64 96, !18, i64 104, !18, i64 112, !18, i64 120, !18, i64 128, !18, i64 136, !16, i64 144, !16, i64 148, !16, i64 152, !16, i64 156, !16, i64 160, !16, i64 164, !16, i64 168, !16, i64 172, !11, i64 176, !11, i64 180, !11, i64 184, !11, i64 188, !18, i64 192, !18, i64 200, !18, i64 208, !18, i64 216, !18, i64 224, !18, i64 232, !26, i64 240, !26, i64 241, !26, i64 242, !26, i64 243, !26, i64 244, !26, i64 245, !26, i64 246, !26, i64 247, !26, i64 248, !26, i64 249, !26, i64 250, !26, i64 251, !26, i64 252, !26, i64 253, !7, i64 254, !7, i64 255, !15, i64 256, !15, i64 258, !15, i64 260, !15, i64 262, !15, i64 264, !11, i64 268, !7, i64 272, !7, i64 273, !26, i64 274, !11, i64 276, !7, i64 280, !7, i64 281, !7, i64 282, !7, i64 283, !11, i64 284, !11, i64 285, !11, i64 286, !11, i64 287, !18, i64 288, !18, i64 296, !94, i64 304, !142, i64 320, !17, i64 552, !17, i64 568, !17, i64 584, !17, i64 600, !17, i64 616, !17, i64 632, !17, i64 648, !145, i64 664, !145, i64 668, !11, i64 672, !11, i64 676, !16, i64 680, !16, i64 684, !52, i64 688, !146, i64 704, !16, i64 720, !16, i64 724, !11, i64 728, !6, i64 736, !147, i64 744, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !6, i64 1000, !6, i64 1008, !7, i64 1016, !7, i64 1024, !7, i64 1056, !11, i64 1072, !11, i64 1076, !11, i64 1080, !26, i64 1084, !26, i64 1085, !26, i64 1085, !26, i64 1085, !26, i64 1085, !15, i64 1086, !154, i64 1088, !6, i64 1112, !6, i64 1120, !11, i64 1128, !11, i64 1132, !17, i64 1136}
!142 = !{!"_ZTS19ImGuiWindowTempData", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !16, i64 56, !16, i64 60, !26, i64 64, !26, i64 65, !143, i64 68, !143, i64 72, !143, i64 76, !18, i64 80, !73, i64 88, !15, i64 92, !15, i64 94, !26, i64 96, !26, i64 97, !26, i64 98, !26, i64 99, !18, i64 100, !144, i64 108, !11, i64 136, !11, i64 140, !50, i64 144, !6, i64 160, !6, i64 168, !11, i64 176, !11, i64 180, !11, i64 184, !16, i64 188, !16, i64 192, !81, i64 200, !81, i64 216}
!143 = !{!"_ZTS6ImVec1", !16, i64 0}
!144 = !{!"_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}
!145 = !{!"_ZTS8ImVec2ih", !15, i64 0, !15, i64 2}
!146 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!147 = !{!"_ZTS10ImDrawList", !148, i64 0, !40, i64 16, !149, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !150, i64 88, !151, i64 104, !47, i64 120, !152, i64 136, !153, i64 168, !16, i64 192}
!148 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!149 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!150 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!151 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!152 = !{!"_ZTS15ImDrawCmdHeader", !46, i64 0, !6, i64 16, !11, i64 24}
!153 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !82, i64 8}
!154 = !{!"_ZTS20ImGuiWindowDockStyle", !7, i64 0}
!155 = !{!10, !15, i64 546}
!156 = !{!10, !15, i64 544}
!157 = !{!10, !15, i64 516}
!158 = !{!10, !16, i64 216}
!159 = !{i64 0, i64 4, !125, i64 4, i64 4, !125, i64 8, i64 4, !125, i64 12, i64 4, !125}
!160 = !{!10, !16, i64 188}
!161 = !{!10, !16, i64 196}
!162 = !{!10, !16, i64 200}
!163 = !{!10, !26, i64 583}
!164 = !{!11, !11, i64 0}
!165 = !{!115, !26, i64 103}
!166 = !{!115, !16, i64 16}
!167 = !{!10, !26, i64 568}
!168 = !{!115, !16, i64 24}
!169 = !{!10, !16, i64 192}
!170 = distinct !{!170, !135}
!171 = !{!141, !26, i64 241}
!172 = !{!37, !16, i64 14956}
!173 = !{!10, !16, i64 204}
!174 = !{!10, !16, i64 208}
!175 = !{!115, !16, i64 4}
!176 = distinct !{!176, !135}
!177 = distinct !{!177, !135}
!178 = !{!10, !15, i64 120}
!179 = !{!21, !11, i64 20}
!180 = !{!21, !11, i64 16}
!181 = !{!10, !15, i64 524}
!182 = !{!10, !15, i64 522}
!183 = !{!10, !16, i64 240}
!184 = !{!10, !16, i64 244}
!185 = !{!10, !16, i64 248}
!186 = !{!10, !16, i64 252}
!187 = !{!21, !16, i64 4}
!188 = !{!37, !11, i64 16804}
!189 = !{!37, !16, i64 3656}
!190 = !{!10, !16, i64 232}
!191 = !{!37, !16, i64 3660}
!192 = !{!10, !16, i64 236}
!193 = !{!10, !15, i64 556}
!194 = !{!17, !16, i64 0}
!195 = !{!10, !6, i64 88}
!196 = !{!10, !15, i64 552}
!197 = !{!115, !7, i64 106}
!198 = !{!115, !16, i64 40}
!199 = !{!115, !16, i64 32}
!200 = !{!115, !16, i64 52}
!201 = !{!115, !16, i64 12}
!202 = !{!115, !16, i64 8}
!203 = !{!17, !16, i64 4}
!204 = !{!115, !16, i64 36}
!205 = !{!115, !16, i64 44}
!206 = !{!26, !26, i64 0}
!207 = !{!115, !16, i64 60}
!208 = !{!115, !16, i64 56}
!209 = !{!115, !26, i64 101}
!210 = !{!115, !26, i64 102}
!211 = !{!10, !26, i64 585}
!212 = !{!115, !26, i64 104}
!213 = !{!17, !16, i64 8}
!214 = distinct !{!214, !135}
!215 = !{!10, !16, i64 272}
!216 = !{!37, !11, i64 16808}
!217 = !{!10, !26, i64 580}
!218 = !{!10, !16, i64 280}
!219 = !{!10, !16, i64 296}
!220 = !{!10, !16, i64 288}
!221 = !{!10, !16, i64 172}
!222 = !{!10, !16, i64 176}
!223 = !{!141, !16, i64 660}
!224 = !{!37, !16, i64 14936}
!225 = !{!141, !16, i64 604}
!226 = !{!141, !16, i64 612}
!227 = !{!21, !16, i64 8}
!228 = !{!10, !26, i64 570}
!229 = !{!10, !15, i64 526}
!230 = !{!10, !26, i64 571}
!231 = !{!10, !15, i64 548}
!232 = !{!10, !15, i64 122}
!233 = !{!10, !26, i64 581}
!234 = !{!37, !26, i64 20256}
!235 = !{!10, !26, i64 572}
!236 = !{!10, !15, i64 554}
!237 = !{!141, !16, i64 168}
!238 = !{!10, !15, i64 550}
!239 = !{!21, !16, i64 12}
!240 = !{!141, !16, i64 172}
!241 = !{!10, !6, i64 416}
!242 = !{!141, !6, i64 736}


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