; LLVM IR from PepcyCh/bisemutum-engine :: bisemutum/thirdparty/ImGuizmo/example (imgui_tables)

; 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.34, %struct.ImSpan.35, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, i16, i16, float, float, float, float, float, i32, i32, [2 x i32], i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, %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.36, %struct.ImGuiTableColumnSortSpecs, %struct.ImVector.37, %struct.ImGuiTableSortSpecs, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%struct.ImSpan = type { ptr, ptr }
%struct.ImSpan.34 = type { ptr, ptr }
%struct.ImSpan.35 = type { ptr, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.22 }
%struct.ImVector.22 = type { i32, i32, ptr }
%struct.ImGuiTableInstanceData = type { float, float }
%struct.ImVector.36 = type { i32, i32, ptr }
%struct.ImGuiTableColumnSortSpecs = type <{ i32, i16, i16, i8, [3 x i8] }>
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImGuiTableSortSpecs = type <{ ptr, i32, i8, [3 x i8] }>
%struct.ImGuiContext = type { i8, i8, %struct.ImGuiIO, %struct.ImVector.0, %struct.ImVector.0, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, ptr, %struct.ImVector.1, %struct.ImVector.1, %struct.ImVector.1, %struct.ImVector.2, %struct.ImGuiStorage, i32, %struct.ImVec2, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, float, i32, i32, i32, i8, i8, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, ptr, i32, float, i32, %struct.ImBitArray, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, %struct.ImVector.4, %struct.ImVector.5, %struct.ImVector.6, %struct.ImVector.7, %struct.ImVector.8, %struct.ImVector.9, %struct.ImVector.10, %struct.ImVector.10, i32, %struct.ImVector.11, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i32, i8, i8, i8, i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.12, [16 x i8], i32, %struct.ImVector.13, ptr, i32, %struct.ImVector.14, %struct.ImPool, %struct.ImVector.16, %struct.ImVector.17, ptr, %struct.ImPool.18, %struct.ImVector.20, %struct.ImVector.21, i32, i32, float, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, float, float, i8, i8, float, float, float, float, i16, i16, %struct.ImVector.22, %struct.ImVector.7, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.24, %struct.ImChunkStream, %struct.ImChunkStream.25, %struct.ImVector.26, i32, i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.22 }
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, float, float, float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, float, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, i32, [652 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], [5 x float], [5 x float], [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.ImVector.0 = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [53 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.1 = type { i32, i32, ptr }
%struct.ImVector.2 = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %struct.ImVector.3 }
%struct.ImVector.3 = type { i32, i32, ptr }
%struct.ImBitArray = type { [5 x i32] }
%struct.ImGuiNextItemData = type <{ i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, [4 x i8], ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.15, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImPool.18 = type { %struct.ImVector.19, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.19 = type { i32, i32, ptr }
%struct.ImVector.20 = type { i32, i32, ptr }
%struct.ImVector.21 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ i32, i32, i32, [4 x i8], %struct.ImVector, %struct.ImVector.22, %struct.ImVector.22, 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.ImFont = type <{ %struct.ImVector.16, float, float, %struct.ImVector, %struct.ImVector.23, ptr, ptr, ptr, i16, i16, i16, i16, i8, [3 x i8], float, float, float, i32, [2 x i8], [2 x i8] }>
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.22 }
%struct.ImChunkStream.25 = type { %struct.ImVector.22 }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.27, i8, float }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImGuiTableColumn = type <{ i32, float, float, float, float, float, float, float, %struct.ImRect, i32, float, float, float, float, float, float, float, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }>
%struct.ImGuiWindow = type <{ ptr, i32, i32, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, [2 x i8], i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector.7, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, float, float, [4 x i8], %struct.ImGuiStorage, %struct.ImVector.28, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i8, [7 x i8] }>
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, %struct.ImVec2, i32, i16, i16, i32, i8, i8, i8, %struct.ImVec2, %struct.ImGuiMenuColumns, i32, i32, %struct.ImVector.1, ptr, ptr, i32, i32, i32, float, float, %struct.ImVector.16, %struct.ImVector.16 }
%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.28 = type { i32, i32, ptr }
%struct.ImDrawList = type <{ %struct.ImVector.29, %struct.ImVector, %struct.ImVector.30, i32, i32, ptr, ptr, ptr, ptr, %struct.ImVector.31, %struct.ImVector.32, %struct.ImVector.33, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, float, [4 x i8] }>
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImVector.32 = type { i32, i32, ptr }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.17 }

@GImGui = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [113 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: mustprogress uwtable
declare dso_local void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(103) 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 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5ImGui17TableUpdateLayoutEP10ImGuiTable(ptr noundef %0) #5 {
  %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 i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca float, align 4
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca %struct.ImRect, align 4
  %36 = alloca i8, align 1
  %37 = alloca i32, align 4
  %38 = alloca i8, align 1
  %39 = alloca float, align 4
  %40 = alloca %struct.ImRect, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca float, align 4
  %45 = alloca i8, align 1
  %46 = alloca float, align 4
  %47 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #10
  %48 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %48, ptr %3, align 8, !tbaa !5
  %49 = load ptr, ptr %2, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.ImGuiTable, ptr %49, i32 0, i32 88
  %51 = load i8, ptr %50, align 1, !tbaa !9, !range !28, !noundef !29
  %52 = trunc i8 %51 to i1
  %53 = zext i1 %52 to i32
  %54 = icmp eq i32 %53, 0
  br i1 %54, label %55, label %56

55:                                               ; preds = %1
  br label %58

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

57:                                               ; No predecessors!
  br label %58

58:                                               ; preds = %57, %55
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #10
  %59 = load ptr, ptr %2, align 8, !tbaa !5
  %60 = getelementptr inbounds %struct.ImGuiTable, ptr %59, i32 0, i32 1
  %61 = load i32, ptr %60, align 4, !tbaa !30
  %62 = and i32 %61, 57344
  store i32 %62, ptr %4, align 4, !tbaa !31
  %63 = load ptr, ptr %2, align 8, !tbaa !5
  %64 = getelementptr inbounds %struct.ImGuiTable, ptr %63, i32 0, i32 96
  store i8 1, ptr %64, align 1, !tbaa !32
  %65 = load ptr, ptr %2, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.ImGuiTable, ptr %65, i32 0, i32 64
  store i8 0, ptr %66, align 1, !tbaa !33
  %67 = load ptr, ptr %2, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.ImGuiTable, ptr %67, i32 0, i32 8
  store i64 0, ptr %68, align 8, !tbaa !34
  %69 = load ptr, ptr %2, align 8, !tbaa !5
  %70 = getelementptr inbounds %struct.ImGuiTable, ptr %69, i32 0, i32 7
  store i64 0, ptr %70, align 8, !tbaa !35
  %71 = load ptr, ptr %2, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.ImGuiTable, ptr %71, i32 0, i32 75
  store i8 -1, ptr %72, align 4, !tbaa !36
  %73 = load ptr, ptr %3, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.ImGuiContext, ptr %73, i32 0, i32 5
  %75 = getelementptr inbounds %struct.ImGuiStyle, ptr %74, i32 0, i32 12
  %76 = getelementptr inbounds %struct.ImVec2, ptr %75, i32 0, i32 0
  %77 = load float, ptr %76, align 4, !tbaa !37
  %78 = fmul float %77, 1.000000e+00
  %79 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %78)
  %80 = load ptr, ptr %2, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.ImGuiTable, ptr %80, i32 0, i32 32
  store float %79, ptr %81, align 4, !tbaa !92
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #10
  store i32 0, ptr %5, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  store i32 0, ptr %6, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  store i32 -1, ptr %7, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #10
  store i8 0, ptr %8, align 1, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #10
  store i8 0, ptr %9, align 1, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  store float 0.000000e+00, ptr %10, align 4, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  store float 0.000000e+00, ptr %11, align 4, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 0, ptr %12, align 4, !tbaa !31
  br label %82

82:                                               ; preds = %370, %58
  %83 = load i32, ptr %12, align 4, !tbaa !31
  %84 = load ptr, ptr %2, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.ImGuiTable, ptr %84, i32 0, i32 14
  %86 = load i32, ptr %85, align 4, !tbaa !95
  %87 = icmp slt i32 %83, %86
  br i1 %87, label %89, label %88

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

89:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %90 = load ptr, ptr %2, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.ImGuiTable, ptr %90, i32 0, i32 5
  %92 = load i32, ptr %12, align 4, !tbaa !31
  %93 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %91, i32 noundef %92)
  %94 = load i8, ptr %93, align 1, !tbaa !96
  %95 = sext i8 %94 to i32
  store i32 %95, ptr %14, align 4, !tbaa !31
  %96 = load i32, ptr %14, align 4, !tbaa !31
  %97 = load i32, ptr %12, align 4, !tbaa !31
  %98 = icmp ne i32 %96, %97
  br i1 %98, label %99, label %102

99:                                               ; preds = %89
  %100 = load ptr, ptr %2, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.ImGuiTable, ptr %100, i32 0, i32 96
  store i8 0, ptr %101, align 1, !tbaa !32
  br label %102

102:                                              ; preds = %99, %89
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %103 = load ptr, ptr %2, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.ImGuiTable, ptr %103, i32 0, i32 4
  %105 = load i32, ptr %14, align 4, !tbaa !31
  %106 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %104, i32 noundef %105)
  store ptr %106, ptr %15, align 8, !tbaa !5
  %107 = load ptr, ptr %2, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.ImGuiTable, ptr %107, i32 0, i32 66
  %109 = load i8, ptr %108, align 1, !tbaa !97
  %110 = sext i8 %109 to i32
  %111 = load i32, ptr %14, align 4, !tbaa !31
  %112 = icmp sle i32 %110, %111
  br i1 %112, label %113, label %122

113:                                              ; preds = %102
  %114 = load ptr, ptr %2, align 8, !tbaa !5
  %115 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef %114, ptr noundef %115, i32 noundef 0)
  %116 = load ptr, ptr %15, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %116, i32 0, i32 17
  store i16 -1, ptr %117, align 4, !tbaa !98
  %118 = load ptr, ptr %15, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %118, i32 0, i32 9
  store i32 0, ptr %119, align 4, !tbaa !100
  %120 = load ptr, ptr %15, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %120, i32 0, i32 7
  store float -1.000000e+00, ptr %121, align 4, !tbaa !101
  br label %122

122:                                              ; preds = %113, %102
  %123 = load ptr, ptr %2, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct.ImGuiTable, ptr %123, i32 0, i32 1
  %125 = load i32, ptr %124, align 4, !tbaa !30
  %126 = and i32 %125, 4
  %127 = icmp ne i32 %126, 0
  br i1 %127, label %128, label %134

128:                                              ; preds = %122
  %129 = load ptr, ptr %15, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %129, i32 0, i32 0
  %131 = load i32, ptr %130, align 4, !tbaa !102
  %132 = and i32 %131, 128
  %133 = icmp ne i32 %132, 0
  br i1 %133, label %134, label %137

134:                                              ; preds = %128, %122
  %135 = load ptr, ptr %15, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %135, i32 0, i32 28
  store i8 1, ptr %136, align 4, !tbaa !103
  br label %137

137:                                              ; preds = %134, %128
  %138 = load ptr, ptr %15, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %138, i32 0, i32 27
  %140 = load i8, ptr %139, align 1, !tbaa !104, !range !28, !noundef !29
  %141 = trunc i8 %140 to i1
  %142 = zext i1 %141 to i32
  %143 = load ptr, ptr %15, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %143, i32 0, i32 28
  %145 = load i8, ptr %144, align 4, !tbaa !103, !range !28, !noundef !29
  %146 = trunc i8 %145 to i1
  %147 = zext i1 %146 to i32
  %148 = icmp ne i32 %142, %147
  br i1 %148, label %149, label %159

149:                                              ; preds = %137
  %150 = load ptr, ptr %15, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %150, i32 0, i32 28
  %152 = load i8, ptr %151, align 4, !tbaa !103, !range !28, !noundef !29
  %153 = trunc i8 %152 to i1
  %154 = load ptr, ptr %15, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %154, i32 0, i32 27
  %156 = zext i1 %153 to i8
  store i8 %156, ptr %155, align 1, !tbaa !104
  %157 = load ptr, ptr %2, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.ImGuiTable, ptr %157, i32 0, i32 95
  store i8 1, ptr %158, align 8, !tbaa !105
  br label %159

159:                                              ; preds = %149, %137
  %160 = load ptr, ptr %15, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %160, i32 0, i32 27
  %162 = load i8, ptr %161, align 1, !tbaa !104, !range !28, !noundef !29
  %163 = trunc i8 %162 to i1
  br i1 %163, label %164, label %170

164:                                              ; preds = %159
  %165 = load ptr, ptr %15, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %165, i32 0, i32 0
  %167 = load i32, ptr %166, align 4, !tbaa !102
  %168 = and i32 %167, 1
  %169 = icmp eq i32 %168, 0
  br label %170

170:                                              ; preds = %164, %159
  %171 = phi i1 [ false, %159 ], [ %169, %164 ]
  %172 = load ptr, ptr %15, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %172, i32 0, i32 26
  %174 = zext i1 %171 to i8
  store i8 %174, ptr %173, align 2, !tbaa !106
  %175 = load ptr, ptr %15, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %175, i32 0, i32 22
  %177 = load i8, ptr %176, align 2, !tbaa !107
  %178 = sext i8 %177 to i32
  %179 = icmp ne i32 %178, -1
  br i1 %179, label %180, label %188

180:                                              ; preds = %170
  %181 = load ptr, ptr %15, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %181, i32 0, i32 26
  %183 = load i8, ptr %182, align 2, !tbaa !106, !range !28, !noundef !29
  %184 = trunc i8 %183 to i1
  br i1 %184, label %188, label %185

185:                                              ; preds = %180
  %186 = load ptr, ptr %2, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.ImGuiTable, ptr %186, i32 0, i32 91
  store i8 1, ptr %187, align 4, !tbaa !108
  br label %188

188:                                              ; preds = %185, %180, %170
  %189 = load ptr, ptr %15, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %189, i32 0, i32 22
  %191 = load i8, ptr %190, align 2, !tbaa !107
  %192 = sext i8 %191 to i32
  %193 = icmp sgt i32 %192, 0
  br i1 %193, label %194, label %203

194:                                              ; preds = %188
  %195 = load ptr, ptr %2, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.ImGuiTable, ptr %195, i32 0, i32 1
  %197 = load i32, ptr %196, align 4, !tbaa !30
  %198 = and i32 %197, 67108864
  %199 = icmp ne i32 %198, 0
  br i1 %199, label %203, label %200

200:                                              ; preds = %194
  %201 = load ptr, ptr %2, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.ImGuiTable, ptr %201, i32 0, i32 91
  store i8 1, ptr %202, align 4, !tbaa !108
  br label %203

203:                                              ; preds = %200, %194, %188
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #10
  %204 = load ptr, ptr %15, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %204, i32 0, i32 0
  %206 = load i32, ptr %205, align 4, !tbaa !102
  %207 = and i32 %206, 16
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %209, label %214

209:                                              ; preds = %203
  %210 = load ptr, ptr %15, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %210, i32 0, i32 4
  %212 = load float, ptr %211, align 4, !tbaa !109
  %213 = fcmp olt float %212, 0.000000e+00
  br label %219

214:                                              ; preds = %203
  %215 = load ptr, ptr %15, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %215, i32 0, i32 6
  %217 = load float, ptr %216, align 4, !tbaa !110
  %218 = fcmp olt float %217, 0.000000e+00
  br label %219

219:                                              ; preds = %214, %209
  %220 = phi i1 [ %213, %209 ], [ %218, %214 ]
  %221 = zext i1 %220 to i8
  store i8 %221, ptr %16, align 1, !tbaa !93
  %222 = load i8, ptr %16, align 1, !tbaa !93, !range !28, !noundef !29
  %223 = trunc i8 %222 to i1
  br i1 %223, label %224, label %229

224:                                              ; preds = %219
  %225 = load ptr, ptr %15, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %225, i32 0, i32 36
  store i8 7, ptr %226, align 4, !tbaa !111
  %227 = load ptr, ptr %15, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %227, i32 0, i32 35
  store i8 7, ptr %228, align 1, !tbaa !112
  br label %229

229:                                              ; preds = %224, %219
  %230 = load ptr, ptr %15, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %230, i32 0, i32 26
  %232 = load i8, ptr %231, align 2, !tbaa !106, !range !28, !noundef !29
  %233 = trunc i8 %232 to i1
  br i1 %233, label %237, label %234

234:                                              ; preds = %229
  %235 = load ptr, ptr %15, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %235, i32 0, i32 19
  store i8 -1, ptr %236, align 1, !tbaa !113
  store i32 4, ptr %13, align 4
  br label %367

237:                                              ; preds = %229
  %238 = load i32, ptr %7, align 4, !tbaa !31
  %239 = trunc i32 %238 to i8
  %240 = load ptr, ptr %15, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %240, i32 0, i32 20
  store i8 %239, ptr %241, align 4, !tbaa !114
  %242 = load ptr, ptr %15, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %242, i32 0, i32 21
  store i8 -1, ptr %243, align 1, !tbaa !115
  %244 = load i32, ptr %7, align 4, !tbaa !31
  %245 = icmp ne i32 %244, -1
  br i1 %245, label %246, label %254

246:                                              ; preds = %237
  %247 = load i32, ptr %14, align 4, !tbaa !31
  %248 = trunc i32 %247 to i8
  %249 = load ptr, ptr %2, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.ImGuiTable, ptr %249, i32 0, i32 4
  %251 = load i32, ptr %7, align 4, !tbaa !31
  %252 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %250, i32 noundef %251)
  %253 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %252, i32 0, i32 21
  store i8 %248, ptr %253, align 1, !tbaa !115
  br label %259

254:                                              ; preds = %237
  %255 = load i32, ptr %14, align 4, !tbaa !31
  %256 = trunc i32 %255 to i8
  %257 = load ptr, ptr %2, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.ImGuiTable, ptr %257, i32 0, i32 75
  store i8 %256, ptr %258, align 4, !tbaa !36
  br label %259

259:                                              ; preds = %254, %246
  %260 = load ptr, ptr %2, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.ImGuiTable, ptr %260, i32 0, i32 64
  %262 = load i8, ptr %261, align 1, !tbaa !33
  %263 = add i8 %262, 1
  store i8 %263, ptr %261, align 1, !tbaa !33
  %264 = load ptr, ptr %15, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %264, i32 0, i32 19
  store i8 %262, ptr %265, align 1, !tbaa !113
  %266 = load i32, ptr %14, align 4, !tbaa !31
  %267 = zext i32 %266 to i64
  %268 = shl i64 1, %267
  %269 = load ptr, ptr %2, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.ImGuiTable, ptr %269, i32 0, i32 8
  %271 = load i64, ptr %270, align 8, !tbaa !34
  %272 = or i64 %271, %268
  store i64 %272, ptr %270, align 8, !tbaa !34
  %273 = load ptr, ptr %15, align 8, !tbaa !5
  %274 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %273, i32 0, i32 18
  %275 = load i8, ptr %274, align 2, !tbaa !116
  %276 = sext i8 %275 to i32
  %277 = zext i32 %276 to i64
  %278 = shl i64 1, %277
  %279 = load ptr, ptr %2, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.ImGuiTable, ptr %279, i32 0, i32 7
  %281 = load i64, ptr %280, align 8, !tbaa !35
  %282 = or i64 %281, %278
  store i64 %282, ptr %280, align 8, !tbaa !35
  %283 = load i32, ptr %14, align 4, !tbaa !31
  store i32 %283, ptr %7, align 4, !tbaa !31
  %284 = load ptr, ptr %15, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %284, i32 0, i32 19
  %286 = load i8, ptr %285, align 1, !tbaa !113
  %287 = sext i8 %286 to i32
  %288 = load ptr, ptr %15, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %288, i32 0, i32 18
  %290 = load i8, ptr %289, align 2, !tbaa !116
  %291 = sext i8 %290 to i32
  %292 = icmp sle i32 %287, %291
  br i1 %292, label %293, label %294

293:                                              ; preds = %259
  br label %296

294:                                              ; preds = %259
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 793, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

295:                                              ; No predecessors!
  br label %296

296:                                              ; preds = %295, %293
  %297 = load ptr, ptr %15, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %297, i32 0, i32 33
  %299 = load i8, ptr %298, align 1, !tbaa !117, !range !28, !noundef !29
  %300 = trunc i8 %299 to i1
  br i1 %300, label %307, label %301

301:                                              ; preds = %296
  %302 = load ptr, ptr %2, align 8, !tbaa !5
  %303 = load ptr, ptr %15, align 8, !tbaa !5
  %304 = call noundef float @_ZN5ImGui23TableGetColumnWidthAutoEP10ImGuiTableP16ImGuiTableColumn(ptr noundef %302, ptr noundef %303)
  %305 = load ptr, ptr %15, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %305, i32 0, i32 5
  store float %304, ptr %306, align 4, !tbaa !118
  br label %307

307:                                              ; preds = %301, %296
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #10
  %308 = load ptr, ptr %15, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %308, i32 0, i32 0
  %310 = load i32, ptr %309, align 4, !tbaa !102
  %311 = and i32 %310, 32
  %312 = icmp eq i32 %311, 0
  %313 = zext i1 %312 to i8
  store i8 %313, ptr %17, align 1, !tbaa !93
  %314 = load i8, ptr %17, align 1, !tbaa !93, !range !28, !noundef !29
  %315 = trunc i8 %314 to i1
  br i1 %315, label %316, label %317

316:                                              ; preds = %307
  store i8 1, ptr %9, align 1, !tbaa !93
  br label %317

317:                                              ; preds = %316, %307
  %318 = load ptr, ptr %15, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %318, i32 0, i32 0
  %320 = load i32, ptr %319, align 4, !tbaa !102
  %321 = and i32 %320, 16
  %322 = icmp ne i32 %321, 0
  br i1 %322, label %323, label %337

323:                                              ; preds = %317
  %324 = load ptr, ptr %15, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %324, i32 0, i32 7
  %326 = load float, ptr %325, align 4, !tbaa !101
  %327 = fcmp ogt float %326, 0.000000e+00
  br i1 %327, label %328, label %337

328:                                              ; preds = %323
  %329 = load i8, ptr %17, align 1, !tbaa !93, !range !28, !noundef !29
  %330 = trunc i8 %329 to i1
  br i1 %330, label %337, label %331

331:                                              ; preds = %328
  %332 = load ptr, ptr %15, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %332, i32 0, i32 7
  %334 = load float, ptr %333, align 4, !tbaa !101
  %335 = load ptr, ptr %15, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %335, i32 0, i32 5
  store float %334, ptr %336, align 4, !tbaa !118
  br label %337

337:                                              ; preds = %331, %328, %323, %317
  %338 = load ptr, ptr %15, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %338, i32 0, i32 35
  %340 = load i8, ptr %339, align 1, !tbaa !112
  %341 = zext i8 %340 to i32
  %342 = icmp ne i32 %341, 0
  br i1 %342, label %343, label %344

343:                                              ; preds = %337
  store i8 1, ptr %8, align 1, !tbaa !93
  br label %344

344:                                              ; preds = %343, %337
  %345 = load ptr, ptr %15, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %345, i32 0, i32 0
  %347 = load i32, ptr %346, align 4, !tbaa !102
  %348 = and i32 %347, 8
  %349 = icmp ne i32 %348, 0
  br i1 %349, label %350, label %358

350:                                              ; preds = %344
  %351 = load ptr, ptr %15, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %351, i32 0, i32 5
  %353 = load float, ptr %352, align 4, !tbaa !118
  %354 = load float, ptr %10, align 4, !tbaa !94
  %355 = fadd float %354, %353
  store float %355, ptr %10, align 4, !tbaa !94
  %356 = load i32, ptr %6, align 4, !tbaa !31
  %357 = add nsw i32 %356, 1
  store i32 %357, ptr %6, align 4, !tbaa !31
  br label %366

358:                                              ; preds = %344
  %359 = load float, ptr %11, align 4, !tbaa !94
  %360 = load ptr, ptr %15, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %360, i32 0, i32 5
  %362 = load float, ptr %361, align 4, !tbaa !118
  %363 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %359, float noundef %362)
  store float %363, ptr %11, align 4, !tbaa !94
  %364 = load i32, ptr %5, align 4, !tbaa !31
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr %5, align 4, !tbaa !31
  br label %366

366:                                              ; preds = %358, %350
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #10
  store i32 0, ptr %13, align 4
  br label %367

367:                                              ; preds = %366, %234
  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
  %368 = load i32, ptr %13, align 4
  switch i32 %368, label %1608 [
    i32 0, label %369
    i32 4, label %370
  ]

369:                                              ; preds = %367
  br label %370

370:                                              ; preds = %369, %367
  %371 = load i32, ptr %12, align 4, !tbaa !31
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr %12, align 4, !tbaa !31
  br label %82, !llvm.loop !119

373:                                              ; preds = %88
  %374 = load ptr, ptr %2, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.ImGuiTable, ptr %374, i32 0, i32 1
  %376 = load i32, ptr %375, align 4, !tbaa !30
  %377 = and i32 %376, 8
  %378 = icmp ne i32 %377, 0
  br i1 %378, label %379, label %394

379:                                              ; preds = %373
  %380 = load ptr, ptr %2, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.ImGuiTable, ptr %380, i32 0, i32 63
  %382 = load i8, ptr %381, align 8, !tbaa !121
  %383 = sext i8 %382 to i32
  %384 = icmp eq i32 %383, 0
  br i1 %384, label %385, label %394

385:                                              ; preds = %379
  %386 = load ptr, ptr %2, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.ImGuiTable, ptr %386, i32 0, i32 1
  %388 = load i32, ptr %387, align 4, !tbaa !30
  %389 = and i32 %388, 134217728
  %390 = icmp ne i32 %389, 0
  br i1 %390, label %394, label %391

391:                                              ; preds = %385
  %392 = load ptr, ptr %2, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.ImGuiTable, ptr %392, i32 0, i32 91
  store i8 1, ptr %393, align 4, !tbaa !108
  br label %394

394:                                              ; preds = %391, %385, %379, %373
  %395 = load i32, ptr %7, align 4, !tbaa !31
  %396 = trunc i32 %395 to i8
  %397 = load ptr, ptr %2, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.ImGuiTable, ptr %397, i32 0, i32 76
  store i8 %396, ptr %398, align 1, !tbaa !122
  %399 = load ptr, ptr %2, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImGuiTable, ptr %399, i32 0, i32 75
  %401 = load i8, ptr %400, align 4, !tbaa !36
  %402 = sext i8 %401 to i32
  %403 = icmp sge i32 %402, 0
  br i1 %403, label %404, label %410

404:                                              ; preds = %394
  %405 = load ptr, ptr %2, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.ImGuiTable, ptr %405, i32 0, i32 76
  %407 = load i8, ptr %406, align 1, !tbaa !122
  %408 = sext i8 %407 to i32
  %409 = icmp sge i32 %408, 0
  br label %410

410:                                              ; preds = %404, %394
  %411 = phi i1 [ false, %394 ], [ %409, %404 ]
  br i1 %411, label %412, label %413

412:                                              ; preds = %410
  br label %415

413:                                              ; preds = %410
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 823, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

414:                                              ; No predecessors!
  br label %415

415:                                              ; preds = %414, %412
  %416 = load i8, ptr %8, align 1, !tbaa !93, !range !28, !noundef !29
  %417 = trunc i8 %416 to i1
  br i1 %417, label %418, label %431

418:                                              ; preds = %415
  %419 = load ptr, ptr %2, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.ImGuiTable, ptr %419, i32 0, i32 54
  %421 = load ptr, ptr %420, align 8, !tbaa !123
  %422 = load ptr, ptr %2, align 8, !tbaa !5
  %423 = getelementptr inbounds %struct.ImGuiTable, ptr %422, i32 0, i32 55
  %424 = load ptr, ptr %423, align 8, !tbaa !124
  %425 = icmp ne ptr %421, %424
  br i1 %425, label %426, label %431

426:                                              ; preds = %418
  %427 = load ptr, ptr %2, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.ImGuiTable, ptr %427, i32 0, i32 55
  %429 = load ptr, ptr %428, align 8, !tbaa !124
  %430 = getelementptr inbounds %struct.ImGuiWindow, ptr %429, i32 0, i32 29
  store i8 0, ptr %430, align 1, !tbaa !125
  br label %431

431:                                              ; preds = %426, %418, %415
  %432 = load i8, ptr %8, align 1, !tbaa !93, !range !28, !noundef !29
  %433 = trunc i8 %432 to i1
  br i1 %433, label %434, label %437

434:                                              ; preds = %431
  %435 = load ptr, ptr %2, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.ImGuiTable, ptr %435, i32 0, i32 95
  store i8 1, ptr %436, align 8, !tbaa !105
  br label %437

437:                                              ; preds = %434, %431
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  store float 0.000000e+00, ptr %18, align 4, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  store float 0.000000e+00, ptr %19, align 4, !tbaa !94
  %438 = load ptr, ptr %2, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.ImGuiTable, ptr %438, i32 0, i32 78
  store i8 -1, ptr %439, align 1, !tbaa !140
  %440 = load ptr, ptr %2, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.ImGuiTable, ptr %440, i32 0, i32 77
  store i8 -1, ptr %441, align 2, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !31
  br label %442

442:                                              ; preds = %670, %437
  %443 = load i32, ptr %20, align 4, !tbaa !31
  %444 = load ptr, ptr %2, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.ImGuiTable, ptr %444, i32 0, i32 14
  %446 = load i32, ptr %445, align 4, !tbaa !95
  %447 = icmp slt i32 %443, %446
  br i1 %447, label %449, label %448

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

449:                                              ; preds = %442
  %450 = load ptr, ptr %2, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.ImGuiTable, ptr %450, i32 0, i32 8
  %452 = load i64, ptr %451, align 8, !tbaa !34
  %453 = load i32, ptr %20, align 4, !tbaa !31
  %454 = zext i32 %453 to i64
  %455 = shl i64 1, %454
  %456 = and i64 %452, %455
  %457 = icmp ne i64 %456, 0
  br i1 %457, label %459, label %458

458:                                              ; preds = %449
  br label %670

459:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %460 = load ptr, ptr %2, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.ImGuiTable, ptr %460, i32 0, i32 4
  %462 = load i32, ptr %20, align 4, !tbaa !31
  %463 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %461, i32 noundef %462)
  store ptr %463, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #10
  %464 = load ptr, ptr %21, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %464, i32 0, i32 0
  %466 = load i32, ptr %465, align 4, !tbaa !102
  %467 = and i32 %466, 32
  %468 = icmp eq i32 %467, 0
  %469 = zext i1 %468 to i8
  store i8 %469, ptr %22, align 1, !tbaa !93
  %470 = load ptr, ptr %21, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %470, i32 0, i32 0
  %472 = load i32, ptr %471, align 4, !tbaa !102
  %473 = and i32 %472, 16
  %474 = icmp ne i32 %473, 0
  br i1 %474, label %475, label %558

475:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %476 = load ptr, ptr %21, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %476, i32 0, i32 5
  %478 = load float, ptr %477, align 4, !tbaa !118
  store float %478, ptr %23, align 4, !tbaa !94
  %479 = load i32, ptr %4, align 4, !tbaa !31
  %480 = icmp eq i32 %479, 16384
  br i1 %480, label %481, label %492

481:                                              ; preds = %475
  %482 = load ptr, ptr %21, align 8, !tbaa !5
  %483 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %482, i32 0, i32 35
  %484 = load i8, ptr %483, align 1, !tbaa !112
  %485 = zext i8 %484 to i32
  %486 = icmp ne i32 %485, 0
  br i1 %486, label %490, label %487

487:                                              ; preds = %481
  %488 = load i8, ptr %22, align 1, !tbaa !93, !range !28, !noundef !29
  %489 = trunc i8 %488 to i1
  br i1 %489, label %492, label %490

490:                                              ; preds = %487, %481
  %491 = load float, ptr %11, align 4, !tbaa !94
  store float %491, ptr %23, align 4, !tbaa !94
  br label %492

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

498:                                              ; preds = %492
  %499 = load float, ptr %23, align 4, !tbaa !94
  %500 = load ptr, ptr %21, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %500, i32 0, i32 4
  store float %499, ptr %501, align 4, !tbaa !109
  br label %525

502:                                              ; preds = %492
  %503 = load ptr, ptr %21, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %503, i32 0, i32 0
  %505 = load i32, ptr %504, align 4, !tbaa !102
  %506 = and i32 %505, 16
  %507 = icmp ne i32 %506, 0
  br i1 %507, label %508, label %524

508:                                              ; preds = %502
  %509 = load i8, ptr %22, align 1, !tbaa !93, !range !28, !noundef !29
  %510 = trunc i8 %509 to i1
  br i1 %510, label %524, label %511

511:                                              ; preds = %508
  %512 = load ptr, ptr %2, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.ImGuiTable, ptr %512, i32 0, i32 10
  %514 = load i64, ptr %513, align 8, !tbaa !142
  %515 = load i32, ptr %20, align 4, !tbaa !31
  %516 = zext i32 %515 to i64
  %517 = shl i64 1, %516
  %518 = and i64 %514, %517
  %519 = icmp ne i64 %518, 0
  br i1 %519, label %520, label %524

520:                                              ; preds = %511
  %521 = load float, ptr %23, align 4, !tbaa !94
  %522 = load ptr, ptr %21, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %522, i32 0, i32 4
  store float %521, ptr %523, align 4, !tbaa !109
  br label %524

524:                                              ; preds = %520, %511, %508, %502
  br label %525

525:                                              ; preds = %524, %498
  %526 = load ptr, ptr %21, align 8, !tbaa !5
  %527 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %526, i32 0, i32 35
  %528 = load i8, ptr %527, align 1, !tbaa !112
  %529 = zext i8 %528 to i32
  %530 = icmp sgt i32 %529, 1
  br i1 %530, label %531, label %552

531:                                              ; preds = %525
  %532 = load ptr, ptr %2, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.ImGuiTable, ptr %532, i32 0, i32 90
  %534 = load i8, ptr %533, align 1, !tbaa !143, !range !28, !noundef !29
  %535 = trunc i8 %534 to i1
  br i1 %535, label %536, label %552

536:                                              ; preds = %531
  %537 = load ptr, ptr %21, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %537, i32 0, i32 33
  %539 = load i8, ptr %538, align 1, !tbaa !117, !range !28, !noundef !29
  %540 = trunc i8 %539 to i1
  br i1 %540, label %552, label %541

541:                                              ; preds = %536
  %542 = load ptr, ptr %21, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %542, i32 0, i32 4
  %544 = load float, ptr %543, align 4, !tbaa !109
  %545 = load ptr, ptr %2, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.ImGuiTable, ptr %545, i32 0, i32 32
  %547 = load float, ptr %546, align 4, !tbaa !92
  %548 = fmul float %547, 4.000000e+00
  %549 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %544, float noundef %548)
  %550 = load ptr, ptr %21, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %550, i32 0, i32 4
  store float %549, ptr %551, align 4, !tbaa !109
  br label %552

552:                                              ; preds = %541, %536, %531, %525
  %553 = load ptr, ptr %21, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %553, i32 0, i32 4
  %555 = load float, ptr %554, align 4, !tbaa !109
  %556 = load float, ptr %18, align 4, !tbaa !94
  %557 = fadd float %556, %555
  store float %557, ptr %18, align 4, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %662

558:                                              ; preds = %459
  %559 = load ptr, ptr %21, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %559, i32 0, i32 35
  %561 = load i8, ptr %560, align 1, !tbaa !112
  %562 = zext i8 %561 to i32
  %563 = icmp ne i32 %562, 0
  br i1 %563, label %572, label %564

564:                                              ; preds = %558
  %565 = load ptr, ptr %21, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %565, i32 0, i32 6
  %567 = load float, ptr %566, align 4, !tbaa !110
  %568 = fcmp olt float %567, 0.000000e+00
  br i1 %568, label %572, label %569

569:                                              ; preds = %564
  %570 = load i8, ptr %22, align 1, !tbaa !93, !range !28, !noundef !29
  %571 = trunc i8 %570 to i1
  br i1 %571, label %602, label %572

572:                                              ; preds = %569, %564, %558
  %573 = load ptr, ptr %21, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %573, i32 0, i32 7
  %575 = load float, ptr %574, align 4, !tbaa !101
  %576 = fcmp ogt float %575, 0.000000e+00
  br i1 %576, label %577, label %583

577:                                              ; preds = %572
  %578 = load ptr, ptr %21, align 8, !tbaa !5
  %579 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %578, i32 0, i32 7
  %580 = load float, ptr %579, align 4, !tbaa !101
  %581 = load ptr, ptr %21, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %581, i32 0, i32 6
  store float %580, ptr %582, align 4, !tbaa !110
  br label %601

583:                                              ; preds = %572
  %584 = load i32, ptr %4, align 4, !tbaa !31
  %585 = icmp eq i32 %584, 24576
  br i1 %585, label %586, label %597

586:                                              ; preds = %583
  %587 = load ptr, ptr %21, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %587, i32 0, i32 5
  %589 = load float, ptr %588, align 4, !tbaa !118
  %590 = load float, ptr %10, align 4, !tbaa !94
  %591 = fdiv float %589, %590
  %592 = load i32, ptr %6, align 4, !tbaa !31
  %593 = sitofp i32 %592 to float
  %594 = fmul float %591, %593
  %595 = load ptr, ptr %21, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %595, i32 0, i32 6
  store float %594, ptr %596, align 4, !tbaa !110
  br label %600

597:                                              ; preds = %583
  %598 = load ptr, ptr %21, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %598, i32 0, i32 6
  store float 1.000000e+00, ptr %599, align 4, !tbaa !110
  br label %600

600:                                              ; preds = %597, %586
  br label %601

601:                                              ; preds = %600, %577
  br label %602

602:                                              ; preds = %601, %569
  %603 = load ptr, ptr %21, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %603, i32 0, i32 6
  %605 = load float, ptr %604, align 4, !tbaa !110
  %606 = load float, ptr %19, align 4, !tbaa !94
  %607 = fadd float %606, %605
  store float %607, ptr %19, align 4, !tbaa !94
  %608 = load ptr, ptr %2, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.ImGuiTable, ptr %608, i32 0, i32 77
  %610 = load i8, ptr %609, align 2, !tbaa !141
  %611 = sext i8 %610 to i32
  %612 = icmp eq i32 %611, -1
  br i1 %612, label %629, label %613

613:                                              ; preds = %602
  %614 = load ptr, ptr %2, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.ImGuiTable, ptr %614, i32 0, i32 4
  %616 = load ptr, ptr %2, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ImGuiTable, ptr %616, i32 0, i32 77
  %618 = load i8, ptr %617, align 2, !tbaa !141
  %619 = sext i8 %618 to i32
  %620 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %615, i32 noundef %619)
  %621 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %620, i32 0, i32 18
  %622 = load i8, ptr %621, align 2, !tbaa !116
  %623 = sext i8 %622 to i32
  %624 = load ptr, ptr %21, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %624, i32 0, i32 18
  %626 = load i8, ptr %625, align 2, !tbaa !116
  %627 = sext i8 %626 to i32
  %628 = icmp sgt i32 %623, %627
  br i1 %628, label %629, label %634

629:                                              ; preds = %613, %602
  %630 = load i32, ptr %20, align 4, !tbaa !31
  %631 = trunc i32 %630 to i8
  %632 = load ptr, ptr %2, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.ImGuiTable, ptr %632, i32 0, i32 77
  store i8 %631, ptr %633, align 2, !tbaa !141
  br label %634

634:                                              ; preds = %629, %613
  %635 = load ptr, ptr %2, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.ImGuiTable, ptr %635, i32 0, i32 78
  %637 = load i8, ptr %636, align 1, !tbaa !140
  %638 = sext i8 %637 to i32
  %639 = icmp eq i32 %638, -1
  br i1 %639, label %656, label %640

640:                                              ; preds = %634
  %641 = load ptr, ptr %2, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.ImGuiTable, ptr %641, i32 0, i32 4
  %643 = load ptr, ptr %2, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.ImGuiTable, ptr %643, i32 0, i32 78
  %645 = load i8, ptr %644, align 1, !tbaa !140
  %646 = sext i8 %645 to i32
  %647 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %642, i32 noundef %646)
  %648 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %647, i32 0, i32 18
  %649 = load i8, ptr %648, align 2, !tbaa !116
  %650 = sext i8 %649 to i32
  %651 = load ptr, ptr %21, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %651, i32 0, i32 18
  %653 = load i8, ptr %652, align 2, !tbaa !116
  %654 = sext i8 %653 to i32
  %655 = icmp slt i32 %650, %654
  br i1 %655, label %656, label %661

656:                                              ; preds = %640, %634
  %657 = load i32, ptr %20, align 4, !tbaa !31
  %658 = trunc i32 %657 to i8
  %659 = load ptr, ptr %2, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.ImGuiTable, ptr %659, i32 0, i32 78
  store i8 %658, ptr %660, align 1, !tbaa !140
  br label %661

661:                                              ; preds = %656, %640
  br label %662

662:                                              ; preds = %661, %552
  %663 = load ptr, ptr %21, align 8, !tbaa !5
  %664 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %663, i32 0, i32 33
  store i8 0, ptr %664, align 1, !tbaa !117
  %665 = load ptr, ptr %2, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.ImGuiTable, ptr %665, i32 0, i32 34
  %667 = load float, ptr %666, align 4, !tbaa !144
  %668 = load float, ptr %18, align 4, !tbaa !94
  %669 = call float @llvm.fmuladd.f32(float %667, float 2.000000e+00, float %668)
  store float %669, ptr %18, align 4, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %670

670:                                              ; preds = %662, %458
  %671 = load i32, ptr %20, align 4, !tbaa !31
  %672 = add nsw i32 %671, 1
  store i32 %672, ptr %20, align 4, !tbaa !31
  br label %442, !llvm.loop !145

673:                                              ; preds = %448
  %674 = load i32, ptr %5, align 4, !tbaa !31
  %675 = trunc i32 %674 to i8
  %676 = load ptr, ptr %2, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.ImGuiTable, ptr %676, i32 0, i32 65
  store i8 %675, ptr %677, align 2, !tbaa !146
  %678 = load float, ptr %19, align 4, !tbaa !94
  %679 = load ptr, ptr %2, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.ImGuiTable, ptr %679, i32 0, i32 41
  store float %678, ptr %680, align 8, !tbaa !147
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #10
  %681 = load ptr, ptr %2, align 8, !tbaa !5
  %682 = getelementptr inbounds %struct.ImGuiTable, ptr %681, i32 0, i32 47
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 8 %682, i64 16, i1 false), !tbaa.struct !148
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %683 = load ptr, ptr %2, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.ImGuiTable, ptr %683, i32 0, i32 33
  %685 = load float, ptr %684, align 8, !tbaa !149
  %686 = load ptr, ptr %2, align 8, !tbaa !5
  %687 = getelementptr inbounds %struct.ImGuiTable, ptr %686, i32 0, i32 36
  %688 = load float, ptr %687, align 4, !tbaa !150
  %689 = load ptr, ptr %2, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.ImGuiTable, ptr %689, i32 0, i32 37
  %691 = load float, ptr %690, align 8, !tbaa !151
  %692 = fadd float %688, %691
  %693 = load ptr, ptr %2, align 8, !tbaa !5
  %694 = getelementptr inbounds %struct.ImGuiTable, ptr %693, i32 0, i32 64
  %695 = load i8, ptr %694, align 1, !tbaa !33
  %696 = sext i8 %695 to i32
  %697 = sub nsw i32 %696, 1
  %698 = sitofp i32 %697 to float
  %699 = fmul float %692, %698
  %700 = call float @llvm.fmuladd.f32(float %685, float 2.000000e+00, float %699)
  store float %700, ptr %25, align 4, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %701 = load ptr, ptr %2, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.ImGuiTable, ptr %701, i32 0, i32 1
  %703 = load i32, ptr %702, align 4, !tbaa !30
  %704 = and i32 %703, 16777216
  %705 = icmp ne i32 %704, 0
  br i1 %705, label %706, label %715

706:                                              ; preds = %673
  %707 = load ptr, ptr %2, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.ImGuiTable, ptr %707, i32 0, i32 38
  %709 = load float, ptr %708, align 4, !tbaa !152
  %710 = fcmp oeq float %709, 0.000000e+00
  br i1 %710, label %711, label %715

711:                                              ; preds = %706
  %712 = load ptr, ptr %2, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.ImGuiTable, ptr %712, i32 0, i32 48
  %714 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %713)
  br label %717

715:                                              ; preds = %706, %673
  %716 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %24)
  br label %717

717:                                              ; preds = %715, %711
  %718 = phi float [ %714, %711 ], [ %716, %715 ]
  store float %718, ptr %26, align 4, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %719 = load float, ptr %26, align 4, !tbaa !94
  %720 = load float, ptr %25, align 4, !tbaa !94
  %721 = fsub float %719, %720
  %722 = load float, ptr %18, align 4, !tbaa !94
  %723 = fsub float %721, %722
  store float %723, ptr %27, align 4, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %724 = load float, ptr %27, align 4, !tbaa !94
  store float %724, ptr %28, align 4, !tbaa !94
  %725 = load float, ptr %25, align 4, !tbaa !94
  %726 = load ptr, ptr %2, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.ImGuiTable, ptr %726, i32 0, i32 34
  %728 = load float, ptr %727, align 4, !tbaa !144
  %729 = fmul float %728, 2.000000e+00
  %730 = load ptr, ptr %2, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.ImGuiTable, ptr %730, i32 0, i32 64
  %732 = load i8, ptr %731, align 1, !tbaa !33
  %733 = sext i8 %732 to i32
  %734 = sitofp i32 %733 to float
  %735 = call float @llvm.fmuladd.f32(float %729, float %734, float %725)
  %736 = load ptr, ptr %2, align 8, !tbaa !5
  %737 = getelementptr inbounds %struct.ImGuiTable, ptr %736, i32 0, i32 39
  store float %735, ptr %737, align 8, !tbaa !153
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  store i32 0, ptr %29, align 4, !tbaa !31
  br label %738

738:                                              ; preds = %823, %717
  %739 = load i32, ptr %29, align 4, !tbaa !31
  %740 = load ptr, ptr %2, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.ImGuiTable, ptr %740, i32 0, i32 14
  %742 = load i32, ptr %741, align 4, !tbaa !95
  %743 = icmp slt i32 %739, %742
  br i1 %743, label %745, label %744

744:                                              ; preds = %738
  store i32 8, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %826

745:                                              ; preds = %738
  %746 = load ptr, ptr %2, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.ImGuiTable, ptr %746, i32 0, i32 8
  %748 = load i64, ptr %747, align 8, !tbaa !34
  %749 = load i32, ptr %29, align 4, !tbaa !31
  %750 = zext i32 %749 to i64
  %751 = shl i64 1, %750
  %752 = and i64 %748, %751
  %753 = icmp ne i64 %752, 0
  br i1 %753, label %755, label %754

754:                                              ; preds = %745
  br label %823

755:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %756 = load ptr, ptr %2, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.ImGuiTable, ptr %756, i32 0, i32 4
  %758 = load i32, ptr %29, align 4, !tbaa !31
  %759 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %757, i32 noundef %758)
  store ptr %759, ptr %30, align 8, !tbaa !5
  %760 = load ptr, ptr %30, align 8, !tbaa !5
  %761 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %760, i32 0, i32 0
  %762 = load i32, ptr %761, align 4, !tbaa !102
  %763 = and i32 %762, 8
  %764 = icmp ne i32 %763, 0
  br i1 %764, label %765, label %788

765:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %766 = load ptr, ptr %30, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %766, i32 0, i32 6
  %768 = load float, ptr %767, align 4, !tbaa !110
  %769 = load float, ptr %19, align 4, !tbaa !94
  %770 = fdiv float %768, %769
  store float %770, ptr %31, align 4, !tbaa !94
  %771 = load float, ptr %27, align 4, !tbaa !94
  %772 = load float, ptr %31, align 4, !tbaa !94
  %773 = fmul float %771, %772
  %774 = load ptr, ptr %2, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.ImGuiTable, ptr %774, i32 0, i32 32
  %776 = load float, ptr %775, align 4, !tbaa !92
  %777 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %773, float noundef %776)
  %778 = fadd float %777, 0x3F847AE140000000
  %779 = fptosi float %778 to i32
  %780 = sitofp i32 %779 to float
  %781 = load ptr, ptr %30, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %781, i32 0, i32 4
  store float %780, ptr %782, align 4, !tbaa !109
  %783 = load ptr, ptr %30, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %783, i32 0, i32 4
  %785 = load float, ptr %784, align 4, !tbaa !109
  %786 = load float, ptr %28, align 4, !tbaa !94
  %787 = fsub float %786, %785
  store float %787, ptr %28, align 4, !tbaa !94
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %788

788:                                              ; preds = %765, %755
  %789 = load ptr, ptr %30, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %789, i32 0, i32 21
  %791 = load i8, ptr %790, align 1, !tbaa !115
  %792 = sext i8 %791 to i32
  %793 = icmp eq i32 %792, -1
  br i1 %793, label %794, label %805

794:                                              ; preds = %788
  %795 = load ptr, ptr %2, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.ImGuiTable, ptr %795, i32 0, i32 77
  %797 = load i8, ptr %796, align 2, !tbaa !141
  %798 = sext i8 %797 to i32
  %799 = icmp ne i32 %798, -1
  br i1 %799, label %800, label %805

800:                                              ; preds = %794
  %801 = load ptr, ptr %30, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %801, i32 0, i32 0
  %803 = load i32, ptr %802, align 4, !tbaa !102
  %804 = or i32 %803, 1073741824
  store i32 %804, ptr %802, align 4, !tbaa !102
  br label %805

805:                                              ; preds = %800, %794, %788
  %806 = load ptr, ptr %30, align 8, !tbaa !5
  %807 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %806, i32 0, i32 4
  %808 = load float, ptr %807, align 4, !tbaa !109
  %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 4, !tbaa !92
  %812 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %808, float noundef %811)
  %813 = call noundef float @_ZL7ImFloorf(float noundef %812)
  %814 = load ptr, ptr %30, align 8, !tbaa !5
  %815 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %814, i32 0, i32 1
  store float %813, ptr %815, align 4, !tbaa !154
  %816 = load ptr, ptr %30, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %816, i32 0, i32 1
  %818 = load float, ptr %817, align 4, !tbaa !154
  %819 = load ptr, ptr %2, align 8, !tbaa !5
  %820 = getelementptr inbounds %struct.ImGuiTable, ptr %819, i32 0, i32 39
  %821 = load float, ptr %820, align 8, !tbaa !153
  %822 = fadd float %821, %818
  store float %822, ptr %820, align 8, !tbaa !153
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  br label %823

823:                                              ; preds = %805, %754
  %824 = load i32, ptr %29, align 4, !tbaa !31
  %825 = add nsw i32 %824, 1
  store i32 %825, ptr %29, align 4, !tbaa !31
  br label %738, !llvm.loop !155

826:                                              ; preds = %744
  %827 = load float, ptr %28, align 4, !tbaa !94
  %828 = fcmp oge float %827, 1.000000e+00
  br i1 %828, label %829, label %896

829:                                              ; preds = %826
  %830 = load ptr, ptr %2, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.ImGuiTable, ptr %830, i32 0, i32 1
  %832 = load i32, ptr %831, align 4, !tbaa !30
  %833 = and i32 %832, 524288
  %834 = icmp ne i32 %833, 0
  br i1 %834, label %896, label %835

835:                                              ; preds = %829
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %836 = load ptr, ptr %2, align 8, !tbaa !5
  %837 = getelementptr inbounds %struct.ImGuiTable, ptr %836, i32 0, i32 14
  %838 = load i32, ptr %837, align 4, !tbaa !95
  %839 = sub nsw i32 %838, 1
  store i32 %839, ptr %32, align 4, !tbaa !31
  br label %840

840:                                              ; preds = %892, %835
  %841 = load float, ptr %19, align 4, !tbaa !94
  %842 = fcmp ogt float %841, 0.000000e+00
  br i1 %842, label %843, label %849

843:                                              ; preds = %840
  %844 = load float, ptr %28, align 4, !tbaa !94
  %845 = fcmp oge float %844, 1.000000e+00
  br i1 %845, label %846, label %849

846:                                              ; preds = %843
  %847 = load i32, ptr %32, align 4, !tbaa !31
  %848 = icmp sge i32 %847, 0
  br label %849

849:                                              ; preds = %846, %843, %840
  %850 = phi i1 [ false, %843 ], [ false, %840 ], [ %848, %846 ]
  br i1 %850, label %852, label %851

851:                                              ; preds = %849
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %895

852:                                              ; preds = %849
  %853 = load ptr, ptr %2, align 8, !tbaa !5
  %854 = getelementptr inbounds %struct.ImGuiTable, ptr %853, i32 0, i32 7
  %855 = load i64, ptr %854, align 8, !tbaa !35
  %856 = load i32, ptr %32, align 4, !tbaa !31
  %857 = zext i32 %856 to i64
  %858 = shl i64 1, %857
  %859 = and i64 %855, %858
  %860 = icmp ne i64 %859, 0
  br i1 %860, label %862, label %861

861:                                              ; preds = %852
  br label %892

862:                                              ; preds = %852
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %863 = load ptr, ptr %2, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.ImGuiTable, ptr %863, i32 0, i32 4
  %865 = load ptr, ptr %2, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.ImGuiTable, ptr %865, i32 0, i32 5
  %867 = load i32, ptr %32, align 4, !tbaa !31
  %868 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %866, i32 noundef %867)
  %869 = load i8, ptr %868, align 1, !tbaa !96
  %870 = sext i8 %869 to i32
  %871 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %864, i32 noundef %870)
  store ptr %871, ptr %33, align 8, !tbaa !5
  %872 = load ptr, ptr %33, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %872, i32 0, i32 0
  %874 = load i32, ptr %873, align 4, !tbaa !102
  %875 = and i32 %874, 8
  %876 = icmp ne i32 %875, 0
  br i1 %876, label %878, label %877

877:                                              ; preds = %862
  store i32 13, ptr %13, align 4
  br label %889

878:                                              ; preds = %862
  %879 = load ptr, ptr %33, align 8, !tbaa !5
  %880 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %879, i32 0, i32 4
  %881 = load float, ptr %880, align 4, !tbaa !109
  %882 = fadd float %881, 1.000000e+00
  store float %882, ptr %880, align 4, !tbaa !109
  %883 = load ptr, ptr %33, align 8, !tbaa !5
  %884 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %883, i32 0, i32 1
  %885 = load float, ptr %884, align 4, !tbaa !154
  %886 = fadd float %885, 1.000000e+00
  store float %886, ptr %884, align 4, !tbaa !154
  %887 = load float, ptr %28, align 4, !tbaa !94
  %888 = fsub float %887, 1.000000e+00
  store float %888, ptr %28, align 4, !tbaa !94
  store i32 0, ptr %13, align 4
  br label %889

889:                                              ; preds = %878, %877
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  %890 = load i32, ptr %13, align 4
  switch i32 %890, label %1608 [
    i32 0, label %891
    i32 13, label %892
  ]

891:                                              ; preds = %889
  br label %892

892:                                              ; preds = %891, %889, %861
  %893 = load i32, ptr %32, align 4, !tbaa !31
  %894 = add nsw i32 %893, -1
  store i32 %894, ptr %32, align 4, !tbaa !31
  br label %840, !llvm.loop !156

895:                                              ; preds = %851
  br label %896

896:                                              ; preds = %895, %829, %826
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %897 = load ptr, ptr %2, align 8, !tbaa !5
  %898 = load ptr, ptr %2, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.ImGuiTable, ptr %898, i32 0, i32 17
  %900 = load i16, ptr %899, align 8, !tbaa !157
  %901 = sext i16 %900 to i32
  %902 = call noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef %897, i32 noundef %901)
  store ptr %902, ptr %34, align 8, !tbaa !5
  %903 = load ptr, ptr %2, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.ImGuiTable, ptr %903, i32 0, i32 67
  store i8 -1, ptr %904, align 4, !tbaa !158
  %905 = load ptr, ptr %2, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.ImGuiTable, ptr %905, i32 0, i32 68
  store i8 -1, ptr %906, align 1, !tbaa !159
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #10
  %907 = load ptr, ptr %2, align 8, !tbaa !5
  %908 = getelementptr inbounds %struct.ImGuiTable, ptr %907, i32 0, i32 45
  %909 = getelementptr inbounds %struct.ImRect, ptr %908, i32 0, i32 0
  %910 = getelementptr inbounds %struct.ImVec2, ptr %909, i32 0, i32 0
  %911 = load float, ptr %910, align 8, !tbaa !160
  %912 = load ptr, ptr %2, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.ImGuiTable, ptr %912, i32 0, i32 45
  %914 = getelementptr inbounds %struct.ImRect, ptr %913, i32 0, i32 0
  %915 = getelementptr inbounds %struct.ImVec2, ptr %914, i32 0, i32 1
  %916 = load float, ptr %915, align 4, !tbaa !161
  %917 = load ptr, ptr %2, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.ImGuiTable, ptr %917, i32 0, i32 45
  %919 = getelementptr inbounds %struct.ImRect, ptr %918, i32 0, i32 1
  %920 = getelementptr inbounds %struct.ImVec2, ptr %919, i32 0, i32 0
  %921 = load float, ptr %920, align 8, !tbaa !162
  %922 = load ptr, ptr %2, align 8, !tbaa !5
  %923 = getelementptr inbounds %struct.ImGuiTable, ptr %922, i32 0, i32 45
  %924 = getelementptr inbounds %struct.ImRect, ptr %923, i32 0, i32 1
  %925 = getelementptr inbounds %struct.ImVec2, ptr %924, i32 0, i32 1
  %926 = load float, ptr %925, align 4, !tbaa !163
  %927 = load ptr, ptr %2, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.ImGuiTable, ptr %927, i32 0, i32 45
  %929 = getelementptr inbounds %struct.ImRect, ptr %928, i32 0, i32 0
  %930 = getelementptr inbounds %struct.ImVec2, ptr %929, i32 0, i32 1
  %931 = load float, ptr %930, align 4, !tbaa !161
  %932 = load ptr, ptr %34, align 8, !tbaa !5
  %933 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %932, i32 0, i32 0
  %934 = load float, ptr %933, align 4, !tbaa !164
  %935 = fadd float %931, %934
  %936 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %926, float noundef %935)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %35, float noundef %911, float noundef %916, float noundef %921, float noundef %936)
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #10
  %937 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectj(ptr noundef nonnull align 4 dereferenceable(16) %35, i32 noundef 0)
  %938 = zext i1 %937 to i8
  store i8 %938, ptr %36, align 1, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  store i32 0, ptr %37, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #10
  %939 = load ptr, ptr %2, align 8, !tbaa !5
  %940 = getelementptr inbounds %struct.ImGuiTable, ptr %939, i32 0, i32 83
  %941 = load i8, ptr %940, align 4, !tbaa !165
  %942 = sext i8 %941 to i32
  %943 = icmp sgt i32 %942, 0
  %944 = zext i1 %943 to i8
  store i8 %944, ptr %38, align 1, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %945 = load ptr, ptr %2, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.ImGuiTable, ptr %945, i32 0, i32 83
  %947 = load i8, ptr %946, align 4, !tbaa !165
  %948 = sext i8 %947 to i32
  %949 = icmp sgt i32 %948, 0
  br i1 %949, label %950, label %956

950:                                              ; preds = %896
  %951 = load ptr, ptr %2, align 8, !tbaa !5
  %952 = getelementptr inbounds %struct.ImGuiTable, ptr %951, i32 0, i32 45
  %953 = getelementptr inbounds %struct.ImRect, ptr %952, i32 0, i32 0
  %954 = getelementptr inbounds %struct.ImVec2, ptr %953, i32 0, i32 0
  %955 = load float, ptr %954, align 8, !tbaa !160
  br label %960

956:                                              ; preds = %896
  %957 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %958 = getelementptr inbounds %struct.ImVec2, ptr %957, i32 0, i32 0
  %959 = load float, ptr %958, align 4, !tbaa !166
  br label %960

960:                                              ; preds = %956, %950
  %961 = phi float [ %955, %950 ], [ %959, %956 ]
  %962 = load ptr, ptr %2, align 8, !tbaa !5
  %963 = getelementptr inbounds %struct.ImGuiTable, ptr %962, i32 0, i32 33
  %964 = load float, ptr %963, align 8, !tbaa !149
  %965 = fadd float %961, %964
  %966 = load ptr, ptr %2, align 8, !tbaa !5
  %967 = getelementptr inbounds %struct.ImGuiTable, ptr %966, i32 0, i32 36
  %968 = load float, ptr %967, align 4, !tbaa !150
  %969 = fsub float %965, %968
  store float %969, ptr %39, align 4, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #10
  %970 = load ptr, ptr %2, align 8, !tbaa !5
  %971 = getelementptr inbounds %struct.ImGuiTable, ptr %970, i32 0, i32 48
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %40, ptr align 8 %971, i64 16, i1 false), !tbaa.struct !148
  %972 = load ptr, ptr %2, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.ImGuiTable, ptr %972, i32 0, i32 9
  store i64 0, ptr %973, align 8, !tbaa !167
  %974 = load ptr, ptr %2, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.ImGuiTable, ptr %974, i32 0, i32 10
  store i64 0, ptr %975, align 8, !tbaa !142
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  store i32 0, ptr %41, align 4, !tbaa !31
  br label %976

976:                                              ; preds = %1429, %960
  %977 = load i32, ptr %41, align 4, !tbaa !31
  %978 = load ptr, ptr %2, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.ImGuiTable, ptr %978, i32 0, i32 14
  %980 = load i32, ptr %979, align 4, !tbaa !95
  %981 = icmp slt i32 %977, %980
  br i1 %981, label %983, label %982

982:                                              ; preds = %976
  store i32 14, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1432

983:                                              ; preds = %976
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %984 = load ptr, ptr %2, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.ImGuiTable, ptr %984, i32 0, i32 5
  %986 = load i32, ptr %41, align 4, !tbaa !31
  %987 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %985, i32 noundef %986)
  %988 = load i8, ptr %987, align 1, !tbaa !96
  %989 = sext i8 %988 to i32
  store i32 %989, ptr %42, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %990 = load ptr, ptr %2, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.ImGuiTable, ptr %990, i32 0, i32 4
  %992 = load i32, ptr %42, align 4, !tbaa !31
  %993 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %991, i32 noundef %992)
  store ptr %993, ptr %43, align 8, !tbaa !5
  %994 = load ptr, ptr %2, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.ImGuiTable, ptr %994, i32 0, i32 81
  %996 = load i8, ptr %995, align 2, !tbaa !168
  %997 = sext i8 %996 to i32
  %998 = icmp sgt i32 %997, 0
  br i1 %998, label %1006, label %999

999:                                              ; preds = %983
  %1000 = load i32, ptr %42, align 4, !tbaa !31
  %1001 = load ptr, ptr %2, align 8, !tbaa !5
  %1002 = getelementptr inbounds %struct.ImGuiTable, ptr %1001, i32 0, i32 83
  %1003 = load i8, ptr %1002, align 4, !tbaa !165
  %1004 = sext i8 %1003 to i32
  %1005 = icmp slt i32 %1000, %1004
  br label %1006

1006:                                             ; preds = %999, %983
  %1007 = phi i1 [ true, %983 ], [ %1005, %999 ]
  %1008 = zext i1 %1007 to i64
  %1009 = select i1 %1007, i32 1, i32 0
  %1010 = trunc i32 %1009 to i8
  %1011 = load ptr, ptr %43, align 8, !tbaa !5
  %1012 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1011, i32 0, i32 34
  store i8 %1010, ptr %1012, align 2, !tbaa !169
  %1013 = load i8, ptr %38, align 1, !tbaa !93, !range !28, !noundef !29
  %1014 = trunc i8 %1013 to i1
  br i1 %1014, label %1015, label %1034

1015:                                             ; preds = %1006
  %1016 = load ptr, ptr %2, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.ImGuiTable, ptr %1016, i32 0, i32 83
  %1018 = load i8, ptr %1017, align 4, !tbaa !165
  %1019 = sext i8 %1018 to i32
  %1020 = load i32, ptr %37, align 4, !tbaa !31
  %1021 = icmp eq i32 %1019, %1020
  br i1 %1021, label %1022, label %1034

1022:                                             ; preds = %1015
  %1023 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1024 = getelementptr inbounds %struct.ImVec2, ptr %1023, i32 0, i32 0
  %1025 = load float, ptr %1024, align 4, !tbaa !166
  %1026 = load ptr, ptr %2, align 8, !tbaa !5
  %1027 = getelementptr inbounds %struct.ImGuiTable, ptr %1026, i32 0, i32 45
  %1028 = getelementptr inbounds %struct.ImRect, ptr %1027, i32 0, i32 0
  %1029 = getelementptr inbounds %struct.ImVec2, ptr %1028, i32 0, i32 0
  %1030 = load float, ptr %1029, align 8, !tbaa !160
  %1031 = fsub float %1025, %1030
  %1032 = load float, ptr %39, align 4, !tbaa !94
  %1033 = fadd float %1032, %1031
  store float %1033, ptr %39, align 4, !tbaa !94
  store i8 0, ptr %38, align 1, !tbaa !93
  br label %1034

1034:                                             ; preds = %1022, %1015, %1006
  %1035 = load ptr, ptr %43, align 8, !tbaa !5
  %1036 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1035, i32 0, i32 0
  %1037 = load i32, ptr %1036, align 4, !tbaa !102
  %1038 = and i32 %1037, -251658241
  store i32 %1038, ptr %1036, align 4, !tbaa !102
  %1039 = load ptr, ptr %2, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.ImGuiTable, ptr %1039, i32 0, i32 7
  %1041 = load i64, ptr %1040, align 8, !tbaa !35
  %1042 = load i32, ptr %41, align 4, !tbaa !31
  %1043 = zext i32 %1042 to i64
  %1044 = shl i64 1, %1043
  %1045 = and i64 %1041, %1044
  %1046 = icmp eq i64 %1045, 0
  br i1 %1046, label %1047, label %1088

1047:                                             ; preds = %1034
  %1048 = load float, ptr %39, align 4, !tbaa !94
  %1049 = load ptr, ptr %43, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1049, i32 0, i32 8
  %1051 = getelementptr inbounds %struct.ImRect, ptr %1050, i32 0, i32 1
  %1052 = getelementptr inbounds %struct.ImVec2, ptr %1051, i32 0, i32 0
  store float %1048, ptr %1052, align 4, !tbaa !170
  %1053 = load ptr, ptr %43, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1053, i32 0, i32 8
  %1055 = getelementptr inbounds %struct.ImRect, ptr %1054, i32 0, i32 0
  %1056 = getelementptr inbounds %struct.ImVec2, ptr %1055, i32 0, i32 0
  store float %1048, ptr %1056, align 4, !tbaa !171
  %1057 = load ptr, ptr %43, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1057, i32 0, i32 10
  store float %1048, ptr %1058, align 4, !tbaa !172
  %1059 = load ptr, ptr %43, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1059, i32 0, i32 3
  store float %1048, ptr %1060, align 4, !tbaa !173
  %1061 = load ptr, ptr %43, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1061, i32 0, i32 2
  store float %1048, ptr %1062, align 4, !tbaa !174
  %1063 = load ptr, ptr %43, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1063, i32 0, i32 1
  store float 0.000000e+00, ptr %1064, align 4, !tbaa !154
  %1065 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1066 = getelementptr inbounds %struct.ImVec2, ptr %1065, i32 0, i32 1
  %1067 = load float, ptr %1066, align 4, !tbaa !175
  %1068 = load ptr, ptr %43, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1068, i32 0, i32 8
  %1070 = getelementptr inbounds %struct.ImRect, ptr %1069, i32 0, i32 0
  %1071 = getelementptr inbounds %struct.ImVec2, ptr %1070, i32 0, i32 1
  store float %1067, ptr %1071, align 4, !tbaa !176
  %1072 = load ptr, ptr %43, align 8, !tbaa !5
  %1073 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1072, i32 0, i32 8
  %1074 = getelementptr inbounds %struct.ImRect, ptr %1073, i32 0, i32 1
  %1075 = getelementptr inbounds %struct.ImVec2, ptr %1074, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1075, align 4, !tbaa !177
  %1076 = load ptr, ptr %43, align 8, !tbaa !5
  %1077 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1076, i32 0, i32 8
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1077, ptr noundef nonnull align 4 dereferenceable(16) %40)
  %1078 = load ptr, ptr %43, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1078, i32 0, i32 31
  store i8 0, ptr %1079, align 1, !tbaa !178
  %1080 = load ptr, ptr %43, align 8, !tbaa !5
  %1081 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1080, i32 0, i32 30
  store i8 0, ptr %1081, align 2, !tbaa !179
  %1082 = load ptr, ptr %43, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1082, i32 0, i32 29
  store i8 0, ptr %1083, align 1, !tbaa !180
  %1084 = load ptr, ptr %43, align 8, !tbaa !5
  %1085 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1084, i32 0, i32 32
  store i8 1, ptr %1085, align 4, !tbaa !181
  %1086 = load ptr, ptr %43, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1086, i32 0, i32 12
  store float 1.000000e+00, ptr %1087, align 4, !tbaa !182
  store i32 16, ptr %13, align 4
  br label %1426

1088:                                             ; preds = %1034
  %1089 = load i8, ptr %36, align 1, !tbaa !93, !range !28, !noundef !29
  %1090 = trunc i8 %1089 to i1
  br i1 %1090, label %1091, label %1120

1091:                                             ; preds = %1088
  %1092 = load ptr, ptr %3, align 8, !tbaa !5
  %1093 = getelementptr inbounds %struct.ImGuiContext, ptr %1092, i32 0, i32 2
  %1094 = getelementptr inbounds %struct.ImGuiIO, ptr %1093, i32 0, i32 56
  %1095 = getelementptr inbounds %struct.ImVec2, ptr %1094, i32 0, i32 0
  %1096 = load float, ptr %1095, align 4, !tbaa !183
  %1097 = load ptr, ptr %43, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1097, i32 0, i32 8
  %1099 = getelementptr inbounds %struct.ImRect, ptr %1098, i32 0, i32 0
  %1100 = getelementptr inbounds %struct.ImVec2, ptr %1099, i32 0, i32 0
  %1101 = load float, ptr %1100, align 4, !tbaa !171
  %1102 = fcmp oge float %1096, %1101
  br i1 %1102, label %1103, label %1120

1103:                                             ; preds = %1091
  %1104 = load ptr, ptr %3, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.ImGuiContext, ptr %1104, i32 0, i32 2
  %1106 = getelementptr inbounds %struct.ImGuiIO, ptr %1105, i32 0, i32 56
  %1107 = getelementptr inbounds %struct.ImVec2, ptr %1106, i32 0, i32 0
  %1108 = load float, ptr %1107, align 4, !tbaa !183
  %1109 = load ptr, ptr %43, align 8, !tbaa !5
  %1110 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1109, i32 0, i32 8
  %1111 = getelementptr inbounds %struct.ImRect, ptr %1110, i32 0, i32 1
  %1112 = getelementptr inbounds %struct.ImVec2, ptr %1111, i32 0, i32 0
  %1113 = load float, ptr %1112, align 4, !tbaa !170
  %1114 = fcmp olt float %1108, %1113
  br i1 %1114, label %1115, label %1120

1115:                                             ; preds = %1103
  %1116 = load i32, ptr %42, align 4, !tbaa !31
  %1117 = trunc i32 %1116 to i8
  %1118 = load ptr, ptr %2, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.ImGuiTable, ptr %1118, i32 0, i32 67
  store i8 %1117, ptr %1119, align 4, !tbaa !158
  br label %1120

1120:                                             ; preds = %1115, %1103, %1091, %1088
  %1121 = load float, ptr %39, align 4, !tbaa !94
  %1122 = load ptr, ptr %43, align 8, !tbaa !5
  %1123 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1122, i32 0, i32 2
  store float %1121, ptr %1123, align 4, !tbaa !174
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %1124 = load ptr, ptr %2, align 8, !tbaa !5
  %1125 = load i32, ptr %42, align 4, !tbaa !31
  %1126 = call noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef %1124, i32 noundef %1125)
  store float %1126, ptr %44, align 4, !tbaa !94
  %1127 = load ptr, ptr %43, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1127, i32 0, i32 1
  %1129 = load float, ptr %1128, align 4, !tbaa !154
  %1130 = load float, ptr %44, align 4, !tbaa !94
  %1131 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1129, float noundef %1130)
  %1132 = load ptr, ptr %43, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1132, i32 0, i32 1
  store float %1131, ptr %1133, align 4, !tbaa !154
  %1134 = load ptr, ptr %43, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1134, i32 0, i32 1
  %1136 = load float, ptr %1135, align 4, !tbaa !154
  %1137 = load ptr, ptr %43, align 8, !tbaa !5
  %1138 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1137, i32 0, i32 4
  %1139 = load float, ptr %1138, align 4, !tbaa !109
  %1140 = load ptr, ptr %2, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.ImGuiTable, ptr %1140, i32 0, i32 32
  %1142 = load float, ptr %1141, align 4, !tbaa !92
  %1143 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1139, float noundef %1142)
  %1144 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1136, float noundef %1143)
  %1145 = load ptr, ptr %43, align 8, !tbaa !5
  %1146 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1145, i32 0, i32 1
  store float %1144, ptr %1146, align 4, !tbaa !154
  %1147 = load float, ptr %39, align 4, !tbaa !94
  %1148 = load ptr, ptr %43, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1148, i32 0, i32 1
  %1150 = load float, ptr %1149, align 4, !tbaa !154
  %1151 = fadd float %1147, %1150
  %1152 = load ptr, ptr %2, align 8, !tbaa !5
  %1153 = getelementptr inbounds %struct.ImGuiTable, ptr %1152, i32 0, i32 36
  %1154 = load float, ptr %1153, align 4, !tbaa !150
  %1155 = fadd float %1151, %1154
  %1156 = load ptr, ptr %2, align 8, !tbaa !5
  %1157 = getelementptr inbounds %struct.ImGuiTable, ptr %1156, i32 0, i32 37
  %1158 = load float, ptr %1157, align 8, !tbaa !151
  %1159 = fadd float %1155, %1158
  %1160 = load ptr, ptr %2, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.ImGuiTable, ptr %1160, i32 0, i32 34
  %1162 = load float, ptr %1161, align 4, !tbaa !144
  %1163 = call float @llvm.fmuladd.f32(float %1162, float 2.000000e+00, float %1159)
  %1164 = load ptr, ptr %43, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1164, i32 0, i32 3
  store float %1163, ptr %1165, align 4, !tbaa !173
  %1166 = load ptr, ptr %43, align 8, !tbaa !5
  %1167 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1166, i32 0, i32 2
  %1168 = load float, ptr %1167, align 4, !tbaa !174
  %1169 = load ptr, ptr %2, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.ImGuiTable, ptr %1169, i32 0, i32 34
  %1171 = load float, ptr %1170, align 4, !tbaa !144
  %1172 = fadd float %1168, %1171
  %1173 = load ptr, ptr %2, align 8, !tbaa !5
  %1174 = getelementptr inbounds %struct.ImGuiTable, ptr %1173, i32 0, i32 36
  %1175 = load float, ptr %1174, align 4, !tbaa !150
  %1176 = fadd float %1172, %1175
  %1177 = load ptr, ptr %43, align 8, !tbaa !5
  %1178 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1177, i32 0, i32 10
  store float %1176, ptr %1178, align 4, !tbaa !172
  %1179 = load ptr, ptr %43, align 8, !tbaa !5
  %1180 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1179, i32 0, i32 3
  %1181 = load float, ptr %1180, align 4, !tbaa !173
  %1182 = load ptr, ptr %2, align 8, !tbaa !5
  %1183 = getelementptr inbounds %struct.ImGuiTable, ptr %1182, i32 0, i32 34
  %1184 = load float, ptr %1183, align 4, !tbaa !144
  %1185 = fsub float %1181, %1184
  %1186 = load ptr, ptr %2, align 8, !tbaa !5
  %1187 = getelementptr inbounds %struct.ImGuiTable, ptr %1186, i32 0, i32 37
  %1188 = load float, ptr %1187, align 8, !tbaa !151
  %1189 = fsub float %1185, %1188
  %1190 = load ptr, ptr %43, align 8, !tbaa !5
  %1191 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1190, i32 0, i32 11
  store float %1189, ptr %1191, align 4, !tbaa !184
  %1192 = load ptr, ptr %43, align 8, !tbaa !5
  %1193 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1192, i32 0, i32 1
  %1194 = load float, ptr %1193, align 4, !tbaa !154
  %1195 = fmul float %1194, 0x3FE4CCCCC0000000
  %1196 = call noundef float @_ZL7ImFloorf(float noundef %1195)
  %1197 = load ptr, ptr %43, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1197, i32 0, i32 12
  store float %1196, ptr %1198, align 4, !tbaa !182
  %1199 = load ptr, ptr %43, align 8, !tbaa !5
  %1200 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1199, i32 0, i32 2
  %1201 = load float, ptr %1200, align 4, !tbaa !174
  %1202 = load ptr, ptr %43, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1202, i32 0, i32 8
  %1204 = getelementptr inbounds %struct.ImRect, ptr %1203, i32 0, i32 0
  %1205 = getelementptr inbounds %struct.ImVec2, ptr %1204, i32 0, i32 0
  store float %1201, ptr %1205, align 4, !tbaa !171
  %1206 = getelementptr inbounds %struct.ImRect, ptr %24, i32 0, i32 0
  %1207 = getelementptr inbounds %struct.ImVec2, ptr %1206, i32 0, i32 1
  %1208 = load float, ptr %1207, align 4, !tbaa !175
  %1209 = load ptr, ptr %43, align 8, !tbaa !5
  %1210 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1209, i32 0, i32 8
  %1211 = getelementptr inbounds %struct.ImRect, ptr %1210, i32 0, i32 0
  %1212 = getelementptr inbounds %struct.ImVec2, ptr %1211, i32 0, i32 1
  store float %1208, ptr %1212, align 4, !tbaa !176
  %1213 = load ptr, ptr %43, align 8, !tbaa !5
  %1214 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1213, i32 0, i32 3
  %1215 = load float, ptr %1214, align 4, !tbaa !173
  %1216 = load ptr, ptr %43, 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
  store float %1215, ptr %1219, align 4, !tbaa !170
  %1220 = load ptr, ptr %43, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1220, i32 0, i32 8
  %1222 = getelementptr inbounds %struct.ImRect, ptr %1221, i32 0, i32 1
  %1223 = getelementptr inbounds %struct.ImVec2, ptr %1222, i32 0, i32 1
  store float 0x47EFFFFFE0000000, ptr %1223, align 4, !tbaa !177
  %1224 = load ptr, ptr %43, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1224, i32 0, i32 8
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1225, ptr noundef nonnull align 4 dereferenceable(16) %40)
  %1226 = load ptr, ptr %43, align 8, !tbaa !5
  %1227 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1226, i32 0, i32 8
  %1228 = getelementptr inbounds %struct.ImRect, ptr %1227, i32 0, i32 1
  %1229 = getelementptr inbounds %struct.ImVec2, ptr %1228, i32 0, i32 0
  %1230 = load float, ptr %1229, align 4, !tbaa !170
  %1231 = load ptr, ptr %43, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1231, i32 0, i32 8
  %1233 = getelementptr inbounds %struct.ImRect, ptr %1232, i32 0, i32 0
  %1234 = getelementptr inbounds %struct.ImVec2, ptr %1233, i32 0, i32 0
  %1235 = load float, ptr %1234, align 4, !tbaa !171
  %1236 = fcmp ogt float %1230, %1235
  %1237 = load ptr, ptr %43, align 8, !tbaa !5
  %1238 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1237, i32 0, i32 29
  %1239 = zext i1 %1236 to i8
  store i8 %1239, ptr %1238, align 1, !tbaa !180
  %1240 = load ptr, ptr %43, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1240, i32 0, i32 30
  store i8 1, ptr %1241, align 2, !tbaa !179
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #10
  %1242 = load ptr, ptr %43, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1242, i32 0, i32 29
  %1244 = load i8, ptr %1243, align 1, !tbaa !180, !range !28, !noundef !29
  %1245 = trunc i8 %1244 to i1
  %1246 = zext i1 %1245 to i8
  store i8 %1246, ptr %45, align 1, !tbaa !93
  %1247 = load i8, ptr %45, align 1, !tbaa !93, !range !28, !noundef !29
  %1248 = trunc i8 %1247 to i1
  br i1 %1248, label %1249, label %1257

1249:                                             ; preds = %1120
  %1250 = load i32, ptr %42, align 4, !tbaa !31
  %1251 = zext i32 %1250 to i64
  %1252 = shl i64 1, %1251
  %1253 = load ptr, ptr %2, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.ImGuiTable, ptr %1253, i32 0, i32 9
  %1255 = load i64, ptr %1254, align 8, !tbaa !167
  %1256 = or i64 %1255, %1252
  store i64 %1256, ptr %1254, align 8, !tbaa !167
  br label %1257

1257:                                             ; preds = %1249, %1120
  %1258 = load i8, ptr %45, align 1, !tbaa !93, !range !28, !noundef !29
  %1259 = trunc i8 %1258 to i1
  br i1 %1259, label %1272, label %1260

1260:                                             ; preds = %1257
  %1261 = load ptr, ptr %43, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1261, i32 0, i32 35
  %1263 = load i8, ptr %1262, align 1, !tbaa !112
  %1264 = zext i8 %1263 to i32
  %1265 = icmp ne i32 %1264, 0
  br i1 %1265, label %1272, label %1266

1266:                                             ; preds = %1260
  %1267 = load ptr, ptr %43, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1267, i32 0, i32 36
  %1269 = load i8, ptr %1268, align 4, !tbaa !111
  %1270 = zext i8 %1269 to i32
  %1271 = icmp ne i32 %1270, 0
  br label %1272

1272:                                             ; preds = %1266, %1260, %1257
  %1273 = phi i1 [ true, %1260 ], [ true, %1257 ], [ %1271, %1266 ]
  %1274 = load ptr, ptr %43, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1274, i32 0, i32 31
  %1276 = zext i1 %1273 to i8
  store i8 %1276, ptr %1275, align 1, !tbaa !178
  %1277 = load ptr, ptr %43, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1277, i32 0, i32 31
  %1279 = load i8, ptr %1278, align 1, !tbaa !178, !range !28, !noundef !29
  %1280 = trunc i8 %1279 to i1
  br i1 %1280, label %1281, label %1289

1281:                                             ; preds = %1272
  %1282 = load i32, ptr %42, align 4, !tbaa !31
  %1283 = zext i32 %1282 to i64
  %1284 = shl i64 1, %1283
  %1285 = load ptr, ptr %2, align 8, !tbaa !5
  %1286 = getelementptr inbounds %struct.ImGuiTable, ptr %1285, i32 0, i32 10
  %1287 = load i64, ptr %1286, align 8, !tbaa !142
  %1288 = or i64 %1287, %1284
  store i64 %1288, ptr %1286, align 8, !tbaa !142
  br label %1289

1289:                                             ; preds = %1281, %1272
  %1290 = load ptr, ptr %43, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1290, i32 0, i32 26
  %1292 = load i8, ptr %1291, align 2, !tbaa !106, !range !28, !noundef !29
  %1293 = trunc i8 %1292 to i1
  br i1 %1293, label %1294, label %1299

1294:                                             ; preds = %1289
  %1295 = load ptr, ptr %2, align 8, !tbaa !5
  %1296 = getelementptr inbounds %struct.ImGuiTable, ptr %1295, i32 0, i32 102
  %1297 = load i8, ptr %1296, align 1, !tbaa !185, !range !28, !noundef !29
  %1298 = trunc i8 %1297 to i1
  br label %1299

1299:                                             ; preds = %1294, %1289
  %1300 = phi i1 [ true, %1289 ], [ %1298, %1294 ]
  %1301 = load ptr, ptr %43, align 8, !tbaa !5
  %1302 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1301, i32 0, i32 32
  %1303 = zext i1 %1300 to i8
  store i8 %1303, ptr %1302, align 4, !tbaa !181
  %1304 = load ptr, ptr %43, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1304, i32 0, i32 32
  %1306 = load i8, ptr %1305, align 4, !tbaa !181, !range !28, !noundef !29
  %1307 = trunc i8 %1306 to i1
  br i1 %1307, label %1308, label %1316

1308:                                             ; preds = %1299
  %1309 = load i8, ptr %45, align 1, !tbaa !93, !range !28, !noundef !29
  %1310 = trunc i8 %1309 to i1
  %1311 = xor i1 %1310, true
  br i1 %1311, label %1312, label %1313

1312:                                             ; preds = %1308
  br label %1315

1313:                                             ; preds = %1308
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 1033, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

1314:                                             ; No predecessors!
  br label %1315

1315:                                             ; preds = %1314, %1312
  br label %1316

1316:                                             ; preds = %1315, %1299
  %1317 = load ptr, ptr %43, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1317, i32 0, i32 0
  %1319 = load i32, ptr %1318, align 4, !tbaa !102
  %1320 = or i32 %1319, 16777216
  store i32 %1320, ptr %1318, align 4, !tbaa !102
  %1321 = load i8, ptr %45, align 1, !tbaa !93, !range !28, !noundef !29
  %1322 = trunc i8 %1321 to i1
  br i1 %1322, label %1323, label %1328

1323:                                             ; preds = %1316
  %1324 = load ptr, ptr %43, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1324, i32 0, i32 0
  %1326 = load i32, ptr %1325, align 4, !tbaa !102
  %1327 = or i32 %1326, 33554432
  store i32 %1327, ptr %1325, align 4, !tbaa !102
  br label %1328

1328:                                             ; preds = %1323, %1316
  %1329 = load ptr, ptr %43, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1329, i32 0, i32 22
  %1331 = load i8, ptr %1330, align 2, !tbaa !107
  %1332 = sext i8 %1331 to i32
  %1333 = icmp ne i32 %1332, -1
  br i1 %1333, label %1334, label %1339

1334:                                             ; preds = %1328
  %1335 = load ptr, ptr %43, align 8, !tbaa !5
  %1336 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1335, i32 0, i32 0
  %1337 = load i32, ptr %1336, align 4, !tbaa !102
  %1338 = or i32 %1337, 67108864
  store i32 %1338, ptr %1336, align 4, !tbaa !102
  br label %1339

1339:                                             ; preds = %1334, %1328
  %1340 = load ptr, ptr %2, align 8, !tbaa !5
  %1341 = getelementptr inbounds %struct.ImGuiTable, ptr %1340, i32 0, i32 67
  %1342 = load i8, ptr %1341, align 4, !tbaa !158
  %1343 = sext i8 %1342 to i32
  %1344 = load i32, ptr %42, align 4, !tbaa !31
  %1345 = icmp eq i32 %1343, %1344
  br i1 %1345, label %1346, label %1351

1346:                                             ; preds = %1339
  %1347 = load ptr, ptr %43, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1347, i32 0, i32 0
  %1349 = load i32, ptr %1348, align 4, !tbaa !102
  %1350 = or i32 %1349, 134217728
  store i32 %1350, ptr %1348, align 4, !tbaa !102
  br label %1351

1351:                                             ; preds = %1346, %1339
  %1352 = load ptr, ptr %43, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1352, i32 0, i32 10
  %1354 = load float, ptr %1353, align 4, !tbaa !172
  %1355 = load ptr, ptr %43, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1355, i32 0, i32 14
  store float %1354, ptr %1356, align 4, !tbaa !186
  %1357 = load ptr, ptr %43, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1357, i32 0, i32 13
  store float %1354, ptr %1358, align 4, !tbaa !187
  %1359 = load ptr, ptr %43, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1359, i32 0, i32 10
  %1361 = load float, ptr %1360, align 4, !tbaa !172
  %1362 = load ptr, ptr %43, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1362, i32 0, i32 16
  store float %1361, ptr %1363, align 4, !tbaa !188
  %1364 = load ptr, ptr %43, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1364, i32 0, i32 15
  store float %1361, ptr %1365, align 4, !tbaa !189
  %1366 = load ptr, ptr %2, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.ImGuiTable, ptr %1366, i32 0, i32 102
  %1368 = load i8, ptr %1367, align 1, !tbaa !185, !range !28, !noundef !29
  %1369 = trunc i8 %1368 to i1
  %1370 = zext i1 %1369 to i32
  %1371 = icmp eq i32 %1370, 0
  br i1 %1371, label %1372, label %1385

1372:                                             ; preds = %1351
  %1373 = load ptr, ptr %43, align 8, !tbaa !5
  %1374 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1373, i32 0, i32 35
  %1375 = load i8, ptr %1374, align 1, !tbaa !112
  %1376 = zext i8 %1375 to i32
  %1377 = ashr i32 %1376, 1
  %1378 = trunc i32 %1377 to i8
  store i8 %1378, ptr %1374, align 1, !tbaa !112
  %1379 = load ptr, ptr %43, align 8, !tbaa !5
  %1380 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1379, i32 0, i32 36
  %1381 = load i8, ptr %1380, align 4, !tbaa !111
  %1382 = zext i8 %1381 to i32
  %1383 = ashr i32 %1382, 1
  %1384 = trunc i32 %1383 to i8
  store i8 %1384, ptr %1380, align 4, !tbaa !111
  br label %1385

1385:                                             ; preds = %1372, %1351
  %1386 = load i32, ptr %37, align 4, !tbaa !31
  %1387 = load ptr, ptr %2, align 8, !tbaa !5
  %1388 = getelementptr inbounds %struct.ImGuiTable, ptr %1387, i32 0, i32 83
  %1389 = load i8, ptr %1388, align 4, !tbaa !165
  %1390 = sext i8 %1389 to i32
  %1391 = icmp slt i32 %1386, %1390
  br i1 %1391, label %1392, label %1406

1392:                                             ; preds = %1385
  %1393 = load ptr, ptr %43, align 8, !tbaa !5
  %1394 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1393, i32 0, i32 3
  %1395 = load float, ptr %1394, align 4, !tbaa !173
  %1396 = fadd float %1395, 1.000000e+00
  %1397 = getelementptr inbounds %struct.ImRect, ptr %40, i32 0, i32 0
  %1398 = getelementptr inbounds %struct.ImVec2, ptr %1397, i32 0, i32 0
  %1399 = load float, ptr %1398, align 4, !tbaa !166
  %1400 = getelementptr inbounds %struct.ImRect, ptr %40, i32 0, i32 1
  %1401 = getelementptr inbounds %struct.ImVec2, ptr %1400, i32 0, i32 0
  %1402 = load float, ptr %1401, align 4, !tbaa !190
  %1403 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %1396, float noundef %1399, float noundef %1402)
  %1404 = getelementptr inbounds %struct.ImRect, ptr %40, i32 0, i32 0
  %1405 = getelementptr inbounds %struct.ImVec2, ptr %1404, i32 0, i32 0
  store float %1403, ptr %1405, align 4, !tbaa !166
  br label %1406

1406:                                             ; preds = %1392, %1385
  %1407 = load ptr, ptr %43, align 8, !tbaa !5
  %1408 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1407, i32 0, i32 1
  %1409 = load float, ptr %1408, align 4, !tbaa !154
  %1410 = load ptr, ptr %2, align 8, !tbaa !5
  %1411 = getelementptr inbounds %struct.ImGuiTable, ptr %1410, i32 0, i32 36
  %1412 = load float, ptr %1411, align 4, !tbaa !150
  %1413 = fadd float %1409, %1412
  %1414 = load ptr, ptr %2, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.ImGuiTable, ptr %1414, i32 0, i32 37
  %1416 = load float, ptr %1415, align 8, !tbaa !151
  %1417 = fadd float %1413, %1416
  %1418 = load ptr, ptr %2, align 8, !tbaa !5
  %1419 = getelementptr inbounds %struct.ImGuiTable, ptr %1418, i32 0, i32 34
  %1420 = load float, ptr %1419, align 4, !tbaa !144
  %1421 = call float @llvm.fmuladd.f32(float %1420, float 2.000000e+00, float %1417)
  %1422 = load float, ptr %39, align 4, !tbaa !94
  %1423 = fadd float %1422, %1421
  store float %1423, ptr %39, align 4, !tbaa !94
  %1424 = load i32, ptr %37, align 4, !tbaa !31
  %1425 = add nsw i32 %1424, 1
  store i32 %1425, ptr %37, align 4, !tbaa !31
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  store i32 0, ptr %13, align 4
  br label %1426

1426:                                             ; preds = %1406, %1047
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  %1427 = load i32, ptr %13, align 4
  switch i32 %1427, label %1608 [
    i32 0, label %1428
    i32 16, label %1429
  ]

1428:                                             ; preds = %1426
  br label %1429

1429:                                             ; preds = %1428, %1426
  %1430 = load i32, ptr %41, align 4, !tbaa !31
  %1431 = add nsw i32 %1430, 1
  store i32 %1431, ptr %41, align 4, !tbaa !31
  br label %976, !llvm.loop !191

1432:                                             ; preds = %982
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1433 = load ptr, ptr %2, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.ImGuiTable, ptr %1433, i32 0, i32 47
  %1435 = getelementptr inbounds %struct.ImRect, ptr %1434, i32 0, i32 0
  %1436 = getelementptr inbounds %struct.ImVec2, ptr %1435, i32 0, i32 0
  %1437 = load float, ptr %1436, align 8, !tbaa !192
  %1438 = load ptr, ptr %2, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.ImGuiTable, ptr %1438, i32 0, i32 4
  %1440 = load ptr, ptr %2, align 8, !tbaa !5
  %1441 = getelementptr inbounds %struct.ImGuiTable, ptr %1440, i32 0, i32 76
  %1442 = load i8, ptr %1441, align 1, !tbaa !122
  %1443 = sext i8 %1442 to i32
  %1444 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1439, i32 noundef %1443)
  %1445 = getelementptr inbounds %struct.ImGuiTableColumn, ptr %1444, i32 0, i32 8
  %1446 = getelementptr inbounds %struct.ImRect, ptr %1445, i32 0, i32 1
  %1447 = getelementptr inbounds %struct.ImVec2, ptr %1446, i32 0, i32 0
  %1448 = load float, ptr %1447, align 4, !tbaa !170
  %1449 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1437, float noundef %1448)
  store float %1449, ptr %46, align 4, !tbaa !94
  %1450 = load i8, ptr %36, align 1, !tbaa !93, !range !28, !noundef !29
  %1451 = trunc i8 %1450 to i1
  br i1 %1451, label %1452, label %1474

1452:                                             ; preds = %1432
  %1453 = load ptr, ptr %2, align 8, !tbaa !5
  %1454 = getelementptr inbounds %struct.ImGuiTable, ptr %1453, i32 0, i32 67
  %1455 = load i8, ptr %1454, align 4, !tbaa !158
  %1456 = sext i8 %1455 to i32
  %1457 = icmp eq i32 %1456, -1
  br i1 %1457, label %1458, label %1474

1458:                                             ; preds = %1452
  %1459 = load ptr, ptr %3, align 8, !tbaa !5
  %1460 = getelementptr inbounds %struct.ImGuiContext, ptr %1459, i32 0, i32 2
  %1461 = getelementptr inbounds %struct.ImGuiIO, ptr %1460, i32 0, i32 56
  %1462 = getelementptr inbounds %struct.ImVec2, ptr %1461, i32 0, i32 0
  %1463 = load float, ptr %1462, align 4, !tbaa !183
  %1464 = load float, ptr %46, align 4, !tbaa !94
  %1465 = fcmp oge float %1463, %1464
  br i1 %1465, label %1466, label %1473

1466:                                             ; preds = %1458
  %1467 = load ptr, ptr %2, align 8, !tbaa !5
  %1468 = getelementptr inbounds %struct.ImGuiTable, ptr %1467, i32 0, i32 14
  %1469 = load i32, ptr %1468, align 4, !tbaa !95
  %1470 = trunc i32 %1469 to i8
  %1471 = load ptr, ptr %2, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.ImGuiTable, ptr %1471, i32 0, i32 67
  store i8 %1470, ptr %1472, align 4, !tbaa !158
  br label %1473

1473:                                             ; preds = %1466, %1458
  br label %1474

1474:                                             ; preds = %1473, %1452, %1432
  %1475 = load i8, ptr %9, align 1, !tbaa !93, !range !28, !noundef !29
  %1476 = trunc i8 %1475 to i1
  %1477 = zext i1 %1476 to i32
  %1478 = icmp eq i32 %1477, 0
  br i1 %1478, label %1479, label %1490

1479:                                             ; preds = %1474
  %1480 = load ptr, ptr %2, align 8, !tbaa !5
  %1481 = getelementptr inbounds %struct.ImGuiTable, ptr %1480, i32 0, i32 1
  %1482 = load i32, ptr %1481, align 4, !tbaa !30
  %1483 = and i32 %1482, 1
  %1484 = icmp ne i32 %1483, 0
  br i1 %1484, label %1485, label %1490

1485:                                             ; preds = %1479
  %1486 = load ptr, ptr %2, align 8, !tbaa !5
  %1487 = getelementptr inbounds %struct.ImGuiTable, ptr %1486, i32 0, i32 1
  %1488 = load i32, ptr %1487, align 4, !tbaa !30
  %1489 = and i32 %1488, -2
  store i32 %1489, ptr %1487, align 4, !tbaa !30
  br label %1490

1490:                                             ; preds = %1485, %1479, %1474
  %1491 = load ptr, ptr %2, align 8, !tbaa !5
  %1492 = getelementptr inbounds %struct.ImGuiTable, ptr %1491, i32 0, i32 78
  %1493 = load i8, ptr %1492, align 1, !tbaa !140
  %1494 = sext i8 %1493 to i32
  %1495 = icmp ne i32 %1494, -1
  br i1 %1495, label %1496, label %1501

1496:                                             ; preds = %1490
  %1497 = load ptr, ptr %2, align 8, !tbaa !5
  %1498 = getelementptr inbounds %struct.ImGuiTable, ptr %1497, i32 0, i32 1
  %1499 = load i32, ptr %1498, align 4, !tbaa !30
  %1500 = and i32 %1499, -65537
  store i32 %1500, ptr %1498, align 4, !tbaa !30
  br label %1501

1501:                                             ; preds = %1496, %1490
  %1502 = load ptr, ptr %2, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.ImGuiTable, ptr %1502, i32 0, i32 1
  %1504 = load i32, ptr %1503, align 4, !tbaa !30
  %1505 = and i32 %1504, 65536
  %1506 = icmp ne i32 %1505, 0
  br i1 %1506, label %1507, label %1528

1507:                                             ; preds = %1501
  %1508 = load float, ptr %46, align 4, !tbaa !94
  %1509 = load ptr, ptr %2, align 8, !tbaa !5
  %1510 = getelementptr inbounds %struct.ImGuiTable, ptr %1509, i32 0, i32 47
  %1511 = getelementptr inbounds %struct.ImRect, ptr %1510, i32 0, i32 1
  %1512 = getelementptr inbounds %struct.ImVec2, ptr %1511, i32 0, i32 0
  store float %1508, ptr %1512, align 8, !tbaa !193
  %1513 = load ptr, ptr %2, align 8, !tbaa !5
  %1514 = getelementptr inbounds %struct.ImGuiTable, ptr %1513, i32 0, i32 45
  %1515 = getelementptr inbounds %struct.ImRect, ptr %1514, i32 0, i32 1
  %1516 = getelementptr inbounds %struct.ImVec2, ptr %1515, i32 0, i32 0
  store float %1508, ptr %1516, align 8, !tbaa !162
  %1517 = load ptr, ptr %2, align 8, !tbaa !5
  %1518 = getelementptr inbounds %struct.ImGuiTable, ptr %1517, i32 0, i32 48
  %1519 = getelementptr inbounds %struct.ImRect, ptr %1518, i32 0, i32 1
  %1520 = getelementptr inbounds %struct.ImVec2, ptr %1519, i32 0, i32 0
  %1521 = load float, ptr %1520, align 8, !tbaa !194
  %1522 = load float, ptr %46, align 4, !tbaa !94
  %1523 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1521, float noundef %1522)
  %1524 = load ptr, ptr %2, align 8, !tbaa !5
  %1525 = getelementptr inbounds %struct.ImGuiTable, ptr %1524, i32 0, i32 48
  %1526 = getelementptr inbounds %struct.ImRect, ptr %1525, i32 0, i32 1
  %1527 = getelementptr inbounds %struct.ImVec2, ptr %1526, i32 0, i32 0
  store float %1523, ptr %1527, align 8, !tbaa !194
  br label %1528

1528:                                             ; preds = %1507, %1501
  %1529 = load ptr, ptr %2, align 8, !tbaa !5
  %1530 = getelementptr inbounds %struct.ImGuiTable, ptr %1529, i32 0, i32 47
  %1531 = load ptr, ptr %2, align 8, !tbaa !5
  %1532 = getelementptr inbounds %struct.ImGuiTable, ptr %1531, i32 0, i32 55
  %1533 = load ptr, ptr %1532, align 8, !tbaa !124
  %1534 = getelementptr inbounds %struct.ImGuiWindow, ptr %1533, i32 0, i32 60
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1534, ptr align 8 %1530, i64 16, i1 false), !tbaa.struct !148
  %1535 = load ptr, ptr %2, align 8, !tbaa !5
  %1536 = getelementptr inbounds %struct.ImGuiTable, ptr %1535, i32 0, i32 48
  %1537 = getelementptr inbounds %struct.ImRect, ptr %1536, i32 0, i32 0
  %1538 = getelementptr inbounds %struct.ImVec2, ptr %1537, i32 0, i32 0
  %1539 = load float, ptr %1538, align 8, !tbaa !195
  %1540 = load ptr, ptr %2, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.ImGuiTable, ptr %1540, i32 0, i32 29
  store float %1539, ptr %1541, align 8, !tbaa !196
  %1542 = load ptr, ptr %2, align 8, !tbaa !5
  %1543 = getelementptr inbounds %struct.ImGuiTable, ptr %1542, i32 0, i32 48
  %1544 = getelementptr inbounds %struct.ImRect, ptr %1543, i32 0, i32 1
  %1545 = getelementptr inbounds %struct.ImVec2, ptr %1544, i32 0, i32 0
  %1546 = load float, ptr %1545, align 8, !tbaa !194
  %1547 = load ptr, ptr %2, align 8, !tbaa !5
  %1548 = getelementptr inbounds %struct.ImGuiTable, ptr %1547, i32 0, i32 30
  store float %1546, ptr %1548, align 4, !tbaa !197
  %1549 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef %1549)
  %1550 = load ptr, ptr %2, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.ImGuiTable, ptr %1550, i32 0, i32 1
  %1552 = load i32, ptr %1551, align 4, !tbaa !30
  %1553 = and i32 %1552, 1
  %1554 = icmp ne i32 %1553, 0
  br i1 %1554, label %1555, label %1557

1555:                                             ; preds = %1528
  %1556 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef %1556)
  br label %1557

1557:                                             ; preds = %1555, %1528
  %1558 = load ptr, ptr %34, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.ImGuiTableInstanceData, ptr %1558, i32 0, i32 1
  store float 0.000000e+00, ptr %1559, align 4, !tbaa !198
  %1560 = load ptr, ptr %2, align 8, !tbaa !5
  %1561 = getelementptr inbounds %struct.ImGuiTable, ptr %1560, i32 0, i32 88
  store i8 1, ptr %1561, align 1, !tbaa !9
  %1562 = load ptr, ptr %2, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.ImGuiTable, ptr %1562, i32 0, i32 92
  store i8 0, ptr %1563, align 1, !tbaa !199
  %1564 = load ptr, ptr %2, align 8, !tbaa !5
  %1565 = call noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef %1564)
  br i1 %1565, label %1566, label %1568

1566:                                             ; preds = %1557
  %1567 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui20TableDrawContextMenuEP10ImGuiTable(ptr noundef %1567)
  call void @_ZN5ImGui8EndPopupEv()
  br label %1568

1568:                                             ; preds = %1566, %1557
  %1569 = load ptr, ptr %2, align 8, !tbaa !5
  %1570 = getelementptr inbounds %struct.ImGuiTable, ptr %1569, i32 0, i32 91
  %1571 = load i8, ptr %1570, align 4, !tbaa !108, !range !28, !noundef !29
  %1572 = trunc i8 %1571 to i1
  br i1 %1572, label %1573, label %1581

1573:                                             ; preds = %1568
  %1574 = load ptr, ptr %2, align 8, !tbaa !5
  %1575 = getelementptr inbounds %struct.ImGuiTable, ptr %1574, i32 0, i32 1
  %1576 = load i32, ptr %1575, align 4, !tbaa !30
  %1577 = and i32 %1576, 8
  %1578 = icmp ne i32 %1577, 0
  br i1 %1578, label %1579, label %1581

1579:                                             ; preds = %1573
  %1580 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef %1580)
  br label %1581

1581:                                             ; preds = %1579, %1573, %1568
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %1582 = load ptr, ptr %2, align 8, !tbaa !5
  %1583 = getelementptr inbounds %struct.ImGuiTable, ptr %1582, i32 0, i32 55
  %1584 = load ptr, ptr %1583, align 8, !tbaa !124
  store ptr %1584, ptr %47, align 8, !tbaa !5
  %1585 = load ptr, ptr %2, align 8, !tbaa !5
  %1586 = getelementptr inbounds %struct.ImGuiTable, ptr %1585, i32 0, i32 1
  %1587 = load i32, ptr %1586, align 4, !tbaa !30
  %1588 = and i32 %1587, 1048576
  %1589 = icmp ne i32 %1588, 0
  br i1 %1589, label %1590, label %1597

1590:                                             ; preds = %1581
  %1591 = load ptr, ptr %2, align 8, !tbaa !5
  %1592 = getelementptr inbounds %struct.ImGuiTable, ptr %1591, i32 0, i32 57
  %1593 = load ptr, ptr %1592, align 8, !tbaa !200
  %1594 = load ptr, ptr %47, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.ImGuiWindow, ptr %1594, i32 0, i32 73
  %1596 = load ptr, ptr %1595, align 8, !tbaa !201
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %1593, ptr noundef %1596, i32 noundef 2)
  br label %1607

1597:                                             ; preds = %1581
  %1598 = load ptr, ptr %47, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.ImGuiWindow, ptr %1598, i32 0, i32 73
  %1600 = load ptr, ptr %1599, align 8, !tbaa !201
  %1601 = load ptr, ptr %47, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.ImGuiWindow, ptr %1601, i32 0, i32 61
  %1603 = getelementptr inbounds %struct.ImRect, ptr %1602, i32 0, i32 0
  %1604 = load ptr, ptr %47, align 8, !tbaa !5
  %1605 = getelementptr inbounds %struct.ImGuiWindow, ptr %1604, i32 0, i32 61
  %1606 = getelementptr inbounds %struct.ImRect, ptr %1605, i32 0, i32 1
  call void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %1600, ptr noundef nonnull align 4 dereferenceable(8) %1603, ptr noundef nonnull align 4 dereferenceable(8) %1606, i1 noundef zeroext false)
  br label %1607

1607:                                             ; preds = %1597, %1590
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 16, 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 1, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #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

1608:                                             ; preds = %1426, %889, %367
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui8EndPopupEv() #9

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

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 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { "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, !27, i64 521}
!10 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !12, i64 24, !13, i64 40, !14, i64 56, !15, i64 72, !15, i64 80, !15, i64 88, !15, i64 96, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !11, i64 120, !11, i64 124, !16, i64 128, !16, i64 130, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !17, i64 148, !11, i64 152, !11, i64 154, !11, i64 156, !7, i64 160, !11, i64 168, !11, i64 172, !17, i64 176, !17, i64 180, !17, i64 184, !17, i64 188, !17, i64 192, !17, i64 196, !17, i64 200, !17, i64 204, !17, i64 208, !17, i64 212, !17, i64 216, !17, i64 220, !17, i64 224, !17, i64 228, !17, i64 232, !17, i64 236, !18, i64 240, !18, i64 256, !18, i64 272, !18, i64 288, !18, i64 304, !18, i64 320, !18, i64 336, !18, i64 352, !18, i64 368, !6, i64 384, !6, i64 392, !20, i64 400, !6, i64 416, !22, i64 424, !23, i64 432, !24, i64 448, !25, i64 464, !26, i64 480, !7, i64 496, !7, i64 497, !7, i64 498, !7, i64 499, !7, i64 500, !7, i64 501, !7, i64 502, !7, i64 503, !7, i64 504, !7, i64 505, !7, i64 506, !7, i64 507, !7, i64 508, !7, i64 509, !7, i64 510, !7, i64 511, !7, i64 512, !7, i64 513, !7, i64 514, !7, i64 515, !7, i64 516, !7, i64 517, !7, i64 518, !7, i64 519, !7, i64 520, !27, i64 521, !27, i64 522, !27, i64 523, !27, i64 524, !27, i64 525, !27, i64 526, !27, i64 527, !27, i64 528, !27, i64 529, !27, i64 530, !27, i64 531, !27, i64 532, !27, i64 533, !27, i64 534, !27, i64 535}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!13 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!14 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!15 = !{!"long long", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"float", !7, i64 0}
!18 = !{!"_ZTS6ImRect", !19, i64 0, !19, i64 8}
!19 = !{!"_ZTS6ImVec2", !17, i64 0, !17, i64 4}
!20 = !{!"_ZTS15ImGuiTextBuffer", !21, i64 0}
!21 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!22 = !{!"_ZTS22ImGuiTableInstanceData", !17, i64 0, !17, i64 4}
!23 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!24 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !16, i64 4, !16, i64 6, !11, i64 8}
!25 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!26 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !27, i64 12}
!27 = !{!"bool", !7, i64 0}
!28 = !{i8 0, i8 2}
!29 = !{}
!30 = !{!10, !11, i64 4}
!31 = !{!11, !11, i64 0}
!32 = !{!10, !27, i64 529}
!33 = !{!10, !7, i64 497}
!34 = !{!10, !15, i64 80}
!35 = !{!10, !15, i64 72}
!36 = !{!10, !7, i64 508}
!37 = !{!38, !17, i64 14364}
!38 = !{!"_ZTS12ImGuiContext", !27, i64 0, !27, i64 1, !39, i64 8, !41, i64 14272, !41, i64 14288, !42, i64 14304, !6, i64 15352, !17, i64 15360, !17, i64 15364, !43, i64 15368, !45, i64 15880, !11, i64 15888, !11, i64 15892, !11, i64 15896, !27, i64 15900, !27, i64 15901, !27, i64 15902, !27, i64 15903, !27, i64 15904, !6, i64 15912, !46, i64 15920, !46, i64 15936, !46, i64 15952, !47, i64 15968, !48, i64 15984, !11, i64 16000, !19, i64 16004, !6, i64 16016, !6, i64 16024, !6, i64 16032, !6, i64 16040, !6, i64 16048, !19, i64 16056, !17, i64 16064, !11, i64 16068, !11, i64 16072, !11, i64 16076, !27, i64 16080, !27, i64 16081, !27, i64 16082, !27, i64 16083, !17, i64 16084, !17, i64 16088, !11, i64 16092, !11, i64 16096, !17, i64 16100, !27, i64 16104, !27, i64 16105, !27, i64 16106, !27, i64 16107, !27, i64 16108, !27, i64 16109, !19, i64 16112, !6, i64 16120, !50, i64 16128, !11, i64 16132, !11, i64 16136, !27, i64 16140, !27, i64 16141, !6, i64 16144, !11, i64 16152, !17, i64 16156, !11, i64 16160, !51, i64 16164, !11, i64 16184, !11, i64 16188, !52, i64 16192, !53, i64 16212, !54, i64 16272, !55, i64 16384, !56, i64 16400, !57, i64 16416, !58, i64 16432, !59, i64 16448, !60, i64 16464, !61, i64 16480, !61, i64 16496, !11, i64 16512, !62, i64 16520, !6, i64 16536, !11, i64 16544, !11, i64 16548, !11, i64 16552, !11, i64 16556, !11, i64 16560, !11, i64 16564, !11, i64 16568, !11, i64 16572, !11, i64 16576, !11, i64 16580, !11, i64 16584, !11, i64 16588, !50, i64 16592, !63, i64 16596, !27, i64 16600, !27, i64 16601, !27, i64 16602, !27, i64 16603, !27, i64 16604, !27, i64 16605, !27, i64 16606, !11, i64 16608, !18, i64 16612, !27, i64 16628, !27, i64 16629, !27, i64 16630, !11, i64 16632, !11, i64 16636, !11, i64 16640, !11, i64 16644, !11, i64 16648, !11, i64 16652, !18, i64 16656, !18, i64 16672, !11, i64 16688, !11, i64 16692, !11, i64 16696, !64, i64 16704, !64, i64 16752, !64, i64 16800, !64, i64 16848, !6, i64 16896, !6, i64 16904, !6, i64 16912, !17, i64 16920, !17, i64 16924, !27, i64 16928, !19, i64 16932, !19, i64 16940, !17, i64 16948, !11, i64 16952, !27, i64 16956, !27, i64 16957, !27, i64 16958, !11, i64 16960, !11, i64 16964, !11, i64 16968, !65, i64 16976, !18, i64 17040, !11, i64 17056, !11, i64 17060, !17, i64 17064, !11, i64 17068, !11, i64 17072, !11, i64 17076, !11, i64 17080, !66, i64 17088, !7, i64 17104, !11, i64 17120, !67, i64 17128, !6, i64 17144, !11, i64 17152, !68, i64 17160, !69, i64 17176, !71, i64 17216, !72, i64 17232, !6, i64 17248, !73, i64 17256, !75, i64 17296, !76, i64 17312, !11, i64 17328, !11, i64 17332, !17, i64 17336, !17, i64 17340, !19, i64 17344, !77, i64 17352, !80, i64 21072, !11, i64 21184, !11, i64 21188, !17, i64 21192, !17, i64 21196, !11, i64 21200, !44, i64 21204, !82, i64 21220, !17, i64 21268, !17, i64 21272, !27, i64 21276, !27, i64 21277, !17, i64 21280, !17, i64 21284, !17, i64 21288, !17, i64 21292, !16, i64 21296, !16, i64 21298, !21, i64 21304, !58, i64 21320, !83, i64 21336, !83, i64 21352, !7, i64 21368, !27, i64 21369, !17, i64 21372, !20, i64 21376, !84, i64 21392, !85, i64 21408, !86, i64 21424, !87, i64 21440, !11, i64 21456, !27, i64 21460, !88, i64 21464, !6, i64 21472, !20, i64 21480, !6, i64 21496, !6, i64 21504, !17, i64 21512, !27, i64 21516, !11, i64 21520, !11, i64 21524, !11, i64 21528, !11, i64 21532, !20, i64 21536, !27, i64 21552, !7, i64 21553, !11, i64 21556, !89, i64 21560, !90, i64 21576, !7, i64 21616, !11, i64 21856, !11, i64 21860, !17, i64 21864, !11, i64 21868, !11, i64 21872, !11, i64 21876, !21, i64 21880}
!39 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !19, i64 8, !17, i64 16, !17, i64 20, !6, i64 24, !6, i64 32, !17, i64 40, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !17, i64 64, !6, i64 72, !6, i64 80, !17, i64 88, !27, i64 92, !6, i64 96, !19, i64 104, !27, i64 112, !27, i64 113, !27, i64 114, !27, i64 115, !27, i64 116, !27, i64 117, !27, i64 118, !27, i64 119, !17, i64 120, !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, !6, i64 200, !27, i64 208, !27, i64 209, !27, i64 210, !27, i64 211, !27, i64 212, !27, i64 213, !27, i64 214, !17, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !19, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !19, i64 3572, !7, i64 3580, !17, i64 3588, !17, i64 3592, !27, i64 3596, !27, i64 3597, !27, i64 3598, !27, i64 3599, !11, i64 3600, !7, i64 3604, !27, i64 14036, !19, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !17, i64 14236, !27, i64 14240, !27, i64 14241, !7, i64 14242, !27, i64 14243, !16, i64 14244, !40, i64 14248}
!40 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!41 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !11, i64 0, !11, i64 4, !6, i64 8}
!42 = !{!"_ZTS10ImGuiStyle", !17, i64 0, !17, i64 4, !19, i64 8, !17, i64 16, !17, i64 20, !19, i64 24, !19, i64 32, !11, i64 40, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !19, i64 60, !17, i64 68, !17, i64 72, !19, i64 76, !19, i64 84, !19, i64 92, !19, i64 100, !17, i64 108, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !17, i64 128, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !11, i64 148, !19, i64 152, !19, i64 160, !19, i64 168, !19, i64 176, !17, i64 184, !27, i64 188, !27, i64 189, !27, i64 190, !17, i64 192, !17, i64 196, !7, i64 200}
!43 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !17, i64 16, !17, i64 20, !17, i64 24, !44, i64 28, !11, i64 44, !7, i64 48, !17, i64 432, !7, i64 436, !6, i64 504}
!44 = !{!"_ZTS6ImVec4", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12}
!45 = !{!"double", !7, i64 0}
!46 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!47 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!48 = !{!"_ZTS12ImGuiStorage", !49, i64 0}
!49 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!50 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!51 = !{!"_ZTS10ImBitArrayILi140ELin512EE", !7, i64 0}
!52 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !17, i64 4, !11, i64 8, !11, i64 12, !27, i64 16}
!53 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !18, i64 12, !18, i64 28, !18, i64 44}
!54 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !27, i64 56, !18, i64 60, !6, i64 80, !6, i64 88, !17, i64 96, !19, i64 100}
!55 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!61 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!62 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!63 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!64 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !18, i64 16, !11, i64 32, !17, i64 36, !17, i64 40, !17, i64 44}
!65 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !27, i64 57, !27, i64 58}
!66 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS6ImPoolI10ImGuiTableE", !70, i64 0, !48, i64 16, !11, i64 32, !11, i64 36}
!70 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!73 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !74, i64 0, !48, i64 16, !11, i64 32, !11, i64 36}
!74 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!77 = !{!"_ZTS19ImGuiInputTextState", !11, i64 0, !11, i64 4, !11, i64 8, !40, i64 16, !21, i64 32, !21, i64 48, !27, i64 64, !11, i64 68, !17, i64 72, !78, i64 76, !17, i64 3704, !27, i64 3708, !27, i64 3709, !27, i64 3710, !11, i64 3712}
!78 = !{!"_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, !17, i64 28, !79, i64 32}
!79 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !11, i64 3588, !11, i64 3592}
!80 = !{!"_ZTS6ImFont", !71, i64 0, !17, i64 16, !17, i64 20, !40, i64 24, !81, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !16, i64 80, !16, i64 82, !16, i64 84, !16, i64 86, !27, i64 88, !17, i64 92, !17, i64 96, !17, i64 100, !11, i64 104, !7, i64 108}
!81 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!82 = !{!"_ZTS21ImGuiComboPreviewData", !18, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !17, i64 40, !11, i64 44}
!83 = !{!"_ZTS20ImGuiPlatformImeData", !27, i64 0, !19, i64 4, !17, i64 12}
!84 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!85 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !21, i64 0}
!86 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !21, i64 0}
!87 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!88 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!89 = !{!"_ZTS18ImGuiMetricsConfig", !27, i64 0, !27, i64 1, !27, i64 2, !27, i64 3, !27, i64 4, !27, i64 5, !27, i64 6, !11, i64 8, !11, i64 12}
!90 = !{!"_ZTS14ImGuiStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !91, i64 16, !27, i64 32, !17, i64 36}
!91 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!92 = !{!10, !17, i64 188}
!93 = !{!27, !27, i64 0}
!94 = !{!17, !17, i64 0}
!95 = !{!10, !11, i64 116}
!96 = !{!7, !7, i64 0}
!97 = !{!10, !7, i64 499}
!98 = !{!99, !16, i64 80}
!99 = !{!"_ZTS16ImGuiTableColumn", !11, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !17, i64 16, !17, i64 20, !17, i64 24, !17, i64 28, !18, i64 32, !11, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !17, i64 64, !17, i64 68, !17, i64 72, !17, i64 76, !16, i64 80, !7, i64 82, !7, i64 83, !7, i64 84, !7, i64 85, !7, i64 86, !7, i64 87, !7, i64 88, !7, i64 89, !27, i64 90, !27, i64 91, !27, i64 92, !27, i64 93, !27, i64 94, !27, i64 95, !27, i64 96, !27, i64 97, !7, i64 98, !7, i64 99, !7, i64 100, !7, i64 101, !7, i64 101, !7, i64 101, !7, i64 102}
!100 = !{!99, !11, i64 48}
!101 = !{!99, !17, i64 28}
!102 = !{!99, !11, i64 0}
!103 = !{!99, !27, i64 92}
!104 = !{!99, !27, i64 91}
!105 = !{!10, !27, i64 528}
!106 = !{!99, !27, i64 90}
!107 = !{!99, !7, i64 86}
!108 = !{!10, !27, i64 524}
!109 = !{!99, !17, i64 16}
!110 = !{!99, !17, i64 24}
!111 = !{!99, !7, i64 100}
!112 = !{!99, !7, i64 99}
!113 = !{!99, !7, i64 83}
!114 = !{!99, !7, i64 84}
!115 = !{!99, !7, i64 85}
!116 = !{!99, !7, i64 82}
!117 = !{!99, !27, i64 97}
!118 = !{!99, !17, i64 20}
!119 = distinct !{!119, !120}
!120 = !{!"llvm.loop.mustprogress"}
!121 = !{!10, !7, i64 496}
!122 = !{!10, !7, i64 509}
!123 = !{!10, !6, i64 384}
!124 = !{!10, !6, i64 392}
!125 = !{!126, !27, i64 155}
!126 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !11, i64 8, !11, i64 12, !6, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !19, i64 56, !19, i64 64, !19, i64 72, !17, i64 80, !17, i64 84, !11, i64 88, !11, i64 92, !11, i64 96, !19, i64 100, !19, i64 108, !19, i64 116, !19, i64 124, !19, i64 132, !19, i64 140, !27, i64 148, !27, i64 149, !27, i64 150, !27, i64 151, !27, i64 152, !27, i64 153, !27, i64 154, !27, i64 155, !27, i64 156, !27, i64 157, !27, i64 158, !27, i64 159, !27, i64 160, !7, i64 161, !16, i64 162, !16, i64 164, !16, i64 166, !16, i64 168, !11, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !27, i64 179, !11, i64 180, !7, i64 184, !7, i64 185, !7, i64 186, !7, i64 187, !11, i64 188, !11, i64 189, !11, i64 190, !19, i64 192, !19, i64 200, !58, i64 208, !127, i64 224, !18, i64 464, !18, i64 480, !18, i64 496, !18, i64 512, !18, i64 528, !18, i64 544, !18, i64 560, !130, i64 576, !130, i64 580, !11, i64 584, !17, i64 588, !17, i64 592, !48, i64 600, !131, i64 616, !17, i64 632, !11, i64 636, !6, i64 640, !132, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !7, i64 904, !7, i64 912, !11, i64 944, !11, i64 948, !27, i64 952}
!127 = !{!"_ZTS19ImGuiWindowTempData", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !17, i64 56, !17, i64 60, !27, i64 64, !27, i64 65, !128, i64 68, !128, i64 72, !128, i64 76, !19, i64 80, !63, i64 88, !16, i64 92, !16, i64 94, !11, i64 96, !27, i64 100, !27, i64 101, !27, i64 102, !19, i64 104, !129, i64 112, !11, i64 140, !11, i64 144, !46, i64 152, !6, i64 168, !6, i64 176, !11, i64 184, !11, i64 188, !11, i64 192, !17, i64 196, !17, i64 200, !71, i64 208, !71, i64 224}
!128 = !{!"_ZTS6ImVec1", !17, i64 0}
!129 = !{!"_ZTS16ImGuiMenuColumns", !11, i64 0, !11, i64 4, !16, i64 8, !16, i64 10, !16, i64 12, !16, i64 14, !16, i64 16, !7, i64 18}
!130 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!131 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!132 = !{!"_ZTS10ImDrawList", !133, i64 0, !40, i64 16, !134, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !135, i64 88, !136, i64 104, !137, i64 120, !138, i64 136, !139, i64 168, !17, i64 192}
!133 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!134 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!135 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!136 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!137 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!138 = !{!"_ZTS15ImDrawCmdHeader", !44, i64 0, !6, i64 16, !11, i64 24}
!139 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !72, i64 8}
!140 = !{!10, !7, i64 511}
!141 = !{!10, !7, i64 510}
!142 = !{!10, !15, i64 96}
!143 = !{!10, !27, i64 523}
!144 = !{!10, !17, i64 196}
!145 = distinct !{!145, !120}
!146 = !{!10, !7, i64 498}
!147 = !{!10, !17, i64 224}
!148 = !{i64 0, i64 4, !94, i64 4, i64 4, !94, i64 8, i64 4, !94, i64 12, i64 4, !94}
!149 = !{!10, !17, i64 192}
!150 = !{!10, !17, i64 204}
!151 = !{!10, !17, i64 208}
!152 = !{!10, !17, i64 212}
!153 = !{!10, !17, i64 216}
!154 = !{!99, !17, i64 4}
!155 = distinct !{!155, !120}
!156 = distinct !{!156, !120}
!157 = !{!10, !16, i64 128}
!158 = !{!10, !7, i64 500}
!159 = !{!10, !7, i64 501}
!160 = !{!10, !17, i64 240}
!161 = !{!10, !17, i64 244}
!162 = !{!10, !17, i64 248}
!163 = !{!10, !17, i64 252}
!164 = !{!22, !17, i64 0}
!165 = !{!10, !7, i64 516}
!166 = !{!18, !17, i64 0}
!167 = !{!10, !15, i64 88}
!168 = !{!10, !7, i64 514}
!169 = !{!99, !7, i64 98}
!170 = !{!99, !17, i64 40}
!171 = !{!99, !17, i64 32}
!172 = !{!99, !17, i64 52}
!173 = !{!99, !17, i64 12}
!174 = !{!99, !17, i64 8}
!175 = !{!18, !17, i64 4}
!176 = !{!99, !17, i64 36}
!177 = !{!99, !17, i64 44}
!178 = !{!99, !27, i64 95}
!179 = !{!99, !27, i64 94}
!180 = !{!99, !27, i64 93}
!181 = !{!99, !27, i64 96}
!182 = !{!99, !17, i64 60}
!183 = !{!38, !17, i64 3580}
!184 = !{!99, !17, i64 56}
!185 = !{!10, !27, i64 535}
!186 = !{!99, !17, i64 68}
!187 = !{!99, !17, i64 64}
!188 = !{!99, !17, i64 76}
!189 = !{!99, !17, i64 72}
!190 = !{!18, !17, i64 8}
!191 = distinct !{!191, !120}
!192 = !{!10, !17, i64 272}
!193 = !{!10, !17, i64 280}
!194 = !{!10, !17, i64 296}
!195 = !{!10, !17, i64 288}
!196 = !{!10, !17, i64 176}
!197 = !{!10, !17, i64 180}
!198 = !{!22, !17, i64 4}
!199 = !{!10, !27, i64 525}
!200 = !{!10, !6, i64 416}
!201 = !{!126, !6, i64 640}


; 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.2 = external hidden unnamed_addr constant [113 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: mustprogress uwtable
declare dso_local void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(103) 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 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(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 #5 {
  %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 521
  %7 = load i8, ptr %6, align 1, !tbaa !9, !range !28, !noundef !29
  %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.2, i32 noundef 719, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

10:                                               ; preds = %1
  %11 = getelementptr inbounds i8, ptr %0, i64 4
  %12 = load i32, ptr %11, align 4, !tbaa !30
  %13 = and i32 %12, 57344
  %14 = getelementptr inbounds i8, ptr %0, i64 529
  store i8 1, ptr %14, align 1, !tbaa !31
  %15 = getelementptr inbounds i8, ptr %0, i64 497
  store i8 0, ptr %15, align 1, !tbaa !32
  %16 = getelementptr inbounds i8, ptr %0, i64 80
  %17 = getelementptr inbounds i8, ptr %0, i64 72
  %18 = getelementptr inbounds i8, ptr %0, i64 508
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, i8 0, i64 16, i1 false)
  store i8 -1, ptr %18, align 4, !tbaa !33
  %19 = getelementptr inbounds i8, ptr %5, i64 14364
  %20 = load float, ptr %19, align 4, !tbaa !34
  %21 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %20)
  %22 = getelementptr inbounds i8, ptr %0, i64 188
  store float %21, ptr %22, align 4, !tbaa !89
  %23 = getelementptr inbounds i8, ptr %0, i64 116
  %24 = load i32, ptr %23, align 4, !tbaa !90
  %25 = icmp sgt i32 %24, 0
  br i1 %25, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %10
  %26 = getelementptr inbounds i8, ptr %0, i64 40
  %27 = getelementptr inbounds i8, ptr %0, i64 24
  %28 = getelementptr inbounds i8, ptr %0, i64 499
  %29 = getelementptr inbounds i8, ptr %0, i64 528
  %30 = getelementptr inbounds i8, ptr %0, i64 524
  br label %34

._crit_edge:                                      ; preds = %135, %10
  %31 = phi i32 [ %24, %10 ], [ %137, %135 ]
  %.0437.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2439, %135 ]
  %.0426.lcssa = phi float [ 0.000000e+00, %10 ], [ %.2428, %135 ]
  %.0423.lcssa = phi i8 [ 0, %10 ], [ %.2425, %135 ]
  %.0420.lcssa = phi i1 [ false, %10 ], [ %.2422, %135 ]
  %.0418.lcssa = phi i32 [ -1, %10 ], [ %.1419, %135 ]
  %.0415.lcssa = phi i32 [ 0, %10 ], [ %.2417, %135 ]
  %.0.lcssa = phi i8 [ 0, %10 ], [ %.2, %135 ]
  %32 = load i32, ptr %11, align 4, !tbaa !30
  %33 = and i32 %32, 8
  %.not461 = icmp eq i32 %33, 0
  br i1 %.not461, label %146, label %139

34:                                               ; preds = %.lr.ph, %135
  %.0543 = phi i8 [ 0, %.lr.ph ], [ %.2, %135 ]
  %.0415542 = phi i32 [ 0, %.lr.ph ], [ %.2417, %135 ]
  %.0418541 = phi i32 [ -1, %.lr.ph ], [ %.1419, %135 ]
  %.0420540 = phi i1 [ false, %.lr.ph ], [ %.2422, %135 ]
  %.0423539 = phi i8 [ 0, %.lr.ph ], [ %.2425, %135 ]
  %.0426538 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2428, %135 ]
  %.0437537 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2439, %135 ]
  %.0440536 = phi i32 [ 0, %.lr.ph ], [ %136, %135 ]
  %35 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %26, i32 noundef %.0440536)
  %36 = load i8, ptr %35, align 1, !tbaa !91
  %37 = sext i8 %36 to i32
  %.not485 = icmp eq i32 %.0440536, %37
  br i1 %.not485, label %39, label %38

38:                                               ; preds = %34
  store i8 0, ptr %14, align 1, !tbaa !31
  br label %39

39:                                               ; preds = %38, %34
  %40 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %27, i32 noundef %37)
  %41 = load i8, ptr %28, align 1, !tbaa !92
  %.not486 = icmp sgt i8 %41, %36
  br i1 %.not486, label %46, label %42

42:                                               ; preds = %39
  tail call void @_ZL21TableSetupColumnFlagsP10ImGuiTableP16ImGuiTableColumni(ptr noundef nonnull %0, ptr noundef nonnull %40, i32 noundef 0)
  %43 = getelementptr inbounds i8, ptr %40, i64 80
  store i16 -1, ptr %43, align 4, !tbaa !93
  %44 = getelementptr inbounds i8, ptr %40, i64 48
  store i32 0, ptr %44, align 4, !tbaa !95
  %45 = getelementptr inbounds i8, ptr %40, i64 28
  store float -1.000000e+00, ptr %45, align 4, !tbaa !96
  br label %46

46:                                               ; preds = %42, %39
  %47 = load i32, ptr %11, align 4, !tbaa !30
  %48 = and i32 %47, 4
  %.not487 = icmp eq i32 %48, 0
  br i1 %.not487, label %52, label %49

49:                                               ; preds = %46
  %50 = load i32, ptr %40, align 4, !tbaa !97
  %51 = and i32 %50, 128
  %.not488 = icmp eq i32 %51, 0
  br i1 %.not488, label %._crit_edge587, label %52

._crit_edge587:                                   ; preds = %49
  %.phi.trans.insert = getelementptr inbounds i8, ptr %40, i64 92
  %.pre = load i8, ptr %.phi.trans.insert, align 4, !tbaa !98, !range !28
  br label %54

52:                                               ; preds = %49, %46
  %53 = getelementptr inbounds i8, ptr %40, i64 92
  store i8 1, ptr %53, align 4, !tbaa !98
  br label %54

54:                                               ; preds = %._crit_edge587, %52
  %55 = phi i8 [ %.pre, %._crit_edge587 ], [ 1, %52 ]
  %56 = getelementptr inbounds i8, ptr %40, i64 91
  %57 = load i8, ptr %56, align 1, !tbaa !99, !range !28, !noundef !29
  %.not489 = icmp eq i8 %57, %55
  br i1 %.not489, label %59, label %58

58:                                               ; preds = %54
  store i8 %55, ptr %56, align 1, !tbaa !99
  store i8 1, ptr %29, align 8, !tbaa !100
  br label %59

59:                                               ; preds = %58, %54
  %60 = trunc nuw i8 %55 to i1
  %61 = load i32, ptr %40, align 4
  %62 = and i32 %61, 1
  %63 = icmp eq i32 %62, 0
  %64 = select i1 %60, i1 %63, i1 false
  %65 = getelementptr inbounds i8, ptr %40, i64 90
  %66 = zext i1 %64 to i8
  store i8 %66, ptr %65, align 2, !tbaa !101
  %67 = getelementptr inbounds i8, ptr %40, i64 86
  %68 = load i8, ptr %67, align 2, !tbaa !102
  %.not490 = icmp eq i8 %68, -1
  %brmerge = select i1 %.not490, i1 true, i1 %64
  %69 = icmp slt i8 %68, 1
  %70 = and i32 %47, 67108864
  %.not491 = icmp ne i32 %70, 0
  %or.cond525.not.not.not613 = or i1 %.not491, %69
  %.not611 = and i1 %or.cond525.not.not.not613, %brmerge
  br i1 %.not611, label %72, label %71

71:                                               ; preds = %59
  store i8 1, ptr %30, align 4, !tbaa !103
  br label %72

72:                                               ; preds = %59, %71
  %73 = and i32 %61, 16
  %.not492 = icmp eq i32 %73, 0
  %.in493.in.v = select i1 %.not492, i64 24, i64 16
  %.in493.in = getelementptr inbounds i8, ptr %40, i64 %.in493.in.v
  %.in493 = load float, ptr %.in493.in, align 4, !tbaa !104
  %74 = fcmp olt float %.in493, 0.000000e+00
  br i1 %74, label %75, label %78

75:                                               ; preds = %72
  %76 = getelementptr inbounds i8, ptr %40, i64 100
  store i8 7, ptr %76, align 4, !tbaa !105
  %77 = getelementptr inbounds i8, ptr %40, i64 99
  store i8 7, ptr %77, align 1, !tbaa !106
  br label %78

78:                                               ; preds = %75, %72
  br i1 %64, label %81, label %79

79:                                               ; preds = %78
  %80 = getelementptr inbounds i8, ptr %40, i64 83
  store i8 -1, ptr %80, align 1, !tbaa !107
  br label %135

81:                                               ; preds = %78
  %82 = trunc nsw i32 %.0418541 to i8
  %83 = getelementptr inbounds i8, ptr %40, i64 84
  store i8 %82, ptr %83, align 4, !tbaa !108
  %84 = getelementptr inbounds i8, ptr %40, i64 85
  store i8 -1, ptr %84, align 1, !tbaa !109
  %.not494 = icmp eq i32 %.0418541, -1
  br i1 %.not494, label %88, label %85

85:                                               ; preds = %81
  %86 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %27, i32 noundef %.0418541)
  %87 = getelementptr inbounds i8, ptr %86, i64 85
  store i8 %36, ptr %87, align 1, !tbaa !109
  br label %89

88:                                               ; preds = %81
  store i8 %36, ptr %18, align 4, !tbaa !33
  br label %89

89:                                               ; preds = %88, %85
  %90 = load i8, ptr %15, align 1, !tbaa !32
  %91 = add i8 %90, 1
  store i8 %91, ptr %15, align 1, !tbaa !32
  %92 = getelementptr inbounds i8, ptr %40, i64 83
  store i8 %90, ptr %92, align 1, !tbaa !107
  %93 = zext nneg i32 %37 to i64
  %94 = shl nuw i64 1, %93
  %95 = load i64, ptr %16, align 8, !tbaa !110
  %96 = or i64 %95, %94
  store i64 %96, ptr %16, align 8, !tbaa !110
  %97 = getelementptr inbounds i8, ptr %40, i64 82
  %98 = load i8, ptr %97, align 2, !tbaa !111
  %99 = sext i8 %98 to i64
  %100 = and i64 %99, 4294967295
  %101 = shl nuw i64 1, %100
  %102 = load i64, ptr %17, align 8, !tbaa !112
  %103 = or i64 %101, %102
  store i64 %103, ptr %17, align 8, !tbaa !112
  %.not495 = icmp sgt i8 %90, %98
  br i1 %.not495, label %104, label %105

104:                                              ; preds = %89
  tail call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.2, i32 noundef 793, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

105:                                              ; preds = %89
  %106 = getelementptr inbounds i8, ptr %40, i64 97
  %107 = load i8, ptr %106, align 1, !tbaa !113, !range !28, !noundef !29
  %108 = trunc nuw i8 %107 to i1
  br i1 %108, label %112, label %109

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

112:                                              ; preds = %109, %105
  %113 = load i32, ptr %40, align 4, !tbaa !97
  %114 = and i32 %113, 32
  %115 = icmp eq i32 %114, 0
  %spec.select = select i1 %115, i8 1, i8 %.0423539
  %116 = and i32 %113, 16
  %.not496 = icmp eq i32 %116, 0
  br i1 %.not496, label %123, label %117

117:                                              ; preds = %112
  %118 = getelementptr inbounds i8, ptr %40, i64 28
  %119 = load float, ptr %118, align 4, !tbaa !96
  %120 = fcmp ule float %119, 0.000000e+00
  %brmerge500 = or i1 %115, %120
  br i1 %brmerge500, label %123, label %121

121:                                              ; preds = %117
  %122 = getelementptr inbounds i8, ptr %40, i64 20
  store float %119, ptr %122, align 4, !tbaa !114
  br label %123

123:                                              ; preds = %117, %121, %112
  %124 = getelementptr inbounds i8, ptr %40, i64 99
  %125 = load i8, ptr %124, align 1, !tbaa !106
  %.not497 = icmp ne i8 %125, 0
  %spec.select501 = select i1 %.not497, i1 true, i1 %.0420540
  %126 = and i32 %113, 8
  %.not498 = icmp eq i32 %126, 0
  %127 = getelementptr inbounds i8, ptr %40, i64 20
  %128 = load float, ptr %127, align 4, !tbaa !114
  br i1 %.not498, label %132, label %129

129:                                              ; preds = %123
  %130 = fadd float %.0426538, %128
  %131 = add nsw i32 %.0415542, 1
  br label %135

132:                                              ; preds = %123
  %133 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %.0437537, float noundef %128)
  %134 = add i8 %.0543, 1
  br label %135

135:                                              ; preds = %129, %132, %79
  %.2439 = phi float [ %.0437537, %79 ], [ %.0437537, %129 ], [ %133, %132 ]
  %.2428 = phi float [ %.0426538, %79 ], [ %130, %129 ], [ %.0426538, %132 ]
  %.2425 = phi i8 [ %.0423539, %79 ], [ %spec.select, %129 ], [ %spec.select, %132 ]
  %.2422 = phi i1 [ %.0420540, %79 ], [ %spec.select501, %129 ], [ %spec.select501, %132 ]
  %.1419 = phi i32 [ %.0418541, %79 ], [ %37, %129 ], [ %37, %132 ]
  %.2417 = phi i32 [ %.0415542, %79 ], [ %131, %129 ], [ %.0415542, %132 ]
  %.2 = phi i8 [ %.0543, %79 ], [ %.0543, %129 ], [ %134, %132 ]
  %136 = add nuw nsw i32 %.0440536, 1
  %137 = load i32, ptr %23, align 4, !tbaa !90
  %138 = icmp slt i32 %136, %137
  br i1 %138, label %34, label %._crit_edge, !llvm.loop !115

139:                                              ; preds = %._crit_edge
  %140 = getelementptr inbounds i8, ptr %0, i64 496
  %141 = load i8, ptr %140, align 8, !tbaa !117
  %142 = icmp eq i8 %141, 0
  %143 = and i32 %32, 134217728
  %.not462 = icmp eq i32 %143, 0
  %or.cond502 = and i1 %.not462, %142
  br i1 %or.cond502, label %144, label %146

144:                                              ; preds = %139
  %145 = getelementptr inbounds i8, ptr %0, i64 524
  store i8 1, ptr %145, align 4, !tbaa !103
  br label %146

146:                                              ; preds = %144, %139, %._crit_edge
  %147 = trunc nsw i32 %.0418.lcssa to i8
  %148 = getelementptr inbounds i8, ptr %0, i64 509
  store i8 %147, ptr %148, align 1, !tbaa !118
  %149 = load i8, ptr %18, align 4, !tbaa !33
  %150 = icmp sgt i8 %149, -1
  %sext.mask = and i32 %.0418.lcssa, 128
  %151 = icmp eq i32 %sext.mask, 0
  %or.cond503 = select i1 %150, i1 %151, i1 false
  br i1 %or.cond503, label %152, label %.critedge

.critedge:                                        ; preds = %146
  tail call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 823, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

152:                                              ; preds = %146
  br i1 %.0420.lcssa, label %153, label %.critedge505

153:                                              ; preds = %152
  %154 = getelementptr inbounds i8, ptr %0, i64 384
  %155 = load ptr, ptr %154, align 8, !tbaa !119
  %156 = getelementptr inbounds i8, ptr %0, i64 392
  %157 = load ptr, ptr %156, align 8, !tbaa !120
  %.not463 = icmp eq ptr %155, %157
  br i1 %.not463, label %160, label %158

158:                                              ; preds = %153
  %159 = getelementptr inbounds i8, ptr %157, i64 155
  store i8 0, ptr %159, align 1, !tbaa !121
  br label %160

160:                                              ; preds = %153, %158
  %161 = getelementptr inbounds i8, ptr %0, i64 528
  store i8 1, ptr %161, align 8, !tbaa !100
  br label %.critedge505

.critedge505:                                     ; preds = %152, %160
  %162 = getelementptr inbounds i8, ptr %0, i64 511
  store i8 -1, ptr %162, align 1, !tbaa !136
  %163 = getelementptr inbounds i8, ptr %0, i64 510
  store i8 -1, ptr %163, align 2, !tbaa !137
  %164 = icmp sgt i32 %31, 0
  br i1 %164, label %.lr.ph554, label %._crit_edge555

.lr.ph554:                                        ; preds = %.critedge505
  %165 = getelementptr inbounds i8, ptr %0, i64 24
  %166 = icmp eq i32 %13, 16384
  %167 = getelementptr inbounds i8, ptr %0, i64 523
  %168 = getelementptr inbounds i8, ptr %0, i64 96
  %.not614 = icmp eq i32 %13, 24576
  %169 = sitofp i32 %.0415.lcssa to float
  %170 = getelementptr inbounds i8, ptr %0, i64 196
  br label %189

._crit_edge555.loopexit:                          ; preds = %275
  %.pre592 = load i32, ptr %11, align 4, !tbaa !30
  br label %._crit_edge555

._crit_edge555:                                   ; preds = %._crit_edge555.loopexit, %.critedge505
  %171 = phi i32 [ %32, %.critedge505 ], [ %.pre592, %._crit_edge555.loopexit ]
  %.0445.lcssa = phi float [ 0.000000e+00, %.critedge505 ], [ %.2447, %._crit_edge555.loopexit ]
  %.0442.lcssa = phi float [ 0.000000e+00, %.critedge505 ], [ %.2444, %._crit_edge555.loopexit ]
  %.0445.lcssa.fr = freeze float %.0445.lcssa
  %172 = getelementptr inbounds i8, ptr %0, i64 498
  store i8 %.0.lcssa, ptr %172, align 2, !tbaa !138
  %173 = getelementptr inbounds i8, ptr %0, i64 224
  store float %.0445.lcssa.fr, ptr %173, align 8, !tbaa !139
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #12
  %174 = 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) %174, i64 16, i1 false), !tbaa.struct !140
  %175 = getelementptr inbounds i8, ptr %0, i64 192
  %176 = load float, ptr %175, align 8, !tbaa !141
  %177 = getelementptr inbounds i8, ptr %0, i64 204
  %178 = load float, ptr %177, align 4, !tbaa !142
  %179 = getelementptr inbounds i8, ptr %0, i64 208
  %180 = load float, ptr %179, align 8, !tbaa !143
  %181 = fadd float %178, %180
  %182 = load i8, ptr %15, align 1, !tbaa !32
  %183 = sext i8 %182 to i32
  %184 = add nsw i32 %183, -1
  %185 = sitofp i32 %184 to float
  %186 = fmul float %181, %185
  %187 = tail call float @llvm.fmuladd.f32(float %176, float 2.000000e+00, float %186)
  %188 = and i32 %171, 16777216
  %.not464 = icmp eq i32 %188, 0
  br i1 %.not464, label %286, label %279

189:                                              ; preds = %.lr.ph554, %275
  %190 = phi i32 [ %31, %.lr.ph554 ], [ %276, %275 ]
  %indvars.iv = phi i64 [ 0, %.lr.ph554 ], [ %indvars.iv.next, %275 ]
  %.0442553 = phi float [ 0.000000e+00, %.lr.ph554 ], [ %.2444, %275 ]
  %.0445552 = phi float [ 0.000000e+00, %.lr.ph554 ], [ %.2447, %275 ]
  %191 = load i64, ptr %16, align 8, !tbaa !110
  %192 = shl nuw i64 1, %indvars.iv
  %193 = and i64 %191, %192
  %.not478 = icmp eq i64 %193, 0
  br i1 %.not478, label %275, label %194

194:                                              ; preds = %189
  %195 = trunc nuw nsw i64 %indvars.iv to i32
  %196 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %165, i32 noundef %195)
  %197 = load i32, ptr %196, align 4, !tbaa !97
  %198 = and i32 %197, 32
  %199 = icmp ne i32 %198, 0
  %200 = and i32 %197, 16
  %.not479 = icmp eq i32 %200, 0
  br i1 %.not479, label %230, label %201

201:                                              ; preds = %194
  %202 = getelementptr inbounds i8, ptr %196, i64 20
  %203 = load float, ptr %202, align 4, !tbaa !114
  %204 = getelementptr inbounds i8, ptr %196, i64 99
  %205 = load i8, ptr %204, align 1, !tbaa !106
  br i1 %166, label %206, label %._crit_edge588

206:                                              ; preds = %201
  %.not481 = icmp ne i8 %205, 0
  %brmerge507 = or i1 %199, %.not481
  br i1 %brmerge507, label %._crit_edge588, label %.thread

._crit_edge588:                                   ; preds = %201, %206
  %207 = phi float [ %.0437.lcssa, %206 ], [ %203, %201 ]
  %.not482 = icmp eq i8 %205, 0
  br i1 %.not482, label %208, label %214

208:                                              ; preds = %._crit_edge588
  br i1 %199, label %209, label %.thread

209:                                              ; preds = %208
  %210 = load i64, ptr %168, align 8, !tbaa !144
  %211 = and i64 %210, %192
  %.not484 = icmp eq i64 %211, 0
  br i1 %.not484, label %.thread, label %212

212:                                              ; preds = %209
  %213 = getelementptr inbounds i8, ptr %196, i64 16
  store float %207, ptr %213, align 4, !tbaa !145
  br label %.thread

214:                                              ; preds = %._crit_edge588
  %215 = getelementptr inbounds i8, ptr %196, i64 16
  store float %207, ptr %215, align 4, !tbaa !145
  %.not526 = icmp eq i8 %205, 1
  br i1 %.not526, label %.thread, label %216

216:                                              ; preds = %214
  %217 = load i8, ptr %167, align 1, !tbaa !146, !range !28, !noundef !29
  %218 = trunc nuw i8 %217 to i1
  br i1 %218, label %219, label %.thread

219:                                              ; preds = %216
  %220 = getelementptr inbounds i8, ptr %196, i64 97
  %221 = load i8, ptr %220, align 1, !tbaa !113, !range !28, !noundef !29
  %222 = trunc nuw i8 %221 to i1
  br i1 %222, label %.thread, label %223

223:                                              ; preds = %219
  %224 = load float, ptr %22, align 4, !tbaa !89
  %225 = fmul float %224, 4.000000e+00
  %226 = tail call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %207, float noundef %225)
  store float %226, ptr %215, align 4, !tbaa !145
  br label %.thread

.thread:                                          ; preds = %206, %212, %209, %208, %223, %219, %216, %214
  %227 = getelementptr inbounds i8, ptr %196, i64 16
  %228 = load float, ptr %227, align 4, !tbaa !145
  %229 = fadd float %.0442553, %228
  br label %271

230:                                              ; preds = %194
  %231 = getelementptr inbounds i8, ptr %196, i64 99
  %232 = load i8, ptr %231, align 1, !tbaa !106
  %.not480 = icmp ne i8 %232, 0
  %233 = getelementptr inbounds i8, ptr %196, i64 24
  %234 = load float, ptr %233, align 4
  %235 = fcmp olt float %234, 0.000000e+00
  %or.cond511 = select i1 %.not480, i1 true, i1 %235
  %brmerge513 = or i1 %199, %or.cond511
  br i1 %brmerge513, label %.sink.split, label %243

.sink.split:                                      ; preds = %230
  %236 = getelementptr inbounds i8, ptr %196, i64 28
  %237 = load float, ptr %236, align 4, !tbaa !96
  %238 = fcmp ogt float %237, 0.000000e+00
  %239 = getelementptr inbounds i8, ptr %196, i64 20
  %240 = load float, ptr %239, align 4
  %241 = fdiv float %240, %.0426.lcssa
  %242 = fmul float %241, %169
  %.mux = select i1 %.not614, float %242, float 1.000000e+00
  %.sink = select i1 %238, float %237, float %.mux
  store float %.sink, ptr %233, align 4, !tbaa !147
  br label %243

243:                                              ; preds = %.sink.split, %230
  %244 = phi float [ %234, %230 ], [ %.sink, %.sink.split ]
  %245 = fadd float %.0445552, %244
  %246 = load i8, ptr %163, align 2, !tbaa !137
  %247 = icmp eq i8 %246, -1
  br i1 %247, label %256, label %248

248:                                              ; preds = %243
  %249 = sext i8 %246 to i32
  %250 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %165, i32 noundef %249)
  %251 = getelementptr inbounds i8, ptr %250, i64 82
  %252 = load i8, ptr %251, align 2, !tbaa !111
  %253 = getelementptr inbounds i8, ptr %196, i64 82
  %254 = load i8, ptr %253, align 2, !tbaa !111
  %255 = icmp sgt i8 %252, %254
  br i1 %255, label %256, label %258

256:                                              ; preds = %248, %243
  %257 = trunc i64 %indvars.iv to i8
  store i8 %257, ptr %163, align 2, !tbaa !137
  br label %258

258:                                              ; preds = %256, %248
  %259 = load i8, ptr %162, align 1, !tbaa !136
  %260 = icmp eq i8 %259, -1
  br i1 %260, label %269, label %261

261:                                              ; preds = %258
  %262 = sext i8 %259 to i32
  %263 = tail call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %165, i32 noundef %262)
  %264 = getelementptr inbounds i8, ptr %263, i64 82
  %265 = load i8, ptr %264, align 2, !tbaa !111
  %266 = getelementptr inbounds i8, ptr %196, i64 82
  %267 = load i8, ptr %266, align 2, !tbaa !111
  %268 = icmp slt i8 %265, %267
  br i1 %268, label %269, label %271

269:                                              ; preds = %261, %258
  %270 = trunc i64 %indvars.iv to i8
  store i8 %270, ptr %162, align 1, !tbaa !136
  br label %271

271:                                              ; preds = %261, %269, %.thread
  %.1446 = phi float [ %.0445552, %.thread ], [ %245, %269 ], [ %245, %261 ]
  %.1443 = phi float [ %229, %.thread ], [ %.0442553, %269 ], [ %.0442553, %261 ]
  %272 = getelementptr inbounds i8, ptr %196, i64 97
  store i8 0, ptr %272, align 1, !tbaa !113
  %273 = load float, ptr %170, align 4, !tbaa !148
  %274 = tail call float @llvm.fmuladd.f32(float %273, float 2.000000e+00, float %.1443)
  %.pre591 = load i32, ptr %23, align 4, !tbaa !90
  br label %275

275:                                              ; preds = %189, %271
  %276 = phi i32 [ %.pre591, %271 ], [ %190, %189 ]
  %.2447 = phi float [ %.1446, %271 ], [ %.0445552, %189 ]
  %.2444 = phi float [ %274, %271 ], [ %.0442553, %189 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %277 = sext i32 %276 to i64
  %278 = icmp slt i64 %indvars.iv.next, %277
  br i1 %278, label %189, label %._crit_edge555.loopexit, !llvm.loop !149

279:                                              ; preds = %._crit_edge555
  %280 = getelementptr inbounds i8, ptr %0, i64 212
  %281 = load float, ptr %280, align 4, !tbaa !150
  %282 = fcmp oeq float %281, 0.000000e+00
  br i1 %282, label %283, label %286

283:                                              ; preds = %279
  %284 = getelementptr inbounds i8, ptr %0, i64 288
  %285 = tail call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %284)
  br label %288

286:                                              ; preds = %279, %._crit_edge555
  %287 = call noundef float @_ZNK6ImRect8GetWidthEv(ptr noundef nonnull align 4 dereferenceable(16) %2)
  br label %288

288:                                              ; preds = %286, %283
  %289 = phi float [ %285, %283 ], [ %287, %286 ]
  %290 = fsub float %289, %187
  %291 = fsub float %290, %.0442.lcssa
  %292 = getelementptr inbounds i8, ptr %0, i64 196
  %293 = load float, ptr %292, align 4, !tbaa !148
  %294 = fmul float %293, 2.000000e+00
  %295 = load i8, ptr %15, align 1, !tbaa !32
  %296 = sitofp i8 %295 to float
  %297 = call float @llvm.fmuladd.f32(float %294, float %296, float %187)
  %298 = getelementptr inbounds i8, ptr %0, i64 216
  store float %297, ptr %298, align 8, !tbaa !151
  %299 = load i32, ptr %23, align 4, !tbaa !90
  %300 = icmp sgt i32 %299, 0
  br i1 %300, label %.lr.ph561, label %._crit_edge562

.lr.ph561:                                        ; preds = %288
  %301 = getelementptr inbounds i8, ptr %0, i64 24
  br label %303

._crit_edge562:                                   ; preds = %343, %288
  %.0449.lcssa = phi float [ %291, %288 ], [ %.2451, %343 ]
  %.lcssa = phi i32 [ %299, %288 ], [ %344, %343 ]
  %302 = fcmp ult float %.0449.lcssa, 1.000000e+00
  br i1 %302, label %.critedge3, label %347

303:                                              ; preds = %.lr.ph561, %343
  %304 = phi i32 [ %299, %.lr.ph561 ], [ %344, %343 ]
  %indvars.iv579 = phi i64 [ 0, %.lr.ph561 ], [ %indvars.iv.next580, %343 ]
  %.0449558 = phi float [ %291, %.lr.ph561 ], [ %.2451, %343 ]
  %305 = load i64, ptr %16, align 8, !tbaa !110
  %306 = shl nuw i64 1, %indvars.iv579
  %307 = and i64 %305, %306
  %.not475 = icmp eq i64 %307, 0
  br i1 %.not475, label %343, label %308

308:                                              ; preds = %303
  %309 = trunc nuw nsw i64 %indvars.iv579 to i32
  %310 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %301, i32 noundef %309)
  %311 = load i32, ptr %310, align 4, !tbaa !97
  %312 = and i32 %311, 8
  %.not476 = icmp eq i32 %312, 0
  br i1 %.not476, label %325, label %313

313:                                              ; preds = %308
  %314 = getelementptr inbounds i8, ptr %310, i64 24
  %315 = load float, ptr %314, align 4, !tbaa !147
  %316 = fdiv float %315, %.0445.lcssa.fr
  %317 = fmul float %291, %316
  %318 = load float, ptr %22, align 4, !tbaa !89
  %319 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %317, float noundef %318)
  %320 = fadd float %319, 0x3F847AE140000000
  %321 = fptosi float %320 to i32
  %322 = sitofp i32 %321 to float
  %323 = getelementptr inbounds i8, ptr %310, i64 16
  store float %322, ptr %323, align 4, !tbaa !145
  %324 = fsub float %.0449558, %322
  br label %325

325:                                              ; preds = %313, %308
  %.1450 = phi float [ %324, %313 ], [ %.0449558, %308 ]
  %326 = getelementptr inbounds i8, ptr %310, i64 85
  %327 = load i8, ptr %326, align 1, !tbaa !109
  %328 = icmp eq i8 %327, -1
  br i1 %328, label %329, label %334

329:                                              ; preds = %325
  %330 = load i8, ptr %163, align 2, !tbaa !137
  %.not477 = icmp eq i8 %330, -1
  br i1 %.not477, label %334, label %331

331:                                              ; preds = %329
  %332 = load i32, ptr %310, align 4, !tbaa !97
  %333 = or i32 %332, 1073741824
  store i32 %333, ptr %310, align 4, !tbaa !97
  br label %334

334:                                              ; preds = %331, %329, %325
  %335 = getelementptr inbounds i8, ptr %310, i64 16
  %336 = load float, ptr %335, align 4, !tbaa !145
  %337 = load float, ptr %22, align 4, !tbaa !89
  %338 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %336, float noundef %337)
  %339 = call noundef float @_ZL7ImFloorf(float noundef %338)
  %340 = getelementptr inbounds i8, ptr %310, i64 4
  store float %339, ptr %340, align 4, !tbaa !152
  %341 = load float, ptr %298, align 8, !tbaa !151
  %342 = fadd float %339, %341
  store float %342, ptr %298, align 8, !tbaa !151
  %.pre593 = load i32, ptr %23, align 4, !tbaa !90
  br label %343

343:                                              ; preds = %303, %334
  %344 = phi i32 [ %.pre593, %334 ], [ %304, %303 ]
  %.2451 = phi float [ %.1450, %334 ], [ %.0449558, %303 ]
  %indvars.iv.next580 = add nuw nsw i64 %indvars.iv579, 1
  %345 = sext i32 %344 to i64
  %346 = icmp slt i64 %indvars.iv.next580, %345
  br i1 %346, label %303, label %._crit_edge562, !llvm.loop !153

347:                                              ; preds = %._crit_edge562
  %348 = load i32, ptr %11, align 4, !tbaa !30
  %349 = and i32 %348, 524288
  %.not465 = icmp eq i32 %349, 0
  br i1 %.not465, label %.preheader, label %.critedge3

.preheader:                                       ; preds = %347
  %350 = fcmp ogt float %.0445.lcssa.fr, 0.000000e+00
  %351 = icmp sgt i32 %.lcssa, 0
  %or.cond8567 = and i1 %351, %350
  br i1 %or.cond8567, label %.lr.ph570.split.preheader, label %.critedge3

.lr.ph570.split.preheader:                        ; preds = %.preheader
  %352 = getelementptr inbounds i8, ptr %0, i64 24
  %353 = getelementptr inbounds i8, ptr %0, i64 40
  %.0441565 = add nsw i32 %.lcssa, -1
  %354 = zext nneg i32 %.0441565 to i64
  br label %.lr.ph570.split

.lr.ph570.split:                                  ; preds = %.lr.ph570.split.preheader, %374
  %indvars.iv582 = phi i64 [ %354, %.lr.ph570.split.preheader ], [ %indvars.iv.next583, %374 ]
  %.3568 = phi float [ %.0449.lcssa, %.lr.ph570.split.preheader ], [ %.5, %374 ]
  %355 = load i64, ptr %17, align 8, !tbaa !112
  %356 = shl nuw i64 1, %indvars.iv582
  %357 = and i64 %355, %356
  %.not466 = icmp eq i64 %357, 0
  br i1 %.not466, label %374, label %358

358:                                              ; preds = %.lr.ph570.split
  %359 = trunc nuw nsw i64 %indvars.iv582 to i32
  %360 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %353, i32 noundef %359)
  %361 = load i8, ptr %360, align 1, !tbaa !91
  %362 = sext i8 %361 to i32
  %363 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %352, i32 noundef %362)
  %364 = load i32, ptr %363, align 4, !tbaa !97
  %365 = and i32 %364, 8
  %.not467 = icmp eq i32 %365, 0
  br i1 %.not467, label %374, label %366

366:                                              ; preds = %358
  %367 = getelementptr inbounds i8, ptr %363, i64 16
  %368 = load float, ptr %367, align 4, !tbaa !145
  %369 = fadd float %368, 1.000000e+00
  store float %369, ptr %367, align 4, !tbaa !145
  %370 = getelementptr inbounds i8, ptr %363, i64 4
  %371 = load float, ptr %370, align 4, !tbaa !152
  %372 = fadd float %371, 1.000000e+00
  store float %372, ptr %370, align 4, !tbaa !152
  %373 = fadd float %.3568, -1.000000e+00
  br label %374

374:                                              ; preds = %366, %358, %.lr.ph570.split
  %.5 = phi float [ %.3568, %.lr.ph570.split ], [ %373, %366 ], [ %.3568, %358 ]
  %indvars.iv.next583 = add nsw i64 %indvars.iv582, -1
  %375 = fcmp oge float %.5, 1.000000e+00
  %376 = icmp sgt i64 %indvars.iv582, 0
  %or.cond8 = and i1 %375, %376
  br i1 %or.cond8, label %.lr.ph570.split, label %.critedge3, !llvm.loop !154

.critedge3:                                       ; preds = %374, %.preheader, %347, %._crit_edge562
  %377 = getelementptr inbounds i8, ptr %0, i64 128
  %378 = load i16, ptr %377, align 8, !tbaa !155
  %379 = sext i16 %378 to i32
  %380 = call noundef ptr @_ZN5ImGui20TableGetInstanceDataEP10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %379)
  %381 = getelementptr inbounds i8, ptr %0, i64 500
  store i8 -1, ptr %381, align 4, !tbaa !156
  %382 = getelementptr inbounds i8, ptr %0, i64 501
  store i8 -1, ptr %382, align 1, !tbaa !157
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #12
  %383 = getelementptr inbounds i8, ptr %0, i64 240
  %384 = load float, ptr %383, align 8, !tbaa !158
  %385 = getelementptr inbounds i8, ptr %0, i64 244
  %386 = load float, ptr %385, align 4, !tbaa !159
  %387 = getelementptr inbounds i8, ptr %0, i64 248
  %388 = load float, ptr %387, align 8, !tbaa !160
  %389 = getelementptr inbounds i8, ptr %0, i64 252
  %390 = load float, ptr %389, align 4, !tbaa !161
  %391 = load float, ptr %380, align 4, !tbaa !162
  %392 = fadd float %386, %391
  %393 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %390, float noundef %392)
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %3, float noundef %384, float noundef %386, float noundef %388, float noundef %393)
  %394 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectj(ptr noundef nonnull align 4 dereferenceable(16) %3, i32 noundef 0)
  %395 = getelementptr inbounds i8, ptr %0, i64 516
  %396 = load i8, ptr %395, align 4, !tbaa !163
  %397 = icmp sgt i8 %396, 0
  %. = select i1 %397, ptr %383, ptr %2
  %398 = load float, ptr %., align 4, !tbaa !164
  %399 = load float, ptr %175, align 8, !tbaa !141
  %400 = load float, ptr %177, align 4, !tbaa !142
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #12
  %401 = 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) %401, i64 16, i1 false), !tbaa.struct !140
  %402 = getelementptr inbounds i8, ptr %0, i64 88
  %403 = getelementptr inbounds i8, ptr %0, i64 96
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %402, i8 0, i64 16, i1 false)
  %404 = load i32, ptr %23, align 4, !tbaa !90
  %405 = icmp sgt i32 %404, 0
  br i1 %405, label %.lr.ph575, label %._crit_edge576

.lr.ph575:                                        ; preds = %.critedge3
  %406 = fadd float %398, %399
  %407 = fsub float %406, %400
  %408 = getelementptr inbounds i8, ptr %0, i64 40
  %409 = getelementptr inbounds i8, ptr %0, i64 24
  %410 = getelementptr inbounds i8, ptr %0, i64 514
  %411 = getelementptr inbounds i8, ptr %5, i64 3580
  %412 = getelementptr inbounds i8, ptr %2, i64 4
  %413 = getelementptr inbounds i8, ptr %0, i64 535
  %414 = getelementptr inbounds i8, ptr %4, i64 8
  br label %423

._crit_edge576:                                   ; preds = %592, %.critedge3
  %415 = load float, ptr %174, align 8, !tbaa !165
  %416 = getelementptr inbounds i8, ptr %0, i64 24
  %417 = load i8, ptr %148, align 1, !tbaa !118
  %418 = sext i8 %417 to i32
  %419 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %416, i32 noundef %418)
  %420 = getelementptr inbounds i8, ptr %419, i64 40
  %421 = load float, ptr %420, align 4, !tbaa !166
  %422 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %415, float noundef %421)
  br i1 %394, label %596, label %606

423:                                              ; preds = %.lr.ph575, %592
  %indvars.iv585 = phi i64 [ 0, %.lr.ph575 ], [ %indvars.iv.next586, %592 ]
  %.0430573 = phi float [ %407, %.lr.ph575 ], [ %.2432, %592 ]
  %.0433572 = phi i1 [ %397, %.lr.ph575 ], [ %.1434, %592 ]
  %.0435571 = phi i32 [ 0, %.lr.ph575 ], [ %.1436, %592 ]
  %424 = trunc nuw nsw i64 %indvars.iv585 to i32
  %425 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN6ImSpanIaEixEi(ptr noundef nonnull align 8 dereferenceable(16) %408, i32 noundef %424)
  %426 = load i8, ptr %425, align 1, !tbaa !91
  %427 = sext i8 %426 to i32
  %428 = call noundef nonnull align 4 dereferenceable(103) ptr @_ZN6ImSpanI16ImGuiTableColumnEixEi(ptr noundef nonnull align 8 dereferenceable(16) %409, i32 noundef %427)
  %429 = load i8, ptr %410, align 2, !tbaa !167
  %430 = icmp sgt i8 %429, 0
  br i1 %430, label %434, label %431

431:                                              ; preds = %423
  %432 = load i8, ptr %395, align 4, !tbaa !163
  %433 = icmp slt i8 %426, %432
  br label %434

434:                                              ; preds = %431, %423
  %435 = phi i1 [ true, %423 ], [ %433, %431 ]
  %436 = zext i1 %435 to i8
  %437 = getelementptr inbounds i8, ptr %428, i64 98
  store i8 %436, ptr %437, align 2, !tbaa !168
  br i1 %.0433572, label %438, label %447

438:                                              ; preds = %434
  %439 = load i8, ptr %395, align 4, !tbaa !163
  %440 = sext i8 %439 to i32
  %441 = icmp eq i32 %.0435571, %440
  br i1 %441, label %442, label %447

442:                                              ; preds = %438
  %443 = load float, ptr %2, align 4, !tbaa !164
  %444 = load float, ptr %383, align 8, !tbaa !158
  %445 = fsub float %443, %444
  %446 = fadd float %.0430573, %445
  br label %447

447:                                              ; preds = %442, %438, %434
  %.1434 = phi i1 [ false, %442 ], [ true, %438 ], [ false, %434 ]
  %.1431 = phi float [ %446, %442 ], [ %.0430573, %438 ], [ %.0430573, %434 ]
  %448 = load i32, ptr %428, align 4, !tbaa !97
  %449 = and i32 %448, -251658241
  store i32 %449, ptr %428, align 4, !tbaa !97
  %450 = load i64, ptr %17, align 8, !tbaa !112
  %451 = shl nuw i64 1, %indvars.iv585
  %452 = and i64 %450, %451
  %453 = icmp eq i64 %452, 0
  br i1 %453, label %454, label %466

454:                                              ; preds = %447
  %455 = getelementptr inbounds i8, ptr %428, i64 32
  %456 = getelementptr inbounds i8, ptr %428, i64 40
  store float %.1431, ptr %456, align 4, !tbaa !166
  store float %.1431, ptr %455, align 4, !tbaa !169
  %457 = getelementptr inbounds i8, ptr %428, i64 52
  store float %.1431, ptr %457, align 4, !tbaa !170
  %458 = getelementptr inbounds i8, ptr %428, i64 12
  store float %.1431, ptr %458, align 4, !tbaa !171
  %459 = getelementptr inbounds i8, ptr %428, i64 8
  store float %.1431, ptr %459, align 4, !tbaa !172
  %460 = getelementptr inbounds i8, ptr %428, i64 4
  store float 0.000000e+00, ptr %460, align 4, !tbaa !152
  %461 = load float, ptr %412, align 4, !tbaa !173
  %462 = getelementptr inbounds i8, ptr %428, i64 36
  store float %461, ptr %462, align 4, !tbaa !174
  %463 = getelementptr inbounds i8, ptr %428, i64 44
  store float 0x47EFFFFFE0000000, ptr %463, align 4, !tbaa !175
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %455, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %464 = getelementptr inbounds i8, ptr %428, i64 93
  store <4 x i8> <i8 0, i8 0, i8 0, i8 1>, ptr %464, align 1, !tbaa !176
  %465 = getelementptr inbounds i8, ptr %428, i64 60
  store float 1.000000e+00, ptr %465, align 4, !tbaa !177
  br label %592

466:                                              ; preds = %447
  br i1 %394, label %467, label %476

467:                                              ; preds = %466
  %468 = load float, ptr %411, align 4, !tbaa !178
  %469 = getelementptr inbounds i8, ptr %428, i64 32
  %470 = load float, ptr %469, align 4, !tbaa !169
  %471 = fcmp oge float %468, %470
  %472 = getelementptr inbounds i8, ptr %428, i64 40
  %473 = load float, ptr %472, align 4
  %474 = fcmp olt float %468, %473
  %or.cond516 = select i1 %471, i1 %474, i1 false
  br i1 %or.cond516, label %475, label %476

475:                                              ; preds = %467
  store i8 %426, ptr %381, align 4, !tbaa !156
  br label %476

476:                                              ; preds = %475, %467, %466
  %477 = getelementptr inbounds i8, ptr %428, i64 8
  store float %.1431, ptr %477, align 4, !tbaa !172
  %478 = call noundef float @_ZN5ImGui22TableGetMaxColumnWidthEPK10ImGuiTablei(ptr noundef nonnull %0, i32 noundef %427)
  %479 = getelementptr inbounds i8, ptr %428, i64 4
  %480 = load float, ptr %479, align 4, !tbaa !152
  %481 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %480, float noundef %478)
  store float %481, ptr %479, align 4, !tbaa !152
  %482 = getelementptr inbounds i8, ptr %428, i64 16
  %483 = load float, ptr %482, align 4, !tbaa !145
  %484 = load float, ptr %22, align 4, !tbaa !89
  %485 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %483, float noundef %484)
  %486 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %481, float noundef %485)
  store float %486, ptr %479, align 4, !tbaa !152
  %487 = fadd float %.1431, %486
  %488 = load float, ptr %177, align 4, !tbaa !142
  %489 = fadd float %487, %488
  %490 = load float, ptr %179, align 8, !tbaa !143
  %491 = fadd float %489, %490
  %492 = load float, ptr %292, align 4, !tbaa !148
  %493 = call float @llvm.fmuladd.f32(float %492, float 2.000000e+00, float %491)
  %494 = getelementptr inbounds i8, ptr %428, i64 12
  store float %493, ptr %494, align 4, !tbaa !171
  %495 = load float, ptr %477, align 4, !tbaa !172
  %496 = fadd float %492, %495
  %497 = fadd float %488, %496
  %498 = getelementptr inbounds i8, ptr %428, i64 52
  store float %497, ptr %498, align 4, !tbaa !170
  %499 = fsub float %493, %492
  %500 = fsub float %499, %490
  %501 = getelementptr inbounds i8, ptr %428, i64 56
  store float %500, ptr %501, align 4, !tbaa !179
  %502 = fmul float %486, 0x3FE4CCCCC0000000
  %503 = call noundef float @_ZL7ImFloorf(float noundef %502)
  %504 = getelementptr inbounds i8, ptr %428, i64 60
  store float %503, ptr %504, align 4, !tbaa !177
  %505 = load float, ptr %477, align 4, !tbaa !172
  %506 = getelementptr inbounds i8, ptr %428, i64 32
  store float %505, ptr %506, align 4, !tbaa !169
  %507 = load float, ptr %412, align 4, !tbaa !173
  %508 = getelementptr inbounds i8, ptr %428, i64 36
  store float %507, ptr %508, align 4, !tbaa !174
  %509 = load float, ptr %494, align 4, !tbaa !171
  %510 = getelementptr inbounds i8, ptr %428, i64 40
  store float %509, ptr %510, align 4, !tbaa !166
  %511 = getelementptr inbounds i8, ptr %428, i64 44
  store float 0x47EFFFFFE0000000, ptr %511, align 4, !tbaa !175
  call void @_ZN6ImRect12ClipWithFullERKS_(ptr noundef nonnull align 4 dereferenceable(16) %506, ptr noundef nonnull align 4 dereferenceable(16) %4)
  %512 = load float, ptr %510, align 4, !tbaa !166
  %513 = load float, ptr %506, align 4, !tbaa !169
  %514 = fcmp ogt float %512, %513
  %515 = getelementptr inbounds i8, ptr %428, i64 93
  %516 = zext i1 %514 to i8
  store i8 %516, ptr %515, align 1, !tbaa !180
  %517 = getelementptr inbounds i8, ptr %428, i64 94
  store i8 1, ptr %517, align 2, !tbaa !181
  br i1 %514, label %518, label %.critedge518

518:                                              ; preds = %476
  %519 = zext nneg i32 %427 to i64
  %520 = shl nuw i64 1, %519
  %521 = load i64, ptr %402, align 8, !tbaa !182
  %522 = or i64 %521, %520
  store i64 %522, ptr %402, align 8, !tbaa !182
  br label %.critedge523

.critedge518:                                     ; preds = %476
  %.old = getelementptr inbounds i8, ptr %428, i64 99
  %.old520 = load i8, ptr %.old, align 1, !tbaa !106
  %.not474.old = icmp eq i8 %.old520, 0
  br i1 %.not474.old, label %523, label %.critedge523

523:                                              ; preds = %.critedge518
  %524 = getelementptr inbounds i8, ptr %428, i64 100
  %525 = load i8, ptr %524, align 4, !tbaa !105
  %526 = icmp ne i8 %525, 0
  %527 = getelementptr inbounds i8, ptr %428, i64 95
  %528 = zext i1 %526 to i8
  store i8 %528, ptr %527, align 1, !tbaa !183
  br i1 %526, label %530, label %535

.critedge523:                                     ; preds = %518, %.critedge518
  %529 = getelementptr inbounds i8, ptr %428, i64 95
  store i8 1, ptr %529, align 1, !tbaa !183
  br label %530

530:                                              ; preds = %.critedge523, %523
  %531 = zext nneg i32 %427 to i64
  %532 = shl nuw i64 1, %531
  %533 = load i64, ptr %403, align 8, !tbaa !144
  %534 = or i64 %533, %532
  store i64 %534, ptr %403, align 8, !tbaa !144
  br label %535

535:                                              ; preds = %530, %523
  %536 = getelementptr inbounds i8, ptr %428, i64 90
  %537 = load i8, ptr %536, align 2, !tbaa !101, !range !28, !noundef !29
  %538 = trunc nuw i8 %537 to i1
  br i1 %538, label %539, label %542

539:                                              ; preds = %535
  %540 = load i8, ptr %413, align 1, !tbaa !184, !range !28, !noundef !29
  %541 = trunc nuw i8 %540 to i1
  br label %542

542:                                              ; preds = %539, %535
  %543 = phi i1 [ true, %535 ], [ %541, %539 ]
  %544 = getelementptr inbounds i8, ptr %428, i64 96
  %545 = zext i1 %543 to i8
  store i8 %545, ptr %544, align 4, !tbaa !185
  %or.cond6.demorgan = and i1 %514, %543
  br i1 %or.cond6.demorgan, label %546, label %547

546:                                              ; preds = %542
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.2, i32 noundef 1033, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui17TableUpdateLayoutEP10ImGuiTable) #11
  unreachable

547:                                              ; preds = %542
  %548 = load i32, ptr %428, align 4, !tbaa !97
  %storemerge.v = select i1 %514, i32 50331648, i32 16777216
  %storemerge = or i32 %548, %storemerge.v
  store i32 %storemerge, ptr %428, align 4, !tbaa !97
  %549 = getelementptr inbounds i8, ptr %428, i64 86
  %550 = load i8, ptr %549, align 2, !tbaa !102
  %.not = icmp eq i8 %550, -1
  br i1 %.not, label %553, label %551

551:                                              ; preds = %547
  %552 = or i32 %storemerge, 67108864
  store i32 %552, ptr %428, align 4, !tbaa !97
  br label %553

553:                                              ; preds = %551, %547
  %554 = phi i32 [ %552, %551 ], [ %storemerge, %547 ]
  %555 = load i8, ptr %381, align 4, !tbaa !156
  %556 = icmp eq i8 %555, %426
  br i1 %556, label %557, label %559

557:                                              ; preds = %553
  %558 = or i32 %554, 134217728
  store i32 %558, ptr %428, align 4, !tbaa !97
  br label %559

559:                                              ; preds = %557, %553
  %560 = load <4 x float>, ptr %498, align 4
  %561 = getelementptr inbounds i8, ptr %428, i64 64
  %562 = shufflevector <4 x float> %560, <4 x float> poison, <4 x i32> zeroinitializer
  store <4 x float> %562, ptr %561, align 4, !tbaa !104
  %563 = load i8, ptr %413, align 1, !tbaa !184, !range !28, !noundef !29
  %564 = icmp eq i8 %563, 0
  br i1 %564, label %565, label %572

565:                                              ; preds = %559
  %566 = getelementptr inbounds i8, ptr %428, i64 99
  %567 = load i8, ptr %566, align 1, !tbaa !106
  %568 = lshr i8 %567, 1
  store i8 %568, ptr %566, align 1, !tbaa !106
  %569 = getelementptr inbounds i8, ptr %428, i64 100
  %570 = load i8, ptr %569, align 4, !tbaa !105
  %571 = lshr i8 %570, 1
  store i8 %571, ptr %569, align 4, !tbaa !105
  br label %572

572:                                              ; preds = %565, %559
  %573 = load i8, ptr %395, align 4, !tbaa !163
  %574 = sext i8 %573 to i32
  %575 = icmp slt i32 %.0435571, %574
  br i1 %575, label %576, label %582

576:                                              ; preds = %572
  %577 = load float, ptr %494, align 4, !tbaa !171
  %578 = fadd float %577, 1.000000e+00
  %579 = load float, ptr %4, align 4, !tbaa !164
  %580 = load float, ptr %414, align 4, !tbaa !186
  %581 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %578, float noundef %579, float noundef %580)
  store float %581, ptr %4, align 4, !tbaa !164
  br label %582

582:                                              ; preds = %576, %572
  %583 = load float, ptr %479, align 4, !tbaa !152
  %584 = load float, ptr %177, align 4, !tbaa !142
  %585 = fadd float %583, %584
  %586 = load float, ptr %179, align 8, !tbaa !143
  %587 = fadd float %585, %586
  %588 = load float, ptr %292, align 4, !tbaa !148
  %589 = call float @llvm.fmuladd.f32(float %588, float 2.000000e+00, float %587)
  %590 = fadd float %.1431, %589
  %591 = add nsw i32 %.0435571, 1
  br label %592

592:                                              ; preds = %582, %454
  %.1436 = phi i32 [ %.0435571, %454 ], [ %591, %582 ]
  %.2432 = phi float [ %.1431, %454 ], [ %590, %582 ]
  %indvars.iv.next586 = add nuw nsw i64 %indvars.iv585, 1
  %593 = load i32, ptr %23, align 4, !tbaa !90
  %594 = sext i32 %593 to i64
  %595 = icmp slt i64 %indvars.iv.next586, %594
  br i1 %595, label %423, label %._crit_edge576, !llvm.loop !187

596:                                              ; preds = %._crit_edge576
  %597 = load i8, ptr %381, align 4, !tbaa !156
  %598 = icmp eq i8 %597, -1
  br i1 %598, label %599, label %606

599:                                              ; preds = %596
  %600 = getelementptr inbounds i8, ptr %5, i64 3580
  %601 = load float, ptr %600, align 4, !tbaa !178
  %602 = fcmp ult float %601, %422
  br i1 %602, label %606, label %603

603:                                              ; preds = %599
  %604 = load i32, ptr %23, align 4, !tbaa !90
  %605 = trunc i32 %604 to i8
  store i8 %605, ptr %381, align 4, !tbaa !156
  br label %606

606:                                              ; preds = %599, %603, %596, %._crit_edge576
  %607 = and i8 %.0423.lcssa, 1
  %608 = icmp ne i8 %607, 0
  %.pre594.pre = load i32, ptr %11, align 4, !tbaa !30
  %609 = and i32 %.pre594.pre, 1
  %.not468 = icmp eq i32 %609, 0
  %or.cond = select i1 %608, i1 true, i1 %.not468
  br i1 %or.cond, label %612, label %610

610:                                              ; preds = %606
  %611 = and i32 %.pre594.pre, -2
  store i32 %611, ptr %11, align 4, !tbaa !30
  br label %612

612:                                              ; preds = %610, %606
  %.pre594 = phi i32 [ %611, %610 ], [ %.pre594.pre, %606 ]
  %613 = load i8, ptr %162, align 1, !tbaa !136
  %.not469 = icmp eq i8 %613, -1
  br i1 %.not469, label %616, label %614

614:                                              ; preds = %612
  %615 = and i32 %.pre594, -65537
  store i32 %615, ptr %11, align 4, !tbaa !30
  br label %616

616:                                              ; preds = %614, %612
  %617 = phi i32 [ %615, %614 ], [ %.pre594, %612 ]
  %618 = and i32 %617, 65536
  %.not470 = icmp eq i32 %618, 0
  br i1 %.not470, label %624, label %619

619:                                              ; preds = %616
  %620 = getelementptr inbounds i8, ptr %0, i64 280
  store float %422, ptr %620, align 8, !tbaa !188
  store float %422, ptr %387, align 8, !tbaa !160
  %621 = getelementptr inbounds i8, ptr %0, i64 296
  %622 = load float, ptr %621, align 8, !tbaa !189
  %623 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %622, float noundef %422)
  store float %623, ptr %621, align 8, !tbaa !189
  br label %624

624:                                              ; preds = %619, %616
  %625 = getelementptr inbounds i8, ptr %0, i64 392
  %626 = load ptr, ptr %625, align 8, !tbaa !120
  %627 = getelementptr inbounds i8, ptr %626, i64 528
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %627, ptr noundef nonnull align 8 dereferenceable(16) %174, i64 16, i1 false), !tbaa.struct !140
  %628 = load float, ptr %401, align 8, !tbaa !190
  %629 = getelementptr inbounds i8, ptr %0, i64 176
  store float %628, ptr %629, align 8, !tbaa !191
  %630 = getelementptr inbounds i8, ptr %0, i64 296
  %631 = load float, ptr %630, align 8, !tbaa !189
  %632 = getelementptr inbounds i8, ptr %0, i64 180
  store float %631, ptr %632, align 4, !tbaa !192
  call void @_ZN5ImGui22TableSetupDrawChannelsEP10ImGuiTable(ptr noundef nonnull %0)
  %633 = load i32, ptr %11, align 4, !tbaa !30
  %634 = and i32 %633, 1
  %.not471 = icmp eq i32 %634, 0
  br i1 %.not471, label %636, label %635

635:                                              ; preds = %624
  call void @_ZN5ImGui18TableUpdateBordersEP10ImGuiTable(ptr noundef nonnull %0)
  br label %636

636:                                              ; preds = %635, %624
  %637 = getelementptr inbounds i8, ptr %380, i64 4
  store float 0.000000e+00, ptr %637, align 4, !tbaa !193
  store i8 1, ptr %6, align 1, !tbaa !9
  %638 = getelementptr inbounds i8, ptr %0, i64 525
  store i8 0, ptr %638, align 1, !tbaa !194
  %639 = call noundef zeroext i1 @_ZN5ImGui26TableBeginContextMenuPopupEP10ImGuiTable(ptr noundef nonnull %0)
  br i1 %639, label %640, label %641

640:                                              ; preds = %636
  call void @_ZN5ImGui20TableDrawContextMenuEP10ImGuiTable(ptr noundef nonnull %0)
  call void @_ZN5ImGui8EndPopupEv()
  br label %641

641:                                              ; preds = %640, %636
  %642 = getelementptr inbounds i8, ptr %0, i64 524
  %643 = load i8, ptr %642, align 4, !tbaa !103, !range !28, !noundef !29
  %644 = trunc nuw i8 %643 to i1
  %.pre596 = load i32, ptr %11, align 4, !tbaa !30
  %645 = and i32 %.pre596, 8
  %.not472 = icmp ne i32 %645, 0
  %or.cond606.not = select i1 %644, i1 %.not472, i1 false
  br i1 %or.cond606.not, label %646, label %647

646:                                              ; preds = %641
  call void @_ZN5ImGui19TableSortSpecsBuildEP10ImGuiTable(ptr noundef nonnull %0)
  %.pre595 = load i32, ptr %11, align 4, !tbaa !30
  br label %647

647:                                              ; preds = %646, %641
  %648 = phi i32 [ %.pre595, %646 ], [ %.pre596, %641 ]
  %649 = load ptr, ptr %625, align 8, !tbaa !120
  %650 = and i32 %648, 1048576
  %.not473 = icmp eq i32 %650, 0
  br i1 %.not473, label %656, label %651

651:                                              ; preds = %647
  %652 = getelementptr inbounds i8, ptr %0, i64 416
  %653 = load ptr, ptr %652, align 8, !tbaa !195
  %654 = getelementptr inbounds i8, ptr %649, i64 640
  %655 = load ptr, ptr %654, align 8, !tbaa !196
  call void @_ZN18ImDrawListSplitter17SetCurrentChannelEP10ImDrawListi(ptr noundef nonnull align 8 dereferenceable(24) %653, ptr noundef %655, i32 noundef 2)
  br label %661

656:                                              ; preds = %647
  %657 = getelementptr inbounds i8, ptr %649, i64 640
  %658 = load ptr, ptr %657, align 8, !tbaa !196
  %659 = getelementptr inbounds i8, ptr %649, i64 544
  %660 = getelementptr inbounds i8, ptr %649, i64 552
  call void @_ZN10ImDrawList12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 8 dereferenceable(196) %658, ptr noundef nonnull align 4 dereferenceable(8) %659, ptr noundef nonnull align 4 dereferenceable(8) %660, i1 noundef zeroext false)
  br label %661

661:                                              ; preds = %656, %651
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #12
  ret void
}

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui8EndPopupEv() local_unnamed_addr #9

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #10

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !27, i64 521}
!10 = !{!"_ZTS10ImGuiTable", !11, i64 0, !11, i64 4, !6, i64 8, !6, i64 16, !12, i64 24, !13, i64 40, !14, i64 56, !15, i64 72, !15, i64 80, !15, i64 88, !15, i64 96, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !11, i64 120, !11, i64 124, !16, i64 128, !16, i64 130, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !17, i64 148, !11, i64 152, !11, i64 154, !11, i64 156, !7, i64 160, !11, i64 168, !11, i64 172, !17, i64 176, !17, i64 180, !17, i64 184, !17, i64 188, !17, i64 192, !17, i64 196, !17, i64 200, !17, i64 204, !17, i64 208, !17, i64 212, !17, i64 216, !17, i64 220, !17, i64 224, !17, i64 228, !17, i64 232, !17, i64 236, !18, i64 240, !18, i64 256, !18, i64 272, !18, i64 288, !18, i64 304, !18, i64 320, !18, i64 336, !18, i64 352, !18, i64 368, !6, i64 384, !6, i64 392, !20, i64 400, !6, i64 416, !22, i64 424, !23, i64 432, !24, i64 448, !25, i64 464, !26, i64 480, !7, i64 496, !7, i64 497, !7, i64 498, !7, i64 499, !7, i64 500, !7, i64 501, !7, i64 502, !7, i64 503, !7, i64 504, !7, i64 505, !7, i64 506, !7, i64 507, !7, i64 508, !7, i64 509, !7, i64 510, !7, i64 511, !7, i64 512, !7, i64 513, !7, i64 514, !7, i64 515, !7, i64 516, !7, i64 517, !7, i64 518, !7, i64 519, !7, i64 520, !27, i64 521, !27, i64 522, !27, i64 523, !27, i64 524, !27, i64 525, !27, i64 526, !27, i64 527, !27, i64 528, !27, i64 529, !27, i64 530, !27, i64 531, !27, i64 532, !27, i64 533, !27, i64 534, !27, i64 535}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTS6ImSpanI16ImGuiTableColumnE", !6, i64 0, !6, i64 8}
!13 = !{!"_ZTS6ImSpanIaE", !6, i64 0, !6, i64 8}
!14 = !{!"_ZTS6ImSpanI18ImGuiTableCellDataE", !6, i64 0, !6, i64 8}
!15 = !{!"long long", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"float", !7, i64 0}
!18 = !{!"_ZTS6ImRect", !19, i64 0, !19, i64 8}
!19 = !{!"_ZTS6ImVec2", !17, i64 0, !17, i64 4}
!20 = !{!"_ZTS15ImGuiTextBuffer", !21, i64 0}
!21 = !{!"_ZTS8ImVectorIcE", !11, i64 0, !11, i64 4, !6, i64 8}
!22 = !{!"_ZTS22ImGuiTableInstanceData", !17, i64 0, !17, i64 4}
!23 = !{!"_ZTS8ImVectorI22ImGuiTableInstanceDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!24 = !{!"_ZTS25ImGuiTableColumnSortSpecs", !11, i64 0, !16, i64 4, !16, i64 6, !11, i64 8}
!25 = !{!"_ZTS8ImVectorI25ImGuiTableColumnSortSpecsE", !11, i64 0, !11, i64 4, !6, i64 8}
!26 = !{!"_ZTS19ImGuiTableSortSpecs", !6, i64 0, !11, i64 8, !27, i64 12}
!27 = !{!"bool", !7, i64 0}
!28 = !{i8 0, i8 2}
!29 = !{}
!30 = !{!10, !11, i64 4}
!31 = !{!10, !27, i64 529}
!32 = !{!10, !7, i64 497}
!33 = !{!10, !7, i64 508}
!34 = !{!35, !17, i64 14364}
!35 = !{!"_ZTS12ImGuiContext", !27, i64 0, !27, i64 1, !36, i64 8, !38, i64 14272, !38, i64 14288, !39, i64 14304, !6, i64 15352, !17, i64 15360, !17, i64 15364, !40, i64 15368, !42, i64 15880, !11, i64 15888, !11, i64 15892, !11, i64 15896, !27, i64 15900, !27, i64 15901, !27, i64 15902, !27, i64 15903, !27, i64 15904, !6, i64 15912, !43, i64 15920, !43, i64 15936, !43, i64 15952, !44, i64 15968, !45, i64 15984, !11, i64 16000, !19, i64 16004, !6, i64 16016, !6, i64 16024, !6, i64 16032, !6, i64 16040, !6, i64 16048, !19, i64 16056, !17, i64 16064, !11, i64 16068, !11, i64 16072, !11, i64 16076, !27, i64 16080, !27, i64 16081, !27, i64 16082, !27, i64 16083, !17, i64 16084, !17, i64 16088, !11, i64 16092, !11, i64 16096, !17, i64 16100, !27, i64 16104, !27, i64 16105, !27, i64 16106, !27, i64 16107, !27, i64 16108, !27, i64 16109, !19, i64 16112, !6, i64 16120, !47, i64 16128, !11, i64 16132, !11, i64 16136, !27, i64 16140, !27, i64 16141, !6, i64 16144, !11, i64 16152, !17, i64 16156, !11, i64 16160, !48, i64 16164, !11, i64 16184, !11, i64 16188, !49, i64 16192, !50, i64 16212, !51, i64 16272, !52, i64 16384, !53, i64 16400, !54, i64 16416, !55, i64 16432, !56, i64 16448, !57, i64 16464, !58, i64 16480, !58, i64 16496, !11, i64 16512, !59, i64 16520, !6, i64 16536, !11, i64 16544, !11, i64 16548, !11, i64 16552, !11, i64 16556, !11, i64 16560, !11, i64 16564, !11, i64 16568, !11, i64 16572, !11, i64 16576, !11, i64 16580, !11, i64 16584, !11, i64 16588, !47, i64 16592, !60, i64 16596, !27, i64 16600, !27, i64 16601, !27, i64 16602, !27, i64 16603, !27, i64 16604, !27, i64 16605, !27, i64 16606, !11, i64 16608, !18, i64 16612, !27, i64 16628, !27, i64 16629, !27, i64 16630, !11, i64 16632, !11, i64 16636, !11, i64 16640, !11, i64 16644, !11, i64 16648, !11, i64 16652, !18, i64 16656, !18, i64 16672, !11, i64 16688, !11, i64 16692, !11, i64 16696, !61, i64 16704, !61, i64 16752, !61, i64 16800, !61, i64 16848, !6, i64 16896, !6, i64 16904, !6, i64 16912, !17, i64 16920, !17, i64 16924, !27, i64 16928, !19, i64 16932, !19, i64 16940, !17, i64 16948, !11, i64 16952, !27, i64 16956, !27, i64 16957, !27, i64 16958, !11, i64 16960, !11, i64 16964, !11, i64 16968, !62, i64 16976, !18, i64 17040, !11, i64 17056, !11, i64 17060, !17, i64 17064, !11, i64 17068, !11, i64 17072, !11, i64 17076, !11, i64 17080, !63, i64 17088, !7, i64 17104, !11, i64 17120, !64, i64 17128, !6, i64 17144, !11, i64 17152, !65, i64 17160, !66, i64 17176, !68, i64 17216, !69, i64 17232, !6, i64 17248, !70, i64 17256, !72, i64 17296, !73, i64 17312, !11, i64 17328, !11, i64 17332, !17, i64 17336, !17, i64 17340, !19, i64 17344, !74, i64 17352, !77, i64 21072, !11, i64 21184, !11, i64 21188, !17, i64 21192, !17, i64 21196, !11, i64 21200, !41, i64 21204, !79, i64 21220, !17, i64 21268, !17, i64 21272, !27, i64 21276, !27, i64 21277, !17, i64 21280, !17, i64 21284, !17, i64 21288, !17, i64 21292, !16, i64 21296, !16, i64 21298, !21, i64 21304, !55, i64 21320, !80, i64 21336, !80, i64 21352, !7, i64 21368, !27, i64 21369, !17, i64 21372, !20, i64 21376, !81, i64 21392, !82, i64 21408, !83, i64 21424, !84, i64 21440, !11, i64 21456, !27, i64 21460, !85, i64 21464, !6, i64 21472, !20, i64 21480, !6, i64 21496, !6, i64 21504, !17, i64 21512, !27, i64 21516, !11, i64 21520, !11, i64 21524, !11, i64 21528, !11, i64 21532, !20, i64 21536, !27, i64 21552, !7, i64 21553, !11, i64 21556, !86, i64 21560, !87, i64 21576, !7, i64 21616, !11, i64 21856, !11, i64 21860, !17, i64 21864, !11, i64 21868, !11, i64 21872, !11, i64 21876, !21, i64 21880}
!36 = !{!"_ZTS7ImGuiIO", !11, i64 0, !11, i64 4, !19, i64 8, !17, i64 16, !17, i64 20, !6, i64 24, !6, i64 32, !17, i64 40, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !17, i64 64, !6, i64 72, !6, i64 80, !17, i64 88, !27, i64 92, !6, i64 96, !19, i64 104, !27, i64 112, !27, i64 113, !27, i64 114, !27, i64 115, !27, i64 116, !27, i64 117, !27, i64 118, !27, i64 119, !17, i64 120, !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, !6, i64 200, !27, i64 208, !27, i64 209, !27, i64 210, !27, i64 211, !27, i64 212, !27, i64 213, !27, i64 214, !17, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !19, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !19, i64 3572, !7, i64 3580, !17, i64 3588, !17, i64 3592, !27, i64 3596, !27, i64 3597, !27, i64 3598, !27, i64 3599, !11, i64 3600, !7, i64 3604, !27, i64 14036, !19, i64 14040, !7, i64 14048, !7, i64 14088, !7, i64 14128, !7, i64 14133, !7, i64 14138, !7, i64 14148, !7, i64 14158, !7, i64 14163, !7, i64 14168, !7, i64 14176, !7, i64 14196, !7, i64 14216, !17, i64 14236, !27, i64 14240, !27, i64 14241, !7, i64 14242, !27, i64 14243, !16, i64 14244, !37, i64 14248}
!37 = !{!"_ZTS8ImVectorItE", !11, i64 0, !11, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !11, i64 0, !11, i64 4, !6, i64 8}
!39 = !{!"_ZTS10ImGuiStyle", !17, i64 0, !17, i64 4, !19, i64 8, !17, i64 16, !17, i64 20, !19, i64 24, !19, i64 32, !11, i64 40, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !19, i64 60, !17, i64 68, !17, i64 72, !19, i64 76, !19, i64 84, !19, i64 92, !19, i64 100, !17, i64 108, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !17, i64 128, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !11, i64 148, !19, i64 152, !19, i64 160, !19, i64 168, !19, i64 176, !17, i64 184, !27, i64 188, !27, i64 189, !27, i64 190, !17, i64 192, !17, i64 196, !7, i64 200}
!40 = !{!"_ZTS20ImDrawListSharedData", !19, i64 0, !6, i64 8, !17, i64 16, !17, i64 20, !17, i64 24, !41, i64 28, !11, i64 44, !7, i64 48, !17, i64 432, !7, i64 436, !6, i64 504}
!41 = !{!"_ZTS6ImVec4", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12}
!42 = !{!"double", !7, i64 0}
!43 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !11, i64 0, !11, i64 4, !6, i64 8}
!44 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!45 = !{!"_ZTS12ImGuiStorage", !46, i64 0}
!46 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !11, i64 0, !11, i64 4, !6, i64 8}
!47 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!48 = !{!"_ZTS10ImBitArrayILi140ELin512EE", !7, i64 0}
!49 = !{!"_ZTS17ImGuiNextItemData", !11, i64 0, !17, i64 4, !11, i64 8, !11, i64 12, !27, i64 16}
!50 = !{!"_ZTS17ImGuiLastItemData", !11, i64 0, !11, i64 4, !11, i64 8, !18, i64 12, !18, i64 28, !18, i64 44}
!51 = !{!"_ZTS19ImGuiNextWindowData", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !27, i64 56, !18, i64 60, !6, i64 80, !6, i64 88, !17, i64 96, !19, i64 100}
!52 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !11, i64 0, !11, i64 4, !6, i64 8}
!53 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !11, i64 0, !11, i64 4, !6, i64 8}
!54 = !{!"_ZTS8ImVectorIP6ImFontE", !11, i64 0, !11, i64 4, !6, i64 8}
!55 = !{!"_ZTS8ImVectorIjE", !11, i64 0, !11, i64 4, !6, i64 8}
!56 = !{!"_ZTS8ImVectorIiE", !11, i64 0, !11, i64 4, !6, i64 8}
!57 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!59 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !11, i64 0, !11, i64 4, !6, i64 8}
!60 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!61 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !11, i64 8, !11, i64 12, !18, i64 16, !11, i64 32, !17, i64 36, !17, i64 40, !17, i64 44}
!62 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !7, i64 24, !27, i64 57, !27, i64 58}
!63 = !{!"_ZTS8ImVectorIhE", !11, i64 0, !11, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !11, i64 0, !11, i64 4, !6, i64 8}
!66 = !{!"_ZTS6ImPoolI10ImGuiTableE", !67, i64 0, !45, i64 16, !11, i64 32, !11, i64 36}
!67 = !{!"_ZTS8ImVectorI10ImGuiTableE", !11, i64 0, !11, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIfE", !11, i64 0, !11, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !11, i64 0, !11, i64 4, !6, i64 8}
!70 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !71, i64 0, !45, i64 16, !11, i64 32, !11, i64 36}
!71 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !11, i64 0, !11, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !11, i64 0, !11, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !11, i64 0, !11, i64 4, !6, i64 8}
!74 = !{!"_ZTS19ImGuiInputTextState", !11, i64 0, !11, i64 4, !11, i64 8, !37, i64 16, !21, i64 32, !21, i64 48, !27, i64 64, !11, i64 68, !17, i64 72, !75, i64 76, !17, i64 3704, !27, i64 3708, !27, i64 3709, !27, i64 3710, !11, i64 3712}
!75 = !{!"_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, !17, i64 28, !76, i64 32}
!76 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !11, i64 3588, !11, i64 3592}
!77 = !{!"_ZTS6ImFont", !68, i64 0, !17, i64 16, !17, i64 20, !37, i64 24, !78, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !16, i64 80, !16, i64 82, !16, i64 84, !16, i64 86, !27, i64 88, !17, i64 92, !17, i64 96, !17, i64 100, !11, i64 104, !7, i64 108}
!78 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !11, i64 0, !11, i64 4, !6, i64 8}
!79 = !{!"_ZTS21ImGuiComboPreviewData", !18, i64 0, !19, i64 16, !19, i64 24, !19, i64 32, !17, i64 40, !11, i64 44}
!80 = !{!"_ZTS20ImGuiPlatformImeData", !27, i64 0, !19, i64 4, !17, i64 12}
!81 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !11, i64 0, !11, i64 4, !6, i64 8}
!82 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !21, i64 0}
!83 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !21, i64 0}
!84 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !11, i64 0, !11, i64 4, !6, i64 8}
!85 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!86 = !{!"_ZTS18ImGuiMetricsConfig", !27, i64 0, !27, i64 1, !27, i64 2, !27, i64 3, !27, i64 4, !27, i64 5, !27, i64 6, !11, i64 8, !11, i64 12}
!87 = !{!"_ZTS14ImGuiStackTool", !11, i64 0, !11, i64 4, !11, i64 8, !88, i64 16, !27, i64 32, !17, i64 36}
!88 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !11, i64 0, !11, i64 4, !6, i64 8}
!89 = !{!10, !17, i64 188}
!90 = !{!10, !11, i64 116}
!91 = !{!7, !7, i64 0}
!92 = !{!10, !7, i64 499}
!93 = !{!94, !16, i64 80}
!94 = !{!"_ZTS16ImGuiTableColumn", !11, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !17, i64 16, !17, i64 20, !17, i64 24, !17, i64 28, !18, i64 32, !11, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !17, i64 64, !17, i64 68, !17, i64 72, !17, i64 76, !16, i64 80, !7, i64 82, !7, i64 83, !7, i64 84, !7, i64 85, !7, i64 86, !7, i64 87, !7, i64 88, !7, i64 89, !27, i64 90, !27, i64 91, !27, i64 92, !27, i64 93, !27, i64 94, !27, i64 95, !27, i64 96, !27, i64 97, !7, i64 98, !7, i64 99, !7, i64 100, !7, i64 101, !7, i64 101, !7, i64 101, !7, i64 102}
!95 = !{!94, !11, i64 48}
!96 = !{!94, !17, i64 28}
!97 = !{!94, !11, i64 0}
!98 = !{!94, !27, i64 92}
!99 = !{!94, !27, i64 91}
!100 = !{!10, !27, i64 528}
!101 = !{!94, !27, i64 90}
!102 = !{!94, !7, i64 86}
!103 = !{!10, !27, i64 524}
!104 = !{!17, !17, i64 0}
!105 = !{!94, !7, i64 100}
!106 = !{!94, !7, i64 99}
!107 = !{!94, !7, i64 83}
!108 = !{!94, !7, i64 84}
!109 = !{!94, !7, i64 85}
!110 = !{!10, !15, i64 80}
!111 = !{!94, !7, i64 82}
!112 = !{!10, !15, i64 72}
!113 = !{!94, !27, i64 97}
!114 = !{!94, !17, i64 20}
!115 = distinct !{!115, !116}
!116 = !{!"llvm.loop.mustprogress"}
!117 = !{!10, !7, i64 496}
!118 = !{!10, !7, i64 509}
!119 = !{!10, !6, i64 384}
!120 = !{!10, !6, i64 392}
!121 = !{!122, !27, i64 155}
!122 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !11, i64 8, !11, i64 12, !6, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !19, i64 56, !19, i64 64, !19, i64 72, !17, i64 80, !17, i64 84, !11, i64 88, !11, i64 92, !11, i64 96, !19, i64 100, !19, i64 108, !19, i64 116, !19, i64 124, !19, i64 132, !19, i64 140, !27, i64 148, !27, i64 149, !27, i64 150, !27, i64 151, !27, i64 152, !27, i64 153, !27, i64 154, !27, i64 155, !27, i64 156, !27, i64 157, !27, i64 158, !27, i64 159, !27, i64 160, !7, i64 161, !16, i64 162, !16, i64 164, !16, i64 166, !16, i64 168, !11, i64 172, !7, i64 176, !7, i64 177, !7, i64 178, !27, i64 179, !11, i64 180, !7, i64 184, !7, i64 185, !7, i64 186, !7, i64 187, !11, i64 188, !11, i64 189, !11, i64 190, !19, i64 192, !19, i64 200, !55, i64 208, !123, i64 224, !18, i64 464, !18, i64 480, !18, i64 496, !18, i64 512, !18, i64 528, !18, i64 544, !18, i64 560, !126, i64 576, !126, i64 580, !11, i64 584, !17, i64 588, !17, i64 592, !45, i64 600, !127, i64 616, !17, i64 632, !11, i64 636, !6, i64 640, !128, i64 648, !6, i64 848, !6, i64 856, !6, i64 864, !6, i64 872, !6, i64 880, !6, i64 888, !6, i64 896, !7, i64 904, !7, i64 912, !11, i64 944, !11, i64 948, !27, i64 952}
!123 = !{!"_ZTS19ImGuiWindowTempData", !19, i64 0, !19, i64 8, !19, i64 16, !19, i64 24, !19, i64 32, !19, i64 40, !19, i64 48, !17, i64 56, !17, i64 60, !27, i64 64, !27, i64 65, !124, i64 68, !124, i64 72, !124, i64 76, !19, i64 80, !60, i64 88, !16, i64 92, !16, i64 94, !11, i64 96, !27, i64 100, !27, i64 101, !27, i64 102, !19, i64 104, !125, i64 112, !11, i64 140, !11, i64 144, !43, i64 152, !6, i64 168, !6, i64 176, !11, i64 184, !11, i64 188, !11, i64 192, !17, i64 196, !17, i64 200, !68, i64 208, !68, i64 224}
!124 = !{!"_ZTS6ImVec1", !17, i64 0}
!125 = !{!"_ZTS16ImGuiMenuColumns", !11, i64 0, !11, i64 4, !16, i64 8, !16, i64 10, !16, i64 12, !16, i64 14, !16, i64 16, !7, i64 18}
!126 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!127 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !11, i64 0, !11, i64 4, !6, i64 8}
!128 = !{!"_ZTS10ImDrawList", !129, i64 0, !37, i64 16, !130, i64 32, !11, i64 48, !11, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !131, i64 88, !132, i64 104, !133, i64 120, !134, i64 136, !135, i64 168, !17, i64 192}
!129 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !11, i64 0, !11, i64 4, !6, i64 8}
!130 = !{!"_ZTS8ImVectorI10ImDrawVertE", !11, i64 0, !11, i64 4, !6, i64 8}
!131 = !{!"_ZTS8ImVectorI6ImVec4E", !11, i64 0, !11, i64 4, !6, i64 8}
!132 = !{!"_ZTS8ImVectorIPvE", !11, i64 0, !11, i64 4, !6, i64 8}
!133 = !{!"_ZTS8ImVectorI6ImVec2E", !11, i64 0, !11, i64 4, !6, i64 8}
!134 = !{!"_ZTS15ImDrawCmdHeader", !41, i64 0, !6, i64 16, !11, i64 24}
!135 = !{!"_ZTS18ImDrawListSplitter", !11, i64 0, !11, i64 4, !69, i64 8}
!136 = !{!10, !7, i64 511}
!137 = !{!10, !7, i64 510}
!138 = !{!10, !7, i64 498}
!139 = !{!10, !17, i64 224}
!140 = !{i64 0, i64 4, !104, i64 4, i64 4, !104, i64 8, i64 4, !104, i64 12, i64 4, !104}
!141 = !{!10, !17, i64 192}
!142 = !{!10, !17, i64 204}
!143 = !{!10, !17, i64 208}
!144 = !{!10, !15, i64 96}
!145 = !{!94, !17, i64 16}
!146 = !{!10, !27, i64 523}
!147 = !{!94, !17, i64 24}
!148 = !{!10, !17, i64 196}
!149 = distinct !{!149, !116}
!150 = !{!10, !17, i64 212}
!151 = !{!10, !17, i64 216}
!152 = !{!94, !17, i64 4}
!153 = distinct !{!153, !116}
!154 = distinct !{!154, !116}
!155 = !{!10, !16, i64 128}
!156 = !{!10, !7, i64 500}
!157 = !{!10, !7, i64 501}
!158 = !{!10, !17, i64 240}
!159 = !{!10, !17, i64 244}
!160 = !{!10, !17, i64 248}
!161 = !{!10, !17, i64 252}
!162 = !{!22, !17, i64 0}
!163 = !{!10, !7, i64 516}
!164 = !{!18, !17, i64 0}
!165 = !{!10, !17, i64 272}
!166 = !{!94, !17, i64 40}
!167 = !{!10, !7, i64 514}
!168 = !{!94, !7, i64 98}
!169 = !{!94, !17, i64 32}
!170 = !{!94, !17, i64 52}
!171 = !{!94, !17, i64 12}
!172 = !{!94, !17, i64 8}
!173 = !{!18, !17, i64 4}
!174 = !{!94, !17, i64 36}
!175 = !{!94, !17, i64 44}
!176 = !{!27, !27, i64 0}
!177 = !{!94, !17, i64 60}
!178 = !{!35, !17, i64 3580}
!179 = !{!94, !17, i64 56}
!180 = !{!94, !27, i64 93}
!181 = !{!94, !27, i64 94}
!182 = !{!10, !15, i64 88}
!183 = !{!94, !27, i64 95}
!184 = !{!10, !27, i64 535}
!185 = !{!94, !27, i64 96}
!186 = !{!18, !17, i64 8}
!187 = distinct !{!187, !116}
!188 = !{!10, !17, i64 280}
!189 = !{!10, !17, i64 296}
!190 = !{!10, !17, i64 288}
!191 = !{!10, !17, i64 176}
!192 = !{!10, !17, i64 180}
!193 = !{!22, !17, i64 4}
!194 = !{!10, !27, i64 525}
!195 = !{!10, !6, i64 416}
!196 = !{!122, !6, i64 640}


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