; LLVM IR from drohmer/cgp :: library/third_party/src/imgui/imgui.ll (ZN5ImGui5BeginEPKcPbi)

; 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.ImGuiResizeGripDef = type { %struct.ImVec2, %struct.ImVec2, i32, i32 }
%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec4 = type { float, float, float, float }
%struct.ImGuiContext = type <{ i8, i8, i8, [5 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, [4 x i8], %class.ImVector, %class.ImVector, %class.ImVector, %class.ImVector, %struct.ImGuiStorage, i32, [4 x i8], ptr, ptr, ptr, i32, i8, [3 x i8], i32, float, float, i32, i32, i32, float, i8, i8, i8, i8, i8, [3 x i8], i32, %struct.ImVec2, ptr, ptr, i32, i32, float, [4 x i8], ptr, %class.ImVector.1, %class.ImVector.2, %class.ImVector.3, %class.ImVector.4, %class.ImVector.4, %struct.ImGuiNextWindowData, i8, [3 x i8], i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.ImRect, i32, ptr, ptr, ptr, float, float, i8, [3 x i8], i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.ImRect, i8, i8, [2 x i8], i32, i32, i32, i32, i32, %struct.ImGuiNavMoveResult, %struct.ImGuiNavMoveResult, %struct.ImGuiNavMoveResult, %struct.ImDrawData, %struct.ImDrawDataBuilder, float, [4 x i8], %struct.ImDrawList, i32, i8, i8, [2 x i8], i32, i32, i32, [4 x i8], %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, %class.ImVector.13, [8 x i8], %struct.ImGuiInputTextState, %struct.ImFont, i32, i32, %struct.ImVec4, i8, [3 x i8], float, float, %struct.ImVec2, i32, %class.ImVector.14, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], float, %struct.ImGuiTextBuffer, %class.ImVector.17, %class.ImVector.18, i8, [7 x i8], ptr, %struct.ImGuiTextBuffer, i32, i32, [120 x float], i32, float, i32, i32, i32, [3073 x i8], [3 x i8] }>
%struct.ImGuiIO = type { i32, i32, %struct.ImVec2, float, float, ptr, ptr, float, float, float, [21 x i32], float, float, ptr, ptr, float, i8, ptr, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i8, i8, i8, i8, [512 x i8], [17 x i16], [21 x float], i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i8], [5 x i8], [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], [512 x float], [512 x float], [21 x float], [21 x float] }
%struct.ImGuiStyle = type { float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, float, [43 x %struct.ImVec4] }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, %struct.ImVec4, [12 x %struct.ImVec2] }
%class.ImVector = type { i32, i32, ptr }
%struct.ImGuiStorage = type { %class.ImVector.0 }
%class.ImVector.0 = type { i32, i32, ptr }
%class.ImVector.1 = type { i32, i32, ptr }
%class.ImVector.2 = type { i32, i32, ptr }
%class.ImVector.3 = type { i32, i32, ptr }
%class.ImVector.4 = type { i32, i32, ptr }
%struct.ImGuiNextWindowData = type <{ i32, i32, i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, [3 x i8], %struct.ImRect, ptr, ptr, float, %struct.ImVec2, [4 x i8] }>
%struct.ImGuiNavMoveResult = type <{ i32, [4 x i8], ptr, float, float, float, %struct.ImRect, [4 x i8] }>
%struct.ImDrawData = type <{ i8, [7 x i8], ptr, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, [4 x i8] }>
%struct.ImDrawDataBuilder = type { [2 x %class.ImVector.5] }
%class.ImVector.5 = type { i32, i32, ptr }
%struct.ImDrawList = type { %class.ImVector.6, %class.ImVector.7, %class.ImVector.8, i32, ptr, ptr, i32, ptr, ptr, %class.ImVector.9, %class.ImVector.10, %class.ImVector.11, i32, i32, %class.ImVector.12 }
%class.ImVector.6 = type { i32, i32, ptr }
%class.ImVector.7 = type { i32, i32, ptr }
%class.ImVector.8 = type { i32, i32, ptr }
%class.ImVector.9 = type { i32, i32, ptr }
%class.ImVector.10 = type { i32, i32, ptr }
%class.ImVector.11 = type { i32, i32, ptr }
%class.ImVector.12 = type { i32, i32, ptr }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%class.ImVector.13 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type { i32, %class.ImVector.7, %class.ImVector.14, %class.ImVector.14, i32, i32, i32, float, %"struct.ImGuiStb::STB_TexteditState", float, i8, i8, i32, ptr, ptr }
%"struct.ImGuiStb::STB_TexteditState" = type { i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, float, %"struct.ImGuiStb::StbUndoState" }
%"struct.ImGuiStb::StbUndoState" = type { [99 x %"struct.ImGuiStb::StbUndoRecord"], [999 x i16], i16, i16, i32, i32 }
%"struct.ImGuiStb::StbUndoRecord" = type { i32, i32, i32, i32 }
%struct.ImFont = type { float, float, %struct.ImVec2, %class.ImVector.15, %class.ImVector.16, %class.ImVector.7, ptr, float, i16, i16, ptr, ptr, float, float, i8, i32 }
%class.ImVector.15 = type { i32, i32, ptr }
%class.ImVector.16 = type { i32, i32, ptr }
%class.ImVector.14 = type { i32, i32, ptr }
%class.ImVector.17 = type { i32, i32, ptr }
%class.ImVector.18 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %class.ImVector.14 }
%struct.ImGuiWindow = type { ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImGuiWindowTempData, %class.ImVector.22, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, i32, float, %struct.ImGuiMenuColumns, %struct.ImGuiStorage, %class.ImVector.23, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, [2 x i32], [2 x %struct.ImRect], i32, i32, i32, i32, i32, i32 }
%struct.ImGuiWindowTempData = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, float, float, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i8, i8, i32, i32, i32, i32, i8, %struct.ImVec2, %class.ImVector, ptr, i32, i32, i32, float, float, %class.ImVector.20, %class.ImVector.16, %class.ImVector.16, %class.ImVector.21, [6 x i32], %struct.ImVec1, %struct.ImVec1, %struct.ImVec1, ptr }
%class.ImVector.20 = type { i32, i32, ptr }
%class.ImVector.21 = type { i32, i32, ptr }
%struct.ImVec1 = type { float }
%class.ImVector.22 = type { i32, i32, ptr }
%struct.ImGuiMenuColumns = type { i32, float, float, float, [4 x float], [4 x float] }
%class.ImVector.23 = type { i32, i32, ptr }
%struct.ImGuiPopupRef = type { i32, ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2 }
%struct.ImFontAtlas = type <{ i8, [3 x i8], i32, ptr, i32, i32, ptr, ptr, i32, i32, %struct.ImVec2, %struct.ImVec2, %class.ImVector.3, %class.ImVector.25, %class.ImVector.26, [1 x i32], [4 x i8] }>
%class.ImVector.25 = type { i32, i32, ptr }
%class.ImVector.26 = type { i32, i32, ptr }

@GImGui = external dso_local global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [85 x i8], align 1
@_ZL15resize_grip_def = external hidden global [4 x %struct.ImGuiResizeGripDef], align 16
@.str.62 = external hidden unnamed_addr constant [15 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi = external hidden unnamed_addr constant [58 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [43 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) #4

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef, float noundef) #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui17RenderTextClippedERK6ImVec2S2_PKcS4_PS1_S2_PK6ImRect(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) #9

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) #9

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImDrawList10PathLineToERK6ImVec2(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 4 dereferenceable(8)) #11 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6ImRect8ContainsERKS_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16)) #9 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) #9

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef) #8

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL12SetWindowPosP11ImGuiWindowRK6ImVec2i(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #9

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

declare void @_ZN10ImDrawList5ClearEv(ptr noundef nonnull align 8 dereferenceable(168)) #10

declare void @_ZN10ImDrawList13PushTextureIDEPv(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #11 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef %0, ptr noundef %1, i32 noundef %2) #9 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca %struct.ImVec2, align 4
  %12 = alloca %struct.ImVec2, align 4
  %13 = alloca i32, align 4
  %14 = alloca i8, align 1
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i8, align 1
  %18 = alloca i8, align 1
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca %struct.ImVec2, align 4
  %25 = alloca i8, align 1
  %26 = alloca %struct.ImRect, align 4
  %27 = alloca %struct.ImVec4, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImRect, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImVec2, align 4
  %35 = alloca %struct.ImVec2, align 4
  %36 = alloca %struct.ImVec2, align 4
  %37 = alloca %struct.ImRect, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca %struct.ImVec2, align 4
  %41 = alloca i8, align 1
  %42 = alloca %struct.ImVec2, align 4
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImVec2, align 4
  %46 = alloca %struct.ImVec2, align 4
  %47 = alloca %struct.ImVec2, align 4
  %48 = alloca %struct.ImVec2, align 4
  %49 = alloca %struct.ImVec2, align 4
  %50 = alloca %struct.ImVec2, align 4
  %51 = alloca %struct.ImVec2, align 4
  %52 = alloca %struct.ImVec2, align 4
  %53 = alloca %struct.ImVec2, align 4
  %54 = alloca %struct.ImVec2, align 4
  %55 = alloca %struct.ImVec2, align 4
  %56 = alloca %struct.ImVec2, align 4
  %57 = alloca i8, align 1
  %58 = alloca i32, align 4
  %59 = alloca [4 x i32], align 16
  %60 = alloca i32, align 4
  %61 = alloca float, align 4
  %62 = alloca %struct.ImRect, align 4
  %63 = alloca i8, align 1
  %64 = alloca i8, align 1
  %65 = alloca i32, align 4
  %66 = alloca %struct.ImRect, align 4
  %67 = alloca float, align 4
  %68 = alloca float, align 4
  %69 = alloca ptr, align 8
  %70 = alloca i8, align 1
  %71 = alloca %struct.ImRect, align 4
  %72 = alloca float, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.ImVec2, align 4
  %75 = alloca %struct.ImVec2, align 4
  %76 = alloca i32, align 4
  %77 = alloca %struct.ImVec2, align 4
  %78 = alloca %struct.ImVec2, align 4
  %79 = alloca %struct.ImVec2, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.ImRect, align 4
  %82 = alloca %struct.ImRect, align 4
  %83 = alloca %struct.ImVec2, align 4
  %84 = alloca %struct.ImVec2, align 4
  %85 = alloca i32, align 4
  %86 = alloca ptr, align 8
  %87 = alloca %struct.ImVec2, align 4
  %88 = alloca %struct.ImVec2, align 4
  %89 = alloca %struct.ImVec2, align 4
  %90 = alloca %struct.ImVec2, align 4
  %91 = alloca %struct.ImVec2, align 4
  %92 = alloca %struct.ImVec2, align 4
  %93 = alloca %struct.ImVec2, align 4
  %94 = alloca %struct.ImVec2, align 4
  %95 = alloca %struct.ImVec2, align 4
  %96 = alloca %struct.ImVec2, align 4
  %97 = alloca %struct.ImRect, align 4
  %98 = alloca %struct.ImVec2, align 4
  %99 = alloca %struct.ImVec2, align 4
  %100 = alloca %struct.ImVec2, align 4
  %101 = alloca %struct.ImVec2, align 4
  %102 = alloca %struct.ImVec2, align 4
  %103 = alloca %struct.ImVec2, align 4
  %104 = alloca float, align 4
  %105 = alloca %struct.ImRect, align 4
  %106 = alloca %struct.ImVec2, align 4
  %107 = alloca %struct.ImVec2, align 4
  %108 = alloca %struct.ImVec2, align 4
  %109 = alloca i32, align 4
  %110 = alloca float, align 4
  %111 = alloca float, align 4
  %112 = alloca %struct.ImVec2, align 4
  %113 = alloca %struct.ImVec2, align 4
  %114 = alloca %struct.ImRect, align 4
  %115 = alloca %struct.ImVec2, align 4
  %116 = alloca %struct.ImVec2, align 4
  %117 = alloca %struct.ImRect, align 4
  %118 = alloca float, align 4
  %119 = alloca float, align 4
  %120 = alloca %struct.ImRect, align 4
  %121 = alloca %struct.ImRect, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store i32 %2, ptr %6, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #13
  %122 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %122, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #13
  %123 = load ptr, ptr %7, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct.ImGuiContext, ptr %123, i32 0, i32 5
  store ptr %124, ptr %8, align 8, !tbaa !5
  %125 = load ptr, ptr %4, align 8, !tbaa !5
  %126 = icmp ne ptr %125, null
  br i1 %126, label %127, label %128

127:                                              ; preds = %3
  br label %130

128:                                              ; preds = %3
  call void @__assert_fail(ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 4583, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

129:                                              ; No predecessors!
  br label %130

130:                                              ; preds = %129, %127
  %131 = load ptr, ptr %7, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.ImGuiContext, ptr %131, i32 0, i32 1
  %133 = load i8, ptr %132, align 1, !tbaa !11, !range !56, !noundef !57
  %134 = trunc i8 %133 to i1
  br i1 %134, label %135, label %136

135:                                              ; preds = %130
  br label %138

136:                                              ; preds = %130
  call void @__assert_fail(ptr noundef @.str.63, ptr noundef @.str.3, i32 noundef 4584, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

137:                                              ; No predecessors!
  br label %138

138:                                              ; preds = %137, %135
  %139 = load ptr, ptr %7, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.ImGuiContext, ptr %139, i32 0, i32 12
  %141 = load i32, ptr %140, align 4, !tbaa !58
  %142 = load ptr, ptr %7, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.ImGuiContext, ptr %142, i32 0, i32 11
  %144 = load i32, ptr %143, align 8, !tbaa !59
  %145 = icmp ne i32 %141, %144
  br i1 %145, label %146, label %147

146:                                              ; preds = %138
  br label %149

147:                                              ; preds = %138
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.3, i32 noundef 4585, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

148:                                              ; No predecessors!
  br label %149

149:                                              ; preds = %148, %146
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #13
  %150 = load ptr, ptr %4, align 8, !tbaa !5
  %151 = call noundef ptr @_ZN5ImGui16FindWindowByNameEPKc(ptr noundef %150)
  store ptr %151, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #13
  %152 = load ptr, ptr %9, align 8, !tbaa !5
  %153 = icmp eq ptr %152, null
  %154 = zext i1 %153 to i8
  store i8 %154, ptr %10, align 1, !tbaa !60
  %155 = load i8, ptr %10, align 1, !tbaa !60, !range !56, !noundef !57
  %156 = trunc i8 %155 to i1
  br i1 %156, label %157, label %173

157:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #13
  %158 = load ptr, ptr %7, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.ImGuiContext, ptr %158, i32 0, i32 55
  %160 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %159, i32 0, i32 1
  %161 = load i32, ptr %160, align 4, !tbaa !61
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %163, label %167

163:                                              ; preds = %157
  %164 = load ptr, ptr %7, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.ImGuiContext, ptr %164, i32 0, i32 55
  %166 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %165, i32 0, i32 9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %11, ptr align 4 %166, i64 8, i1 false), !tbaa.struct !62
  br label %168

167:                                              ; preds = %157
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef 0.000000e+00, float noundef 0.000000e+00)
  br label %168

168:                                              ; preds = %167, %163
  %169 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %12, ptr align 4 %11, i64 8, i1 false), !tbaa.struct !62
  %170 = load i32, ptr %6, align 4, !tbaa !9
  %171 = load <2 x float>, ptr %12, align 4
  %172 = call noundef ptr @_ZL15CreateNewWindowPKc6ImVec2i(ptr noundef %169, <2 x float> %171, i32 noundef %170)
  store ptr %172, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #13
  br label %173

173:                                              ; preds = %168, %149
  %174 = load i32, ptr %6, align 4, !tbaa !9
  %175 = and i32 %174, 786944
  %176 = icmp eq i32 %175, 786944
  br i1 %176, label %177, label %180

177:                                              ; preds = %173
  %178 = load i32, ptr %6, align 4, !tbaa !9
  %179 = or i32 %178, 6
  store i32 %179, ptr %6, align 4, !tbaa !9
  br label %180

180:                                              ; preds = %177, %173
  %181 = load i32, ptr %6, align 4, !tbaa !9
  %182 = and i32 %181, 8388608
  %183 = icmp ne i32 %182, 0
  br i1 %183, label %184, label %192

184:                                              ; preds = %180
  %185 = load i32, ptr %6, align 4, !tbaa !9
  %186 = and i32 %185, 16777216
  %187 = icmp ne i32 %186, 0
  br i1 %187, label %188, label %189

188:                                              ; preds = %184
  br label %191

189:                                              ; preds = %184
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 4601, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

190:                                              ; No predecessors!
  br label %191

191:                                              ; preds = %190, %188
  br label %192

192:                                              ; preds = %191, %180
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #13
  %193 = load ptr, ptr %7, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.ImGuiContext, ptr %193, i32 0, i32 11
  %195 = load i32, ptr %194, align 8, !tbaa !59
  store i32 %195, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #13
  %196 = load ptr, ptr %9, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.ImGuiWindow, ptr %196, i32 0, i32 52
  %198 = load i32, ptr %197, align 8, !tbaa !64
  %199 = load i32, ptr %13, align 4, !tbaa !9
  %200 = icmp ne i32 %198, %199
  %201 = zext i1 %200 to i8
  store i8 %201, ptr %14, align 1, !tbaa !60
  %202 = load i8, ptr %14, align 1, !tbaa !60, !range !56, !noundef !57
  %203 = trunc i8 %202 to i1
  br i1 %203, label %204, label %208

204:                                              ; preds = %192
  %205 = load i32, ptr %6, align 4, !tbaa !9
  %206 = load ptr, ptr %9, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.ImGuiWindow, ptr %206, i32 0, i32 2
  store i32 %205, ptr %207, align 4, !tbaa !73
  br label %212

208:                                              ; preds = %192
  %209 = load ptr, ptr %9, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.ImGuiWindow, ptr %209, i32 0, i32 2
  %211 = load i32, ptr %210, align 4, !tbaa !73
  store i32 %211, ptr %6, align 4, !tbaa !9
  br label %212

212:                                              ; preds = %208, %204
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #13
  %213 = load ptr, ptr %7, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.ImGuiContext, ptr %213, i32 0, i32 18
  %215 = call noundef zeroext i1 @_ZNK8ImVectorIP11ImGuiWindowE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %214)
  br i1 %215, label %216, label %217

216:                                              ; preds = %212
  br label %222

217:                                              ; preds = %212
  %218 = load ptr, ptr %7, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.ImGuiContext, ptr %218, i32 0, i32 18
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %219)
  %221 = load ptr, ptr %220, align 8, !tbaa !5
  br label %222

222:                                              ; preds = %217, %216
  %223 = phi ptr [ null, %216 ], [ %221, %217 ]
  store ptr %223, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #13
  %224 = load i8, ptr %14, align 1, !tbaa !60, !range !56, !noundef !57
  %225 = trunc i8 %224 to i1
  br i1 %225, label %226, label %235

226:                                              ; preds = %222
  %227 = load i32, ptr %6, align 4, !tbaa !9
  %228 = and i32 %227, 83886080
  %229 = icmp ne i32 %228, 0
  br i1 %229, label %230, label %232

230:                                              ; preds = %226
  %231 = load ptr, ptr %15, align 8, !tbaa !5
  br label %233

232:                                              ; preds = %226
  br label %233

233:                                              ; preds = %232, %230
  %234 = phi ptr [ %231, %230 ], [ null, %232 ]
  br label %239

235:                                              ; preds = %222
  %236 = load ptr, ptr %9, align 8, !tbaa !5
  %237 = getelementptr inbounds %struct.ImGuiWindow, ptr %236, i32 0, i32 61
  %238 = load ptr, ptr %237, align 8, !tbaa !74
  br label %239

239:                                              ; preds = %235, %233
  %240 = phi ptr [ %234, %233 ], [ %238, %235 ]
  store ptr %240, ptr %16, align 8, !tbaa !5
  %241 = load ptr, ptr %16, align 8, !tbaa !5
  %242 = icmp ne ptr %241, null
  br i1 %242, label %248, label %243

243:                                              ; preds = %239
  %244 = load i32, ptr %6, align 4, !tbaa !9
  %245 = and i32 %244, 16777216
  %246 = icmp ne i32 %245, 0
  %247 = xor i1 %246, true
  br label %248

248:                                              ; preds = %243, %239
  %249 = phi i1 [ true, %239 ], [ %247, %243 ]
  br i1 %249, label %250, label %251

250:                                              ; preds = %248
  br label %253

251:                                              ; preds = %248
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str.3, i32 noundef 4613, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

252:                                              ; No predecessors!
  br label %253

253:                                              ; preds = %252, %250
  %254 = load ptr, ptr %5, align 8, !tbaa !5
  %255 = icmp ne ptr %254, null
  %256 = load ptr, ptr %9, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.ImGuiWindow, ptr %256, i32 0, i32 28
  %258 = zext i1 %255 to i8
  store i8 %258, ptr %257, align 2, !tbaa !75
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #13
  %259 = load ptr, ptr %9, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.ImGuiWindow, ptr %259, i32 0, i32 52
  %261 = load i32, ptr %260, align 8, !tbaa !64
  %262 = load i32, ptr %13, align 4, !tbaa !9
  %263 = sub nsw i32 %262, 1
  %264 = icmp slt i32 %261, %263
  %265 = zext i1 %264 to i8
  store i8 %265, ptr %17, align 1, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #13
  %266 = load ptr, ptr %9, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.ImGuiWindow, ptr %266, i32 0, i32 39
  %268 = load i32, ptr %267, align 4, !tbaa !76
  %269 = icmp sgt i32 %268, 0
  %270 = zext i1 %269 to i8
  store i8 %270, ptr %18, align 1, !tbaa !60
  %271 = load i32, ptr %6, align 4, !tbaa !9
  %272 = and i32 %271, 67108864
  %273 = icmp ne i32 %272, 0
  br i1 %273, label %274, label %308

274:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #13
  %275 = load ptr, ptr %7, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiContext, ptr %275, i32 0, i32 53
  %277 = load ptr, ptr %7, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.ImGuiContext, ptr %277, i32 0, i32 54
  %279 = getelementptr inbounds %class.ImVector.4, ptr %278, i32 0, i32 0
  %280 = load i32, ptr %279, align 8, !tbaa !77
  %281 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI13ImGuiPopupRefEixEi(ptr noundef nonnull align 8 dereferenceable(16) %276, i32 noundef %280)
  store ptr %281, ptr %19, align 8, !tbaa !5
  %282 = load ptr, ptr %9, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.ImGuiWindow, ptr %282, i32 0, i32 32
  %284 = load i32, ptr %283, align 8, !tbaa !78
  %285 = load ptr, ptr %19, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.ImGuiPopupRef, ptr %285, i32 0, i32 0
  %287 = load i32, ptr %286, align 8, !tbaa !79
  %288 = icmp ne i32 %284, %287
  %289 = zext i1 %288 to i32
  %290 = load i8, ptr %17, align 1, !tbaa !60, !range !56, !noundef !57
  %291 = trunc i8 %290 to i1
  %292 = zext i1 %291 to i32
  %293 = or i32 %292, %289
  %294 = icmp ne i32 %293, 0
  %295 = zext i1 %294 to i8
  store i8 %295, ptr %17, align 1, !tbaa !60
  %296 = load ptr, ptr %9, align 8, !tbaa !5
  %297 = load ptr, ptr %19, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.ImGuiPopupRef, ptr %297, i32 0, i32 1
  %299 = load ptr, ptr %298, align 8, !tbaa !81
  %300 = icmp ne ptr %296, %299
  %301 = zext i1 %300 to i32
  %302 = load i8, ptr %17, align 1, !tbaa !60, !range !56, !noundef !57
  %303 = trunc i8 %302 to i1
  %304 = zext i1 %303 to i32
  %305 = or i32 %304, %301
  %306 = icmp ne i32 %305, 0
  %307 = zext i1 %306 to i8
  store i8 %307, ptr %17, align 1, !tbaa !60
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #13
  br label %308

308:                                              ; preds = %274, %253
  %309 = load i8, ptr %17, align 1, !tbaa !60, !range !56, !noundef !57
  %310 = trunc i8 %309 to i1
  br i1 %310, label %314, label %311

311:                                              ; preds = %308
  %312 = load i8, ptr %18, align 1, !tbaa !60, !range !56, !noundef !57
  %313 = trunc i8 %312 to i1
  br label %314

314:                                              ; preds = %311, %308
  %315 = phi i1 [ true, %308 ], [ %313, %311 ]
  %316 = load ptr, ptr %9, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.ImGuiWindow, ptr %316, i32 0, i32 26
  %318 = zext i1 %315 to i8
  store i8 %318, ptr %317, align 8, !tbaa !82
  %319 = load ptr, ptr %9, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.ImGuiWindow, ptr %319, i32 0, i32 26
  %321 = load i8, ptr %320, align 8, !tbaa !82, !range !56, !noundef !57
  %322 = trunc i8 %321 to i1
  br i1 %322, label %323, label %325

323:                                              ; preds = %314
  %324 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef %324, i32 noundef 8, i1 noundef zeroext true)
  br label %325

325:                                              ; preds = %323, %314
  %326 = load ptr, ptr %7, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.ImGuiContext, ptr %326, i32 0, i32 18
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %327, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %328 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef %328)
  %329 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZL15CheckStacksSizeP11ImGuiWindowb(ptr noundef %329, i1 noundef zeroext true)
  %330 = load i32, ptr %6, align 4, !tbaa !9
  %331 = and i32 %330, 67108864
  %332 = icmp ne i32 %331, 0
  br i1 %332, label %333, label %352

333:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #13
  %334 = load ptr, ptr %7, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.ImGuiContext, ptr %334, i32 0, i32 53
  %336 = load ptr, ptr %7, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.ImGuiContext, ptr %336, i32 0, i32 54
  %338 = getelementptr inbounds %class.ImVector.4, ptr %337, i32 0, i32 0
  %339 = load i32, ptr %338, align 8, !tbaa !77
  %340 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI13ImGuiPopupRefEixEi(ptr noundef nonnull align 8 dereferenceable(16) %335, i32 noundef %339)
  store ptr %340, ptr %20, align 8, !tbaa !5
  %341 = load ptr, ptr %9, align 8, !tbaa !5
  %342 = load ptr, ptr %20, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ImGuiPopupRef, ptr %342, i32 0, i32 1
  store ptr %341, ptr %343, align 8, !tbaa !81
  %344 = load ptr, ptr %7, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImGuiContext, ptr %344, i32 0, i32 54
  %346 = load ptr, ptr %20, align 8, !tbaa !5
  call void @_ZN8ImVectorI13ImGuiPopupRefE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %345, ptr noundef nonnull align 8 dereferenceable(48) %346)
  %347 = load ptr, ptr %20, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.ImGuiPopupRef, ptr %347, i32 0, i32 0
  %349 = load i32, ptr %348, align 8, !tbaa !79
  %350 = load ptr, ptr %9, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.ImGuiWindow, ptr %350, i32 0, i32 32
  store i32 %349, ptr %351, align 8, !tbaa !78
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #13
  br label %352

352:                                              ; preds = %333, %325
  %353 = load i8, ptr %18, align 1, !tbaa !60, !range !56, !noundef !57
  %354 = trunc i8 %353 to i1
  br i1 %354, label %355, label %363

355:                                              ; preds = %352
  %356 = load i32, ptr %6, align 4, !tbaa !9
  %357 = and i32 %356, 16777216
  %358 = icmp ne i32 %357, 0
  br i1 %358, label %363, label %359

359:                                              ; preds = %355
  %360 = load ptr, ptr %9, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.ImGuiWindow, ptr %360, i32 0, i32 66
  %362 = getelementptr inbounds [2 x i32], ptr %361, i64 0, i64 0
  store i32 0, ptr %362, align 8, !tbaa !9
  br label %363

363:                                              ; preds = %359, %355, %352
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #13
  store i8 0, ptr %21, align 1, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #13
  store i8 0, ptr %22, align 1, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #13
  store i8 0, ptr %23, align 1, !tbaa !60
  %364 = load ptr, ptr %7, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.ImGuiContext, ptr %364, i32 0, i32 55
  %366 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %365, i32 0, i32 0
  %367 = load i32, ptr %366, align 8, !tbaa !83
  %368 = icmp ne i32 %367, 0
  br i1 %368, label %369, label %413

369:                                              ; preds = %363
  %370 = load ptr, ptr %9, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.ImGuiWindow, ptr %370, i32 0, i32 40
  %372 = load i32, ptr %371, align 8, !tbaa !84
  %373 = load ptr, ptr %7, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.ImGuiContext, ptr %373, i32 0, i32 55
  %375 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %374, i32 0, i32 0
  %376 = load i32, ptr %375, align 8, !tbaa !83
  %377 = and i32 %372, %376
  %378 = icmp ne i32 %377, 0
  %379 = zext i1 %378 to i8
  store i8 %379, ptr %21, align 1, !tbaa !60
  %380 = load i8, ptr %21, align 1, !tbaa !60, !range !56, !noundef !57
  %381 = trunc i8 %380 to i1
  br i1 %381, label %382, label %403

382:                                              ; preds = %369
  %383 = load ptr, ptr %7, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.ImGuiContext, ptr %383, i32 0, i32 55
  %385 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %384, i32 0, i32 8
  %386 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %385)
  %387 = fcmp ogt float %386, 0x3EE4F8B580000000
  br i1 %387, label %388, label %403

388:                                              ; preds = %382
  %389 = load ptr, ptr %7, align 8, !tbaa !5
  %390 = getelementptr inbounds %struct.ImGuiContext, ptr %389, i32 0, i32 55
  %391 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %390, i32 0, i32 7
  %392 = load ptr, ptr %9, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.ImGuiWindow, ptr %392, i32 0, i32 43
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %393, ptr align 4 %391, i64 8, i1 false), !tbaa.struct !62
  %394 = load ptr, ptr %7, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.ImGuiContext, ptr %394, i32 0, i32 55
  %396 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %395, i32 0, i32 8
  %397 = load ptr, ptr %9, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.ImGuiWindow, ptr %397, i32 0, i32 44
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %398, ptr align 4 %396, i64 8, i1 false), !tbaa.struct !62
  %399 = load ptr, ptr %9, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImGuiWindow, ptr %399, i32 0, i32 40
  %401 = load i32, ptr %400, align 8, !tbaa !84
  %402 = and i32 %401, -15
  store i32 %402, ptr %400, align 8, !tbaa !84
  br label %412

403:                                              ; preds = %382, %369
  %404 = load ptr, ptr %9, align 8, !tbaa !5
  %405 = load ptr, ptr %7, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.ImGuiContext, ptr %405, i32 0, i32 55
  %407 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %406, i32 0, i32 7
  %408 = load ptr, ptr %7, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.ImGuiContext, ptr %408, i32 0, i32 55
  %410 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %409, i32 0, i32 0
  %411 = load i32, ptr %410, align 8, !tbaa !83
  call void @_ZL12SetWindowPosP11ImGuiWindowRK6ImVec2i(ptr noundef %404, ptr noundef nonnull align 4 dereferenceable(8) %407, i32 noundef %411)
  br label %412

412:                                              ; preds = %403, %388
  br label %413

413:                                              ; preds = %412, %363
  %414 = load ptr, ptr %7, align 8, !tbaa !5
  %415 = getelementptr inbounds %struct.ImGuiContext, ptr %414, i32 0, i32 55
  %416 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %415, i32 0, i32 1
  %417 = load i32, ptr %416, align 4, !tbaa !61
  %418 = icmp ne i32 %417, 0
  br i1 %418, label %419, label %466

419:                                              ; preds = %413
  %420 = load ptr, ptr %9, align 8, !tbaa !5
  %421 = getelementptr inbounds %struct.ImGuiWindow, ptr %420, i32 0, i32 41
  %422 = load i32, ptr %421, align 4, !tbaa !85
  %423 = load ptr, ptr %7, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.ImGuiContext, ptr %423, i32 0, i32 55
  %425 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %424, i32 0, i32 1
  %426 = load i32, ptr %425, align 4, !tbaa !61
  %427 = and i32 %422, %426
  %428 = icmp ne i32 %427, 0
  br i1 %428, label %429, label %436

429:                                              ; preds = %419
  %430 = load ptr, ptr %7, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.ImGuiContext, ptr %430, i32 0, i32 55
  %432 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %431, i32 0, i32 9
  %433 = getelementptr inbounds %struct.ImVec2, ptr %432, i32 0, i32 0
  %434 = load float, ptr %433, align 4, !tbaa !86
  %435 = fcmp ogt float %434, 0.000000e+00
  br label %436

436:                                              ; preds = %429, %419
  %437 = phi i1 [ false, %419 ], [ %435, %429 ]
  %438 = zext i1 %437 to i8
  store i8 %438, ptr %22, align 1, !tbaa !60
  %439 = load ptr, ptr %9, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.ImGuiWindow, ptr %439, i32 0, i32 41
  %441 = load i32, ptr %440, align 4, !tbaa !85
  %442 = load ptr, ptr %7, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.ImGuiContext, ptr %442, i32 0, i32 55
  %444 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %443, i32 0, i32 1
  %445 = load i32, ptr %444, align 4, !tbaa !61
  %446 = and i32 %441, %445
  %447 = icmp ne i32 %446, 0
  br i1 %447, label %448, label %455

448:                                              ; preds = %436
  %449 = load ptr, ptr %7, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.ImGuiContext, ptr %449, i32 0, i32 55
  %451 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %450, i32 0, i32 9
  %452 = getelementptr inbounds %struct.ImVec2, ptr %451, i32 0, i32 1
  %453 = load float, ptr %452, align 4, !tbaa !87
  %454 = fcmp ogt float %453, 0.000000e+00
  br label %455

455:                                              ; preds = %448, %436
  %456 = phi i1 [ false, %436 ], [ %454, %448 ]
  %457 = zext i1 %456 to i8
  store i8 %457, ptr %23, align 1, !tbaa !60
  %458 = load ptr, ptr %9, align 8, !tbaa !5
  %459 = load ptr, ptr %7, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct.ImGuiContext, ptr %459, i32 0, i32 55
  %461 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %460, i32 0, i32 9
  %462 = load ptr, ptr %7, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.ImGuiContext, ptr %462, i32 0, i32 55
  %464 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %463, i32 0, i32 1
  %465 = load i32, ptr %464, align 4, !tbaa !61
  call void @_ZL13SetWindowSizeP11ImGuiWindowRK6ImVec2i(ptr noundef %458, ptr noundef nonnull align 4 dereferenceable(8) %461, i32 noundef %465)
  br label %466

466:                                              ; preds = %455, %413
  %467 = load ptr, ptr %7, align 8, !tbaa !5
  %468 = getelementptr inbounds %struct.ImGuiContext, ptr %467, i32 0, i32 55
  %469 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %468, i32 0, i32 2
  %470 = load i32, ptr %469, align 8, !tbaa !88
  %471 = icmp ne i32 %470, 0
  br i1 %471, label %472, label %495

472:                                              ; preds = %466
  %473 = load ptr, ptr %7, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.ImGuiContext, ptr %473, i32 0, i32 55
  %475 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %474, i32 0, i32 10
  %476 = load ptr, ptr %9, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.ImGuiWindow, ptr %476, i32 0, i32 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %477, ptr align 4 %475, i64 8, i1 false), !tbaa.struct !62
  %478 = load ptr, ptr %9, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.ImGuiWindow, ptr %478, i32 0, i32 8
  %480 = getelementptr inbounds %struct.ImVec2, ptr %479, i32 0, i32 1
  %481 = load float, ptr %480, align 4, !tbaa !89
  %482 = fcmp une float %481, 0.000000e+00
  br i1 %482, label %483, label %494

483:                                              ; preds = %472
  %484 = load ptr, ptr %9, align 8, !tbaa !5
  %485 = call noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %484)
  %486 = load ptr, ptr %9, align 8, !tbaa !5
  %487 = call noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %486)
  %488 = fadd float %485, %487
  %489 = load ptr, ptr %9, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.ImGuiWindow, ptr %489, i32 0, i32 8
  %491 = getelementptr inbounds %struct.ImVec2, ptr %490, i32 0, i32 1
  %492 = load float, ptr %491, align 4, !tbaa !89
  %493 = fadd float %492, %488
  store float %493, ptr %491, align 4, !tbaa !89
  br label %494

494:                                              ; preds = %483, %472
  br label %502

495:                                              ; preds = %466
  %496 = load i8, ptr %14, align 1, !tbaa !60, !range !56, !noundef !57
  %497 = trunc i8 %496 to i1
  br i1 %497, label %498, label %501

498:                                              ; preds = %495
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %24, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %499 = load ptr, ptr %9, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.ImGuiWindow, ptr %499, i32 0, i32 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %500, ptr align 4 %24, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #13
  br label %501

501:                                              ; preds = %498, %495
  br label %502

502:                                              ; preds = %501, %494
  %503 = load ptr, ptr %7, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.ImGuiContext, ptr %503, i32 0, i32 55
  %505 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %504, i32 0, i32 3
  %506 = load i32, ptr %505, align 4, !tbaa !90
  %507 = icmp ne i32 %506, 0
  br i1 %507, label %508, label %519

508:                                              ; preds = %502
  %509 = load ptr, ptr %9, align 8, !tbaa !5
  %510 = load ptr, ptr %7, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.ImGuiContext, ptr %510, i32 0, i32 55
  %512 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %511, i32 0, i32 11
  %513 = load i8, ptr %512, align 4, !tbaa !91, !range !56, !noundef !57
  %514 = trunc i8 %513 to i1
  %515 = load ptr, ptr %7, align 8, !tbaa !5
  %516 = getelementptr inbounds %struct.ImGuiContext, ptr %515, i32 0, i32 55
  %517 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %516, i32 0, i32 3
  %518 = load i32, ptr %517, align 4, !tbaa !90
  call void @_ZL18SetWindowCollapsedP11ImGuiWindowbi(ptr noundef %509, i1 noundef zeroext %514, i32 noundef %518)
  br label %519

519:                                              ; preds = %508, %502
  %520 = load ptr, ptr %7, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.ImGuiContext, ptr %520, i32 0, i32 55
  %522 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %521, i32 0, i32 5
  %523 = load i32, ptr %522, align 4, !tbaa !92
  %524 = icmp ne i32 %523, 0
  br i1 %524, label %525, label %527

525:                                              ; preds = %519
  %526 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef %526)
  br label %527

527:                                              ; preds = %525, %519
  %528 = load ptr, ptr %9, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.ImGuiWindow, ptr %528, i32 0, i32 26
  %530 = load i8, ptr %529, align 8, !tbaa !82, !range !56, !noundef !57
  %531 = trunc i8 %530 to i1
  br i1 %531, label %532, label %534

532:                                              ; preds = %527
  %533 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef %533, i32 noundef 8, i1 noundef zeroext false)
  br label %534

534:                                              ; preds = %532, %527
  %535 = load i8, ptr %14, align 1, !tbaa !60, !range !56, !noundef !57
  %536 = trunc i8 %535 to i1
  br i1 %536, label %537, label %2783

537:                                              ; preds = %534
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #13
  %538 = load i32, ptr %6, align 4, !tbaa !9
  %539 = and i32 %538, 16777216
  %540 = icmp ne i32 %539, 0
  br i1 %540, label %541, label %545

541:                                              ; preds = %537
  %542 = load i32, ptr %6, align 4, !tbaa !9
  %543 = and i32 %542, 33554432
  %544 = icmp ne i32 %543, 0
  br label %545

545:                                              ; preds = %541, %537
  %546 = phi i1 [ false, %537 ], [ %544, %541 ]
  %547 = zext i1 %546 to i8
  store i8 %547, ptr %25, align 1, !tbaa !60
  %548 = load ptr, ptr %9, align 8, !tbaa !5
  %549 = load i32, ptr %6, align 4, !tbaa !9
  %550 = load ptr, ptr %16, align 8, !tbaa !5
  call void @_ZN5ImGui30UpdateWindowParentAndRootLinksEP11ImGuiWindowiS1_(ptr noundef %548, i32 noundef %549, ptr noundef %550)
  %551 = load ptr, ptr %9, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.ImGuiWindow, ptr %551, i32 0, i32 20
  store i8 1, ptr %552, align 2, !tbaa !93
  %553 = load ptr, ptr %9, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.ImGuiWindow, ptr %553, i32 0, i32 30
  store i32 0, ptr %554, align 8, !tbaa !94
  %555 = load ptr, ptr %7, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.ImGuiContext, ptr %555, i32 0, i32 20
  %557 = load i32, ptr %556, align 8, !tbaa !95
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %556, align 8, !tbaa !95
  %559 = load ptr, ptr %9, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.ImGuiWindow, ptr %559, i32 0, i32 31
  store i32 %557, ptr %560, align 4, !tbaa !96
  %561 = load ptr, ptr %9, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.ImGuiWindow, ptr %561, i32 0, i32 29
  store i32 0, ptr %562, align 4, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #13
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %27, float noundef 0xC7EFFFFFE0000000, float noundef 0xC7EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %26, ptr noundef nonnull align 4 dereferenceable(16) %27)
  %563 = load ptr, ptr %9, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.ImGuiWindow, ptr %563, i32 0, i32 47
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %564, ptr align 4 %26, i64 16, i1 false), !tbaa.struct !98
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #13
  %565 = load i32, ptr %13, align 4, !tbaa !9
  %566 = load ptr, ptr %9, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.ImGuiWindow, ptr %566, i32 0, i32 52
  store i32 %565, ptr %567, align 8, !tbaa !64
  %568 = load ptr, ptr %9, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.ImGuiWindow, ptr %568, i32 0, i32 46
  call void @_ZN8ImVectorIjE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %569, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #13
  %570 = load ptr, ptr %9, align 8, !tbaa !5
  %571 = call <2 x float> @_ZL16CalcSizeContentsP11ImGuiWindow(ptr noundef %570)
  store <2 x float> %571, ptr %28, align 4
  %572 = load ptr, ptr %9, align 8, !tbaa !5
  %573 = getelementptr inbounds %struct.ImGuiWindow, ptr %572, i32 0, i32 7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %573, ptr align 4 %28, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #13
  %574 = load ptr, ptr %9, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.ImGuiWindow, ptr %574, i32 0, i32 38
  %576 = load i32, ptr %575, align 8, !tbaa !99
  %577 = icmp sgt i32 %576, 0
  br i1 %577, label %578, label %583

578:                                              ; preds = %545
  %579 = load ptr, ptr %9, align 8, !tbaa !5
  %580 = getelementptr inbounds %struct.ImGuiWindow, ptr %579, i32 0, i32 38
  %581 = load i32, ptr %580, align 8, !tbaa !99
  %582 = add nsw i32 %581, -1
  store i32 %582, ptr %580, align 8, !tbaa !99
  br label %583

583:                                              ; preds = %578, %545
  %584 = load ptr, ptr %9, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.ImGuiWindow, ptr %584, i32 0, i32 39
  %586 = load i32, ptr %585, align 4, !tbaa !76
  %587 = icmp sgt i32 %586, 0
  br i1 %587, label %588, label %593

588:                                              ; preds = %583
  %589 = load ptr, ptr %9, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.ImGuiWindow, ptr %589, i32 0, i32 39
  %591 = load i32, ptr %590, align 4, !tbaa !76
  %592 = add nsw i32 %591, -1
  store i32 %592, ptr %590, align 4, !tbaa !76
  br label %593

593:                                              ; preds = %588, %583
  %594 = load i8, ptr %10, align 1, !tbaa !60, !range !56, !noundef !57
  %595 = trunc i8 %594 to i1
  br i1 %595, label %596, label %605

596:                                              ; preds = %593
  %597 = load i8, ptr %22, align 1, !tbaa !60, !range !56, !noundef !57
  %598 = trunc i8 %597 to i1
  br i1 %598, label %599, label %602

599:                                              ; preds = %596
  %600 = load i8, ptr %23, align 1, !tbaa !60, !range !56, !noundef !57
  %601 = trunc i8 %600 to i1
  br i1 %601, label %605, label %602

602:                                              ; preds = %599, %596
  %603 = load ptr, ptr %9, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.ImGuiWindow, ptr %603, i32 0, i32 39
  store i32 1, ptr %604, align 4, !tbaa !76
  br label %605

605:                                              ; preds = %602, %599, %593
  %606 = load i8, ptr %17, align 1, !tbaa !60, !range !56, !noundef !57
  %607 = trunc i8 %606 to i1
  br i1 %607, label %608, label %642

608:                                              ; preds = %605
  %609 = load i32, ptr %6, align 4, !tbaa !9
  %610 = and i32 %609, 100663296
  %611 = icmp ne i32 %610, 0
  br i1 %611, label %612, label %642

612:                                              ; preds = %608
  %613 = load ptr, ptr %9, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.ImGuiWindow, ptr %613, i32 0, i32 39
  store i32 1, ptr %614, align 4, !tbaa !76
  %615 = load i32, ptr %6, align 4, !tbaa !9
  %616 = and i32 %615, 64
  %617 = icmp ne i32 %616, 0
  br i1 %617, label %618, label %641

618:                                              ; preds = %612
  %619 = load i8, ptr %22, align 1, !tbaa !60, !range !56, !noundef !57
  %620 = trunc i8 %619 to i1
  br i1 %620, label %628, label %621

621:                                              ; preds = %618
  %622 = load ptr, ptr %9, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.ImGuiWindow, ptr %622, i32 0, i32 5
  %624 = getelementptr inbounds %struct.ImVec2, ptr %623, i32 0, i32 0
  store float 0.000000e+00, ptr %624, align 8, !tbaa !100
  %625 = load ptr, ptr %9, align 8, !tbaa !5
  %626 = getelementptr inbounds %struct.ImGuiWindow, ptr %625, i32 0, i32 4
  %627 = getelementptr inbounds %struct.ImVec2, ptr %626, i32 0, i32 0
  store float 0.000000e+00, ptr %627, align 8, !tbaa !101
  br label %628

628:                                              ; preds = %621, %618
  %629 = load i8, ptr %23, align 1, !tbaa !60, !range !56, !noundef !57
  %630 = trunc i8 %629 to i1
  br i1 %630, label %638, label %631

631:                                              ; preds = %628
  %632 = load ptr, ptr %9, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.ImGuiWindow, ptr %632, i32 0, i32 5
  %634 = getelementptr inbounds %struct.ImVec2, ptr %633, i32 0, i32 1
  store float 0.000000e+00, ptr %634, align 4, !tbaa !102
  %635 = load ptr, ptr %9, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.ImGuiWindow, ptr %635, i32 0, i32 4
  %637 = getelementptr inbounds %struct.ImVec2, ptr %636, i32 0, i32 1
  store float 0.000000e+00, ptr %637, align 4, !tbaa !103
  br label %638

638:                                              ; preds = %631, %628
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %639 = load ptr, ptr %9, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.ImGuiWindow, ptr %639, i32 0, i32 7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %640, ptr align 4 %29, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #13
  br label %641

641:                                              ; preds = %638, %612
  br label %642

642:                                              ; preds = %641, %608, %605
  %643 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef %643)
  %644 = load i32, ptr %6, align 4, !tbaa !9
  %645 = and i32 %644, 16777216
  %646 = icmp ne i32 %645, 0
  br i1 %646, label %647, label %651

647:                                              ; preds = %642
  %648 = load ptr, ptr %8, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.ImGuiStyle, ptr %648, i32 0, i32 7
  %650 = load float, ptr %649, align 4, !tbaa !104
  br label %669

651:                                              ; preds = %642
  %652 = load i32, ptr %6, align 4, !tbaa !9
  %653 = and i32 %652, 100663296
  %654 = icmp ne i32 %653, 0
  br i1 %654, label %655, label %663

655:                                              ; preds = %651
  %656 = load i32, ptr %6, align 4, !tbaa !9
  %657 = and i32 %656, 134217728
  %658 = icmp ne i32 %657, 0
  br i1 %658, label %663, label %659

659:                                              ; preds = %655
  %660 = load ptr, ptr %8, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.ImGuiStyle, ptr %660, i32 0, i32 9
  %662 = load float, ptr %661, align 4, !tbaa !105
  br label %667

663:                                              ; preds = %655, %651
  %664 = load ptr, ptr %8, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct.ImGuiStyle, ptr %664, i32 0, i32 3
  %666 = load float, ptr %665, align 4, !tbaa !106
  br label %667

667:                                              ; preds = %663, %659
  %668 = phi float [ %662, %659 ], [ %666, %663 ]
  br label %669

669:                                              ; preds = %667, %647
  %670 = phi float [ %650, %647 ], [ %668, %667 ]
  %671 = load ptr, ptr %9, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.ImGuiWindow, ptr %671, i32 0, i32 11
  store float %670, ptr %672, align 4, !tbaa !107
  %673 = load ptr, ptr %8, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.ImGuiStyle, ptr %673, i32 0, i32 1
  %675 = load ptr, ptr %9, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.ImGuiWindow, ptr %675, i32 0, i32 9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %676, ptr align 4 %674, i64 8, i1 false), !tbaa.struct !62
  %677 = load i32, ptr %6, align 4, !tbaa !9
  %678 = and i32 %677, 16777216
  %679 = icmp ne i32 %678, 0
  br i1 %679, label %680, label %703

680:                                              ; preds = %669
  %681 = load i32, ptr %6, align 4, !tbaa !9
  %682 = and i32 %681, 67174400
  %683 = icmp ne i32 %682, 0
  br i1 %683, label %703, label %684

684:                                              ; preds = %680
  %685 = load ptr, ptr %9, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.ImGuiWindow, ptr %685, i32 0, i32 11
  %687 = load float, ptr %686, align 4, !tbaa !107
  %688 = fcmp oeq float %687, 0.000000e+00
  br i1 %688, label %689, label %703

689:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #13
  %690 = load i32, ptr %6, align 4, !tbaa !9
  %691 = and i32 %690, 1024
  %692 = icmp ne i32 %691, 0
  br i1 %692, label %693, label %698

693:                                              ; preds = %689
  %694 = load ptr, ptr %8, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiStyle, ptr %694, i32 0, i32 1
  %696 = getelementptr inbounds %struct.ImVec2, ptr %695, i32 0, i32 1
  %697 = load float, ptr %696, align 4, !tbaa !108
  br label %699

698:                                              ; preds = %689
  br label %699

699:                                              ; preds = %698, %693
  %700 = phi float [ %697, %693 ], [ 0.000000e+00, %698 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef 0.000000e+00, float noundef %700)
  %701 = load ptr, ptr %9, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.ImGuiWindow, ptr %701, i32 0, i32 9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %702, ptr align 4 %30, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #13
  br label %703

703:                                              ; preds = %699, %684, %680, %669
  %704 = load ptr, ptr %9, align 8, !tbaa !5
  %705 = getelementptr inbounds %struct.ImGuiWindow, ptr %704, i32 0, i32 9
  %706 = getelementptr inbounds %struct.ImVec2, ptr %705, i32 0, i32 0
  %707 = load float, ptr %706, align 8, !tbaa !109
  %708 = load ptr, ptr %8, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.ImGuiStyle, ptr %708, i32 0, i32 13
  %710 = getelementptr inbounds %struct.ImVec2, ptr %709, i32 0, i32 0
  %711 = load float, ptr %710, align 4, !tbaa !110
  %712 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %707, float noundef %711)
  %713 = load ptr, ptr %7, align 8, !tbaa !5
  %714 = getelementptr inbounds %struct.ImGuiContext, ptr %713, i32 0, i32 55
  %715 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %714, i32 0, i32 17
  %716 = getelementptr inbounds %struct.ImVec2, ptr %715, i32 0, i32 0
  %717 = load float, ptr %716, align 4, !tbaa !111
  %718 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %712, float noundef %717)
  %719 = load ptr, ptr %9, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.ImGuiWindow, ptr %719, i32 0, i32 45
  %721 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %720, i32 0, i32 22
  %722 = getelementptr inbounds %struct.ImVec2, ptr %721, i32 0, i32 0
  store float %718, ptr %722, align 4, !tbaa !112
  %723 = load ptr, ptr %7, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.ImGuiContext, ptr %723, i32 0, i32 55
  %725 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %724, i32 0, i32 17
  %726 = getelementptr inbounds %struct.ImVec2, ptr %725, i32 0, i32 1
  %727 = load float, ptr %726, align 4, !tbaa !113
  %728 = load ptr, ptr %9, align 8, !tbaa !5
  %729 = getelementptr inbounds %struct.ImGuiWindow, ptr %728, i32 0, i32 45
  %730 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %729, i32 0, i32 22
  %731 = getelementptr inbounds %struct.ImVec2, ptr %730, i32 0, i32 1
  store float %727, ptr %731, align 4, !tbaa !114
  %732 = load i32, ptr %6, align 4, !tbaa !9
  %733 = and i32 %732, 1
  %734 = icmp ne i32 %733, 0
  br i1 %734, label %792, label %735

735:                                              ; preds = %703
  %736 = load i32, ptr %6, align 4, !tbaa !9
  %737 = and i32 %736, 32
  %738 = icmp ne i32 %737, 0
  br i1 %738, label %792, label %739

739:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #13
  %740 = load ptr, ptr %9, align 8, !tbaa !5
  %741 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(984) %740)
  %742 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %31, i32 0, i32 0
  %743 = extractvalue { <2 x float>, <2 x float> } %741, 0
  store <2 x float> %743, ptr %742, align 4
  %744 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %31, i32 0, i32 1
  %745 = extractvalue { <2 x float>, <2 x float> } %741, 1
  store <2 x float> %745, ptr %744, align 4
  %746 = load ptr, ptr %7, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.ImGuiContext, ptr %746, i32 0, i32 23
  %748 = load ptr, ptr %747, align 8, !tbaa !115
  %749 = load ptr, ptr %9, align 8, !tbaa !5
  %750 = icmp eq ptr %748, %749
  br i1 %750, label %751, label %775

751:                                              ; preds = %739
  %752 = load ptr, ptr %7, align 8, !tbaa !5
  %753 = getelementptr inbounds %struct.ImGuiContext, ptr %752, i32 0, i32 25
  %754 = load i32, ptr %753, align 8, !tbaa !116
  %755 = icmp eq i32 %754, 0
  br i1 %755, label %756, label %775

756:                                              ; preds = %751
  %757 = load ptr, ptr %7, align 8, !tbaa !5
  %758 = getelementptr inbounds %struct.ImGuiContext, ptr %757, i32 0, i32 28
  %759 = load i32, ptr %758, align 8, !tbaa !117
  %760 = icmp eq i32 %759, 0
  br i1 %760, label %761, label %775

761:                                              ; preds = %756
  %762 = getelementptr inbounds %struct.ImRect, ptr %31, i32 0, i32 0
  %763 = getelementptr inbounds %struct.ImRect, ptr %31, i32 0, i32 1
  %764 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %762, ptr noundef nonnull align 4 dereferenceable(8) %763, i1 noundef zeroext true)
  br i1 %764, label %765, label %775

765:                                              ; preds = %761
  %766 = load ptr, ptr %7, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.ImGuiContext, ptr %766, i32 0, i32 4
  %768 = getelementptr inbounds %struct.ImGuiIO, ptr %767, i32 0, i32 60
  %769 = getelementptr inbounds [5 x i8], ptr %768, i64 0, i64 0
  %770 = load i8, ptr %769, align 1, !tbaa !60, !range !56, !noundef !57
  %771 = trunc i8 %770 to i1
  br i1 %771, label %772, label %775

772:                                              ; preds = %765
  %773 = load ptr, ptr %9, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.ImGuiWindow, ptr %773, i32 0, i32 24
  store i8 1, ptr %774, align 2, !tbaa !118
  br label %775

775:                                              ; preds = %772, %765, %761, %756, %751, %739
  %776 = load ptr, ptr %9, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.ImGuiWindow, ptr %776, i32 0, i32 24
  %778 = load i8, ptr %777, align 2, !tbaa !118, !range !56, !noundef !57
  %779 = trunc i8 %778 to i1
  br i1 %779, label %780, label %791

780:                                              ; preds = %775
  %781 = load ptr, ptr %9, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.ImGuiWindow, ptr %781, i32 0, i32 23
  %783 = load i8, ptr %782, align 1, !tbaa !119, !range !56, !noundef !57
  %784 = trunc i8 %783 to i1
  %785 = xor i1 %784, true
  %786 = load ptr, ptr %9, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.ImGuiWindow, ptr %786, i32 0, i32 23
  %788 = zext i1 %785 to i8
  store i8 %788, ptr %787, align 1, !tbaa !119
  %789 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow(ptr noundef %789)
  %790 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef %790)
  br label %791

791:                                              ; preds = %780, %775
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #13
  br label %795

792:                                              ; preds = %735, %703
  %793 = load ptr, ptr %9, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.ImGuiWindow, ptr %793, i32 0, i32 23
  store i8 0, ptr %794, align 1, !tbaa !119
  br label %795

795:                                              ; preds = %792, %791
  %796 = load ptr, ptr %9, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.ImGuiWindow, ptr %796, i32 0, i32 24
  store i8 0, ptr %797, align 2, !tbaa !118
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #13
  %798 = load ptr, ptr %9, align 8, !tbaa !5
  %799 = load ptr, ptr %9, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.ImGuiWindow, ptr %799, i32 0, i32 7
  %801 = call <2 x float> @_ZL15CalcSizeAutoFitP11ImGuiWindowRK6ImVec2(ptr noundef %798, ptr noundef nonnull align 4 dereferenceable(8) %800)
  store <2 x float> %801, ptr %32, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  %802 = load i32, ptr %6, align 4, !tbaa !9
  %803 = and i32 %802, 64
  %804 = icmp ne i32 %803, 0
  br i1 %804, label %805, label %831

805:                                              ; preds = %795
  %806 = load ptr, ptr %9, align 8, !tbaa !5
  %807 = getelementptr inbounds %struct.ImGuiWindow, ptr %806, i32 0, i32 23
  %808 = load i8, ptr %807, align 1, !tbaa !119, !range !56, !noundef !57
  %809 = trunc i8 %808 to i1
  br i1 %809, label %831, label %810

810:                                              ; preds = %805
  %811 = load i8, ptr %22, align 1, !tbaa !60, !range !56, !noundef !57
  %812 = trunc i8 %811 to i1
  br i1 %812, label %820, label %813

813:                                              ; preds = %810
  %814 = getelementptr inbounds %struct.ImVec2, ptr %32, i32 0, i32 0
  %815 = load float, ptr %814, align 4, !tbaa !120
  %816 = getelementptr inbounds %struct.ImVec2, ptr %33, i32 0, i32 0
  store float %815, ptr %816, align 4, !tbaa !120
  %817 = load ptr, ptr %9, align 8, !tbaa !5
  %818 = getelementptr inbounds %struct.ImGuiWindow, ptr %817, i32 0, i32 5
  %819 = getelementptr inbounds %struct.ImVec2, ptr %818, i32 0, i32 0
  store float %815, ptr %819, align 8, !tbaa !100
  br label %820

820:                                              ; preds = %813, %810
  %821 = load i8, ptr %23, align 1, !tbaa !60, !range !56, !noundef !57
  %822 = trunc i8 %821 to i1
  br i1 %822, label %830, label %823

823:                                              ; preds = %820
  %824 = getelementptr inbounds %struct.ImVec2, ptr %32, i32 0, i32 1
  %825 = load float, ptr %824, align 4, !tbaa !121
  %826 = getelementptr inbounds %struct.ImVec2, ptr %33, i32 0, i32 1
  store float %825, ptr %826, align 4, !tbaa !121
  %827 = load ptr, ptr %9, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.ImGuiWindow, ptr %827, i32 0, i32 5
  %829 = getelementptr inbounds %struct.ImVec2, ptr %828, i32 0, i32 1
  store float %825, ptr %829, align 4, !tbaa !102
  br label %830

830:                                              ; preds = %823, %820
  br label %910

831:                                              ; preds = %805, %795
  %832 = load ptr, ptr %9, align 8, !tbaa !5
  %833 = getelementptr inbounds %struct.ImGuiWindow, ptr %832, i32 0, i32 33
  %834 = load i32, ptr %833, align 4, !tbaa !122
  %835 = icmp sgt i32 %834, 0
  br i1 %835, label %841, label %836

836:                                              ; preds = %831
  %837 = load ptr, ptr %9, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.ImGuiWindow, ptr %837, i32 0, i32 34
  %839 = load i32, ptr %838, align 8, !tbaa !123
  %840 = icmp sgt i32 %839, 0
  br i1 %840, label %841, label %909

841:                                              ; preds = %836, %831
  %842 = load i8, ptr %22, align 1, !tbaa !60, !range !56, !noundef !57
  %843 = trunc i8 %842 to i1
  br i1 %843, label %871, label %844

844:                                              ; preds = %841
  %845 = load ptr, ptr %9, align 8, !tbaa !5
  %846 = getelementptr inbounds %struct.ImGuiWindow, ptr %845, i32 0, i32 33
  %847 = load i32, ptr %846, align 4, !tbaa !122
  %848 = icmp sgt i32 %847, 0
  br i1 %848, label %849, label %871

849:                                              ; preds = %844
  %850 = load ptr, ptr %9, align 8, !tbaa !5
  %851 = getelementptr inbounds %struct.ImGuiWindow, ptr %850, i32 0, i32 35
  %852 = load i8, ptr %851, align 4, !tbaa !124, !range !56, !noundef !57
  %853 = trunc i8 %852 to i1
  br i1 %853, label %854, label %862

854:                                              ; preds = %849
  %855 = load ptr, ptr %9, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.ImGuiWindow, ptr %855, i32 0, i32 5
  %857 = getelementptr inbounds %struct.ImVec2, ptr %856, i32 0, i32 0
  %858 = load float, ptr %857, align 8, !tbaa !100
  %859 = getelementptr inbounds %struct.ImVec2, ptr %32, i32 0, i32 0
  %860 = load float, ptr %859, align 4, !tbaa !120
  %861 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %858, float noundef %860)
  br label %865

862:                                              ; preds = %849
  %863 = getelementptr inbounds %struct.ImVec2, ptr %32, i32 0, i32 0
  %864 = load float, ptr %863, align 4, !tbaa !120
  br label %865

865:                                              ; preds = %862, %854
  %866 = phi float [ %861, %854 ], [ %864, %862 ]
  %867 = getelementptr inbounds %struct.ImVec2, ptr %33, i32 0, i32 0
  store float %866, ptr %867, align 4, !tbaa !120
  %868 = load ptr, ptr %9, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.ImGuiWindow, ptr %868, i32 0, i32 5
  %870 = getelementptr inbounds %struct.ImVec2, ptr %869, i32 0, i32 0
  store float %866, ptr %870, align 8, !tbaa !100
  br label %871

871:                                              ; preds = %865, %844, %841
  %872 = load i8, ptr %23, align 1, !tbaa !60, !range !56, !noundef !57
  %873 = trunc i8 %872 to i1
  br i1 %873, label %901, label %874

874:                                              ; preds = %871
  %875 = load ptr, ptr %9, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.ImGuiWindow, ptr %875, i32 0, i32 34
  %877 = load i32, ptr %876, align 8, !tbaa !123
  %878 = icmp sgt i32 %877, 0
  br i1 %878, label %879, label %901

879:                                              ; preds = %874
  %880 = load ptr, ptr %9, align 8, !tbaa !5
  %881 = getelementptr inbounds %struct.ImGuiWindow, ptr %880, i32 0, i32 35
  %882 = load i8, ptr %881, align 4, !tbaa !124, !range !56, !noundef !57
  %883 = trunc i8 %882 to i1
  br i1 %883, label %884, label %892

884:                                              ; preds = %879
  %885 = load ptr, ptr %9, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.ImGuiWindow, ptr %885, i32 0, i32 5
  %887 = getelementptr inbounds %struct.ImVec2, ptr %886, i32 0, i32 1
  %888 = load float, ptr %887, align 4, !tbaa !102
  %889 = getelementptr inbounds %struct.ImVec2, ptr %32, i32 0, i32 1
  %890 = load float, ptr %889, align 4, !tbaa !121
  %891 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %888, float noundef %890)
  br label %895

892:                                              ; preds = %879
  %893 = getelementptr inbounds %struct.ImVec2, ptr %32, i32 0, i32 1
  %894 = load float, ptr %893, align 4, !tbaa !121
  br label %895

895:                                              ; preds = %892, %884
  %896 = phi float [ %891, %884 ], [ %894, %892 ]
  %897 = getelementptr inbounds %struct.ImVec2, ptr %33, i32 0, i32 1
  store float %896, ptr %897, align 4, !tbaa !121
  %898 = load ptr, ptr %9, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.ImGuiWindow, ptr %898, i32 0, i32 5
  %900 = getelementptr inbounds %struct.ImVec2, ptr %899, i32 0, i32 1
  store float %896, ptr %900, align 4, !tbaa !102
  br label %901

901:                                              ; preds = %895, %874, %871
  %902 = load ptr, ptr %9, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.ImGuiWindow, ptr %902, i32 0, i32 23
  %904 = load i8, ptr %903, align 1, !tbaa !119, !range !56, !noundef !57
  %905 = trunc i8 %904 to i1
  br i1 %905, label %908, label %906

906:                                              ; preds = %901
  %907 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow(ptr noundef %907)
  br label %908

908:                                              ; preds = %906, %901
  br label %909

909:                                              ; preds = %908, %836
  br label %910

910:                                              ; preds = %909, %830
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #13
  %911 = load ptr, ptr %9, align 8, !tbaa !5
  %912 = load ptr, ptr %9, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.ImGuiWindow, ptr %912, i32 0, i32 5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %35, ptr align 8 %913, i64 8, i1 false), !tbaa.struct !62
  %914 = load <2 x float>, ptr %35, align 4
  %915 = call <2 x float> @_ZL23CalcSizeAfterConstraintP11ImGuiWindow6ImVec2(ptr noundef %911, <2 x float> %914)
  store <2 x float> %915, ptr %34, align 4
  %916 = load ptr, ptr %9, align 8, !tbaa !5
  %917 = getelementptr inbounds %struct.ImGuiWindow, ptr %916, i32 0, i32 5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %917, ptr align 4 %34, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #13
  %918 = load ptr, ptr %9, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.ImGuiWindow, ptr %918, i32 0, i32 23
  %920 = load i8, ptr %919, align 1, !tbaa !119, !range !56, !noundef !57
  %921 = trunc i8 %920 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #13
  br i1 %921, label %922, label %934

922:                                              ; preds = %910
  %923 = load i32, ptr %6, align 4, !tbaa !9
  %924 = and i32 %923, 16777216
  %925 = icmp ne i32 %924, 0
  br i1 %925, label %934, label %926

926:                                              ; preds = %922
  %927 = load ptr, ptr %9, align 8, !tbaa !5
  %928 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(984) %927)
  %929 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %37, i32 0, i32 0
  %930 = extractvalue { <2 x float>, <2 x float> } %928, 0
  store <2 x float> %930, ptr %929, align 4
  %931 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %37, i32 0, i32 1
  %932 = extractvalue { <2 x float>, <2 x float> } %928, 1
  store <2 x float> %932, ptr %931, align 4
  %933 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %37)
  store <2 x float> %933, ptr %36, align 4
  br label %937

934:                                              ; preds = %922, %910
  %935 = load ptr, ptr %9, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.ImGuiWindow, ptr %935, i32 0, i32 5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %36, ptr align 8 %936, i64 8, i1 false), !tbaa.struct !62
  br label %937

937:                                              ; preds = %934, %926
  %938 = load ptr, ptr %9, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.ImGuiWindow, ptr %938, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %939, ptr align 4 %36, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #13
  %940 = load ptr, ptr %9, align 8, !tbaa !5
  %941 = getelementptr inbounds %struct.ImGuiWindow, ptr %940, i32 0, i32 23
  %942 = load i8, ptr %941, align 1, !tbaa !119, !range !56, !noundef !57
  %943 = trunc i8 %942 to i1
  br i1 %943, label %1089, label %944

944:                                              ; preds = %937
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #13
  %945 = getelementptr inbounds %struct.ImVec2, ptr %33, i32 0, i32 0
  %946 = load float, ptr %945, align 4, !tbaa !120
  %947 = fcmp une float %946, 0x47EFFFFFE0000000
  br i1 %947, label %948, label %953

948:                                              ; preds = %944
  %949 = load ptr, ptr %9, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.ImGuiWindow, ptr %949, i32 0, i32 5
  %951 = getelementptr inbounds %struct.ImVec2, ptr %950, i32 0, i32 0
  %952 = load float, ptr %951, align 8, !tbaa !100
  br label %958

953:                                              ; preds = %944
  %954 = load ptr, ptr %9, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.ImGuiWindow, ptr %954, i32 0, i32 6
  %956 = getelementptr inbounds %struct.ImVec2, ptr %955, i32 0, i32 0
  %957 = load float, ptr %956, align 8, !tbaa !125
  br label %958

958:                                              ; preds = %953, %948
  %959 = phi float [ %952, %948 ], [ %957, %953 ]
  store float %959, ptr %38, align 4, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #13
  %960 = getelementptr inbounds %struct.ImVec2, ptr %33, i32 0, i32 1
  %961 = load float, ptr %960, align 4, !tbaa !121
  %962 = fcmp une float %961, 0x47EFFFFFE0000000
  br i1 %962, label %963, label %968

963:                                              ; preds = %958
  %964 = load ptr, ptr %9, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.ImGuiWindow, ptr %964, i32 0, i32 5
  %966 = getelementptr inbounds %struct.ImVec2, ptr %965, i32 0, i32 1
  %967 = load float, ptr %966, align 4, !tbaa !102
  br label %973

968:                                              ; preds = %958
  %969 = load ptr, ptr %9, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.ImGuiWindow, ptr %969, i32 0, i32 6
  %971 = getelementptr inbounds %struct.ImVec2, ptr %970, i32 0, i32 1
  %972 = load float, ptr %971, align 4, !tbaa !126
  br label %973

973:                                              ; preds = %968, %963
  %974 = phi float [ %967, %963 ], [ %972, %968 ]
  store float %974, ptr %39, align 4, !tbaa !63
  %975 = load i32, ptr %6, align 4, !tbaa !9
  %976 = and i32 %975, 16384
  %977 = icmp ne i32 %976, 0
  br i1 %977, label %992, label %978

978:                                              ; preds = %973
  %979 = load ptr, ptr %9, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.ImGuiWindow, ptr %979, i32 0, i32 7
  %981 = getelementptr inbounds %struct.ImVec2, ptr %980, i32 0, i32 1
  %982 = load float, ptr %981, align 4, !tbaa !127
  %983 = load float, ptr %39, align 4, !tbaa !63
  %984 = fcmp ogt float %982, %983
  br i1 %984, label %985, label %990

985:                                              ; preds = %978
  %986 = load i32, ptr %6, align 4, !tbaa !9
  %987 = and i32 %986, 8
  %988 = icmp ne i32 %987, 0
  %989 = xor i1 %988, true
  br label %990

990:                                              ; preds = %985, %978
  %991 = phi i1 [ false, %978 ], [ %989, %985 ]
  br label %992

992:                                              ; preds = %990, %973
  %993 = phi i1 [ true, %973 ], [ %991, %990 ]
  %994 = load ptr, ptr %9, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.ImGuiWindow, ptr %994, i32 0, i32 19
  %996 = zext i1 %993 to i8
  store i8 %996, ptr %995, align 1, !tbaa !128
  %997 = load i32, ptr %6, align 4, !tbaa !9
  %998 = and i32 %997, 32768
  %999 = icmp ne i32 %998, 0
  br i1 %999, label %1029, label %1000

1000:                                             ; preds = %992
  %1001 = load ptr, ptr %9, align 8, !tbaa !5
  %1002 = getelementptr inbounds %struct.ImGuiWindow, ptr %1001, i32 0, i32 7
  %1003 = getelementptr inbounds %struct.ImVec2, ptr %1002, i32 0, i32 0
  %1004 = load float, ptr %1003, align 8, !tbaa !129
  %1005 = load float, ptr %38, align 4, !tbaa !63
  %1006 = load ptr, ptr %9, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.ImGuiWindow, ptr %1006, i32 0, i32 19
  %1008 = load i8, ptr %1007, align 1, !tbaa !128, !range !56, !noundef !57
  %1009 = trunc i8 %1008 to i1
  br i1 %1009, label %1010, label %1014

1010:                                             ; preds = %1000
  %1011 = load ptr, ptr %8, align 8, !tbaa !5
  %1012 = getelementptr inbounds %struct.ImGuiStyle, ptr %1011, i32 0, i32 18
  %1013 = load float, ptr %1012, align 4, !tbaa !130
  br label %1015

1014:                                             ; preds = %1000
  br label %1015

1015:                                             ; preds = %1014, %1010
  %1016 = phi float [ %1013, %1010 ], [ 0.000000e+00, %1014 ]
  %1017 = fsub float %1005, %1016
  %1018 = fcmp ogt float %1004, %1017
  br i1 %1018, label %1019, label %1027

1019:                                             ; preds = %1015
  %1020 = load i32, ptr %6, align 4, !tbaa !9
  %1021 = and i32 %1020, 8
  %1022 = icmp ne i32 %1021, 0
  br i1 %1022, label %1027, label %1023

1023:                                             ; preds = %1019
  %1024 = load i32, ptr %6, align 4, !tbaa !9
  %1025 = and i32 %1024, 2048
  %1026 = icmp ne i32 %1025, 0
  br label %1027

1027:                                             ; preds = %1023, %1019, %1015
  %1028 = phi i1 [ false, %1019 ], [ false, %1015 ], [ %1026, %1023 ]
  br label %1029

1029:                                             ; preds = %1027, %992
  %1030 = phi i1 [ true, %992 ], [ %1028, %1027 ]
  %1031 = load ptr, ptr %9, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.ImGuiWindow, ptr %1031, i32 0, i32 18
  %1033 = zext i1 %1030 to i8
  store i8 %1033, ptr %1032, align 8, !tbaa !131
  %1034 = load ptr, ptr %9, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.ImGuiWindow, ptr %1034, i32 0, i32 18
  %1036 = load i8, ptr %1035, align 8, !tbaa !131, !range !56, !noundef !57
  %1037 = trunc i8 %1036 to i1
  br i1 %1037, label %1038, label %1064

1038:                                             ; preds = %1029
  %1039 = load ptr, ptr %9, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.ImGuiWindow, ptr %1039, i32 0, i32 19
  %1041 = load i8, ptr %1040, align 1, !tbaa !128, !range !56, !noundef !57
  %1042 = trunc i8 %1041 to i1
  br i1 %1042, label %1064, label %1043

1043:                                             ; preds = %1038
  %1044 = load ptr, ptr %9, align 8, !tbaa !5
  %1045 = getelementptr inbounds %struct.ImGuiWindow, ptr %1044, i32 0, i32 7
  %1046 = getelementptr inbounds %struct.ImVec2, ptr %1045, i32 0, i32 1
  %1047 = load float, ptr %1046, align 4, !tbaa !127
  %1048 = load float, ptr %39, align 4, !tbaa !63
  %1049 = load ptr, ptr %8, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.ImGuiStyle, ptr %1049, i32 0, i32 18
  %1051 = load float, ptr %1050, align 4, !tbaa !130
  %1052 = fsub float %1048, %1051
  %1053 = fcmp ogt float %1047, %1052
  br i1 %1053, label %1054, label %1059

1054:                                             ; preds = %1043
  %1055 = load i32, ptr %6, align 4, !tbaa !9
  %1056 = and i32 %1055, 8
  %1057 = icmp ne i32 %1056, 0
  %1058 = xor i1 %1057, true
  br label %1059

1059:                                             ; preds = %1054, %1043
  %1060 = phi i1 [ false, %1043 ], [ %1058, %1054 ]
  %1061 = load ptr, ptr %9, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.ImGuiWindow, ptr %1061, i32 0, i32 19
  %1063 = zext i1 %1060 to i8
  store i8 %1063, ptr %1062, align 1, !tbaa !128
  br label %1064

1064:                                             ; preds = %1059, %1038, %1029
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #13
  %1065 = load ptr, ptr %9, align 8, !tbaa !5
  %1066 = getelementptr inbounds %struct.ImGuiWindow, ptr %1065, i32 0, i32 19
  %1067 = load i8, ptr %1066, align 1, !tbaa !128, !range !56, !noundef !57
  %1068 = trunc i8 %1067 to i1
  br i1 %1068, label %1069, label %1073

1069:                                             ; preds = %1064
  %1070 = load ptr, ptr %8, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.ImGuiStyle, ptr %1070, i32 0, i32 18
  %1072 = load float, ptr %1071, align 4, !tbaa !130
  br label %1074

1073:                                             ; preds = %1064
  br label %1074

1074:                                             ; preds = %1073, %1069
  %1075 = phi float [ %1072, %1069 ], [ 0.000000e+00, %1073 ]
  %1076 = load ptr, ptr %9, align 8, !tbaa !5
  %1077 = getelementptr inbounds %struct.ImGuiWindow, ptr %1076, i32 0, i32 18
  %1078 = load i8, ptr %1077, align 8, !tbaa !131, !range !56, !noundef !57
  %1079 = trunc i8 %1078 to i1
  br i1 %1079, label %1080, label %1084

1080:                                             ; preds = %1074
  %1081 = load ptr, ptr %8, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.ImGuiStyle, ptr %1081, i32 0, i32 18
  %1083 = load float, ptr %1082, align 4, !tbaa !130
  br label %1085

1084:                                             ; preds = %1074
  br label %1085

1085:                                             ; preds = %1084, %1080
  %1086 = phi float [ %1083, %1080 ], [ 0.000000e+00, %1084 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %40, float noundef %1075, float noundef %1086)
  %1087 = load ptr, ptr %9, align 8, !tbaa !5
  %1088 = getelementptr inbounds %struct.ImGuiWindow, ptr %1087, i32 0, i32 17
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1088, ptr align 4 %40, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #13
  br label %1089

1089:                                             ; preds = %1085, %937
  %1090 = load i8, ptr %17, align 1, !tbaa !60, !range !56, !noundef !57
  %1091 = trunc i8 %1090 to i1
  br i1 %1091, label %1092, label %1109

1092:                                             ; preds = %1089
  %1093 = load ptr, ptr %9, align 8, !tbaa !5
  %1094 = getelementptr inbounds %struct.ImGuiWindow, ptr %1093, i32 0, i32 37
  store i32 -1, ptr %1094, align 4, !tbaa !132
  %1095 = load i32, ptr %6, align 4, !tbaa !9
  %1096 = and i32 %1095, 67108864
  %1097 = icmp ne i32 %1096, 0
  br i1 %1097, label %1098, label %1108

1098:                                             ; preds = %1092
  %1099 = load i8, ptr %21, align 1, !tbaa !60, !range !56, !noundef !57
  %1100 = trunc i8 %1099 to i1
  br i1 %1100, label %1108, label %1101

1101:                                             ; preds = %1098
  %1102 = load ptr, ptr %7, align 8, !tbaa !5
  %1103 = getelementptr inbounds %struct.ImGuiContext, ptr %1102, i32 0, i32 54
  %1104 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI13ImGuiPopupRefE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %1103)
  %1105 = getelementptr inbounds %struct.ImGuiPopupRef, ptr %1104, i32 0, i32 5
  %1106 = load ptr, ptr %9, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.ImGuiWindow, ptr %1106, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1107, ptr align 8 %1105, i64 8, i1 false), !tbaa.struct !62
  br label %1108

1108:                                             ; preds = %1101, %1098, %1092
  br label %1109

1109:                                             ; preds = %1108, %1089
  %1110 = load i32, ptr %6, align 4, !tbaa !9
  %1111 = and i32 %1110, 16777216
  %1112 = icmp ne i32 %1111, 0
  br i1 %1112, label %1113, label %1140

1113:                                             ; preds = %1109
  %1114 = load ptr, ptr %16, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.ImGuiWindow, ptr %1114, i32 0, i32 45
  %1116 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1115, i32 0, i32 23
  %1117 = getelementptr inbounds %class.ImVector, ptr %1116, i32 0, i32 0
  %1118 = load i32, ptr %1117, align 8, !tbaa !133
  %1119 = load ptr, ptr %9, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.ImGuiWindow, ptr %1119, i32 0, i32 30
  store i32 %1118, ptr %1120, align 8, !tbaa !94
  %1121 = load ptr, ptr %16, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.ImGuiWindow, ptr %1121, i32 0, i32 45
  %1123 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1122, i32 0, i32 23
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %1123, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %1124 = load i32, ptr %6, align 4, !tbaa !9
  %1125 = and i32 %1124, 67108864
  %1126 = icmp ne i32 %1125, 0
  br i1 %1126, label %1139, label %1127

1127:                                             ; preds = %1113
  %1128 = load i8, ptr %21, align 1, !tbaa !60, !range !56, !noundef !57
  %1129 = trunc i8 %1128 to i1
  br i1 %1129, label %1139, label %1130

1130:                                             ; preds = %1127
  %1131 = load i8, ptr %25, align 1, !tbaa !60, !range !56, !noundef !57
  %1132 = trunc i8 %1131 to i1
  br i1 %1132, label %1139, label %1133

1133:                                             ; preds = %1130
  %1134 = load ptr, ptr %16, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.ImGuiWindow, ptr %1134, i32 0, i32 45
  %1136 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1135, i32 0, i32 0
  %1137 = load ptr, ptr %9, align 8, !tbaa !5
  %1138 = getelementptr inbounds %struct.ImGuiWindow, ptr %1137, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1138, ptr align 8 %1136, i64 8, i1 false), !tbaa.struct !62
  br label %1139

1139:                                             ; preds = %1133, %1130, %1127, %1113
  br label %1140

1140:                                             ; preds = %1139, %1109
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #13
  %1141 = load ptr, ptr %9, align 8, !tbaa !5
  %1142 = getelementptr inbounds %struct.ImGuiWindow, ptr %1141, i32 0, i32 43
  %1143 = getelementptr inbounds %struct.ImVec2, ptr %1142, i32 0, i32 0
  %1144 = load float, ptr %1143, align 4, !tbaa !134
  %1145 = fcmp une float %1144, 0x47EFFFFFE0000000
  br i1 %1145, label %1146, label %1151

1146:                                             ; preds = %1140
  %1147 = load ptr, ptr %9, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.ImGuiWindow, ptr %1147, i32 0, i32 39
  %1149 = load i32, ptr %1148, align 4, !tbaa !76
  %1150 = icmp eq i32 %1149, 0
  br label %1151

1151:                                             ; preds = %1146, %1140
  %1152 = phi i1 [ false, %1140 ], [ %1150, %1146 ]
  %1153 = zext i1 %1152 to i8
  store i8 %1153, ptr %41, align 1, !tbaa !60
  %1154 = load i8, ptr %41, align 1, !tbaa !60, !range !56, !noundef !57
  %1155 = trunc i8 %1154 to i1
  br i1 %1155, label %1156, label %1169

1156:                                             ; preds = %1151
  %1157 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #13
  %1158 = load ptr, ptr %8, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.ImGuiStyle, ptr %1158, i32 0, i32 24
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #13
  %1160 = load ptr, ptr %9, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.ImGuiWindow, ptr %1160, i32 0, i32 43
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #13
  %1162 = load ptr, ptr %9, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.ImGuiWindow, ptr %1162, i32 0, i32 5
  %1164 = load ptr, ptr %9, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.ImGuiWindow, ptr %1164, i32 0, i32 44
  %1166 = call <2 x float> @_ZmlRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1163, ptr noundef nonnull align 4 dereferenceable(8) %1165)
  store <2 x float> %1166, ptr %44, align 4
  %1167 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1161, ptr noundef nonnull align 4 dereferenceable(8) %44)
  store <2 x float> %1167, ptr %43, align 4
  %1168 = call <2 x float> @_ZL5ImMaxRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1159, ptr noundef nonnull align 4 dereferenceable(8) %43)
  store <2 x float> %1168, ptr %42, align 4
  call void @_ZL12SetWindowPosP11ImGuiWindowRK6ImVec2i(ptr noundef %1157, ptr noundef nonnull align 4 dereferenceable(8) %42, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #13
  br label %1211

1169:                                             ; preds = %1151
  %1170 = load i32, ptr %6, align 4, !tbaa !9
  %1171 = and i32 %1170, 268435456
  %1172 = icmp ne i32 %1171, 0
  br i1 %1172, label %1173, label %1178

1173:                                             ; preds = %1169
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #13
  %1174 = load ptr, ptr %9, align 8, !tbaa !5
  %1175 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef %1174)
  store <2 x float> %1175, ptr %45, align 4
  %1176 = load ptr, ptr %9, align 8, !tbaa !5
  %1177 = getelementptr inbounds %struct.ImGuiWindow, ptr %1176, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1177, ptr align 4 %45, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #13
  br label %1210

1178:                                             ; preds = %1169
  %1179 = load i32, ptr %6, align 4, !tbaa !9
  %1180 = and i32 %1179, 67108864
  %1181 = icmp ne i32 %1180, 0
  br i1 %1181, label %1182, label %1193

1182:                                             ; preds = %1178
  %1183 = load i8, ptr %21, align 1, !tbaa !60, !range !56, !noundef !57
  %1184 = trunc i8 %1183 to i1
  br i1 %1184, label %1193, label %1185

1185:                                             ; preds = %1182
  %1186 = load i8, ptr %18, align 1, !tbaa !60, !range !56, !noundef !57
  %1187 = trunc i8 %1186 to i1
  br i1 %1187, label %1188, label %1193

1188:                                             ; preds = %1185
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #13
  %1189 = load ptr, ptr %9, align 8, !tbaa !5
  %1190 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef %1189)
  store <2 x float> %1190, ptr %46, align 4
  %1191 = load ptr, ptr %9, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.ImGuiWindow, ptr %1191, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1192, ptr align 4 %46, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #13
  br label %1209

1193:                                             ; preds = %1185, %1182, %1178
  %1194 = load i32, ptr %6, align 4, !tbaa !9
  %1195 = and i32 %1194, 33554432
  %1196 = icmp ne i32 %1195, 0
  br i1 %1196, label %1197, label %1208

1197:                                             ; preds = %1193
  %1198 = load i8, ptr %21, align 1, !tbaa !60, !range !56, !noundef !57
  %1199 = trunc i8 %1198 to i1
  br i1 %1199, label %1208, label %1200

1200:                                             ; preds = %1197
  %1201 = load i8, ptr %25, align 1, !tbaa !60, !range !56, !noundef !57
  %1202 = trunc i8 %1201 to i1
  br i1 %1202, label %1208, label %1203

1203:                                             ; preds = %1200
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #13
  %1204 = load ptr, ptr %9, align 8, !tbaa !5
  %1205 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef %1204)
  store <2 x float> %1205, ptr %47, align 4
  %1206 = load ptr, ptr %9, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.ImGuiWindow, ptr %1206, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1207, ptr align 4 %47, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #13
  br label %1208

1208:                                             ; preds = %1203, %1200, %1197, %1193
  br label %1209

1209:                                             ; preds = %1208, %1188
  br label %1210

1210:                                             ; preds = %1209, %1173
  br label %1211

1211:                                             ; preds = %1210, %1156
  %1212 = load i32, ptr %6, align 4, !tbaa !9
  %1213 = and i32 %1212, 16777216
  %1214 = icmp ne i32 %1213, 0
  br i1 %1214, label %1269, label %1215

1215:                                             ; preds = %1211
  %1216 = load i8, ptr %21, align 1, !tbaa !60, !range !56, !noundef !57
  %1217 = trunc i8 %1216 to i1
  br i1 %1217, label %1268, label %1218

1218:                                             ; preds = %1215
  %1219 = load ptr, ptr %9, align 8, !tbaa !5
  %1220 = getelementptr inbounds %struct.ImGuiWindow, ptr %1219, i32 0, i32 33
  %1221 = load i32, ptr %1220, align 4, !tbaa !122
  %1222 = icmp sle i32 %1221, 0
  br i1 %1222, label %1223, label %1268

1223:                                             ; preds = %1218
  %1224 = load ptr, ptr %9, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.ImGuiWindow, ptr %1224, i32 0, i32 34
  %1226 = load i32, ptr %1225, align 8, !tbaa !123
  %1227 = icmp sle i32 %1226, 0
  br i1 %1227, label %1228, label %1268

1228:                                             ; preds = %1223
  %1229 = load ptr, ptr %7, align 8, !tbaa !5
  %1230 = getelementptr inbounds %struct.ImGuiContext, ptr %1229, i32 0, i32 4
  %1231 = getelementptr inbounds %struct.ImGuiIO, ptr %1230, i32 0, i32 2
  %1232 = getelementptr inbounds %struct.ImVec2, ptr %1231, i32 0, i32 0
  %1233 = load float, ptr %1232, align 8, !tbaa !135
  %1234 = fcmp ogt float %1233, 0.000000e+00
  br i1 %1234, label %1235, label %1268

1235:                                             ; preds = %1228
  %1236 = load ptr, ptr %7, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.ImGuiContext, ptr %1236, i32 0, i32 4
  %1238 = getelementptr inbounds %struct.ImGuiIO, ptr %1237, i32 0, i32 2
  %1239 = getelementptr inbounds %struct.ImVec2, ptr %1238, i32 0, i32 1
  %1240 = load float, ptr %1239, align 4, !tbaa !136
  %1241 = fcmp ogt float %1240, 0.000000e+00
  br i1 %1241, label %1242, label %1268

1242:                                             ; preds = %1235
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #13
  %1243 = load ptr, ptr %8, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.ImGuiStyle, ptr %1243, i32 0, i32 23
  %1245 = load ptr, ptr %8, align 8, !tbaa !5
  %1246 = getelementptr inbounds %struct.ImGuiStyle, ptr %1245, i32 0, i32 24
  %1247 = call <2 x float> @_ZL5ImMaxRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1244, ptr noundef nonnull align 4 dereferenceable(8) %1246)
  store <2 x float> %1247, ptr %48, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #13
  %1248 = load ptr, ptr %9, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.ImGuiWindow, ptr %1248, i32 0, i32 3
  %1250 = load ptr, ptr %9, align 8, !tbaa !5
  %1251 = getelementptr inbounds %struct.ImGuiWindow, ptr %1250, i32 0, i32 4
  %1252 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1249, ptr noundef nonnull align 4 dereferenceable(8) %1251)
  store <2 x float> %1252, ptr %51, align 4
  %1253 = call <2 x float> @_ZL5ImMaxRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %51, ptr noundef nonnull align 4 dereferenceable(8) %48)
  store <2 x float> %1253, ptr %50, align 4
  %1254 = load ptr, ptr %9, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.ImGuiWindow, ptr %1254, i32 0, i32 4
  %1256 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %50, ptr noundef nonnull align 4 dereferenceable(8) %1255)
  store <2 x float> %1256, ptr %49, align 4
  %1257 = load ptr, ptr %9, align 8, !tbaa !5
  %1258 = getelementptr inbounds %struct.ImGuiWindow, ptr %1257, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1258, ptr align 4 %49, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #13
  %1259 = load ptr, ptr %9, align 8, !tbaa !5
  %1260 = getelementptr inbounds %struct.ImGuiWindow, ptr %1259, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #13
  %1261 = load ptr, ptr %7, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.ImGuiContext, ptr %1261, i32 0, i32 4
  %1263 = getelementptr inbounds %struct.ImGuiIO, ptr %1262, i32 0, i32 2
  %1264 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1263, ptr noundef nonnull align 4 dereferenceable(8) %48)
  store <2 x float> %1264, ptr %53, align 4
  %1265 = call <2 x float> @_ZL5ImMinRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1260, ptr noundef nonnull align 4 dereferenceable(8) %53)
  store <2 x float> %1265, ptr %52, align 4
  %1266 = load ptr, ptr %9, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.ImGuiWindow, ptr %1266, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1267, ptr align 4 %52, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #13
  br label %1268

1268:                                             ; preds = %1242, %1235, %1228, %1223, %1218, %1215
  br label %1269

1269:                                             ; preds = %1268, %1211
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #13
  %1270 = load ptr, ptr %9, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.ImGuiWindow, ptr %1270, i32 0, i32 3
  %1272 = call <2 x float> @_ZL7ImFloorRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %1271)
  store <2 x float> %1272, ptr %54, align 4
  %1273 = load ptr, ptr %9, align 8, !tbaa !5
  %1274 = getelementptr inbounds %struct.ImGuiWindow, ptr %1273, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1274, ptr align 4 %54, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #13
  %1275 = load i32, ptr %6, align 4, !tbaa !9
  %1276 = and i32 %1275, 16777216
  %1277 = icmp ne i32 %1276, 0
  br i1 %1277, label %1278, label %1282

1278:                                             ; preds = %1269
  %1279 = load ptr, ptr %8, align 8, !tbaa !5
  %1280 = getelementptr inbounds %struct.ImGuiStyle, ptr %1279, i32 0, i32 6
  %1281 = load float, ptr %1280, align 4, !tbaa !137
  br label %1300

1282:                                             ; preds = %1269
  %1283 = load i32, ptr %6, align 4, !tbaa !9
  %1284 = and i32 %1283, 67108864
  %1285 = icmp ne i32 %1284, 0
  br i1 %1285, label %1286, label %1294

1286:                                             ; preds = %1282
  %1287 = load i32, ptr %6, align 4, !tbaa !9
  %1288 = and i32 %1287, 134217728
  %1289 = icmp ne i32 %1288, 0
  br i1 %1289, label %1294, label %1290

1290:                                             ; preds = %1286
  %1291 = load ptr, ptr %8, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.ImGuiStyle, ptr %1291, i32 0, i32 8
  %1293 = load float, ptr %1292, align 4, !tbaa !138
  br label %1298

1294:                                             ; preds = %1286, %1282
  %1295 = load ptr, ptr %8, align 8, !tbaa !5
  %1296 = getelementptr inbounds %struct.ImGuiStyle, ptr %1295, i32 0, i32 2
  %1297 = load float, ptr %1296, align 4, !tbaa !139
  br label %1298

1298:                                             ; preds = %1294, %1290
  %1299 = phi float [ %1293, %1290 ], [ %1297, %1294 ]
  br label %1300

1300:                                             ; preds = %1298, %1278
  %1301 = phi float [ %1281, %1278 ], [ %1299, %1298 ]
  %1302 = load ptr, ptr %9, align 8, !tbaa !5
  %1303 = getelementptr inbounds %struct.ImGuiWindow, ptr %1302, i32 0, i32 10
  store float %1301, ptr %1303, align 8, !tbaa !140
  %1304 = load ptr, ptr %9, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.ImGuiWindow, ptr %1304, i32 0, i32 72
  %1306 = load i32, ptr %1305, align 8, !tbaa !141
  %1307 = icmp eq i32 %1306, 2147483647
  br i1 %1307, label %1313, label %1308

1308:                                             ; preds = %1300
  %1309 = load ptr, ptr %9, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.ImGuiWindow, ptr %1309, i32 0, i32 68
  %1311 = load i32, ptr %1310, align 8, !tbaa !142
  %1312 = icmp eq i32 %1311, -1
  br i1 %1312, label %1313, label %1314

1313:                                             ; preds = %1308, %1300
  br label %1328

1314:                                             ; preds = %1308
  %1315 = load ptr, ptr %9, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.ImGuiWindow, ptr %1315, i32 0, i32 72
  %1317 = load i32, ptr %1316, align 8, !tbaa !141
  %1318 = load ptr, ptr %9, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.ImGuiWindow, ptr %1318, i32 0, i32 68
  %1320 = load i32, ptr %1319, align 8, !tbaa !142
  %1321 = add nsw i32 %1320, 1
  %1322 = add nsw i32 %1317, %1321
  %1323 = load ptr, ptr %9, align 8, !tbaa !5
  %1324 = getelementptr inbounds %struct.ImGuiWindow, ptr %1323, i32 0, i32 68
  %1325 = load i32, ptr %1324, align 8, !tbaa !142
  %1326 = add nsw i32 %1325, 1
  %1327 = srem i32 %1322, %1326
  br label %1328

1328:                                             ; preds = %1314, %1313
  %1329 = phi i32 [ 2147483647, %1313 ], [ %1327, %1314 ]
  %1330 = load ptr, ptr %9, align 8, !tbaa !5
  %1331 = getelementptr inbounds %struct.ImGuiWindow, ptr %1330, i32 0, i32 70
  store i32 %1329, ptr %1331, align 8, !tbaa !143
  %1332 = load ptr, ptr %9, align 8, !tbaa !5
  %1333 = getelementptr inbounds %struct.ImGuiWindow, ptr %1332, i32 0, i32 73
  %1334 = load i32, ptr %1333, align 4, !tbaa !144
  %1335 = icmp eq i32 %1334, 2147483647
  br i1 %1335, label %1341, label %1336

1336:                                             ; preds = %1328
  %1337 = load ptr, ptr %9, align 8, !tbaa !5
  %1338 = getelementptr inbounds %struct.ImGuiWindow, ptr %1337, i32 0, i32 69
  %1339 = load i32, ptr %1338, align 4, !tbaa !145
  %1340 = icmp eq i32 %1339, -1
  br i1 %1340, label %1341, label %1342

1341:                                             ; preds = %1336, %1328
  br label %1356

1342:                                             ; preds = %1336
  %1343 = load ptr, ptr %9, align 8, !tbaa !5
  %1344 = getelementptr inbounds %struct.ImGuiWindow, ptr %1343, i32 0, i32 73
  %1345 = load i32, ptr %1344, align 4, !tbaa !144
  %1346 = load ptr, ptr %9, align 8, !tbaa !5
  %1347 = getelementptr inbounds %struct.ImGuiWindow, ptr %1346, i32 0, i32 69
  %1348 = load i32, ptr %1347, align 4, !tbaa !145
  %1349 = add nsw i32 %1348, 1
  %1350 = add nsw i32 %1345, %1349
  %1351 = load ptr, ptr %9, align 8, !tbaa !5
  %1352 = getelementptr inbounds %struct.ImGuiWindow, ptr %1351, i32 0, i32 69
  %1353 = load i32, ptr %1352, align 4, !tbaa !145
  %1354 = add nsw i32 %1353, 1
  %1355 = srem i32 %1350, %1354
  br label %1356

1356:                                             ; preds = %1342, %1341
  %1357 = phi i32 [ 2147483647, %1341 ], [ %1355, %1342 ]
  %1358 = load ptr, ptr %9, align 8, !tbaa !5
  %1359 = getelementptr inbounds %struct.ImGuiWindow, ptr %1358, i32 0, i32 71
  store i32 %1357, ptr %1359, align 4, !tbaa !146
  %1360 = load ptr, ptr %9, align 8, !tbaa !5
  %1361 = getelementptr inbounds %struct.ImGuiWindow, ptr %1360, i32 0, i32 69
  store i32 -1, ptr %1361, align 4, !tbaa !145
  %1362 = load ptr, ptr %9, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.ImGuiWindow, ptr %1362, i32 0, i32 68
  store i32 -1, ptr %1363, align 8, !tbaa !142
  %1364 = load ptr, ptr %9, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.ImGuiWindow, ptr %1364, i32 0, i32 73
  store i32 2147483647, ptr %1365, align 4, !tbaa !144
  %1366 = load ptr, ptr %9, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.ImGuiWindow, ptr %1366, i32 0, i32 72
  store i32 2147483647, ptr %1367, align 8, !tbaa !141
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #13
  %1368 = load ptr, ptr %9, align 8, !tbaa !5
  %1369 = call <2 x float> @_ZL38CalcNextScrollFromScrollTargetAndClampP11ImGuiWindowb(ptr noundef %1368, i1 noundef zeroext true)
  store <2 x float> %1369, ptr %55, align 4
  %1370 = load ptr, ptr %9, align 8, !tbaa !5
  %1371 = getelementptr inbounds %struct.ImGuiWindow, ptr %1370, i32 0, i32 14
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1371, ptr align 4 %55, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %56, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  %1372 = load ptr, ptr %9, align 8, !tbaa !5
  %1373 = getelementptr inbounds %struct.ImGuiWindow, ptr %1372, i32 0, i32 15
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1373, ptr align 4 %56, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #13
  store i8 0, ptr %57, align 1, !tbaa !60
  %1374 = load i8, ptr %17, align 1, !tbaa !60, !range !56, !noundef !57
  %1375 = trunc i8 %1374 to i1
  br i1 %1375, label %1376, label %1390

1376:                                             ; preds = %1356
  %1377 = load i32, ptr %6, align 4, !tbaa !9
  %1378 = and i32 %1377, 4096
  %1379 = icmp ne i32 %1378, 0
  br i1 %1379, label %1390, label %1380

1380:                                             ; preds = %1376
  %1381 = load i32, ptr %6, align 4, !tbaa !9
  %1382 = and i32 %1381, 50331648
  %1383 = icmp ne i32 %1382, 0
  br i1 %1383, label %1384, label %1388

1384:                                             ; preds = %1380
  %1385 = load i32, ptr %6, align 4, !tbaa !9
  %1386 = and i32 %1385, 67108864
  %1387 = icmp ne i32 %1386, 0
  br i1 %1387, label %1388, label %1389

1388:                                             ; preds = %1384, %1380
  store i8 1, ptr %57, align 1, !tbaa !60
  br label %1389

1389:                                             ; preds = %1388, %1384
  br label %1390

1390:                                             ; preds = %1389, %1376, %1356
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #13
  store i32 -1, ptr %58, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #13
  call void @llvm.memset.p0.i64(ptr align 16 %59, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #13
  %1391 = load ptr, ptr %7, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.ImGuiContext, ptr %1391, i32 0, i32 4
  %1393 = getelementptr inbounds %struct.ImGuiIO, ptr %1392, i32 0, i32 24
  %1394 = load i8, ptr %1393, align 1, !tbaa !147, !range !56, !noundef !57
  %1395 = trunc i8 %1394 to i1
  %1396 = zext i1 %1395 to i64
  %1397 = select i1 %1395, i32 2, i32 1
  store i32 %1397, ptr %60, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #13
  %1398 = load ptr, ptr %7, align 8, !tbaa !5
  %1399 = getelementptr inbounds %struct.ImGuiContext, ptr %1398, i32 0, i32 7
  %1400 = load float, ptr %1399, align 8, !tbaa !148
  %1401 = fmul float %1400, 0x3FF59999A0000000
  %1402 = load ptr, ptr %9, align 8, !tbaa !5
  %1403 = getelementptr inbounds %struct.ImGuiWindow, ptr %1402, i32 0, i32 10
  %1404 = load float, ptr %1403, align 8, !tbaa !140
  %1405 = fadd float %1404, 1.000000e+00
  %1406 = load ptr, ptr %7, align 8, !tbaa !5
  %1407 = getelementptr inbounds %struct.ImGuiContext, ptr %1406, i32 0, i32 7
  %1408 = load float, ptr %1407, align 8, !tbaa !148
  %1409 = call float @llvm.fmuladd.f32(float %1408, float 0x3FC99999A0000000, float %1405)
  %1410 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1401, float noundef %1409)
  %1411 = fptosi float %1410 to i32
  %1412 = sitofp i32 %1411 to float
  store float %1412, ptr %61, align 4, !tbaa !63
  %1413 = load ptr, ptr %9, align 8, !tbaa !5
  %1414 = getelementptr inbounds %struct.ImGuiWindow, ptr %1413, i32 0, i32 23
  %1415 = load i8, ptr %1414, align 1, !tbaa !119, !range !56, !noundef !57
  %1416 = trunc i8 %1415 to i1
  br i1 %1416, label %1421, label %1417

1417:                                             ; preds = %1390
  %1418 = load ptr, ptr %9, align 8, !tbaa !5
  %1419 = load i32, ptr %60, align 4, !tbaa !9
  %1420 = getelementptr inbounds [4 x i32], ptr %59, i64 0, i64 0
  call void @_ZN5ImGuiL18UpdateManualResizeEP11ImGuiWindowRK6ImVec2PiiPj(ptr noundef %1418, ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef %58, i32 noundef %1419, ptr noundef %1420)
  br label %1421

1421:                                             ; preds = %1417, %1390
  %1422 = load ptr, ptr %9, align 8, !tbaa !5
  %1423 = getelementptr inbounds %struct.ImGuiWindow, ptr %1422, i32 0, i32 4
  %1424 = getelementptr inbounds %struct.ImVec2, ptr %1423, i32 0, i32 0
  %1425 = load float, ptr %1424, align 8, !tbaa !101
  %1426 = fcmp ogt float %1425, 0.000000e+00
  br i1 %1426, label %1427, label %1445

1427:                                             ; preds = %1421
  %1428 = load i32, ptr %6, align 4, !tbaa !9
  %1429 = and i32 %1428, 33554432
  %1430 = icmp ne i32 %1429, 0
  br i1 %1430, label %1445, label %1431

1431:                                             ; preds = %1427
  %1432 = load i32, ptr %6, align 4, !tbaa !9
  %1433 = and i32 %1432, 64
  %1434 = icmp ne i32 %1433, 0
  br i1 %1434, label %1445, label %1435

1435:                                             ; preds = %1431
  %1436 = load ptr, ptr %9, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.ImGuiWindow, ptr %1436, i32 0, i32 4
  %1438 = getelementptr inbounds %struct.ImVec2, ptr %1437, i32 0, i32 0
  %1439 = load float, ptr %1438, align 8, !tbaa !101
  %1440 = fmul float %1439, 0x3FE4CCCCC0000000
  %1441 = fptosi float %1440 to i32
  %1442 = sitofp i32 %1441 to float
  %1443 = load ptr, ptr %9, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.ImGuiWindow, ptr %1443, i32 0, i32 53
  store float %1442, ptr %1444, align 4, !tbaa !149
  br label %1454

1445:                                             ; preds = %1431, %1427, %1421
  %1446 = load ptr, ptr %7, align 8, !tbaa !5
  %1447 = getelementptr inbounds %struct.ImGuiContext, ptr %1446, i32 0, i32 7
  %1448 = load float, ptr %1447, align 8, !tbaa !148
  %1449 = fmul float %1448, 1.600000e+01
  %1450 = fptosi float %1449 to i32
  %1451 = sitofp i32 %1450 to float
  %1452 = load ptr, ptr %9, align 8, !tbaa !5
  %1453 = getelementptr inbounds %struct.ImGuiWindow, ptr %1452, i32 0, i32 53
  store float %1451, ptr %1453, align 4, !tbaa !149
  br label %1454

1454:                                             ; preds = %1445, %1435
  %1455 = load ptr, ptr %9, align 8, !tbaa !5
  %1456 = getelementptr inbounds %struct.ImGuiWindow, ptr %1455, i32 0, i32 59
  %1457 = load ptr, ptr %1456, align 8, !tbaa !150
  call void @_ZN10ImDrawList5ClearEv(ptr noundef nonnull align 8 dereferenceable(168) %1457)
  %1458 = load ptr, ptr %7, align 8, !tbaa !5
  %1459 = getelementptr inbounds %struct.ImGuiContext, ptr %1458, i32 0, i32 5
  %1460 = getelementptr inbounds %struct.ImGuiStyle, ptr %1459, i32 0, i32 26
  %1461 = load i8, ptr %1460, align 8, !tbaa !151, !range !56, !noundef !57
  %1462 = trunc i8 %1461 to i1
  %1463 = zext i1 %1462 to i64
  %1464 = select i1 %1462, i32 1, i32 0
  %1465 = load ptr, ptr %7, align 8, !tbaa !5
  %1466 = getelementptr inbounds %struct.ImGuiContext, ptr %1465, i32 0, i32 5
  %1467 = getelementptr inbounds %struct.ImGuiStyle, ptr %1466, i32 0, i32 27
  %1468 = load i8, ptr %1467, align 1, !tbaa !152, !range !56, !noundef !57
  %1469 = trunc i8 %1468 to i1
  %1470 = zext i1 %1469 to i64
  %1471 = select i1 %1469, i32 2, i32 0
  %1472 = or i32 %1464, %1471
  %1473 = load ptr, ptr %9, align 8, !tbaa !5
  %1474 = getelementptr inbounds %struct.ImGuiWindow, ptr %1473, i32 0, i32 59
  %1475 = load ptr, ptr %1474, align 8, !tbaa !150
  %1476 = getelementptr inbounds %struct.ImDrawList, ptr %1475, i32 0, i32 3
  store i32 %1472, ptr %1476, align 8, !tbaa !153
  %1477 = load ptr, ptr %9, align 8, !tbaa !5
  %1478 = getelementptr inbounds %struct.ImGuiWindow, ptr %1477, i32 0, i32 59
  %1479 = load ptr, ptr %1478, align 8, !tbaa !150
  %1480 = load ptr, ptr %7, align 8, !tbaa !5
  %1481 = getelementptr inbounds %struct.ImGuiContext, ptr %1480, i32 0, i32 6
  %1482 = load ptr, ptr %1481, align 8, !tbaa !154
  %1483 = getelementptr inbounds %struct.ImFont, ptr %1482, i32 0, i32 11
  %1484 = load ptr, ptr %1483, align 8, !tbaa !155
  %1485 = getelementptr inbounds %struct.ImFontAtlas, ptr %1484, i32 0, i32 3
  %1486 = load ptr, ptr %1485, align 8, !tbaa !156
  call void @_ZN10ImDrawList13PushTextureIDEPv(ptr noundef nonnull align 8 dereferenceable(168) %1479, ptr noundef %1486)
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #13
  %1487 = call { <2 x float>, <2 x float> } @_ZL15GetViewportRectv()
  %1488 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %62, i32 0, i32 0
  %1489 = extractvalue { <2 x float>, <2 x float> } %1487, 0
  store <2 x float> %1489, ptr %1488, align 4
  %1490 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %62, i32 0, i32 1
  %1491 = extractvalue { <2 x float>, <2 x float> } %1487, 1
  store <2 x float> %1491, ptr %1490, align 4
  %1492 = load i32, ptr %6, align 4, !tbaa !9
  %1493 = and i32 %1492, 16777216
  %1494 = icmp ne i32 %1493, 0
  br i1 %1494, label %1495, label %1509

1495:                                             ; preds = %1454
  %1496 = load i32, ptr %6, align 4, !tbaa !9
  %1497 = and i32 %1496, 67108864
  %1498 = icmp ne i32 %1497, 0
  br i1 %1498, label %1509, label %1499

1499:                                             ; preds = %1495
  %1500 = load i8, ptr %25, align 1, !tbaa !60, !range !56, !noundef !57
  %1501 = trunc i8 %1500 to i1
  br i1 %1501, label %1509, label %1502

1502:                                             ; preds = %1499
  %1503 = load ptr, ptr %16, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.ImGuiWindow, ptr %1503, i32 0, i32 47
  %1505 = getelementptr inbounds %struct.ImRect, ptr %1504, i32 0, i32 0
  %1506 = load ptr, ptr %16, align 8, !tbaa !5
  %1507 = getelementptr inbounds %struct.ImGuiWindow, ptr %1506, i32 0, i32 47
  %1508 = getelementptr inbounds %struct.ImRect, ptr %1507, i32 0, i32 1
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %1505, ptr noundef nonnull align 4 dereferenceable(8) %1508, i1 noundef zeroext true)
  br label %1512

1509:                                             ; preds = %1499, %1495, %1454
  %1510 = getelementptr inbounds %struct.ImRect, ptr %62, i32 0, i32 0
  %1511 = getelementptr inbounds %struct.ImRect, ptr %62, i32 0, i32 1
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %1510, ptr noundef nonnull align 4 dereferenceable(8) %1511, i1 noundef zeroext true)
  br label %1512

1512:                                             ; preds = %1509, %1502
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #13
  %1513 = load i32, ptr %6, align 4, !tbaa !9
  %1514 = and i32 %1513, 134217728
  %1515 = icmp ne i32 %1514, 0
  br i1 %1515, label %1516, label %1525

1516:                                             ; preds = %1512
  %1517 = load ptr, ptr %9, align 8, !tbaa !5
  %1518 = call noundef ptr @_ZN5ImGui22GetFrontMostPopupModalEv()
  %1519 = icmp eq ptr %1517, %1518
  br i1 %1519, label %1520, label %1525

1520:                                             ; preds = %1516
  %1521 = load ptr, ptr %9, align 8, !tbaa !5
  %1522 = getelementptr inbounds %struct.ImGuiWindow, ptr %1521, i32 0, i32 39
  %1523 = load i32, ptr %1522, align 4, !tbaa !76
  %1524 = icmp sle i32 %1523, 0
  br label %1525

1525:                                             ; preds = %1520, %1516, %1512
  %1526 = phi i1 [ false, %1516 ], [ false, %1512 ], [ %1524, %1520 ]
  %1527 = zext i1 %1526 to i8
  store i8 %1527, ptr %63, align 1, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #13
  %1528 = load ptr, ptr %7, align 8, !tbaa !5
  %1529 = getelementptr inbounds %struct.ImGuiContext, ptr %1528, i32 0, i32 72
  %1530 = load ptr, ptr %1529, align 8, !tbaa !160
  %1531 = icmp ne ptr %1530, null
  br i1 %1531, label %1532, label %1540

1532:                                             ; preds = %1525
  %1533 = load ptr, ptr %9, align 8, !tbaa !5
  %1534 = load ptr, ptr %7, align 8, !tbaa !5
  %1535 = getelementptr inbounds %struct.ImGuiContext, ptr %1534, i32 0, i32 72
  %1536 = load ptr, ptr %1535, align 8, !tbaa !160
  %1537 = getelementptr inbounds %struct.ImGuiWindow, ptr %1536, i32 0, i32 62
  %1538 = load ptr, ptr %1537, align 8, !tbaa !161
  %1539 = icmp eq ptr %1533, %1538
  br label %1540

1540:                                             ; preds = %1532, %1525
  %1541 = phi i1 [ false, %1525 ], [ %1539, %1532 ]
  %1542 = zext i1 %1541 to i8
  store i8 %1542, ptr %64, align 1, !tbaa !60
  %1543 = load i8, ptr %63, align 1, !tbaa !60, !range !56, !noundef !57
  %1544 = trunc i8 %1543 to i1
  br i1 %1544, label %1548, label %1545

1545:                                             ; preds = %1540
  %1546 = load i8, ptr %64, align 1, !tbaa !60, !range !56, !noundef !57
  %1547 = trunc i8 %1546 to i1
  br i1 %1547, label %1548, label %1563

1548:                                             ; preds = %1545, %1540
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #13
  %1549 = load i8, ptr %63, align 1, !tbaa !60, !range !56, !noundef !57
  %1550 = trunc i8 %1549 to i1
  %1551 = zext i1 %1550 to i64
  %1552 = select i1 %1550, i32 42, i32 41
  %1553 = load ptr, ptr %7, align 8, !tbaa !5
  %1554 = getelementptr inbounds %struct.ImGuiContext, ptr %1553, i32 0, i32 103
  %1555 = load float, ptr %1554, align 8, !tbaa !162
  %1556 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1552, float noundef %1555)
  store i32 %1556, ptr %65, align 4, !tbaa !9
  %1557 = load ptr, ptr %9, align 8, !tbaa !5
  %1558 = getelementptr inbounds %struct.ImGuiWindow, ptr %1557, i32 0, i32 59
  %1559 = load ptr, ptr %1558, align 8, !tbaa !150
  %1560 = getelementptr inbounds %struct.ImRect, ptr %62, i32 0, i32 0
  %1561 = getelementptr inbounds %struct.ImRect, ptr %62, i32 0, i32 1
  %1562 = load i32, ptr %65, align 4, !tbaa !9
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %1559, ptr noundef nonnull align 4 dereferenceable(8) %1560, ptr noundef nonnull align 4 dereferenceable(8) %1561, i32 noundef %1562, float noundef 0.000000e+00, i32 noundef 15)
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #13
  br label %1563

1563:                                             ; preds = %1548, %1545
  %1564 = load i8, ptr %64, align 1, !tbaa !60, !range !56, !noundef !57
  %1565 = trunc i8 %1564 to i1
  br i1 %1565, label %1566, label %1599

1566:                                             ; preds = %1563
  %1567 = load ptr, ptr %9, align 8, !tbaa !5
  %1568 = load ptr, ptr %7, align 8, !tbaa !5
  %1569 = getelementptr inbounds %struct.ImGuiContext, ptr %1568, i32 0, i32 72
  %1570 = load ptr, ptr %1569, align 8, !tbaa !160
  %1571 = icmp eq ptr %1567, %1570
  br i1 %1571, label %1572, label %1599

1572:                                             ; preds = %1566
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #13
  %1573 = load ptr, ptr %9, align 8, !tbaa !5
  %1574 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %1573)
  %1575 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %66, i32 0, i32 0
  %1576 = extractvalue { <2 x float>, <2 x float> } %1574, 0
  store <2 x float> %1576, ptr %1575, align 4
  %1577 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %66, i32 0, i32 1
  %1578 = extractvalue { <2 x float>, <2 x float> } %1574, 1
  store <2 x float> %1578, ptr %1577, align 4
  %1579 = load ptr, ptr %7, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.ImGuiContext, ptr %1579, i32 0, i32 7
  %1581 = load float, ptr %1580, align 8, !tbaa !148
  call void @_ZN6ImRect6ExpandEf(ptr noundef nonnull align 4 dereferenceable(16) %66, float noundef %1581)
  %1582 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %66, ptr noundef nonnull align 4 dereferenceable(16) %62)
  br i1 %1582, label %1598, label %1583

1583:                                             ; preds = %1572
  %1584 = load ptr, ptr %9, align 8, !tbaa !5
  %1585 = getelementptr inbounds %struct.ImGuiWindow, ptr %1584, i32 0, i32 59
  %1586 = load ptr, ptr %1585, align 8, !tbaa !150
  %1587 = getelementptr inbounds %struct.ImRect, ptr %66, i32 0, i32 0
  %1588 = getelementptr inbounds %struct.ImRect, ptr %66, i32 0, i32 1
  %1589 = load ptr, ptr %7, align 8, !tbaa !5
  %1590 = getelementptr inbounds %struct.ImGuiContext, ptr %1589, i32 0, i32 75
  %1591 = load float, ptr %1590, align 4, !tbaa !163
  %1592 = fmul float %1591, 2.500000e-01
  %1593 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 40, float noundef %1592)
  %1594 = load ptr, ptr %7, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.ImGuiContext, ptr %1594, i32 0, i32 5
  %1596 = getelementptr inbounds %struct.ImGuiStyle, ptr %1595, i32 0, i32 2
  %1597 = load float, ptr %1596, align 4, !tbaa !164
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %1586, ptr noundef nonnull align 4 dereferenceable(8) %1587, ptr noundef nonnull align 4 dereferenceable(8) %1588, i32 noundef %1593, float noundef %1597, i32 noundef 15)
  br label %1598

1598:                                             ; preds = %1583, %1572
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #13
  br label %1599

1599:                                             ; preds = %1598, %1566, %1563
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #13
  %1600 = load ptr, ptr %9, align 8, !tbaa !5
  %1601 = getelementptr inbounds %struct.ImGuiWindow, ptr %1600, i32 0, i32 10
  %1602 = load float, ptr %1601, align 8, !tbaa !140
  store float %1602, ptr %67, align 4, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #13
  %1603 = load ptr, ptr %9, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.ImGuiWindow, ptr %1603, i32 0, i32 11
  %1605 = load float, ptr %1604, align 4, !tbaa !107
  store float %1605, ptr %68, align 4, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #13
  %1606 = load ptr, ptr %7, align 8, !tbaa !5
  %1607 = getelementptr inbounds %struct.ImGuiContext, ptr %1606, i32 0, i32 71
  %1608 = load ptr, ptr %1607, align 8, !tbaa !165
  %1609 = icmp ne ptr %1608, null
  br i1 %1609, label %1610, label %1614

1610:                                             ; preds = %1599
  %1611 = load ptr, ptr %7, align 8, !tbaa !5
  %1612 = getelementptr inbounds %struct.ImGuiContext, ptr %1611, i32 0, i32 71
  %1613 = load ptr, ptr %1612, align 8, !tbaa !165
  br label %1618

1614:                                             ; preds = %1599
  %1615 = load ptr, ptr %7, align 8, !tbaa !5
  %1616 = getelementptr inbounds %struct.ImGuiContext, ptr %1615, i32 0, i32 59
  %1617 = load ptr, ptr %1616, align 8, !tbaa !166
  br label %1618

1618:                                             ; preds = %1614, %1610
  %1619 = phi ptr [ %1613, %1610 ], [ %1617, %1614 ]
  store ptr %1619, ptr %69, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #13
  %1620 = load i8, ptr %57, align 1, !tbaa !60, !range !56, !noundef !57
  %1621 = trunc i8 %1620 to i1
  br i1 %1621, label %1635, label %1622

1622:                                             ; preds = %1618
  %1623 = load ptr, ptr %69, align 8, !tbaa !5
  %1624 = icmp ne ptr %1623, null
  br i1 %1624, label %1625, label %1633

1625:                                             ; preds = %1622
  %1626 = load ptr, ptr %9, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.ImGuiWindow, ptr %1626, i32 0, i32 63
  %1628 = load ptr, ptr %1627, align 8, !tbaa !167
  %1629 = load ptr, ptr %69, align 8, !tbaa !5
  %1630 = getelementptr inbounds %struct.ImGuiWindow, ptr %1629, i32 0, i32 63
  %1631 = load ptr, ptr %1630, align 8, !tbaa !167
  %1632 = icmp eq ptr %1628, %1631
  br label %1633

1633:                                             ; preds = %1625, %1622
  %1634 = phi i1 [ false, %1622 ], [ %1632, %1625 ]
  br label %1635

1635:                                             ; preds = %1633, %1618
  %1636 = phi i1 [ true, %1618 ], [ %1634, %1633 ]
  %1637 = zext i1 %1636 to i8
  store i8 %1637, ptr %70, align 1, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #13
  %1638 = load ptr, ptr %9, align 8, !tbaa !5
  %1639 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(984) %1638)
  %1640 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %71, i32 0, i32 0
  %1641 = extractvalue { <2 x float>, <2 x float> } %1639, 0
  store <2 x float> %1641, ptr %1640, align 4
  %1642 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %71, i32 0, i32 1
  %1643 = extractvalue { <2 x float>, <2 x float> } %1639, 1
  store <2 x float> %1643, ptr %1642, align 4
  %1644 = load ptr, ptr %9, align 8, !tbaa !5
  %1645 = getelementptr inbounds %struct.ImGuiWindow, ptr %1644, i32 0, i32 23
  %1646 = load i8, ptr %1645, align 1, !tbaa !119, !range !56, !noundef !57
  %1647 = trunc i8 %1646 to i1
  br i1 %1647, label %1648, label %1681

1648:                                             ; preds = %1635
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #13
  %1649 = load ptr, ptr %8, align 8, !tbaa !5
  %1650 = getelementptr inbounds %struct.ImGuiStyle, ptr %1649, i32 0, i32 12
  %1651 = load float, ptr %1650, align 4, !tbaa !168
  store float %1651, ptr %72, align 4, !tbaa !63
  %1652 = load ptr, ptr %9, align 8, !tbaa !5
  %1653 = getelementptr inbounds %struct.ImGuiWindow, ptr %1652, i32 0, i32 11
  %1654 = load float, ptr %1653, align 4, !tbaa !107
  %1655 = load ptr, ptr %7, align 8, !tbaa !5
  %1656 = getelementptr inbounds %struct.ImGuiContext, ptr %1655, i32 0, i32 5
  %1657 = getelementptr inbounds %struct.ImGuiStyle, ptr %1656, i32 0, i32 12
  store float %1654, ptr %1657, align 8, !tbaa !169
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #13
  %1658 = load i8, ptr %70, align 1, !tbaa !60, !range !56, !noundef !57
  %1659 = trunc i8 %1658 to i1
  br i1 %1659, label %1660, label %1666

1660:                                             ; preds = %1648
  %1661 = load ptr, ptr %7, align 8, !tbaa !5
  %1662 = getelementptr inbounds %struct.ImGuiContext, ptr %1661, i32 0, i32 82
  %1663 = load i8, ptr %1662, align 2, !tbaa !170, !range !56, !noundef !57
  %1664 = trunc i8 %1663 to i1
  %1665 = xor i1 %1664, true
  br label %1666

1666:                                             ; preds = %1660, %1648
  %1667 = phi i1 [ false, %1648 ], [ %1665, %1660 ]
  %1668 = zext i1 %1667 to i64
  %1669 = select i1 %1667, i32 11, i32 12
  %1670 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1669, float noundef 1.000000e+00)
  store i32 %1670, ptr %73, align 4, !tbaa !9
  %1671 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %74, ptr align 4 %1671, i64 8, i1 false), !tbaa.struct !62
  %1672 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %75, ptr align 4 %1672, i64 8, i1 false), !tbaa.struct !62
  %1673 = load i32, ptr %73, align 4, !tbaa !9
  %1674 = load float, ptr %67, align 4, !tbaa !63
  %1675 = load <2 x float>, ptr %74, align 4
  %1676 = load <2 x float>, ptr %75, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %1675, <2 x float> %1676, i32 noundef %1673, i1 noundef zeroext true, float noundef %1674)
  %1677 = load float, ptr %72, align 4, !tbaa !63
  %1678 = load ptr, ptr %7, align 8, !tbaa !5
  %1679 = getelementptr inbounds %struct.ImGuiContext, ptr %1678, i32 0, i32 5
  %1680 = getelementptr inbounds %struct.ImGuiStyle, ptr %1679, i32 0, i32 12
  store float %1677, ptr %1680, align 8, !tbaa !169
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #13
  br label %1996

1681:                                             ; preds = %1635
  %1682 = load i32, ptr %6, align 4, !tbaa !9
  %1683 = and i32 %1682, 128
  %1684 = icmp ne i32 %1683, 0
  br i1 %1684, label %1727, label %1685

1685:                                             ; preds = %1681
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #13
  %1686 = load i32, ptr %6, align 4, !tbaa !9
  %1687 = call noundef i32 @_ZL28GetWindowBgColorIdxFromFlagsi(i32 noundef %1686)
  %1688 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1687, float noundef 1.000000e+00)
  store i32 %1688, ptr %76, align 4, !tbaa !9
  %1689 = load ptr, ptr %7, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.ImGuiContext, ptr %1689, i32 0, i32 55
  %1691 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %1690, i32 0, i32 6
  %1692 = load i32, ptr %1691, align 8, !tbaa !171
  %1693 = icmp ne i32 %1692, 0
  br i1 %1693, label %1694, label %1706

1694:                                             ; preds = %1685
  %1695 = load i32, ptr %76, align 4, !tbaa !9
  %1696 = and i32 %1695, 16777215
  %1697 = load ptr, ptr %7, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.ImGuiContext, ptr %1697, i32 0, i32 55
  %1699 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %1698, i32 0, i32 16
  %1700 = load float, ptr %1699, align 8, !tbaa !172
  %1701 = call noundef float @_ZL10ImSaturatef(float noundef %1700)
  %1702 = call float @llvm.fmuladd.f32(float %1701, float 2.550000e+02, float 5.000000e-01)
  %1703 = fptosi float %1702 to i32
  %1704 = shl i32 %1703, 24
  %1705 = or i32 %1696, %1704
  store i32 %1705, ptr %76, align 4, !tbaa !9
  br label %1706

1706:                                             ; preds = %1694, %1685
  %1707 = load ptr, ptr %9, align 8, !tbaa !5
  %1708 = getelementptr inbounds %struct.ImGuiWindow, ptr %1707, i32 0, i32 59
  %1709 = load ptr, ptr %1708, align 8, !tbaa !150
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #13
  %1710 = load ptr, ptr %9, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.ImGuiWindow, ptr %1710, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #13
  %1712 = load ptr, ptr %9, align 8, !tbaa !5
  %1713 = call noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %1712)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %78, float noundef 0.000000e+00, float noundef %1713)
  %1714 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1711, ptr noundef nonnull align 4 dereferenceable(8) %78)
  store <2 x float> %1714, ptr %77, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #13
  %1715 = load ptr, ptr %9, align 8, !tbaa !5
  %1716 = getelementptr inbounds %struct.ImGuiWindow, ptr %1715, i32 0, i32 3
  %1717 = load ptr, ptr %9, align 8, !tbaa !5
  %1718 = getelementptr inbounds %struct.ImGuiWindow, ptr %1717, i32 0, i32 4
  %1719 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1716, ptr noundef nonnull align 4 dereferenceable(8) %1718)
  store <2 x float> %1719, ptr %79, align 4
  %1720 = load i32, ptr %76, align 4, !tbaa !9
  %1721 = load float, ptr %67, align 4, !tbaa !63
  %1722 = load i32, ptr %6, align 4, !tbaa !9
  %1723 = and i32 %1722, 1
  %1724 = icmp ne i32 %1723, 0
  %1725 = zext i1 %1724 to i64
  %1726 = select i1 %1724, i32 15, i32 12
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %1709, ptr noundef nonnull align 4 dereferenceable(8) %77, ptr noundef nonnull align 4 dereferenceable(8) %79, i32 noundef %1720, float noundef %1721, i32 noundef %1726)
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #13
  br label %1727

1727:                                             ; preds = %1706, %1681
  %1728 = load ptr, ptr %7, align 8, !tbaa !5
  %1729 = getelementptr inbounds %struct.ImGuiContext, ptr %1728, i32 0, i32 55
  %1730 = getelementptr inbounds %struct.ImGuiNextWindowData, ptr %1729, i32 0, i32 6
  store i32 0, ptr %1730, align 8, !tbaa !171
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #13
  %1731 = load ptr, ptr %9, align 8, !tbaa !5
  %1732 = getelementptr inbounds %struct.ImGuiWindow, ptr %1731, i32 0, i32 23
  %1733 = load i8, ptr %1732, align 1, !tbaa !119, !range !56, !noundef !57
  %1734 = trunc i8 %1733 to i1
  br i1 %1734, label %1735, label %1736

1735:                                             ; preds = %1727
  br label %1741

1736:                                             ; preds = %1727
  %1737 = load i8, ptr %70, align 1, !tbaa !60, !range !56, !noundef !57
  %1738 = trunc i8 %1737 to i1
  %1739 = zext i1 %1738 to i64
  %1740 = select i1 %1738, i32 11, i32 10
  br label %1741

1741:                                             ; preds = %1736, %1735
  %1742 = phi i32 [ 12, %1735 ], [ %1740, %1736 ]
  %1743 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1742, float noundef 1.000000e+00)
  store i32 %1743, ptr %80, align 4, !tbaa !9
  %1744 = load i32, ptr %6, align 4, !tbaa !9
  %1745 = and i32 %1744, 1
  %1746 = icmp ne i32 %1745, 0
  br i1 %1746, label %1755, label %1747

1747:                                             ; preds = %1741
  %1748 = load ptr, ptr %9, align 8, !tbaa !5
  %1749 = getelementptr inbounds %struct.ImGuiWindow, ptr %1748, i32 0, i32 59
  %1750 = load ptr, ptr %1749, align 8, !tbaa !150
  %1751 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 0
  %1752 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 1
  %1753 = load i32, ptr %80, align 4, !tbaa !9
  %1754 = load float, ptr %67, align 4, !tbaa !63
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %1750, ptr noundef nonnull align 4 dereferenceable(8) %1751, ptr noundef nonnull align 4 dereferenceable(8) %1752, i32 noundef %1753, float noundef %1754, i32 noundef 3)
  br label %1755

1755:                                             ; preds = %1747, %1741
  %1756 = load i32, ptr %6, align 4, !tbaa !9
  %1757 = and i32 %1756, 1024
  %1758 = icmp ne i32 %1757, 0
  br i1 %1758, label %1759, label %1815

1759:                                             ; preds = %1755
  call void @llvm.lifetime.start.p0(i64 16, ptr %81) #13
  %1760 = load ptr, ptr %9, align 8, !tbaa !5
  %1761 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow11MenuBarRectEv(ptr noundef nonnull align 8 dereferenceable(984) %1760)
  %1762 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %81, i32 0, i32 0
  %1763 = extractvalue { <2 x float>, <2 x float> } %1761, 0
  store <2 x float> %1763, ptr %1762, align 4
  %1764 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %81, i32 0, i32 1
  %1765 = extractvalue { <2 x float>, <2 x float> } %1761, 1
  store <2 x float> %1765, ptr %1764, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %82) #13
  %1766 = load ptr, ptr %9, align 8, !tbaa !5
  %1767 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %1766)
  %1768 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %82, i32 0, i32 0
  %1769 = extractvalue { <2 x float>, <2 x float> } %1767, 0
  store <2 x float> %1769, ptr %1768, align 4
  %1770 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %82, i32 0, i32 1
  %1771 = extractvalue { <2 x float>, <2 x float> } %1767, 1
  store <2 x float> %1771, ptr %1770, align 4
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %81, ptr noundef nonnull align 4 dereferenceable(16) %82)
  call void @llvm.lifetime.end.p0(i64 16, ptr %82) #13
  %1772 = load ptr, ptr %9, align 8, !tbaa !5
  %1773 = getelementptr inbounds %struct.ImGuiWindow, ptr %1772, i32 0, i32 59
  %1774 = load ptr, ptr %1773, align 8, !tbaa !150
  %1775 = getelementptr inbounds %struct.ImRect, ptr %81, i32 0, i32 0
  %1776 = getelementptr inbounds %struct.ImRect, ptr %81, i32 0, i32 1
  %1777 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 13, float noundef 1.000000e+00)
  %1778 = load i32, ptr %6, align 4, !tbaa !9
  %1779 = and i32 %1778, 1
  %1780 = icmp ne i32 %1779, 0
  br i1 %1780, label %1781, label %1783

1781:                                             ; preds = %1759
  %1782 = load float, ptr %67, align 4, !tbaa !63
  br label %1784

1783:                                             ; preds = %1759
  br label %1784

1784:                                             ; preds = %1783, %1781
  %1785 = phi float [ %1782, %1781 ], [ 0.000000e+00, %1783 ]
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %1774, ptr noundef nonnull align 4 dereferenceable(8) %1775, ptr noundef nonnull align 4 dereferenceable(8) %1776, i32 noundef %1777, float noundef %1785, i32 noundef 3)
  %1786 = load ptr, ptr %8, align 8, !tbaa !5
  %1787 = getelementptr inbounds %struct.ImGuiStyle, ptr %1786, i32 0, i32 12
  %1788 = load float, ptr %1787, align 4, !tbaa !168
  %1789 = fcmp ogt float %1788, 0.000000e+00
  br i1 %1789, label %1790, label %1814

1790:                                             ; preds = %1784
  %1791 = getelementptr inbounds %struct.ImRect, ptr %81, i32 0, i32 1
  %1792 = getelementptr inbounds %struct.ImVec2, ptr %1791, i32 0, i32 1
  %1793 = load float, ptr %1792, align 4, !tbaa !173
  %1794 = load ptr, ptr %9, align 8, !tbaa !5
  %1795 = getelementptr inbounds %struct.ImGuiWindow, ptr %1794, i32 0, i32 3
  %1796 = getelementptr inbounds %struct.ImVec2, ptr %1795, i32 0, i32 1
  %1797 = load float, ptr %1796, align 4, !tbaa !174
  %1798 = load ptr, ptr %9, align 8, !tbaa !5
  %1799 = getelementptr inbounds %struct.ImGuiWindow, ptr %1798, i32 0, i32 4
  %1800 = getelementptr inbounds %struct.ImVec2, ptr %1799, i32 0, i32 1
  %1801 = load float, ptr %1800, align 4, !tbaa !103
  %1802 = fadd float %1797, %1801
  %1803 = fcmp olt float %1793, %1802
  br i1 %1803, label %1804, label %1814

1804:                                             ; preds = %1790
  %1805 = load ptr, ptr %9, align 8, !tbaa !5
  %1806 = getelementptr inbounds %struct.ImGuiWindow, ptr %1805, i32 0, i32 59
  %1807 = load ptr, ptr %1806, align 8, !tbaa !150
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #13
  %1808 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %81)
  store <2 x float> %1808, ptr %83, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #13
  %1809 = call <2 x float> @_ZNK6ImRect5GetBREv(ptr noundef nonnull align 4 dereferenceable(16) %81)
  store <2 x float> %1809, ptr %84, align 4
  %1810 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 5, float noundef 1.000000e+00)
  %1811 = load ptr, ptr %8, align 8, !tbaa !5
  %1812 = getelementptr inbounds %struct.ImGuiStyle, ptr %1811, i32 0, i32 12
  %1813 = load float, ptr %1812, align 4, !tbaa !168
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(168) %1807, ptr noundef nonnull align 4 dereferenceable(8) %83, ptr noundef nonnull align 4 dereferenceable(8) %84, i32 noundef %1810, float noundef %1813)
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #13
  br label %1814

1814:                                             ; preds = %1804, %1790, %1784
  call void @llvm.lifetime.end.p0(i64 16, ptr %81) #13
  br label %1815

1815:                                             ; preds = %1814, %1755
  %1816 = load ptr, ptr %9, align 8, !tbaa !5
  %1817 = getelementptr inbounds %struct.ImGuiWindow, ptr %1816, i32 0, i32 18
  %1818 = load i8, ptr %1817, align 8, !tbaa !131, !range !56, !noundef !57
  %1819 = trunc i8 %1818 to i1
  br i1 %1819, label %1820, label %1821

1820:                                             ; preds = %1815
  call void @_ZN5ImGui9ScrollbarEi(i32 noundef 1)
  br label %1821

1821:                                             ; preds = %1820, %1815
  %1822 = load ptr, ptr %9, align 8, !tbaa !5
  %1823 = getelementptr inbounds %struct.ImGuiWindow, ptr %1822, i32 0, i32 19
  %1824 = load i8, ptr %1823, align 1, !tbaa !128, !range !56, !noundef !57
  %1825 = trunc i8 %1824 to i1
  br i1 %1825, label %1826, label %1827

1826:                                             ; preds = %1821
  call void @_ZN5ImGui9ScrollbarEi(i32 noundef 0)
  br label %1827

1827:                                             ; preds = %1826, %1821
  %1828 = load i32, ptr %6, align 4, !tbaa !9
  %1829 = and i32 %1828, 2
  %1830 = icmp ne i32 %1829, 0
  br i1 %1830, label %1926, label %1831

1831:                                             ; preds = %1827
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #13
  store i32 0, ptr %85, align 4, !tbaa !9
  br label %1832

1832:                                             ; preds = %1922, %1831
  %1833 = load i32, ptr %85, align 4, !tbaa !9
  %1834 = load i32, ptr %60, align 4, !tbaa !9
  %1835 = icmp slt i32 %1833, %1834
  br i1 %1835, label %1837, label %1836

1836:                                             ; preds = %1832
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #13
  br label %1925

1837:                                             ; preds = %1832
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #13
  %1838 = load i32, ptr %85, align 4, !tbaa !9
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds [4 x %struct.ImGuiResizeGripDef], ptr @_ZL15resize_grip_def, i64 0, i64 %1839
  store ptr %1840, ptr %86, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #13
  %1841 = load ptr, ptr %9, align 8, !tbaa !5
  %1842 = getelementptr inbounds %struct.ImGuiWindow, ptr %1841, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #13
  %1843 = load ptr, ptr %9, align 8, !tbaa !5
  %1844 = getelementptr inbounds %struct.ImGuiWindow, ptr %1843, i32 0, i32 3
  %1845 = load ptr, ptr %9, align 8, !tbaa !5
  %1846 = getelementptr inbounds %struct.ImGuiWindow, ptr %1845, i32 0, i32 4
  %1847 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1844, ptr noundef nonnull align 4 dereferenceable(8) %1846)
  store <2 x float> %1847, ptr %88, align 4
  %1848 = load ptr, ptr %86, align 8, !tbaa !5
  %1849 = getelementptr inbounds %struct.ImGuiResizeGripDef, ptr %1848, i32 0, i32 0
  %1850 = call <2 x float> @_ZL6ImLerpRK6ImVec2S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %1842, ptr noundef nonnull align 4 dereferenceable(8) %88, ptr noundef nonnull align 4 dereferenceable(8) %1849)
  store <2 x float> %1850, ptr %87, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #13
  %1851 = load ptr, ptr %9, align 8, !tbaa !5
  %1852 = getelementptr inbounds %struct.ImGuiWindow, ptr %1851, i32 0, i32 59
  %1853 = load ptr, ptr %1852, align 8, !tbaa !150
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #13
  %1854 = load ptr, ptr %86, align 8, !tbaa !5
  %1855 = getelementptr inbounds %struct.ImGuiResizeGripDef, ptr %1854, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #13
  %1856 = load i32, ptr %85, align 4, !tbaa !9
  %1857 = and i32 %1856, 1
  %1858 = icmp ne i32 %1857, 0
  br i1 %1858, label %1859, label %1862

1859:                                             ; preds = %1837
  %1860 = load float, ptr %68, align 4, !tbaa !63
  %1861 = load float, ptr %61, align 4, !tbaa !63
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %91, float noundef %1860, float noundef %1861)
  br label %1865

1862:                                             ; preds = %1837
  %1863 = load float, ptr %61, align 4, !tbaa !63
  %1864 = load float, ptr %68, align 4, !tbaa !63
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %91, float noundef %1863, float noundef %1864)
  br label %1865

1865:                                             ; preds = %1862, %1859
  %1866 = call <2 x float> @_ZmlRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1855, ptr noundef nonnull align 4 dereferenceable(8) %91)
  store <2 x float> %1866, ptr %90, align 4
  %1867 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %87, ptr noundef nonnull align 4 dereferenceable(8) %90)
  store <2 x float> %1867, ptr %89, align 4
  call void @_ZN10ImDrawList10PathLineToERK6ImVec2(ptr noundef nonnull align 8 dereferenceable(168) %1853, ptr noundef nonnull align 4 dereferenceable(8) %89)
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #13
  %1868 = load ptr, ptr %9, align 8, !tbaa !5
  %1869 = getelementptr inbounds %struct.ImGuiWindow, ptr %1868, i32 0, i32 59
  %1870 = load ptr, ptr %1869, align 8, !tbaa !150
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #13
  %1871 = load ptr, ptr %86, align 8, !tbaa !5
  %1872 = getelementptr inbounds %struct.ImGuiResizeGripDef, ptr %1871, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #13
  %1873 = load i32, ptr %85, align 4, !tbaa !9
  %1874 = and i32 %1873, 1
  %1875 = icmp ne i32 %1874, 0
  br i1 %1875, label %1876, label %1879

1876:                                             ; preds = %1865
  %1877 = load float, ptr %61, align 4, !tbaa !63
  %1878 = load float, ptr %68, align 4, !tbaa !63
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %94, float noundef %1877, float noundef %1878)
  br label %1882

1879:                                             ; preds = %1865
  %1880 = load float, ptr %68, align 4, !tbaa !63
  %1881 = load float, ptr %61, align 4, !tbaa !63
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %94, float noundef %1880, float noundef %1881)
  br label %1882

1882:                                             ; preds = %1879, %1876
  %1883 = call <2 x float> @_ZmlRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1872, ptr noundef nonnull align 4 dereferenceable(8) %94)
  store <2 x float> %1883, ptr %93, align 4
  %1884 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %87, ptr noundef nonnull align 4 dereferenceable(8) %93)
  store <2 x float> %1884, ptr %92, align 4
  call void @_ZN10ImDrawList10PathLineToERK6ImVec2(ptr noundef nonnull align 8 dereferenceable(168) %1870, ptr noundef nonnull align 4 dereferenceable(8) %92)
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #13
  %1885 = load ptr, ptr %9, align 8, !tbaa !5
  %1886 = getelementptr inbounds %struct.ImGuiWindow, ptr %1885, i32 0, i32 59
  %1887 = load ptr, ptr %1886, align 8, !tbaa !150
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #13
  %1888 = getelementptr inbounds %struct.ImVec2, ptr %87, i32 0, i32 0
  %1889 = load float, ptr %1888, align 4, !tbaa !120
  %1890 = load ptr, ptr %86, align 8, !tbaa !5
  %1891 = getelementptr inbounds %struct.ImGuiResizeGripDef, ptr %1890, i32 0, i32 1
  %1892 = getelementptr inbounds %struct.ImVec2, ptr %1891, i32 0, i32 0
  %1893 = load float, ptr %1892, align 4, !tbaa !175
  %1894 = load float, ptr %67, align 4, !tbaa !63
  %1895 = load float, ptr %68, align 4, !tbaa !63
  %1896 = fadd float %1894, %1895
  %1897 = call float @llvm.fmuladd.f32(float %1893, float %1896, float %1889)
  %1898 = getelementptr inbounds %struct.ImVec2, ptr %87, i32 0, i32 1
  %1899 = load float, ptr %1898, align 4, !tbaa !121
  %1900 = load ptr, ptr %86, align 8, !tbaa !5
  %1901 = getelementptr inbounds %struct.ImGuiResizeGripDef, ptr %1900, i32 0, i32 1
  %1902 = getelementptr inbounds %struct.ImVec2, ptr %1901, i32 0, i32 1
  %1903 = load float, ptr %1902, align 4, !tbaa !177
  %1904 = load float, ptr %67, align 4, !tbaa !63
  %1905 = load float, ptr %68, align 4, !tbaa !63
  %1906 = fadd float %1904, %1905
  %1907 = call float @llvm.fmuladd.f32(float %1903, float %1906, float %1899)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %95, float noundef %1897, float noundef %1907)
  %1908 = load float, ptr %67, align 4, !tbaa !63
  %1909 = load ptr, ptr %86, align 8, !tbaa !5
  %1910 = getelementptr inbounds %struct.ImGuiResizeGripDef, ptr %1909, i32 0, i32 2
  %1911 = load i32, ptr %1910, align 4, !tbaa !178
  %1912 = load ptr, ptr %86, align 8, !tbaa !5
  %1913 = getelementptr inbounds %struct.ImGuiResizeGripDef, ptr %1912, i32 0, i32 3
  %1914 = load i32, ptr %1913, align 4, !tbaa !179
  call void @_ZN10ImDrawList13PathArcToFastERK6ImVec2fii(ptr noundef nonnull align 8 dereferenceable(168) %1887, ptr noundef nonnull align 4 dereferenceable(8) %95, float noundef %1908, i32 noundef %1911, i32 noundef %1914)
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #13
  %1915 = load ptr, ptr %9, align 8, !tbaa !5
  %1916 = getelementptr inbounds %struct.ImGuiWindow, ptr %1915, i32 0, i32 59
  %1917 = load ptr, ptr %1916, align 8, !tbaa !150
  %1918 = load i32, ptr %85, align 4, !tbaa !9
  %1919 = sext i32 %1918 to i64
  %1920 = getelementptr inbounds [4 x i32], ptr %59, i64 0, i64 %1919
  %1921 = load i32, ptr %1920, align 4, !tbaa !9
  call void @_ZN10ImDrawList14PathFillConvexEj(ptr noundef nonnull align 8 dereferenceable(168) %1917, i32 noundef %1921)
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #13
  br label %1922

1922:                                             ; preds = %1882
  %1923 = load i32, ptr %85, align 4, !tbaa !9
  %1924 = add nsw i32 %1923, 1
  store i32 %1924, ptr %85, align 4, !tbaa !9
  br label %1832, !llvm.loop !180

1925:                                             ; preds = %1836
  br label %1926

1926:                                             ; preds = %1925, %1827
  %1927 = load float, ptr %68, align 4, !tbaa !63
  %1928 = fcmp ogt float %1927, 0.000000e+00
  br i1 %1928, label %1929, label %1947

1929:                                             ; preds = %1926
  %1930 = load i32, ptr %6, align 4, !tbaa !9
  %1931 = and i32 %1930, 128
  %1932 = icmp ne i32 %1931, 0
  br i1 %1932, label %1947, label %1933

1933:                                             ; preds = %1929
  %1934 = load ptr, ptr %9, align 8, !tbaa !5
  %1935 = getelementptr inbounds %struct.ImGuiWindow, ptr %1934, i32 0, i32 59
  %1936 = load ptr, ptr %1935, align 8, !tbaa !150
  %1937 = load ptr, ptr %9, align 8, !tbaa !5
  %1938 = getelementptr inbounds %struct.ImGuiWindow, ptr %1937, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #13
  %1939 = load ptr, ptr %9, align 8, !tbaa !5
  %1940 = getelementptr inbounds %struct.ImGuiWindow, ptr %1939, i32 0, i32 3
  %1941 = load ptr, ptr %9, align 8, !tbaa !5
  %1942 = getelementptr inbounds %struct.ImGuiWindow, ptr %1941, i32 0, i32 4
  %1943 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1940, ptr noundef nonnull align 4 dereferenceable(8) %1942)
  store <2 x float> %1943, ptr %96, align 4
  %1944 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 5, float noundef 1.000000e+00)
  %1945 = load float, ptr %67, align 4, !tbaa !63
  %1946 = load float, ptr %68, align 4, !tbaa !63
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(168) %1936, ptr noundef nonnull align 4 dereferenceable(8) %1938, ptr noundef nonnull align 4 dereferenceable(8) %96, i32 noundef %1944, float noundef %1945, i32 noundef 15, float noundef %1946)
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #13
  br label %1947

1947:                                             ; preds = %1933, %1929, %1926
  %1948 = load i32, ptr %58, align 4, !tbaa !9
  %1949 = icmp ne i32 %1948, -1
  br i1 %1949, label %1950, label %1967

1950:                                             ; preds = %1947
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #13
  %1951 = load ptr, ptr %9, align 8, !tbaa !5
  %1952 = load i32, ptr %58, align 4, !tbaa !9
  %1953 = load float, ptr %61, align 4, !tbaa !63
  %1954 = call { <2 x float>, <2 x float> } @_ZL19GetResizeBorderRectP11ImGuiWindowiff(ptr noundef %1951, i32 noundef %1952, float noundef %1953, float noundef 0.000000e+00)
  %1955 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %97, i32 0, i32 0
  %1956 = extractvalue { <2 x float>, <2 x float> } %1954, 0
  store <2 x float> %1956, ptr %1955, align 4
  %1957 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %97, i32 0, i32 1
  %1958 = extractvalue { <2 x float>, <2 x float> } %1954, 1
  store <2 x float> %1958, ptr %1957, align 4
  %1959 = load ptr, ptr %9, align 8, !tbaa !5
  %1960 = getelementptr inbounds %struct.ImGuiWindow, ptr %1959, i32 0, i32 59
  %1961 = load ptr, ptr %1960, align 8, !tbaa !150
  %1962 = getelementptr inbounds %struct.ImRect, ptr %97, i32 0, i32 0
  %1963 = getelementptr inbounds %struct.ImRect, ptr %97, i32 0, i32 1
  %1964 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 29, float noundef 1.000000e+00)
  %1965 = load float, ptr %68, align 4, !tbaa !63
  %1966 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %1965)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(168) %1961, ptr noundef nonnull align 4 dereferenceable(8) %1962, ptr noundef nonnull align 4 dereferenceable(8) %1963, i32 noundef %1964, float noundef %1966)
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #13
  br label %1967

1967:                                             ; preds = %1950, %1947
  %1968 = load ptr, ptr %8, align 8, !tbaa !5
  %1969 = getelementptr inbounds %struct.ImGuiStyle, ptr %1968, i32 0, i32 12
  %1970 = load float, ptr %1969, align 4, !tbaa !168
  %1971 = fcmp ogt float %1970, 0.000000e+00
  br i1 %1971, label %1972, label %1995

1972:                                             ; preds = %1967
  %1973 = load i32, ptr %6, align 4, !tbaa !9
  %1974 = and i32 %1973, 1
  %1975 = icmp ne i32 %1974, 0
  br i1 %1975, label %1995, label %1976

1976:                                             ; preds = %1972
  %1977 = load ptr, ptr %9, align 8, !tbaa !5
  %1978 = getelementptr inbounds %struct.ImGuiWindow, ptr %1977, i32 0, i32 59
  %1979 = load ptr, ptr %1978, align 8, !tbaa !150
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #13
  %1980 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %71)
  store <2 x float> %1980, ptr %99, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #13
  %1981 = load ptr, ptr %8, align 8, !tbaa !5
  %1982 = getelementptr inbounds %struct.ImGuiStyle, ptr %1981, i32 0, i32 3
  %1983 = load float, ptr %1982, align 4, !tbaa !106
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %100, float noundef %1983, float noundef -1.000000e+00)
  %1984 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %99, ptr noundef nonnull align 4 dereferenceable(8) %100)
  store <2 x float> %1984, ptr %98, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #13
  %1985 = call <2 x float> @_ZNK6ImRect5GetBREv(ptr noundef nonnull align 4 dereferenceable(16) %71)
  store <2 x float> %1985, ptr %102, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #13
  %1986 = load ptr, ptr %8, align 8, !tbaa !5
  %1987 = getelementptr inbounds %struct.ImGuiStyle, ptr %1986, i32 0, i32 3
  %1988 = load float, ptr %1987, align 4, !tbaa !106
  %1989 = fneg float %1988
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %103, float noundef %1989, float noundef -1.000000e+00)
  %1990 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %102, ptr noundef nonnull align 4 dereferenceable(8) %103)
  store <2 x float> %1990, ptr %101, align 4
  %1991 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 5, float noundef 1.000000e+00)
  %1992 = load ptr, ptr %8, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.ImGuiStyle, ptr %1992, i32 0, i32 12
  %1994 = load float, ptr %1993, align 4, !tbaa !168
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(168) %1979, ptr noundef nonnull align 4 dereferenceable(8) %98, ptr noundef nonnull align 4 dereferenceable(8) %101, i32 noundef %1991, float noundef %1994)
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #13
  br label %1995

1995:                                             ; preds = %1976, %1972, %1967
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #13
  br label %1996

1996:                                             ; preds = %1995, %1666
  %1997 = load ptr, ptr %7, align 8, !tbaa !5
  %1998 = getelementptr inbounds %struct.ImGuiContext, ptr %1997, i32 0, i32 72
  %1999 = load ptr, ptr %1998, align 8, !tbaa !160
  %2000 = load ptr, ptr %9, align 8, !tbaa !5
  %2001 = icmp eq ptr %1999, %2000
  br i1 %2001, label %2002, label %2041

2002:                                             ; preds = %1996
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #13
  %2003 = load ptr, ptr %9, align 8, !tbaa !5
  %2004 = getelementptr inbounds %struct.ImGuiWindow, ptr %2003, i32 0, i32 10
  %2005 = load float, ptr %2004, align 8, !tbaa !140
  %2006 = load ptr, ptr %7, align 8, !tbaa !5
  %2007 = getelementptr inbounds %struct.ImGuiContext, ptr %2006, i32 0, i32 5
  %2008 = getelementptr inbounds %struct.ImGuiStyle, ptr %2007, i32 0, i32 2
  %2009 = load float, ptr %2008, align 4, !tbaa !164
  %2010 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %2005, float noundef %2009)
  store float %2010, ptr %104, align 4, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #13
  %2011 = load ptr, ptr %9, align 8, !tbaa !5
  %2012 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %2011)
  %2013 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %105, i32 0, i32 0
  %2014 = extractvalue { <2 x float>, <2 x float> } %2012, 0
  store <2 x float> %2014, ptr %2013, align 4
  %2015 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %105, i32 0, i32 1
  %2016 = extractvalue { <2 x float>, <2 x float> } %2012, 1
  store <2 x float> %2016, ptr %2015, align 4
  %2017 = load ptr, ptr %7, align 8, !tbaa !5
  %2018 = getelementptr inbounds %struct.ImGuiContext, ptr %2017, i32 0, i32 7
  %2019 = load float, ptr %2018, align 8, !tbaa !148
  call void @_ZN6ImRect6ExpandEf(ptr noundef nonnull align 4 dereferenceable(16) %105, float noundef %2019)
  %2020 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %105, ptr noundef nonnull align 4 dereferenceable(16) %62)
  br i1 %2020, label %2021, label %2030

2021:                                             ; preds = %2002
  %2022 = load ptr, ptr %7, align 8, !tbaa !5
  %2023 = getelementptr inbounds %struct.ImGuiContext, ptr %2022, i32 0, i32 7
  %2024 = load float, ptr %2023, align 8, !tbaa !148
  %2025 = fneg float %2024
  %2026 = fsub float %2025, 1.000000e+00
  call void @_ZN6ImRect6ExpandEf(ptr noundef nonnull align 4 dereferenceable(16) %105, float noundef %2026)
  %2027 = load ptr, ptr %9, align 8, !tbaa !5
  %2028 = getelementptr inbounds %struct.ImGuiWindow, ptr %2027, i32 0, i32 10
  %2029 = load float, ptr %2028, align 8, !tbaa !140
  store float %2029, ptr %104, align 4, !tbaa !63
  br label %2030

2030:                                             ; preds = %2021, %2002
  %2031 = load ptr, ptr %9, align 8, !tbaa !5
  %2032 = getelementptr inbounds %struct.ImGuiWindow, ptr %2031, i32 0, i32 59
  %2033 = load ptr, ptr %2032, align 8, !tbaa !150
  %2034 = getelementptr inbounds %struct.ImRect, ptr %105, i32 0, i32 0
  %2035 = getelementptr inbounds %struct.ImRect, ptr %105, i32 0, i32 1
  %2036 = load ptr, ptr %7, align 8, !tbaa !5
  %2037 = getelementptr inbounds %struct.ImGuiContext, ptr %2036, i32 0, i32 75
  %2038 = load float, ptr %2037, align 4, !tbaa !163
  %2039 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 40, float noundef %2038)
  %2040 = load float, ptr %104, align 4, !tbaa !63
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(168) %2033, ptr noundef nonnull align 4 dereferenceable(8) %2034, ptr noundef nonnull align 4 dereferenceable(8) %2035, i32 noundef %2039, float noundef %2040, i32 noundef -1, float noundef 3.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #13
  br label %2041

2041:                                             ; preds = %2030, %1996
  %2042 = load ptr, ptr %9, align 8, !tbaa !5
  %2043 = getelementptr inbounds %struct.ImGuiWindow, ptr %2042, i32 0, i32 5
  %2044 = load ptr, ptr %9, align 8, !tbaa !5
  %2045 = getelementptr inbounds %struct.ImGuiWindow, ptr %2044, i32 0, i32 6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2045, ptr align 8 %2043, i64 8, i1 false), !tbaa.struct !62
  %2046 = load ptr, ptr %9, align 8, !tbaa !5
  %2047 = getelementptr inbounds %struct.ImGuiWindow, ptr %2046, i32 0, i32 3
  %2048 = getelementptr inbounds %struct.ImVec2, ptr %2047, i32 0, i32 0
  %2049 = load float, ptr %2048, align 8, !tbaa !182
  %2050 = load ptr, ptr %9, align 8, !tbaa !5
  %2051 = getelementptr inbounds %struct.ImGuiWindow, ptr %2050, i32 0, i32 14
  %2052 = getelementptr inbounds %struct.ImVec2, ptr %2051, i32 0, i32 0
  %2053 = load float, ptr %2052, align 8, !tbaa !183
  %2054 = fsub float %2049, %2053
  %2055 = load ptr, ptr %9, align 8, !tbaa !5
  %2056 = getelementptr inbounds %struct.ImGuiWindow, ptr %2055, i32 0, i32 9
  %2057 = getelementptr inbounds %struct.ImVec2, ptr %2056, i32 0, i32 0
  %2058 = load float, ptr %2057, align 8, !tbaa !109
  %2059 = fadd float %2054, %2058
  %2060 = load ptr, ptr %9, align 8, !tbaa !5
  %2061 = getelementptr inbounds %struct.ImGuiWindow, ptr %2060, i32 0, i32 51
  %2062 = getelementptr inbounds %struct.ImRect, ptr %2061, i32 0, i32 0
  %2063 = getelementptr inbounds %struct.ImVec2, ptr %2062, i32 0, i32 0
  store float %2059, ptr %2063, align 8, !tbaa !184
  %2064 = load ptr, ptr %9, align 8, !tbaa !5
  %2065 = getelementptr inbounds %struct.ImGuiWindow, ptr %2064, i32 0, i32 3
  %2066 = getelementptr inbounds %struct.ImVec2, ptr %2065, i32 0, i32 1
  %2067 = load float, ptr %2066, align 4, !tbaa !174
  %2068 = load ptr, ptr %9, align 8, !tbaa !5
  %2069 = getelementptr inbounds %struct.ImGuiWindow, ptr %2068, i32 0, i32 14
  %2070 = getelementptr inbounds %struct.ImVec2, ptr %2069, i32 0, i32 1
  %2071 = load float, ptr %2070, align 4, !tbaa !185
  %2072 = fsub float %2067, %2071
  %2073 = load ptr, ptr %9, align 8, !tbaa !5
  %2074 = getelementptr inbounds %struct.ImGuiWindow, ptr %2073, i32 0, i32 9
  %2075 = getelementptr inbounds %struct.ImVec2, ptr %2074, i32 0, i32 1
  %2076 = load float, ptr %2075, align 4, !tbaa !186
  %2077 = fadd float %2072, %2076
  %2078 = load ptr, ptr %9, align 8, !tbaa !5
  %2079 = call noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %2078)
  %2080 = fadd float %2077, %2079
  %2081 = load ptr, ptr %9, align 8, !tbaa !5
  %2082 = call noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %2081)
  %2083 = fadd float %2080, %2082
  %2084 = load ptr, ptr %9, align 8, !tbaa !5
  %2085 = getelementptr inbounds %struct.ImGuiWindow, ptr %2084, i32 0, i32 51
  %2086 = getelementptr inbounds %struct.ImRect, ptr %2085, i32 0, i32 0
  %2087 = getelementptr inbounds %struct.ImVec2, ptr %2086, i32 0, i32 1
  store float %2083, ptr %2087, align 4, !tbaa !187
  %2088 = load ptr, ptr %9, align 8, !tbaa !5
  %2089 = getelementptr inbounds %struct.ImGuiWindow, ptr %2088, i32 0, i32 3
  %2090 = getelementptr inbounds %struct.ImVec2, ptr %2089, i32 0, i32 0
  %2091 = load float, ptr %2090, align 8, !tbaa !182
  %2092 = load ptr, ptr %9, align 8, !tbaa !5
  %2093 = getelementptr inbounds %struct.ImGuiWindow, ptr %2092, i32 0, i32 14
  %2094 = getelementptr inbounds %struct.ImVec2, ptr %2093, i32 0, i32 0
  %2095 = load float, ptr %2094, align 8, !tbaa !183
  %2096 = fsub float %2091, %2095
  %2097 = load ptr, ptr %9, align 8, !tbaa !5
  %2098 = getelementptr inbounds %struct.ImGuiWindow, ptr %2097, i32 0, i32 9
  %2099 = getelementptr inbounds %struct.ImVec2, ptr %2098, i32 0, i32 0
  %2100 = load float, ptr %2099, align 8, !tbaa !109
  %2101 = fsub float %2096, %2100
  %2102 = load ptr, ptr %9, align 8, !tbaa !5
  %2103 = getelementptr inbounds %struct.ImGuiWindow, ptr %2102, i32 0, i32 8
  %2104 = getelementptr inbounds %struct.ImVec2, ptr %2103, i32 0, i32 0
  %2105 = load float, ptr %2104, align 8, !tbaa !188
  %2106 = fcmp une float %2105, 0.000000e+00
  br i1 %2106, label %2107, label %2112

2107:                                             ; preds = %2041
  %2108 = load ptr, ptr %9, align 8, !tbaa !5
  %2109 = getelementptr inbounds %struct.ImGuiWindow, ptr %2108, i32 0, i32 8
  %2110 = getelementptr inbounds %struct.ImVec2, ptr %2109, i32 0, i32 0
  %2111 = load float, ptr %2110, align 8, !tbaa !188
  br label %2122

2112:                                             ; preds = %2041
  %2113 = load ptr, ptr %9, align 8, !tbaa !5
  %2114 = getelementptr inbounds %struct.ImGuiWindow, ptr %2113, i32 0, i32 4
  %2115 = getelementptr inbounds %struct.ImVec2, ptr %2114, i32 0, i32 0
  %2116 = load float, ptr %2115, align 8, !tbaa !101
  %2117 = load ptr, ptr %9, align 8, !tbaa !5
  %2118 = getelementptr inbounds %struct.ImGuiWindow, ptr %2117, i32 0, i32 17
  %2119 = getelementptr inbounds %struct.ImVec2, ptr %2118, i32 0, i32 0
  %2120 = load float, ptr %2119, align 8, !tbaa !189
  %2121 = fsub float %2116, %2120
  br label %2122

2122:                                             ; preds = %2112, %2107
  %2123 = phi float [ %2111, %2107 ], [ %2121, %2112 ]
  %2124 = fadd float %2101, %2123
  %2125 = load ptr, ptr %9, align 8, !tbaa !5
  %2126 = getelementptr inbounds %struct.ImGuiWindow, ptr %2125, i32 0, i32 51
  %2127 = getelementptr inbounds %struct.ImRect, ptr %2126, i32 0, i32 1
  %2128 = getelementptr inbounds %struct.ImVec2, ptr %2127, i32 0, i32 0
  store float %2124, ptr %2128, align 8, !tbaa !190
  %2129 = load ptr, ptr %9, align 8, !tbaa !5
  %2130 = getelementptr inbounds %struct.ImGuiWindow, ptr %2129, i32 0, i32 3
  %2131 = getelementptr inbounds %struct.ImVec2, ptr %2130, i32 0, i32 1
  %2132 = load float, ptr %2131, align 4, !tbaa !174
  %2133 = load ptr, ptr %9, align 8, !tbaa !5
  %2134 = getelementptr inbounds %struct.ImGuiWindow, ptr %2133, i32 0, i32 14
  %2135 = getelementptr inbounds %struct.ImVec2, ptr %2134, i32 0, i32 1
  %2136 = load float, ptr %2135, align 4, !tbaa !185
  %2137 = fsub float %2132, %2136
  %2138 = load ptr, ptr %9, align 8, !tbaa !5
  %2139 = getelementptr inbounds %struct.ImGuiWindow, ptr %2138, i32 0, i32 9
  %2140 = getelementptr inbounds %struct.ImVec2, ptr %2139, i32 0, i32 1
  %2141 = load float, ptr %2140, align 4, !tbaa !186
  %2142 = fsub float %2137, %2141
  %2143 = load ptr, ptr %9, align 8, !tbaa !5
  %2144 = getelementptr inbounds %struct.ImGuiWindow, ptr %2143, i32 0, i32 8
  %2145 = getelementptr inbounds %struct.ImVec2, ptr %2144, i32 0, i32 1
  %2146 = load float, ptr %2145, align 4, !tbaa !89
  %2147 = fcmp une float %2146, 0.000000e+00
  br i1 %2147, label %2148, label %2153

2148:                                             ; preds = %2122
  %2149 = load ptr, ptr %9, align 8, !tbaa !5
  %2150 = getelementptr inbounds %struct.ImGuiWindow, ptr %2149, i32 0, i32 8
  %2151 = getelementptr inbounds %struct.ImVec2, ptr %2150, i32 0, i32 1
  %2152 = load float, ptr %2151, align 4, !tbaa !89
  br label %2163

2153:                                             ; preds = %2122
  %2154 = load ptr, ptr %9, align 8, !tbaa !5
  %2155 = getelementptr inbounds %struct.ImGuiWindow, ptr %2154, i32 0, i32 4
  %2156 = getelementptr inbounds %struct.ImVec2, ptr %2155, i32 0, i32 1
  %2157 = load float, ptr %2156, align 4, !tbaa !103
  %2158 = load ptr, ptr %9, align 8, !tbaa !5
  %2159 = getelementptr inbounds %struct.ImGuiWindow, ptr %2158, i32 0, i32 17
  %2160 = getelementptr inbounds %struct.ImVec2, ptr %2159, i32 0, i32 1
  %2161 = load float, ptr %2160, align 4, !tbaa !191
  %2162 = fsub float %2157, %2161
  br label %2163

2163:                                             ; preds = %2153, %2148
  %2164 = phi float [ %2152, %2148 ], [ %2162, %2153 ]
  %2165 = fadd float %2142, %2164
  %2166 = load ptr, ptr %9, align 8, !tbaa !5
  %2167 = getelementptr inbounds %struct.ImGuiWindow, ptr %2166, i32 0, i32 51
  %2168 = getelementptr inbounds %struct.ImRect, ptr %2167, i32 0, i32 1
  %2169 = getelementptr inbounds %struct.ImVec2, ptr %2168, i32 0, i32 1
  store float %2165, ptr %2169, align 4, !tbaa !192
  %2170 = load ptr, ptr %9, align 8, !tbaa !5
  %2171 = getelementptr inbounds %struct.ImGuiWindow, ptr %2170, i32 0, i32 9
  %2172 = getelementptr inbounds %struct.ImVec2, ptr %2171, i32 0, i32 0
  %2173 = load float, ptr %2172, align 8, !tbaa !109
  %2174 = fadd float 0.000000e+00, %2173
  %2175 = load ptr, ptr %9, align 8, !tbaa !5
  %2176 = getelementptr inbounds %struct.ImGuiWindow, ptr %2175, i32 0, i32 14
  %2177 = getelementptr inbounds %struct.ImVec2, ptr %2176, i32 0, i32 0
  %2178 = load float, ptr %2177, align 8, !tbaa !183
  %2179 = fsub float %2174, %2178
  %2180 = load ptr, ptr %9, align 8, !tbaa !5
  %2181 = getelementptr inbounds %struct.ImGuiWindow, ptr %2180, i32 0, i32 45
  %2182 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2181, i32 0, i32 35
  %2183 = getelementptr inbounds %struct.ImVec1, ptr %2182, i32 0, i32 0
  store float %2179, ptr %2183, align 8, !tbaa !193
  %2184 = load ptr, ptr %9, align 8, !tbaa !5
  %2185 = getelementptr inbounds %struct.ImGuiWindow, ptr %2184, i32 0, i32 45
  %2186 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2185, i32 0, i32 36
  %2187 = getelementptr inbounds %struct.ImVec1, ptr %2186, i32 0, i32 0
  store float 0.000000e+00, ptr %2187, align 4, !tbaa !194
  %2188 = load ptr, ptr %9, align 8, !tbaa !5
  %2189 = getelementptr inbounds %struct.ImGuiWindow, ptr %2188, i32 0, i32 45
  %2190 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2189, i32 0, i32 37
  %2191 = getelementptr inbounds %struct.ImVec1, ptr %2190, i32 0, i32 0
  store float 0.000000e+00, ptr %2191, align 8, !tbaa !195
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #13
  %2192 = load ptr, ptr %9, align 8, !tbaa !5
  %2193 = getelementptr inbounds %struct.ImGuiWindow, ptr %2192, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #13
  %2194 = load ptr, ptr %9, align 8, !tbaa !5
  %2195 = getelementptr inbounds %struct.ImGuiWindow, ptr %2194, i32 0, i32 45
  %2196 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2195, i32 0, i32 35
  %2197 = getelementptr inbounds %struct.ImVec1, ptr %2196, i32 0, i32 0
  %2198 = load float, ptr %2197, align 8, !tbaa !193
  %2199 = load ptr, ptr %9, align 8, !tbaa !5
  %2200 = getelementptr inbounds %struct.ImGuiWindow, ptr %2199, i32 0, i32 45
  %2201 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2200, i32 0, i32 37
  %2202 = getelementptr inbounds %struct.ImVec1, ptr %2201, i32 0, i32 0
  %2203 = load float, ptr %2202, align 8, !tbaa !195
  %2204 = fadd float %2198, %2203
  %2205 = load ptr, ptr %9, align 8, !tbaa !5
  %2206 = call noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %2205)
  %2207 = load ptr, ptr %9, align 8, !tbaa !5
  %2208 = call noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %2207)
  %2209 = fadd float %2206, %2208
  %2210 = load ptr, ptr %9, align 8, !tbaa !5
  %2211 = getelementptr inbounds %struct.ImGuiWindow, ptr %2210, i32 0, i32 9
  %2212 = getelementptr inbounds %struct.ImVec2, ptr %2211, i32 0, i32 1
  %2213 = load float, ptr %2212, align 4, !tbaa !186
  %2214 = fadd float %2209, %2213
  %2215 = load ptr, ptr %9, align 8, !tbaa !5
  %2216 = getelementptr inbounds %struct.ImGuiWindow, ptr %2215, i32 0, i32 14
  %2217 = getelementptr inbounds %struct.ImVec2, ptr %2216, i32 0, i32 1
  %2218 = load float, ptr %2217, align 4, !tbaa !185
  %2219 = fsub float %2214, %2218
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %107, float noundef %2204, float noundef %2219)
  %2220 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2193, ptr noundef nonnull align 4 dereferenceable(8) %107)
  store <2 x float> %2220, ptr %106, align 4
  %2221 = load ptr, ptr %9, align 8, !tbaa !5
  %2222 = getelementptr inbounds %struct.ImGuiWindow, ptr %2221, i32 0, i32 45
  %2223 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2222, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2223, ptr align 4 %106, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #13
  %2224 = load ptr, ptr %9, align 8, !tbaa !5
  %2225 = getelementptr inbounds %struct.ImGuiWindow, ptr %2224, i32 0, i32 45
  %2226 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2225, i32 0, i32 2
  %2227 = load ptr, ptr %9, align 8, !tbaa !5
  %2228 = getelementptr inbounds %struct.ImGuiWindow, ptr %2227, i32 0, i32 45
  %2229 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2228, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2229, ptr align 8 %2226, i64 8, i1 false), !tbaa.struct !62
  %2230 = load ptr, ptr %9, align 8, !tbaa !5
  %2231 = getelementptr inbounds %struct.ImGuiWindow, ptr %2230, i32 0, i32 45
  %2232 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2231, i32 0, i32 0
  %2233 = load ptr, ptr %9, align 8, !tbaa !5
  %2234 = getelementptr inbounds %struct.ImGuiWindow, ptr %2233, i32 0, i32 45
  %2235 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2234, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2235, ptr align 8 %2232, i64 8, i1 false), !tbaa.struct !62
  %2236 = load ptr, ptr %9, align 8, !tbaa !5
  %2237 = getelementptr inbounds %struct.ImGuiWindow, ptr %2236, i32 0, i32 45
  %2238 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2237, i32 0, i32 2
  %2239 = load ptr, ptr %9, align 8, !tbaa !5
  %2240 = getelementptr inbounds %struct.ImGuiWindow, ptr %2239, i32 0, i32 45
  %2241 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2240, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2241, ptr align 8 %2238, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #13
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %108, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %2242 = load ptr, ptr %9, align 8, !tbaa !5
  %2243 = getelementptr inbounds %struct.ImGuiWindow, ptr %2242, i32 0, i32 45
  %2244 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2243, i32 0, i32 6
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %2244, ptr align 4 %108, i64 8, i1 false), !tbaa.struct !62
  %2245 = load ptr, ptr %9, align 8, !tbaa !5
  %2246 = getelementptr inbounds %struct.ImGuiWindow, ptr %2245, i32 0, i32 45
  %2247 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2246, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2247, ptr align 4 %2244, i64 8, i1 false), !tbaa.struct !62
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #13
  %2248 = load ptr, ptr %9, align 8, !tbaa !5
  %2249 = getelementptr inbounds %struct.ImGuiWindow, ptr %2248, i32 0, i32 45
  %2250 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2249, i32 0, i32 7
  store float 0.000000e+00, ptr %2250, align 4, !tbaa !196
  %2251 = load ptr, ptr %9, align 8, !tbaa !5
  %2252 = getelementptr inbounds %struct.ImGuiWindow, ptr %2251, i32 0, i32 45
  %2253 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2252, i32 0, i32 5
  store float 0.000000e+00, ptr %2253, align 8, !tbaa !197
  %2254 = load ptr, ptr %9, align 8, !tbaa !5
  %2255 = getelementptr inbounds %struct.ImGuiWindow, ptr %2254, i32 0, i32 45
  %2256 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2255, i32 0, i32 15
  store i8 0, ptr %2256, align 4, !tbaa !198
  %2257 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %2258 = fcmp ogt float %2257, 0.000000e+00
  %2259 = load ptr, ptr %9, align 8, !tbaa !5
  %2260 = getelementptr inbounds %struct.ImGuiWindow, ptr %2259, i32 0, i32 45
  %2261 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2260, i32 0, i32 16
  %2262 = zext i1 %2258 to i8
  store i8 %2262, ptr %2261, align 1, !tbaa !199
  %2263 = load ptr, ptr %9, align 8, !tbaa !5
  %2264 = getelementptr inbounds %struct.ImGuiWindow, ptr %2263, i32 0, i32 45
  %2265 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2264, i32 0, i32 20
  %2266 = load i32, ptr %2265, align 4, !tbaa !200
  %2267 = load ptr, ptr %9, align 8, !tbaa !5
  %2268 = getelementptr inbounds %struct.ImGuiWindow, ptr %2267, i32 0, i32 45
  %2269 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2268, i32 0, i32 19
  store i32 %2266, ptr %2269, align 8, !tbaa !201
  %2270 = load ptr, ptr %9, align 8, !tbaa !5
  %2271 = getelementptr inbounds %struct.ImGuiWindow, ptr %2270, i32 0, i32 45
  %2272 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2271, i32 0, i32 20
  store i32 0, ptr %2272, align 4, !tbaa !200
  %2273 = load ptr, ptr %9, align 8, !tbaa !5
  %2274 = getelementptr inbounds %struct.ImGuiWindow, ptr %2273, i32 0, i32 45
  %2275 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2274, i32 0, i32 21
  store i8 0, ptr %2275, align 8, !tbaa !202
  %2276 = load ptr, ptr %9, align 8, !tbaa !5
  %2277 = getelementptr inbounds %struct.ImGuiWindow, ptr %2276, i32 0, i32 45
  %2278 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2277, i32 0, i32 0
  %2279 = getelementptr inbounds %struct.ImVec2, ptr %2278, i32 0, i32 1
  %2280 = load float, ptr %2279, align 4, !tbaa !203
  %2281 = fsub float %2280, 9.999000e+03
  %2282 = load ptr, ptr %9, align 8, !tbaa !5
  %2283 = getelementptr inbounds %struct.ImGuiWindow, ptr %2282, i32 0, i32 45
  %2284 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2283, i32 0, i32 8
  store float %2281, ptr %2284, align 8, !tbaa !204
  %2285 = load ptr, ptr %9, align 8, !tbaa !5
  %2286 = getelementptr inbounds %struct.ImGuiWindow, ptr %2285, i32 0, i32 45
  %2287 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2286, i32 0, i32 23
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2287, i32 noundef 0)
  %2288 = load ptr, ptr %9, align 8, !tbaa !5
  %2289 = getelementptr inbounds %struct.ImGuiWindow, ptr %2288, i32 0, i32 45
  %2290 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2289, i32 0, i32 25
  store i32 0, ptr %2290, align 8, !tbaa !205
  %2291 = load ptr, ptr %16, align 8, !tbaa !5
  %2292 = icmp ne ptr %2291, null
  br i1 %2292, label %2293, label %2298

2293:                                             ; preds = %2163
  %2294 = load ptr, ptr %16, align 8, !tbaa !5
  %2295 = getelementptr inbounds %struct.ImGuiWindow, ptr %2294, i32 0, i32 45
  %2296 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2295, i32 0, i32 25
  %2297 = load i32, ptr %2296, align 8, !tbaa !205
  br label %2299

2298:                                             ; preds = %2163
  br label %2299

2299:                                             ; preds = %2298, %2293
  %2300 = phi i32 [ %2297, %2293 ], [ 0, %2298 ]
  %2301 = load ptr, ptr %9, align 8, !tbaa !5
  %2302 = getelementptr inbounds %struct.ImGuiWindow, ptr %2301, i32 0, i32 45
  %2303 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2302, i32 0, i32 26
  store i32 %2300, ptr %2303, align 4, !tbaa !206
  %2304 = load ptr, ptr %16, align 8, !tbaa !5
  %2305 = icmp ne ptr %2304, null
  br i1 %2305, label %2306, label %2311

2306:                                             ; preds = %2299
  %2307 = load ptr, ptr %16, align 8, !tbaa !5
  %2308 = getelementptr inbounds %struct.ImGuiWindow, ptr %2307, i32 0, i32 45
  %2309 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2308, i32 0, i32 27
  %2310 = load i32, ptr %2309, align 8, !tbaa !207
  br label %2312

2311:                                             ; preds = %2299
  br label %2312

2312:                                             ; preds = %2311, %2306
  %2313 = phi i32 [ %2310, %2306 ], [ 0, %2311 ]
  %2314 = load ptr, ptr %9, align 8, !tbaa !5
  %2315 = getelementptr inbounds %struct.ImGuiWindow, ptr %2314, i32 0, i32 45
  %2316 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2315, i32 0, i32 27
  store i32 %2313, ptr %2316, align 8, !tbaa !207
  %2317 = load ptr, ptr %9, align 8, !tbaa !5
  %2318 = getelementptr inbounds %struct.ImGuiWindow, ptr %2317, i32 0, i32 53
  %2319 = load float, ptr %2318, align 4, !tbaa !149
  %2320 = load ptr, ptr %9, align 8, !tbaa !5
  %2321 = getelementptr inbounds %struct.ImGuiWindow, ptr %2320, i32 0, i32 45
  %2322 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2321, i32 0, i32 28
  store float %2319, ptr %2322, align 4, !tbaa !208
  %2323 = load ptr, ptr %9, align 8, !tbaa !5
  %2324 = getelementptr inbounds %struct.ImGuiWindow, ptr %2323, i32 0, i32 45
  %2325 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2324, i32 0, i32 29
  store float -1.000000e+00, ptr %2325, align 8, !tbaa !209
  %2326 = load ptr, ptr %9, align 8, !tbaa !5
  %2327 = getelementptr inbounds %struct.ImGuiWindow, ptr %2326, i32 0, i32 45
  %2328 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2327, i32 0, i32 30
  call void @_ZN8ImVectorIiE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2328, i32 noundef 0)
  %2329 = load ptr, ptr %9, align 8, !tbaa !5
  %2330 = getelementptr inbounds %struct.ImGuiWindow, ptr %2329, i32 0, i32 45
  %2331 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2330, i32 0, i32 31
  call void @_ZN8ImVectorIfE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2331, i32 noundef 0)
  %2332 = load ptr, ptr %9, align 8, !tbaa !5
  %2333 = getelementptr inbounds %struct.ImGuiWindow, ptr %2332, i32 0, i32 45
  %2334 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2333, i32 0, i32 32
  call void @_ZN8ImVectorIfE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2334, i32 noundef 0)
  %2335 = load ptr, ptr %9, align 8, !tbaa !5
  %2336 = getelementptr inbounds %struct.ImGuiWindow, ptr %2335, i32 0, i32 45
  %2337 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2336, i32 0, i32 38
  store ptr null, ptr %2337, align 8, !tbaa !210
  %2338 = load ptr, ptr %9, align 8, !tbaa !5
  %2339 = getelementptr inbounds %struct.ImGuiWindow, ptr %2338, i32 0, i32 45
  %2340 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2339, i32 0, i32 9
  store i32 0, ptr %2340, align 4, !tbaa !211
  %2341 = load ptr, ptr %9, align 8, !tbaa !5
  %2342 = getelementptr inbounds %struct.ImGuiWindow, ptr %2341, i32 0, i32 45
  %2343 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2342, i32 0, i32 10
  store i32 0, ptr %2343, align 8, !tbaa !212
  %2344 = load ptr, ptr %9, align 8, !tbaa !5
  %2345 = getelementptr inbounds %struct.ImGuiWindow, ptr %2344, i32 0, i32 55
  %2346 = load ptr, ptr %9, align 8, !tbaa !5
  %2347 = getelementptr inbounds %struct.ImGuiWindow, ptr %2346, i32 0, i32 45
  %2348 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2347, i32 0, i32 24
  store ptr %2345, ptr %2348, align 8, !tbaa !213
  %2349 = load ptr, ptr %9, align 8, !tbaa !5
  %2350 = getelementptr inbounds %struct.ImGuiWindow, ptr %2349, i32 0, i32 45
  %2351 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2350, i32 0, i32 33
  call void @_ZN8ImVectorI14ImGuiGroupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2351, i32 noundef 0)
  %2352 = load ptr, ptr %9, align 8, !tbaa !5
  %2353 = getelementptr inbounds %struct.ImGuiWindow, ptr %2352, i32 0, i32 54
  %2354 = load ptr, ptr %8, align 8, !tbaa !5
  %2355 = getelementptr inbounds %struct.ImGuiStyle, ptr %2354, i32 0, i32 13
  %2356 = getelementptr inbounds %struct.ImVec2, ptr %2355, i32 0, i32 0
  %2357 = load float, ptr %2356, align 4, !tbaa !110
  %2358 = load i8, ptr %17, align 1, !tbaa !60, !range !56, !noundef !57
  %2359 = trunc i8 %2358 to i1
  call void @_ZN16ImGuiMenuColumns6UpdateEifb(ptr noundef nonnull align 4 dereferenceable(48) %2353, i32 noundef 3, float noundef %2357, i1 noundef zeroext %2359)
  %2360 = load i32, ptr %6, align 4, !tbaa !9
  %2361 = and i32 %2360, 16777216
  %2362 = icmp ne i32 %2361, 0
  br i1 %2362, label %2363, label %2387

2363:                                             ; preds = %2312
  %2364 = load ptr, ptr %9, align 8, !tbaa !5
  %2365 = getelementptr inbounds %struct.ImGuiWindow, ptr %2364, i32 0, i32 45
  %2366 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2365, i32 0, i32 27
  %2367 = load i32, ptr %2366, align 8, !tbaa !207
  %2368 = load ptr, ptr %16, align 8, !tbaa !5
  %2369 = getelementptr inbounds %struct.ImGuiWindow, ptr %2368, i32 0, i32 45
  %2370 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2369, i32 0, i32 27
  %2371 = load i32, ptr %2370, align 8, !tbaa !207
  %2372 = icmp ne i32 %2367, %2371
  br i1 %2372, label %2373, label %2387

2373:                                             ; preds = %2363
  %2374 = load ptr, ptr %16, align 8, !tbaa !5
  %2375 = getelementptr inbounds %struct.ImGuiWindow, ptr %2374, i32 0, i32 45
  %2376 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2375, i32 0, i32 27
  %2377 = load i32, ptr %2376, align 8, !tbaa !207
  %2378 = load ptr, ptr %9, align 8, !tbaa !5
  %2379 = getelementptr inbounds %struct.ImGuiWindow, ptr %2378, i32 0, i32 45
  %2380 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2379, i32 0, i32 27
  store i32 %2377, ptr %2380, align 8, !tbaa !207
  %2381 = load ptr, ptr %9, align 8, !tbaa !5
  %2382 = getelementptr inbounds %struct.ImGuiWindow, ptr %2381, i32 0, i32 45
  %2383 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2382, i32 0, i32 30
  %2384 = load ptr, ptr %9, align 8, !tbaa !5
  %2385 = getelementptr inbounds %struct.ImGuiWindow, ptr %2384, i32 0, i32 45
  %2386 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2385, i32 0, i32 27
  call void @_ZN8ImVectorIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(16) %2383, ptr noundef nonnull align 4 dereferenceable(4) %2386)
  br label %2387

2387:                                             ; preds = %2373, %2363, %2312
  %2388 = load ptr, ptr %9, align 8, !tbaa !5
  %2389 = getelementptr inbounds %struct.ImGuiWindow, ptr %2388, i32 0, i32 33
  %2390 = load i32, ptr %2389, align 4, !tbaa !122
  %2391 = icmp sgt i32 %2390, 0
  br i1 %2391, label %2392, label %2397

2392:                                             ; preds = %2387
  %2393 = load ptr, ptr %9, align 8, !tbaa !5
  %2394 = getelementptr inbounds %struct.ImGuiWindow, ptr %2393, i32 0, i32 33
  %2395 = load i32, ptr %2394, align 4, !tbaa !122
  %2396 = add nsw i32 %2395, -1
  store i32 %2396, ptr %2394, align 4, !tbaa !122
  br label %2397

2397:                                             ; preds = %2392, %2387
  %2398 = load ptr, ptr %9, align 8, !tbaa !5
  %2399 = getelementptr inbounds %struct.ImGuiWindow, ptr %2398, i32 0, i32 34
  %2400 = load i32, ptr %2399, align 8, !tbaa !123
  %2401 = icmp sgt i32 %2400, 0
  br i1 %2401, label %2402, label %2407

2402:                                             ; preds = %2397
  %2403 = load ptr, ptr %9, align 8, !tbaa !5
  %2404 = getelementptr inbounds %struct.ImGuiWindow, ptr %2403, i32 0, i32 34
  %2405 = load i32, ptr %2404, align 8, !tbaa !123
  %2406 = add nsw i32 %2405, -1
  store i32 %2406, ptr %2404, align 8, !tbaa !123
  br label %2407

2407:                                             ; preds = %2402, %2397
  %2408 = load i8, ptr %57, align 1, !tbaa !60, !range !56, !noundef !57
  %2409 = trunc i8 %2408 to i1
  br i1 %2409, label %2410, label %2413

2410:                                             ; preds = %2407
  %2411 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef %2411)
  %2412 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN5ImGui13NavInitWindowEP11ImGuiWindowb(ptr noundef %2412, i1 noundef zeroext false)
  br label %2413

2413:                                             ; preds = %2410, %2407
  %2414 = load i32, ptr %6, align 4, !tbaa !9
  %2415 = and i32 %2414, 1
  %2416 = icmp ne i32 %2415, 0
  br i1 %2416, label %2602, label %2417

2417:                                             ; preds = %2413
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #13
  %2418 = load ptr, ptr %9, align 8, !tbaa !5
  %2419 = getelementptr inbounds %struct.ImGuiWindow, ptr %2418, i32 0, i32 45
  %2420 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2419, i32 0, i32 27
  %2421 = load i32, ptr %2420, align 8, !tbaa !207
  store i32 %2421, ptr %109, align 4, !tbaa !9
  %2422 = load ptr, ptr %9, align 8, !tbaa !5
  %2423 = getelementptr inbounds %struct.ImGuiWindow, ptr %2422, i32 0, i32 45
  %2424 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2423, i32 0, i32 27
  %2425 = load i32, ptr %2424, align 8, !tbaa !207
  %2426 = or i32 %2425, 16
  store i32 %2426, ptr %2424, align 8, !tbaa !207
  %2427 = load ptr, ptr %9, align 8, !tbaa !5
  %2428 = getelementptr inbounds %struct.ImGuiWindow, ptr %2427, i32 0, i32 45
  %2429 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2428, i32 0, i32 17
  %2430 = load i32, ptr %2429, align 8, !tbaa !214
  %2431 = add nsw i32 %2430, 1
  store i32 %2431, ptr %2429, align 8, !tbaa !214
  %2432 = load ptr, ptr %9, align 8, !tbaa !5
  %2433 = getelementptr inbounds %struct.ImGuiWindow, ptr %2432, i32 0, i32 45
  %2434 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2433, i32 0, i32 18
  %2435 = load i32, ptr %2434, align 4, !tbaa !215
  %2436 = shl i32 %2435, 1
  store i32 %2436, ptr %2434, align 4, !tbaa !215
  %2437 = load i32, ptr %6, align 4, !tbaa !9
  %2438 = and i32 %2437, 32
  %2439 = icmp ne i32 %2438, 0
  br i1 %2439, label %2450, label %2440

2440:                                             ; preds = %2417
  %2441 = load ptr, ptr %9, align 8, !tbaa !5
  %2442 = call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(984) %2441, ptr noundef @.str.67, ptr noundef null)
  %2443 = load ptr, ptr %9, align 8, !tbaa !5
  %2444 = getelementptr inbounds %struct.ImGuiWindow, ptr %2443, i32 0, i32 3
  %2445 = call noundef zeroext i1 @_ZN5ImGui14CollapseButtonEjRK6ImVec2(i32 noundef %2442, ptr noundef nonnull align 4 dereferenceable(8) %2444)
  br i1 %2445, label %2446, label %2449

2446:                                             ; preds = %2440
  %2447 = load ptr, ptr %9, align 8, !tbaa !5
  %2448 = getelementptr inbounds %struct.ImGuiWindow, ptr %2447, i32 0, i32 24
  store i8 1, ptr %2448, align 2, !tbaa !118
  br label %2449

2449:                                             ; preds = %2446, %2440
  br label %2450

2450:                                             ; preds = %2449, %2417
  %2451 = load ptr, ptr %5, align 8, !tbaa !5
  %2452 = icmp ne ptr %2451, null
  br i1 %2452, label %2453, label %2485

2453:                                             ; preds = %2450
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #13
  %2454 = load ptr, ptr %8, align 8, !tbaa !5
  %2455 = getelementptr inbounds %struct.ImGuiStyle, ptr %2454, i32 0, i32 10
  %2456 = getelementptr inbounds %struct.ImVec2, ptr %2455, i32 0, i32 1
  %2457 = load float, ptr %2456, align 4, !tbaa !216
  store float %2457, ptr %110, align 4, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #13
  %2458 = load ptr, ptr %7, align 8, !tbaa !5
  %2459 = getelementptr inbounds %struct.ImGuiContext, ptr %2458, i32 0, i32 7
  %2460 = load float, ptr %2459, align 8, !tbaa !148
  %2461 = fmul float %2460, 5.000000e-01
  store float %2461, ptr %111, align 4, !tbaa !63
  %2462 = load ptr, ptr %9, align 8, !tbaa !5
  %2463 = call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(984) %2462, ptr noundef @.str.68, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #13
  %2464 = load ptr, ptr %9, align 8, !tbaa !5
  %2465 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %2464)
  %2466 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %114, i32 0, i32 0
  %2467 = extractvalue { <2 x float>, <2 x float> } %2465, 0
  store <2 x float> %2467, ptr %2466, align 4
  %2468 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %114, i32 0, i32 1
  %2469 = extractvalue { <2 x float>, <2 x float> } %2465, 1
  store <2 x float> %2469, ptr %2468, align 4
  %2470 = call <2 x float> @_ZNK6ImRect5GetTREv(ptr noundef nonnull align 4 dereferenceable(16) %114)
  store <2 x float> %2470, ptr %113, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #13
  %2471 = load float, ptr %110, align 4, !tbaa !63
  %2472 = fneg float %2471
  %2473 = load float, ptr %111, align 4, !tbaa !63
  %2474 = fsub float %2472, %2473
  %2475 = load float, ptr %110, align 4, !tbaa !63
  %2476 = load float, ptr %111, align 4, !tbaa !63
  %2477 = fadd float %2475, %2476
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %115, float noundef %2474, float noundef %2477)
  %2478 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %113, ptr noundef nonnull align 4 dereferenceable(8) %115)
  store <2 x float> %2478, ptr %112, align 4
  %2479 = load float, ptr %111, align 4, !tbaa !63
  %2480 = fadd float %2479, 1.000000e+00
  %2481 = call noundef zeroext i1 @_ZN5ImGui11CloseButtonEjRK6ImVec2f(i32 noundef %2463, ptr noundef nonnull align 4 dereferenceable(8) %112, float noundef %2480)
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #13
  br i1 %2481, label %2482, label %2484

2482:                                             ; preds = %2453
  %2483 = load ptr, ptr %5, align 8, !tbaa !5
  store i8 0, ptr %2483, align 1, !tbaa !60
  br label %2484

2484:                                             ; preds = %2482, %2453
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #13
  br label %2485

2485:                                             ; preds = %2484, %2450
  %2486 = load ptr, ptr %9, align 8, !tbaa !5
  %2487 = getelementptr inbounds %struct.ImGuiWindow, ptr %2486, i32 0, i32 45
  %2488 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2487, i32 0, i32 17
  %2489 = load i32, ptr %2488, align 8, !tbaa !214
  %2490 = add nsw i32 %2489, -1
  store i32 %2490, ptr %2488, align 8, !tbaa !214
  %2491 = load ptr, ptr %9, align 8, !tbaa !5
  %2492 = getelementptr inbounds %struct.ImGuiWindow, ptr %2491, i32 0, i32 45
  %2493 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2492, i32 0, i32 18
  %2494 = load i32, ptr %2493, align 4, !tbaa !215
  %2495 = ashr i32 %2494, 1
  store i32 %2495, ptr %2493, align 4, !tbaa !215
  %2496 = load i32, ptr %109, align 4, !tbaa !9
  %2497 = load ptr, ptr %9, align 8, !tbaa !5
  %2498 = getelementptr inbounds %struct.ImGuiWindow, ptr %2497, i32 0, i32 45
  %2499 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2498, i32 0, i32 27
  store i32 %2496, ptr %2499, align 8, !tbaa !207
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #13
  %2500 = load ptr, ptr %4, align 8, !tbaa !5
  %2501 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %2500, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  store <2 x float> %2501, ptr %116, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr %117) #13
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %117, ptr align 4 %71, i64 16, i1 false), !tbaa.struct !98
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #13
  %2502 = load i32, ptr %6, align 4, !tbaa !9
  %2503 = and i32 %2502, 32
  %2504 = icmp ne i32 %2503, 0
  br i1 %2504, label %2505, label %2510

2505:                                             ; preds = %2485
  %2506 = load ptr, ptr %8, align 8, !tbaa !5
  %2507 = getelementptr inbounds %struct.ImGuiStyle, ptr %2506, i32 0, i32 10
  %2508 = getelementptr inbounds %struct.ImVec2, ptr %2507, i32 0, i32 0
  %2509 = load float, ptr %2508, align 4, !tbaa !217
  br label %2524

2510:                                             ; preds = %2485
  %2511 = load ptr, ptr %8, align 8, !tbaa !5
  %2512 = getelementptr inbounds %struct.ImGuiStyle, ptr %2511, i32 0, i32 10
  %2513 = getelementptr inbounds %struct.ImVec2, ptr %2512, i32 0, i32 0
  %2514 = load float, ptr %2513, align 4, !tbaa !217
  %2515 = load ptr, ptr %7, align 8, !tbaa !5
  %2516 = getelementptr inbounds %struct.ImGuiContext, ptr %2515, i32 0, i32 7
  %2517 = load float, ptr %2516, align 8, !tbaa !148
  %2518 = fadd float %2514, %2517
  %2519 = load ptr, ptr %8, align 8, !tbaa !5
  %2520 = getelementptr inbounds %struct.ImGuiStyle, ptr %2519, i32 0, i32 14
  %2521 = getelementptr inbounds %struct.ImVec2, ptr %2520, i32 0, i32 0
  %2522 = load float, ptr %2521, align 4, !tbaa !218
  %2523 = fadd float %2518, %2522
  br label %2524

2524:                                             ; preds = %2510, %2505
  %2525 = phi float [ %2509, %2505 ], [ %2523, %2510 ]
  store float %2525, ptr %118, align 4, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #13
  %2526 = load ptr, ptr %5, align 8, !tbaa !5
  %2527 = icmp eq ptr %2526, null
  br i1 %2527, label %2528, label %2533

2528:                                             ; preds = %2524
  %2529 = load ptr, ptr %8, align 8, !tbaa !5
  %2530 = getelementptr inbounds %struct.ImGuiStyle, ptr %2529, i32 0, i32 10
  %2531 = getelementptr inbounds %struct.ImVec2, ptr %2530, i32 0, i32 0
  %2532 = load float, ptr %2531, align 4, !tbaa !217
  br label %2547

2533:                                             ; preds = %2524
  %2534 = load ptr, ptr %8, align 8, !tbaa !5
  %2535 = getelementptr inbounds %struct.ImGuiStyle, ptr %2534, i32 0, i32 10
  %2536 = getelementptr inbounds %struct.ImVec2, ptr %2535, i32 0, i32 0
  %2537 = load float, ptr %2536, align 4, !tbaa !217
  %2538 = load ptr, ptr %7, align 8, !tbaa !5
  %2539 = getelementptr inbounds %struct.ImGuiContext, ptr %2538, i32 0, i32 7
  %2540 = load float, ptr %2539, align 8, !tbaa !148
  %2541 = fadd float %2537, %2540
  %2542 = load ptr, ptr %8, align 8, !tbaa !5
  %2543 = getelementptr inbounds %struct.ImGuiStyle, ptr %2542, i32 0, i32 14
  %2544 = getelementptr inbounds %struct.ImVec2, ptr %2543, i32 0, i32 0
  %2545 = load float, ptr %2544, align 4, !tbaa !218
  %2546 = fadd float %2541, %2545
  br label %2547

2547:                                             ; preds = %2533, %2528
  %2548 = phi float [ %2532, %2528 ], [ %2546, %2533 ]
  store float %2548, ptr %119, align 4, !tbaa !63
  %2549 = load ptr, ptr %8, align 8, !tbaa !5
  %2550 = getelementptr inbounds %struct.ImGuiStyle, ptr %2549, i32 0, i32 5
  %2551 = getelementptr inbounds %struct.ImVec2, ptr %2550, i32 0, i32 0
  %2552 = load float, ptr %2551, align 4, !tbaa !219
  %2553 = fcmp ogt float %2552, 0.000000e+00
  br i1 %2553, label %2554, label %2562

2554:                                             ; preds = %2547
  %2555 = load float, ptr %119, align 4, !tbaa !63
  %2556 = load float, ptr %118, align 4, !tbaa !63
  %2557 = load ptr, ptr %8, align 8, !tbaa !5
  %2558 = getelementptr inbounds %struct.ImGuiStyle, ptr %2557, i32 0, i32 5
  %2559 = getelementptr inbounds %struct.ImVec2, ptr %2558, i32 0, i32 0
  %2560 = load float, ptr %2559, align 4, !tbaa !219
  %2561 = call noundef float @_ZL6ImLerpIfET_S0_S0_f(float noundef %2555, float noundef %2556, float noundef %2560)
  store float %2561, ptr %119, align 4, !tbaa !63
  br label %2562

2562:                                             ; preds = %2554, %2547
  %2563 = load float, ptr %118, align 4, !tbaa !63
  %2564 = getelementptr inbounds %struct.ImRect, ptr %117, i32 0, i32 0
  %2565 = getelementptr inbounds %struct.ImVec2, ptr %2564, i32 0, i32 0
  %2566 = load float, ptr %2565, align 4, !tbaa !220
  %2567 = fadd float %2566, %2563
  store float %2567, ptr %2565, align 4, !tbaa !220
  %2568 = load float, ptr %119, align 4, !tbaa !63
  %2569 = getelementptr inbounds %struct.ImRect, ptr %117, i32 0, i32 1
  %2570 = getelementptr inbounds %struct.ImVec2, ptr %2569, i32 0, i32 0
  %2571 = load float, ptr %2570, align 4, !tbaa !221
  %2572 = fsub float %2571, %2568
  store float %2572, ptr %2570, align 4, !tbaa !221
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #13
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %120, ptr align 4 %117, i64 16, i1 false), !tbaa.struct !98
  %2573 = load ptr, ptr %9, align 8, !tbaa !5
  %2574 = getelementptr inbounds %struct.ImGuiWindow, ptr %2573, i32 0, i32 3
  %2575 = getelementptr inbounds %struct.ImVec2, ptr %2574, i32 0, i32 0
  %2576 = load float, ptr %2575, align 8, !tbaa !182
  %2577 = load ptr, ptr %9, align 8, !tbaa !5
  %2578 = getelementptr inbounds %struct.ImGuiWindow, ptr %2577, i32 0, i32 4
  %2579 = getelementptr inbounds %struct.ImVec2, ptr %2578, i32 0, i32 0
  %2580 = load float, ptr %2579, align 8, !tbaa !101
  %2581 = fadd float %2576, %2580
  %2582 = load ptr, ptr %5, align 8, !tbaa !5
  %2583 = icmp ne ptr %2582, null
  br i1 %2583, label %2584, label %2587

2584:                                             ; preds = %2562
  %2585 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %71)
  %2586 = fsub float %2585, 3.000000e+00
  br label %2592

2587:                                             ; preds = %2562
  %2588 = load ptr, ptr %8, align 8, !tbaa !5
  %2589 = getelementptr inbounds %struct.ImGuiStyle, ptr %2588, i32 0, i32 10
  %2590 = getelementptr inbounds %struct.ImVec2, ptr %2589, i32 0, i32 0
  %2591 = load float, ptr %2590, align 4, !tbaa !217
  br label %2592

2592:                                             ; preds = %2587, %2584
  %2593 = phi float [ %2586, %2584 ], [ %2591, %2587 ]
  %2594 = fsub float %2581, %2593
  %2595 = getelementptr inbounds %struct.ImRect, ptr %120, i32 0, i32 1
  %2596 = getelementptr inbounds %struct.ImVec2, ptr %2595, i32 0, i32 0
  store float %2594, ptr %2596, align 4, !tbaa !221
  %2597 = getelementptr inbounds %struct.ImRect, ptr %117, i32 0, i32 0
  %2598 = getelementptr inbounds %struct.ImRect, ptr %117, i32 0, i32 1
  %2599 = load ptr, ptr %4, align 8, !tbaa !5
  %2600 = load ptr, ptr %8, align 8, !tbaa !5
  %2601 = getelementptr inbounds %struct.ImGuiStyle, ptr %2600, i32 0, i32 5
  call void @_ZN5ImGui17RenderTextClippedERK6ImVec2S2_PKcS4_PS1_S2_PK6ImRect(ptr noundef nonnull align 4 dereferenceable(8) %2597, ptr noundef nonnull align 4 dereferenceable(8) %2598, ptr noundef %2599, ptr noundef null, ptr noundef %116, ptr noundef nonnull align 4 dereferenceable(8) %2601, ptr noundef %120)
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #13
  br label %2602

2602:                                             ; preds = %2592, %2413
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #13
  %2603 = load ptr, ptr %9, align 8, !tbaa !5
  %2604 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %2603)
  %2605 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %121, i32 0, i32 0
  %2606 = extractvalue { <2 x float>, <2 x float> } %2604, 0
  store <2 x float> %2606, ptr %2605, align 4
  %2607 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %121, i32 0, i32 1
  %2608 = extractvalue { <2 x float>, <2 x float> } %2604, 1
  store <2 x float> %2608, ptr %2607, align 4
  %2609 = load ptr, ptr %9, align 8, !tbaa !5
  %2610 = getelementptr inbounds %struct.ImGuiWindow, ptr %2609, i32 0, i32 48
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2610, ptr align 4 %121, i64 16, i1 false), !tbaa.struct !98
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #13
  %2611 = load ptr, ptr %9, align 8, !tbaa !5
  %2612 = getelementptr inbounds %struct.ImGuiWindow, ptr %2611, i32 0, i32 48
  %2613 = load ptr, ptr %9, align 8, !tbaa !5
  %2614 = getelementptr inbounds %struct.ImGuiWindow, ptr %2613, i32 0, i32 47
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %2612, ptr noundef nonnull align 4 dereferenceable(16) %2614)
  %2615 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 0
  %2616 = getelementptr inbounds %struct.ImVec2, ptr %2615, i32 0, i32 0
  %2617 = load float, ptr %2616, align 4, !tbaa !220
  %2618 = load ptr, ptr %9, align 8, !tbaa !5
  %2619 = getelementptr inbounds %struct.ImGuiWindow, ptr %2618, i32 0, i32 11
  %2620 = load float, ptr %2619, align 4, !tbaa !107
  %2621 = fadd float %2617, %2620
  %2622 = load ptr, ptr %9, align 8, !tbaa !5
  %2623 = getelementptr inbounds %struct.ImGuiWindow, ptr %2622, i32 0, i32 49
  %2624 = getelementptr inbounds %struct.ImRect, ptr %2623, i32 0, i32 0
  %2625 = getelementptr inbounds %struct.ImVec2, ptr %2624, i32 0, i32 0
  store float %2621, ptr %2625, align 8, !tbaa !222
  %2626 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 1
  %2627 = getelementptr inbounds %struct.ImVec2, ptr %2626, i32 0, i32 1
  %2628 = load float, ptr %2627, align 4, !tbaa !173
  %2629 = load ptr, ptr %9, align 8, !tbaa !5
  %2630 = call noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %2629)
  %2631 = fadd float %2628, %2630
  %2632 = load i32, ptr %6, align 4, !tbaa !9
  %2633 = and i32 %2632, 1024
  %2634 = icmp ne i32 %2633, 0
  br i1 %2634, label %2639, label %2635

2635:                                             ; preds = %2602
  %2636 = load i32, ptr %6, align 4, !tbaa !9
  %2637 = and i32 %2636, 1
  %2638 = icmp ne i32 %2637, 0
  br i1 %2638, label %2643, label %2639

2639:                                             ; preds = %2635, %2602
  %2640 = load ptr, ptr %8, align 8, !tbaa !5
  %2641 = getelementptr inbounds %struct.ImGuiStyle, ptr %2640, i32 0, i32 12
  %2642 = load float, ptr %2641, align 4, !tbaa !168
  br label %2647

2643:                                             ; preds = %2635
  %2644 = load ptr, ptr %9, align 8, !tbaa !5
  %2645 = getelementptr inbounds %struct.ImGuiWindow, ptr %2644, i32 0, i32 11
  %2646 = load float, ptr %2645, align 4, !tbaa !107
  br label %2647

2647:                                             ; preds = %2643, %2639
  %2648 = phi float [ %2642, %2639 ], [ %2646, %2643 ]
  %2649 = fadd float %2631, %2648
  %2650 = load ptr, ptr %9, align 8, !tbaa !5
  %2651 = getelementptr inbounds %struct.ImGuiWindow, ptr %2650, i32 0, i32 49
  %2652 = getelementptr inbounds %struct.ImRect, ptr %2651, i32 0, i32 0
  %2653 = getelementptr inbounds %struct.ImVec2, ptr %2652, i32 0, i32 1
  store float %2649, ptr %2653, align 4, !tbaa !223
  %2654 = load ptr, ptr %9, align 8, !tbaa !5
  %2655 = getelementptr inbounds %struct.ImGuiWindow, ptr %2654, i32 0, i32 3
  %2656 = getelementptr inbounds %struct.ImVec2, ptr %2655, i32 0, i32 0
  %2657 = load float, ptr %2656, align 8, !tbaa !182
  %2658 = load ptr, ptr %9, align 8, !tbaa !5
  %2659 = getelementptr inbounds %struct.ImGuiWindow, ptr %2658, i32 0, i32 4
  %2660 = getelementptr inbounds %struct.ImVec2, ptr %2659, i32 0, i32 0
  %2661 = load float, ptr %2660, align 8, !tbaa !101
  %2662 = fadd float %2657, %2661
  %2663 = load ptr, ptr %9, align 8, !tbaa !5
  %2664 = getelementptr inbounds %struct.ImGuiWindow, ptr %2663, i32 0, i32 17
  %2665 = getelementptr inbounds %struct.ImVec2, ptr %2664, i32 0, i32 0
  %2666 = load float, ptr %2665, align 8, !tbaa !189
  %2667 = fsub float %2662, %2666
  %2668 = load ptr, ptr %9, align 8, !tbaa !5
  %2669 = getelementptr inbounds %struct.ImGuiWindow, ptr %2668, i32 0, i32 11
  %2670 = load float, ptr %2669, align 4, !tbaa !107
  %2671 = fsub float %2667, %2670
  %2672 = load ptr, ptr %9, align 8, !tbaa !5
  %2673 = getelementptr inbounds %struct.ImGuiWindow, ptr %2672, i32 0, i32 49
  %2674 = getelementptr inbounds %struct.ImRect, ptr %2673, i32 0, i32 1
  %2675 = getelementptr inbounds %struct.ImVec2, ptr %2674, i32 0, i32 0
  store float %2671, ptr %2675, align 8, !tbaa !224
  %2676 = load ptr, ptr %9, align 8, !tbaa !5
  %2677 = getelementptr inbounds %struct.ImGuiWindow, ptr %2676, i32 0, i32 3
  %2678 = getelementptr inbounds %struct.ImVec2, ptr %2677, i32 0, i32 1
  %2679 = load float, ptr %2678, align 4, !tbaa !174
  %2680 = load ptr, ptr %9, align 8, !tbaa !5
  %2681 = getelementptr inbounds %struct.ImGuiWindow, ptr %2680, i32 0, i32 4
  %2682 = getelementptr inbounds %struct.ImVec2, ptr %2681, i32 0, i32 1
  %2683 = load float, ptr %2682, align 4, !tbaa !103
  %2684 = fadd float %2679, %2683
  %2685 = load ptr, ptr %9, align 8, !tbaa !5
  %2686 = getelementptr inbounds %struct.ImGuiWindow, ptr %2685, i32 0, i32 17
  %2687 = getelementptr inbounds %struct.ImVec2, ptr %2686, i32 0, i32 1
  %2688 = load float, ptr %2687, align 4, !tbaa !191
  %2689 = fsub float %2684, %2688
  %2690 = load ptr, ptr %9, align 8, !tbaa !5
  %2691 = getelementptr inbounds %struct.ImGuiWindow, ptr %2690, i32 0, i32 11
  %2692 = load float, ptr %2691, align 4, !tbaa !107
  %2693 = fsub float %2689, %2692
  %2694 = load ptr, ptr %9, align 8, !tbaa !5
  %2695 = getelementptr inbounds %struct.ImGuiWindow, ptr %2694, i32 0, i32 49
  %2696 = getelementptr inbounds %struct.ImRect, ptr %2695, i32 0, i32 1
  %2697 = getelementptr inbounds %struct.ImVec2, ptr %2696, i32 0, i32 1
  store float %2693, ptr %2697, align 4, !tbaa !225
  %2698 = load ptr, ptr %9, align 8, !tbaa !5
  %2699 = getelementptr inbounds %struct.ImGuiWindow, ptr %2698, i32 0, i32 49
  %2700 = getelementptr inbounds %struct.ImRect, ptr %2699, i32 0, i32 0
  %2701 = getelementptr inbounds %struct.ImVec2, ptr %2700, i32 0, i32 0
  %2702 = load float, ptr %2701, align 8, !tbaa !222
  %2703 = fadd float 5.000000e-01, %2702
  %2704 = load ptr, ptr %9, align 8, !tbaa !5
  %2705 = getelementptr inbounds %struct.ImGuiWindow, ptr %2704, i32 0, i32 9
  %2706 = getelementptr inbounds %struct.ImVec2, ptr %2705, i32 0, i32 0
  %2707 = load float, ptr %2706, align 8, !tbaa !109
  %2708 = load ptr, ptr %9, align 8, !tbaa !5
  %2709 = getelementptr inbounds %struct.ImGuiWindow, ptr %2708, i32 0, i32 11
  %2710 = load float, ptr %2709, align 4, !tbaa !107
  %2711 = fneg float %2710
  %2712 = call float @llvm.fmuladd.f32(float %2707, float 5.000000e-01, float %2711)
  %2713 = call noundef float @_ZL7ImFloorf(float noundef %2712)
  %2714 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %2713)
  %2715 = fadd float %2703, %2714
  %2716 = call noundef float @_ZL7ImFloorf(float noundef %2715)
  %2717 = load ptr, ptr %9, align 8, !tbaa !5
  %2718 = getelementptr inbounds %struct.ImGuiWindow, ptr %2717, i32 0, i32 50
  %2719 = getelementptr inbounds %struct.ImRect, ptr %2718, i32 0, i32 0
  %2720 = getelementptr inbounds %struct.ImVec2, ptr %2719, i32 0, i32 0
  store float %2716, ptr %2720, align 8, !tbaa !226
  %2721 = load ptr, ptr %9, align 8, !tbaa !5
  %2722 = getelementptr inbounds %struct.ImGuiWindow, ptr %2721, i32 0, i32 49
  %2723 = getelementptr inbounds %struct.ImRect, ptr %2722, i32 0, i32 0
  %2724 = getelementptr inbounds %struct.ImVec2, ptr %2723, i32 0, i32 1
  %2725 = load float, ptr %2724, align 4, !tbaa !223
  %2726 = fadd float 5.000000e-01, %2725
  %2727 = call noundef float @_ZL7ImFloorf(float noundef %2726)
  %2728 = load ptr, ptr %9, align 8, !tbaa !5
  %2729 = getelementptr inbounds %struct.ImGuiWindow, ptr %2728, i32 0, i32 50
  %2730 = getelementptr inbounds %struct.ImRect, ptr %2729, i32 0, i32 0
  %2731 = getelementptr inbounds %struct.ImVec2, ptr %2730, i32 0, i32 1
  store float %2727, ptr %2731, align 4, !tbaa !227
  %2732 = load ptr, ptr %9, align 8, !tbaa !5
  %2733 = getelementptr inbounds %struct.ImGuiWindow, ptr %2732, i32 0, i32 49
  %2734 = getelementptr inbounds %struct.ImRect, ptr %2733, i32 0, i32 1
  %2735 = getelementptr inbounds %struct.ImVec2, ptr %2734, i32 0, i32 0
  %2736 = load float, ptr %2735, align 8, !tbaa !224
  %2737 = fadd float 5.000000e-01, %2736
  %2738 = load ptr, ptr %9, align 8, !tbaa !5
  %2739 = getelementptr inbounds %struct.ImGuiWindow, ptr %2738, i32 0, i32 9
  %2740 = getelementptr inbounds %struct.ImVec2, ptr %2739, i32 0, i32 0
  %2741 = load float, ptr %2740, align 8, !tbaa !109
  %2742 = load ptr, ptr %9, align 8, !tbaa !5
  %2743 = getelementptr inbounds %struct.ImGuiWindow, ptr %2742, i32 0, i32 11
  %2744 = load float, ptr %2743, align 4, !tbaa !107
  %2745 = fneg float %2744
  %2746 = call float @llvm.fmuladd.f32(float %2741, float 5.000000e-01, float %2745)
  %2747 = call noundef float @_ZL7ImFloorf(float noundef %2746)
  %2748 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %2747)
  %2749 = fsub float %2737, %2748
  %2750 = call noundef float @_ZL7ImFloorf(float noundef %2749)
  %2751 = load ptr, ptr %9, align 8, !tbaa !5
  %2752 = getelementptr inbounds %struct.ImGuiWindow, ptr %2751, i32 0, i32 50
  %2753 = getelementptr inbounds %struct.ImRect, ptr %2752, i32 0, i32 1
  %2754 = getelementptr inbounds %struct.ImVec2, ptr %2753, i32 0, i32 0
  store float %2750, ptr %2754, align 8, !tbaa !228
  %2755 = load ptr, ptr %9, align 8, !tbaa !5
  %2756 = getelementptr inbounds %struct.ImGuiWindow, ptr %2755, i32 0, i32 49
  %2757 = getelementptr inbounds %struct.ImRect, ptr %2756, i32 0, i32 1
  %2758 = getelementptr inbounds %struct.ImVec2, ptr %2757, i32 0, i32 1
  %2759 = load float, ptr %2758, align 4, !tbaa !225
  %2760 = fadd float 5.000000e-01, %2759
  %2761 = call noundef float @_ZL7ImFloorf(float noundef %2760)
  %2762 = load ptr, ptr %9, align 8, !tbaa !5
  %2763 = getelementptr inbounds %struct.ImGuiWindow, ptr %2762, i32 0, i32 50
  %2764 = getelementptr inbounds %struct.ImRect, ptr %2763, i32 0, i32 1
  %2765 = getelementptr inbounds %struct.ImVec2, ptr %2764, i32 0, i32 1
  store float %2761, ptr %2765, align 4, !tbaa !229
  %2766 = load ptr, ptr %9, align 8, !tbaa !5
  %2767 = getelementptr inbounds %struct.ImGuiWindow, ptr %2766, i32 0, i32 12
  %2768 = load i32, ptr %2767, align 8, !tbaa !230
  %2769 = load ptr, ptr %9, align 8, !tbaa !5
  %2770 = getelementptr inbounds %struct.ImGuiWindow, ptr %2769, i32 0, i32 45
  %2771 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2770, i32 0, i32 11
  store i32 %2768, ptr %2771, align 4, !tbaa !231
  %2772 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 0
  %2773 = getelementptr inbounds %struct.ImRect, ptr %71, i32 0, i32 1
  %2774 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %2772, ptr noundef nonnull align 4 dereferenceable(8) %2773, i1 noundef zeroext false)
  %2775 = zext i1 %2774 to i64
  %2776 = select i1 %2774, i32 1, i32 0
  %2777 = load ptr, ptr %9, align 8, !tbaa !5
  %2778 = getelementptr inbounds %struct.ImGuiWindow, ptr %2777, i32 0, i32 45
  %2779 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2778, i32 0, i32 12
  store i32 %2776, ptr %2779, align 8, !tbaa !232
  %2780 = load ptr, ptr %9, align 8, !tbaa !5
  %2781 = getelementptr inbounds %struct.ImGuiWindow, ptr %2780, i32 0, i32 45
  %2782 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2781, i32 0, i32 13
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %2782, ptr align 4 %71, i64 16, i1 false), !tbaa.struct !98
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #13
  br label %2783

2783:                                             ; preds = %2647, %534
  %2784 = load ptr, ptr %9, align 8, !tbaa !5
  %2785 = getelementptr inbounds %struct.ImGuiWindow, ptr %2784, i32 0, i32 50
  %2786 = getelementptr inbounds %struct.ImRect, ptr %2785, i32 0, i32 0
  %2787 = load ptr, ptr %9, align 8, !tbaa !5
  %2788 = getelementptr inbounds %struct.ImGuiWindow, ptr %2787, i32 0, i32 50
  %2789 = getelementptr inbounds %struct.ImRect, ptr %2788, i32 0, i32 1
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %2786, ptr noundef nonnull align 4 dereferenceable(8) %2789, i1 noundef zeroext true)
  %2790 = load i8, ptr %14, align 1, !tbaa !60, !range !56, !noundef !57
  %2791 = trunc i8 %2790 to i1
  br i1 %2791, label %2792, label %2795

2792:                                             ; preds = %2783
  %2793 = load ptr, ptr %9, align 8, !tbaa !5
  %2794 = getelementptr inbounds %struct.ImGuiWindow, ptr %2793, i32 0, i32 22
  store i8 0, ptr %2794, align 4, !tbaa !233
  br label %2795

2795:                                             ; preds = %2792, %2783
  %2796 = load ptr, ptr %9, align 8, !tbaa !5
  %2797 = getelementptr inbounds %struct.ImGuiWindow, ptr %2796, i32 0, i32 29
  %2798 = load i32, ptr %2797, align 4, !tbaa !97
  %2799 = add nsw i32 %2798, 1
  store i32 %2799, ptr %2797, align 4, !tbaa !97
  %2800 = load ptr, ptr %7, align 8, !tbaa !5
  %2801 = getelementptr inbounds %struct.ImGuiContext, ptr %2800, i32 0, i32 55
  call void @_ZN19ImGuiNextWindowData5ClearEv(ptr noundef nonnull align 8 dereferenceable(108) %2801)
  %2802 = load i32, ptr %6, align 4, !tbaa !9
  %2803 = and i32 %2802, 16777216
  %2804 = icmp ne i32 %2803, 0
  br i1 %2804, label %2805, label %2871

2805:                                             ; preds = %2795
  %2806 = load i32, ptr %6, align 4, !tbaa !9
  %2807 = and i32 %2806, 1
  %2808 = icmp ne i32 %2807, 0
  br i1 %2808, label %2809, label %2810

2809:                                             ; preds = %2805
  br label %2812

2810:                                             ; preds = %2805
  call void @__assert_fail(ptr noundef @.str.69, ptr noundef @.str.3, i32 noundef 5147, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #14
  unreachable

2811:                                             ; No predecessors!
  br label %2812

2812:                                             ; preds = %2811, %2809
  %2813 = load i32, ptr %6, align 4, !tbaa !9
  %2814 = and i32 %2813, 64
  %2815 = icmp ne i32 %2814, 0
  br i1 %2815, label %2854, label %2816

2816:                                             ; preds = %2812
  %2817 = load ptr, ptr %9, align 8, !tbaa !5
  %2818 = getelementptr inbounds %struct.ImGuiWindow, ptr %2817, i32 0, i32 33
  %2819 = load i32, ptr %2818, align 4, !tbaa !122
  %2820 = icmp sle i32 %2819, 0
  br i1 %2820, label %2821, label %2854

2821:                                             ; preds = %2816
  %2822 = load ptr, ptr %9, align 8, !tbaa !5
  %2823 = getelementptr inbounds %struct.ImGuiWindow, ptr %2822, i32 0, i32 34
  %2824 = load i32, ptr %2823, align 8, !tbaa !123
  %2825 = icmp sle i32 %2824, 0
  br i1 %2825, label %2826, label %2854

2826:                                             ; preds = %2821
  %2827 = load ptr, ptr %9, align 8, !tbaa !5
  %2828 = getelementptr inbounds %struct.ImGuiWindow, ptr %2827, i32 0, i32 48
  %2829 = getelementptr inbounds %struct.ImRect, ptr %2828, i32 0, i32 0
  %2830 = getelementptr inbounds %struct.ImVec2, ptr %2829, i32 0, i32 0
  %2831 = load float, ptr %2830, align 8, !tbaa !234
  %2832 = load ptr, ptr %9, align 8, !tbaa !5
  %2833 = getelementptr inbounds %struct.ImGuiWindow, ptr %2832, i32 0, i32 48
  %2834 = getelementptr inbounds %struct.ImRect, ptr %2833, i32 0, i32 1
  %2835 = getelementptr inbounds %struct.ImVec2, ptr %2834, i32 0, i32 0
  %2836 = load float, ptr %2835, align 8, !tbaa !235
  %2837 = fcmp oge float %2831, %2836
  br i1 %2837, label %2850, label %2838

2838:                                             ; preds = %2826
  %2839 = load ptr, ptr %9, align 8, !tbaa !5
  %2840 = getelementptr inbounds %struct.ImGuiWindow, ptr %2839, i32 0, i32 48
  %2841 = getelementptr inbounds %struct.ImRect, ptr %2840, i32 0, i32 0
  %2842 = getelementptr inbounds %struct.ImVec2, ptr %2841, i32 0, i32 1
  %2843 = load float, ptr %2842, align 4, !tbaa !236
  %2844 = load ptr, ptr %9, align 8, !tbaa !5
  %2845 = getelementptr inbounds %struct.ImGuiWindow, ptr %2844, i32 0, i32 48
  %2846 = getelementptr inbounds %struct.ImRect, ptr %2845, i32 0, i32 1
  %2847 = getelementptr inbounds %struct.ImVec2, ptr %2846, i32 0, i32 1
  %2848 = load float, ptr %2847, align 4, !tbaa !237
  %2849 = fcmp oge float %2843, %2848
  br i1 %2849, label %2850, label %2853

2850:                                             ; preds = %2838, %2826
  %2851 = load ptr, ptr %9, align 8, !tbaa !5
  %2852 = getelementptr inbounds %struct.ImGuiWindow, ptr %2851, i32 0, i32 38
  store i32 1, ptr %2852, align 8, !tbaa !99
  br label %2853

2853:                                             ; preds = %2850, %2838
  br label %2854

2854:                                             ; preds = %2853, %2821, %2816, %2812
  %2855 = load ptr, ptr %16, align 8, !tbaa !5
  %2856 = icmp ne ptr %2855, null
  br i1 %2856, label %2857, label %2870

2857:                                             ; preds = %2854
  %2858 = load ptr, ptr %16, align 8, !tbaa !5
  %2859 = getelementptr inbounds %struct.ImGuiWindow, ptr %2858, i32 0, i32 23
  %2860 = load i8, ptr %2859, align 1, !tbaa !119, !range !56, !noundef !57
  %2861 = trunc i8 %2860 to i1
  br i1 %2861, label %2867, label %2862

2862:                                             ; preds = %2857
  %2863 = load ptr, ptr %16, align 8, !tbaa !5
  %2864 = getelementptr inbounds %struct.ImGuiWindow, ptr %2863, i32 0, i32 27
  %2865 = load i8, ptr %2864, align 1, !tbaa !238, !range !56, !noundef !57
  %2866 = trunc i8 %2865 to i1
  br i1 %2866, label %2867, label %2870

2867:                                             ; preds = %2862, %2857
  %2868 = load ptr, ptr %9, align 8, !tbaa !5
  %2869 = getelementptr inbounds %struct.ImGuiWindow, ptr %2868, i32 0, i32 38
  store i32 1, ptr %2869, align 8, !tbaa !99
  br label %2870

2870:                                             ; preds = %2867, %2862, %2854
  br label %2871

2871:                                             ; preds = %2870, %2795
  %2872 = load ptr, ptr %8, align 8, !tbaa !5
  %2873 = getelementptr inbounds %struct.ImGuiStyle, ptr %2872, i32 0, i32 0
  %2874 = load float, ptr %2873, align 4, !tbaa !239
  %2875 = fcmp ole float %2874, 0.000000e+00
  br i1 %2875, label %2876, label %2879

2876:                                             ; preds = %2871
  %2877 = load ptr, ptr %9, align 8, !tbaa !5
  %2878 = getelementptr inbounds %struct.ImGuiWindow, ptr %2877, i32 0, i32 38
  store i32 1, ptr %2878, align 8, !tbaa !99
  br label %2879

2879:                                             ; preds = %2876, %2871
  %2880 = load ptr, ptr %9, align 8, !tbaa !5
  %2881 = getelementptr inbounds %struct.ImGuiWindow, ptr %2880, i32 0, i32 38
  %2882 = load i32, ptr %2881, align 8, !tbaa !99
  %2883 = icmp sgt i32 %2882, 0
  br i1 %2883, label %2889, label %2884

2884:                                             ; preds = %2879
  %2885 = load ptr, ptr %9, align 8, !tbaa !5
  %2886 = getelementptr inbounds %struct.ImGuiWindow, ptr %2885, i32 0, i32 39
  %2887 = load i32, ptr %2886, align 4, !tbaa !76
  %2888 = icmp ne i32 %2887, 0
  br label %2889

2889:                                             ; preds = %2884, %2879
  %2890 = phi i1 [ true, %2879 ], [ %2888, %2884 ]
  %2891 = load ptr, ptr %9, align 8, !tbaa !5
  %2892 = getelementptr inbounds %struct.ImGuiWindow, ptr %2891, i32 0, i32 27
  %2893 = zext i1 %2890 to i8
  store i8 %2893, ptr %2892, align 1, !tbaa !238
  %2894 = load ptr, ptr %9, align 8, !tbaa !5
  %2895 = getelementptr inbounds %struct.ImGuiWindow, ptr %2894, i32 0, i32 23
  %2896 = load i8, ptr %2895, align 1, !tbaa !119, !range !56, !noundef !57
  %2897 = trunc i8 %2896 to i1
  br i1 %2897, label %2908, label %2898

2898:                                             ; preds = %2889
  %2899 = load ptr, ptr %9, align 8, !tbaa !5
  %2900 = getelementptr inbounds %struct.ImGuiWindow, ptr %2899, i32 0, i32 20
  %2901 = load i8, ptr %2900, align 2, !tbaa !93, !range !56, !noundef !57
  %2902 = trunc i8 %2901 to i1
  br i1 %2902, label %2903, label %2908

2903:                                             ; preds = %2898
  %2904 = load ptr, ptr %9, align 8, !tbaa !5
  %2905 = getelementptr inbounds %struct.ImGuiWindow, ptr %2904, i32 0, i32 27
  %2906 = load i8, ptr %2905, align 1, !tbaa !238, !range !56, !noundef !57
  %2907 = trunc i8 %2906 to i1
  br i1 %2907, label %2908, label %2923

2908:                                             ; preds = %2903, %2898, %2889
  %2909 = load ptr, ptr %9, align 8, !tbaa !5
  %2910 = getelementptr inbounds %struct.ImGuiWindow, ptr %2909, i32 0, i32 33
  %2911 = load i32, ptr %2910, align 4, !tbaa !122
  %2912 = icmp sle i32 %2911, 0
  br i1 %2912, label %2913, label %2923

2913:                                             ; preds = %2908
  %2914 = load ptr, ptr %9, align 8, !tbaa !5
  %2915 = getelementptr inbounds %struct.ImGuiWindow, ptr %2914, i32 0, i32 34
  %2916 = load i32, ptr %2915, align 8, !tbaa !123
  %2917 = icmp sle i32 %2916, 0
  br i1 %2917, label %2918, label %2923

2918:                                             ; preds = %2913
  %2919 = load ptr, ptr %9, align 8, !tbaa !5
  %2920 = getelementptr inbounds %struct.ImGuiWindow, ptr %2919, i32 0, i32 39
  %2921 = load i32, ptr %2920, align 4, !tbaa !76
  %2922 = icmp sle i32 %2921, 0
  br label %2923

2923:                                             ; preds = %2918, %2913, %2908, %2903
  %2924 = phi i1 [ false, %2913 ], [ false, %2908 ], [ false, %2903 ], [ %2922, %2918 ]
  %2925 = load ptr, ptr %9, align 8, !tbaa !5
  %2926 = getelementptr inbounds %struct.ImGuiWindow, ptr %2925, i32 0, i32 25
  %2927 = zext i1 %2924 to i8
  store i8 %2927, ptr %2926, align 1, !tbaa !240
  %2928 = load ptr, ptr %9, align 8, !tbaa !5
  %2929 = getelementptr inbounds %struct.ImGuiWindow, ptr %2928, i32 0, i32 25
  %2930 = load i8, ptr %2929, align 1, !tbaa !240, !range !56, !noundef !57
  %2931 = trunc i8 %2930 to i1
  %2932 = xor i1 %2931, true
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #13
  ret i1 %2932
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) #9

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui16FindWindowByNameEPKc(ptr noundef) #8

; Function Attrs: mustprogress uwtable
declare hidden <2 x float> @_ZL16CalcSizeContentsP11ImGuiWindow(ptr noundef) #9

; Function Attrs: mustprogress uwtable
declare hidden <2 x float> @_ZL23CalcSizeAfterConstraintP11ImGuiWindow6ImVec2(ptr noundef, <2 x float>) #9

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui30UpdateWindowParentAndRootLinksEP11ImGuiWindowiS1_(ptr noundef, i32 noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL15CreateNewWindowPKc6ImVec2i(ptr noundef, <2 x float>, i32 noundef) #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK8ImVectorIP11ImGuiWindowE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16)) #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef, i32 noundef, i1 noundef zeroext) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) #11 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef) #8

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL15CheckStacksSizeP11ImGuiWindowb(ptr noundef, i1 noundef zeroext) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI13ImGuiPopupRefE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(48)) #11 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL13SetWindowSizeP11ImGuiWindowRK6ImVec2i(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #8

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984)) #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984)) #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL18SetWindowCollapsedP11ImGuiWindowbi(ptr noundef, i1 noundef zeroext, i32 noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIjE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #11 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(984)) #8 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef) #9

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

; Function Attrs: mustprogress uwtable
declare hidden <2 x float> @_ZL38CalcNextScrollFromScrollTargetAndClampP11ImGuiWindowb(ptr noundef, i1 noundef zeroext) #9

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL18UpdateManualResizeEP11ImGuiWindowRK6ImVec2PiiPj(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, i32 noundef, ptr noundef) #9

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZL15GetViewportRectv() #8

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984)) #8 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL28GetWindowBgColorIdxFromFlagsi(i32 noundef) #1

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow11MenuBarRectEv(ptr noundef nonnull align 8 dereferenceable(984)) #8 align 2

declare void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef) #10

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16)) #9 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local <2 x float> @_ZNK6ImRect5GetBREv(ptr noundef nonnull align 4 dereferenceable(16)) #12 align 2

declare void @_ZN5ImGui9ScrollbarEi(i32 noundef) #10

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

declare void @_ZN10ImDrawList13PathArcToFastERK6ImVec2fii(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 4 dereferenceable(8), float noundef, i32 noundef, i32 noundef) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImDrawList14PathFillConvexEj(ptr noundef nonnull align 8 dereferenceable(168), i32 noundef) #11 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui13GetScrollMaxYEv() #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIiE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #11 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIfE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #11 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI14ImGuiGroupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #11 align 2

declare void @_ZN16ImGuiMenuColumns6UpdateEifb(ptr noundef nonnull align 4 dereferenceable(48), i32 noundef, float noundef, i1 noundef zeroext) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #11 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13NavInitWindowEP11ImGuiWindowb(ptr noundef, i1 noundef zeroext) #8

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect5GetTREv(ptr noundef nonnull align 4 dereferenceable(16)) #9 align 2

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { 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 #8 = { 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 = { 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 #10 = { "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 #11 = { 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 #12 = { mustprogress nounwind 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 #13 = { nounwind }
attributes #14 = { 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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !13, i64 1}
!12 = !{!"_ZTS12ImGuiContext", !13, i64 0, !13, i64 1, !13, i64 2, !14, i64 8, !17, i64 5440, !6, i64 6280, !16, i64 6288, !16, i64 6292, !18, i64 6296, !20, i64 6432, !10, i64 6440, !10, i64 6444, !10, i64 6448, !21, i64 6456, !21, i64 6472, !21, i64 6488, !21, i64 6504, !22, i64 6520, !10, i64 6536, !6, i64 6544, !6, i64 6552, !6, i64 6560, !10, i64 6568, !13, i64 6572, !10, i64 6576, !16, i64 6580, !16, i64 6584, !10, i64 6588, !10, i64 6592, !10, i64 6596, !16, i64 6600, !13, i64 6604, !13, i64 6605, !13, i64 6606, !13, i64 6607, !13, i64 6608, !10, i64 6612, !15, i64 6616, !6, i64 6624, !6, i64 6632, !24, i64 6640, !10, i64 6644, !16, i64 6648, !6, i64 6656, !25, i64 6664, !26, i64 6680, !27, i64 6696, !28, i64 6712, !28, i64 6728, !29, i64 6744, !13, i64 6856, !10, i64 6860, !6, i64 6864, !10, i64 6872, !10, i64 6876, !10, i64 6880, !10, i64 6884, !10, i64 6888, !10, i64 6892, !10, i64 6896, !10, i64 6900, !24, i64 6904, !30, i64 6908, !10, i64 6924, !6, i64 6928, !6, i64 6936, !6, i64 6944, !16, i64 6952, !16, i64 6956, !13, i64 6960, !10, i64 6964, !10, i64 6968, !13, i64 6972, !13, i64 6973, !13, i64 6974, !13, i64 6975, !13, i64 6976, !13, i64 6977, !13, i64 6978, !10, i64 6980, !30, i64 6984, !13, i64 7000, !13, i64 7001, !10, i64 7004, !31, i64 7008, !10, i64 7012, !10, i64 7016, !10, i64 7020, !32, i64 7024, !32, i64 7072, !32, i64 7120, !33, i64 7168, !34, i64 7216, !16, i64 7248, !35, i64 7256, !10, i64 7424, !13, i64 7428, !13, i64 7429, !10, i64 7432, !10, i64 7436, !10, i64 7440, !43, i64 7448, !30, i64 7512, !10, i64 7528, !10, i64 7532, !16, i64 7536, !10, i64 7540, !10, i64 7544, !10, i64 7548, !44, i64 7552, !7, i64 7568, !45, i64 7576, !50, i64 11296, !10, i64 11408, !10, i64 11412, !19, i64 11416, !13, i64 11432, !16, i64 11436, !16, i64 11440, !15, i64 11444, !10, i64 11452, !46, i64 11456, !15, i64 11472, !15, i64 11480, !13, i64 11488, !16, i64 11492, !53, i64 11496, !54, i64 11512, !55, i64 11528, !13, i64 11544, !6, i64 11552, !53, i64 11560, !10, i64 11576, !10, i64 11580, !7, i64 11584, !10, i64 12064, !16, i64 12068, !10, i64 12072, !10, i64 12076, !10, i64 12080, !7, i64 12084}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTS7ImGuiIO", !10, i64 0, !10, i64 4, !15, i64 8, !16, i64 16, !16, i64 20, !6, i64 24, !6, i64 32, !16, i64 40, !16, i64 44, !16, i64 48, !7, i64 52, !16, i64 136, !16, i64 140, !6, i64 144, !6, i64 152, !16, i64 160, !13, i64 164, !6, i64 168, !15, i64 176, !15, i64 184, !15, i64 192, !13, i64 200, !13, i64 201, !13, i64 202, !13, i64 203, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !15, i64 256, !7, i64 264, !16, i64 272, !16, i64 276, !13, i64 280, !13, i64 281, !13, i64 282, !13, i64 283, !7, i64 284, !7, i64 796, !7, i64 832, !13, i64 916, !13, i64 917, !13, i64 918, !13, i64 919, !13, i64 920, !13, i64 921, !13, i64 922, !16, i64 924, !10, i64 928, !10, i64 932, !10, i64 936, !10, i64 940, !10, i64 944, !15, i64 948, !15, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1088, !7, i64 1108, !7, i64 1148, !7, i64 1168, !7, i64 3216, !7, i64 5264, !7, i64 5348}
!15 = !{!"_ZTS6ImVec2", !16, i64 0, !16, i64 4}
!16 = !{!"float", !7, i64 0}
!17 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !15, i64 4, !16, i64 12, !16, i64 16, !15, i64 20, !15, i64 28, !16, i64 36, !16, i64 40, !16, i64 44, !16, i64 48, !15, i64 52, !16, i64 60, !16, i64 64, !15, i64 68, !15, i64 76, !15, i64 84, !16, i64 92, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !15, i64 116, !15, i64 124, !15, i64 132, !16, i64 140, !13, i64 144, !13, i64 145, !16, i64 148, !7, i64 152}
!18 = !{!"_ZTS20ImDrawListSharedData", !15, i64 0, !6, i64 8, !16, i64 16, !16, i64 20, !19, i64 24, !7, i64 40}
!19 = !{!"_ZTS6ImVec4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12}
!20 = !{!"double", !7, i64 0}
!21 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !6, i64 8}
!22 = !{!"_ZTS12ImGuiStorage", !23, i64 0}
!23 = !{!"_ZTS8ImVectorIN12ImGuiStorage4PairEE", !10, i64 0, !10, i64 4, !6, i64 8}
!24 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!25 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!26 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorI13ImGuiPopupRefE", !10, i64 0, !10, i64 4, !6, i64 8}
!29 = !{!"_ZTS19ImGuiNextWindowData", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !15, i64 28, !15, i64 36, !15, i64 44, !15, i64 52, !13, i64 60, !30, i64 64, !6, i64 80, !6, i64 88, !16, i64 96, !15, i64 100}
!30 = !{!"_ZTS6ImRect", !15, i64 0, !15, i64 8}
!31 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!32 = !{!"_ZTS18ImGuiNavMoveResult", !10, i64 0, !6, i64 8, !16, i64 16, !16, i64 20, !16, i64 24, !30, i64 28}
!33 = !{!"_ZTS10ImDrawData", !13, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !15, i64 28, !15, i64 36}
!34 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0}
!35 = !{!"_ZTS10ImDrawList", !36, i64 0, !37, i64 16, !38, i64 32, !10, i64 48, !6, i64 56, !6, i64 64, !10, i64 72, !6, i64 80, !6, i64 88, !39, i64 96, !40, i64 112, !41, i64 128, !10, i64 144, !10, i64 148, !42, i64 152}
!36 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !6, i64 8}
!40 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !6, i64 8}
!41 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !6, i64 8}
!42 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !6, i64 8}
!43 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !7, i64 24, !13, i64 57, !13, i64 58}
!44 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!45 = !{!"_ZTS19ImGuiInputTextState", !10, i64 0, !37, i64 8, !46, i64 24, !46, i64 40, !10, i64 56, !10, i64 60, !10, i64 64, !16, i64 68, !47, i64 72, !16, i64 3692, !13, i64 3696, !13, i64 3697, !10, i64 3700, !6, i64 3704, !6, i64 3712}
!46 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!47 = !{!"_ZTSN8ImGuiStb17STB_TexteditStateE", !10, i64 0, !10, i64 4, !10, i64 8, !7, i64 12, !7, i64 13, !7, i64 14, !7, i64 15, !7, i64 16, !7, i64 17, !7, i64 18, !7, i64 19, !16, i64 20, !48, i64 24}
!48 = !{!"_ZTSN8ImGuiStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !49, i64 3582, !49, i64 3584, !10, i64 3588, !10, i64 3592}
!49 = !{!"short", !7, i64 0}
!50 = !{!"_ZTS6ImFont", !16, i64 0, !16, i64 4, !15, i64 8, !51, i64 16, !52, i64 32, !37, i64 48, !6, i64 64, !16, i64 72, !49, i64 76, !49, i64 78, !6, i64 80, !6, i64 88, !16, i64 96, !16, i64 100, !13, i64 104, !10, i64 108}
!51 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!52 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !6, i64 8}
!53 = !{!"_ZTS15ImGuiTextBuffer", !46, i64 0}
!54 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!55 = !{!"_ZTS8ImVectorI19ImGuiWindowSettingsE", !10, i64 0, !10, i64 4, !6, i64 8}
!56 = !{i8 0, i8 2}
!57 = !{}
!58 = !{!12, !10, i64 6444}
!59 = !{!12, !10, i64 6440}
!60 = !{!13, !13, i64 0}
!61 = !{!12, !10, i64 6748}
!62 = !{i64 0, i64 4, !63, i64 4, i64 4, !63}
!63 = !{!16, !16, i64 0}
!64 = !{!65, !10, i64 608}
!65 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !10, i64 8, !10, i64 12, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !15, i64 48, !15, i64 56, !15, i64 64, !16, i64 72, !16, i64 76, !10, i64 80, !10, i64 84, !15, i64 88, !15, i64 96, !15, i64 104, !15, i64 112, !13, i64 120, !13, i64 121, !13, i64 122, !13, i64 123, !13, i64 124, !13, i64 125, !13, i64 126, !13, i64 127, !13, i64 128, !13, i64 129, !13, i64 130, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !13, i64 156, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !15, i64 188, !15, i64 196, !66, i64 208, !70, i64 512, !30, i64 528, !30, i64 544, !30, i64 560, !30, i64 576, !30, i64 592, !10, i64 608, !16, i64 612, !71, i64 616, !22, i64 664, !72, i64 680, !16, i64 696, !10, i64 700, !6, i64 704, !35, i64 712, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !7, i64 920, !7, i64 928, !10, i64 960, !10, i64 964, !10, i64 968, !10, i64 972, !10, i64 976, !10, i64 980}
!66 = !{!"_ZTS19ImGuiWindowTempData", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !16, i64 40, !15, i64 44, !16, i64 52, !16, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !30, i64 76, !30, i64 92, !13, i64 108, !13, i64 109, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !13, i64 128, !15, i64 132, !21, i64 144, !6, i64 160, !10, i64 168, !10, i64 172, !10, i64 176, !16, i64 180, !16, i64 184, !67, i64 192, !52, i64 208, !52, i64 224, !68, i64 240, !7, i64 256, !69, i64 280, !69, i64 284, !69, i64 288, !6, i64 296}
!67 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!69 = !{!"_ZTS6ImVec1", !16, i64 0}
!70 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !6, i64 8}
!71 = !{!"_ZTS16ImGuiMenuColumns", !10, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !7, i64 16, !7, i64 32}
!72 = !{!"_ZTS8ImVectorI15ImGuiColumnsSetE", !10, i64 0, !10, i64 4, !6, i64 8}
!73 = !{!65, !10, i64 12}
!74 = !{!65, !6, i64 880}
!75 = !{!65, !13, i64 130}
!76 = !{!65, !10, i64 172}
!77 = !{!12, !10, i64 6728}
!78 = !{!65, !10, i64 144}
!79 = !{!80, !10, i64 0}
!80 = !{!"_ZTS13ImGuiPopupRef", !10, i64 0, !6, i64 8, !6, i64 16, !10, i64 24, !10, i64 28, !15, i64 32, !15, i64 40}
!81 = !{!80, !6, i64 8}
!82 = !{!65, !13, i64 128}
!83 = !{!12, !10, i64 6744}
!84 = !{!65, !10, i64 176}
!85 = !{!65, !10, i64 180}
!86 = !{!12, !16, i64 6788}
!87 = !{!12, !16, i64 6792}
!88 = !{!12, !10, i64 6752}
!89 = !{!65, !16, i64 60}
!90 = !{!12, !10, i64 6756}
!91 = !{!12, !13, i64 6804}
!92 = !{!12, !10, i64 6764}
!93 = !{!65, !13, i64 122}
!94 = !{!65, !10, i64 136}
!95 = !{!12, !10, i64 6536}
!96 = !{!65, !10, i64 140}
!97 = !{!65, !10, i64 132}
!98 = !{i64 0, i64 4, !63, i64 4, i64 4, !63, i64 8, i64 4, !63, i64 12, i64 4, !63}
!99 = !{!65, !10, i64 168}
!100 = !{!65, !16, i64 32}
!101 = !{!65, !16, i64 24}
!102 = !{!65, !16, i64 36}
!103 = !{!65, !16, i64 28}
!104 = !{!17, !16, i64 40}
!105 = !{!17, !16, i64 48}
!106 = !{!17, !16, i64 16}
!107 = !{!65, !16, i64 76}
!108 = !{!17, !16, i64 8}
!109 = !{!65, !16, i64 64}
!110 = !{!17, !16, i64 68}
!111 = !{!12, !16, i64 6844}
!112 = !{!65, !16, i64 340}
!113 = !{!12, !16, i64 6848}
!114 = !{!65, !16, i64 344}
!115 = !{!12, !6, i64 6552}
!116 = !{!12, !10, i64 6568}
!117 = !{!12, !10, i64 6576}
!118 = !{!65, !13, i64 126}
!119 = !{!65, !13, i64 125}
!120 = !{!15, !16, i64 0}
!121 = !{!15, !16, i64 4}
!122 = !{!65, !10, i64 148}
!123 = !{!65, !10, i64 152}
!124 = !{!65, !13, i64 156}
!125 = !{!65, !16, i64 40}
!126 = !{!65, !16, i64 44}
!127 = !{!65, !16, i64 52}
!128 = !{!65, !13, i64 121}
!129 = !{!65, !16, i64 48}
!130 = !{!17, !16, i64 100}
!131 = !{!65, !13, i64 120}
!132 = !{!65, !10, i64 164}
!133 = !{!65, !10, i64 352}
!134 = !{!65, !16, i64 188}
!135 = !{!12, !16, i64 16}
!136 = !{!12, !16, i64 20}
!137 = !{!17, !16, i64 36}
!138 = !{!17, !16, i64 44}
!139 = !{!17, !16, i64 12}
!140 = !{!65, !16, i64 72}
!141 = !{!65, !10, i64 976}
!142 = !{!65, !10, i64 960}
!143 = !{!65, !10, i64 968}
!144 = !{!65, !10, i64 980}
!145 = !{!65, !10, i64 964}
!146 = !{!65, !10, i64 972}
!147 = !{!12, !13, i64 211}
!148 = !{!12, !16, i64 6288}
!149 = !{!65, !16, i64 612}
!150 = !{!65, !6, i64 704}
!151 = !{!12, !13, i64 5584}
!152 = !{!12, !13, i64 5585}
!153 = !{!35, !10, i64 48}
!154 = !{!12, !6, i64 6280}
!155 = !{!50, !6, i64 88}
!156 = !{!157, !6, i64 8}
!157 = !{!"_ZTS11ImFontAtlas", !13, i64 0, !10, i64 4, !6, i64 8, !10, i64 16, !10, i64 20, !6, i64 24, !6, i64 32, !10, i64 40, !10, i64 44, !15, i64 48, !15, i64 56, !27, i64 64, !158, i64 80, !159, i64 96, !7, i64 112}
!158 = !{!"_ZTS8ImVectorIN11ImFontAtlas10CustomRectEE", !10, i64 0, !10, i64 4, !6, i64 8}
!159 = !{!"_ZTS8ImVectorI12ImFontConfigE", !10, i64 0, !10, i64 4, !6, i64 8}
!160 = !{!12, !6, i64 6936}
!161 = !{!65, !6, i64 888}
!162 = !{!12, !16, i64 7248}
!163 = !{!12, !16, i64 6956}
!164 = !{!12, !16, i64 5452}
!165 = !{!12, !6, i64 6928}
!166 = !{!12, !6, i64 6864}
!167 = !{!65, !6, i64 896}
!168 = !{!17, !16, i64 64}
!169 = !{!12, !16, i64 5504}
!170 = !{!12, !13, i64 6974}
!171 = !{!12, !10, i64 6768}
!172 = !{!12, !16, i64 6840}
!173 = !{!30, !16, i64 12}
!174 = !{!65, !16, i64 20}
!175 = !{!176, !16, i64 8}
!176 = !{!"_ZTS18ImGuiResizeGripDef", !15, i64 0, !15, i64 8, !10, i64 16, !10, i64 20}
!177 = !{!176, !16, i64 12}
!178 = !{!176, !10, i64 16}
!179 = !{!176, !10, i64 20}
!180 = distinct !{!180, !181}
!181 = !{!"llvm.loop.mustprogress"}
!182 = !{!65, !16, i64 16}
!183 = !{!65, !16, i64 88}
!184 = !{!65, !16, i64 592}
!185 = !{!65, !16, i64 92}
!186 = !{!65, !16, i64 68}
!187 = !{!65, !16, i64 596}
!188 = !{!65, !16, i64 56}
!189 = !{!65, !16, i64 112}
!190 = !{!65, !16, i64 600}
!191 = !{!65, !16, i64 116}
!192 = !{!65, !16, i64 604}
!193 = !{!65, !16, i64 488}
!194 = !{!65, !16, i64 492}
!195 = !{!65, !16, i64 496}
!196 = !{!65, !16, i64 260}
!197 = !{!65, !16, i64 248}
!198 = !{!65, !13, i64 316}
!199 = !{!65, !13, i64 317}
!200 = !{!65, !10, i64 332}
!201 = !{!65, !10, i64 328}
!202 = !{!65, !13, i64 336}
!203 = !{!65, !16, i64 212}
!204 = !{!65, !16, i64 264}
!205 = !{!65, !10, i64 376}
!206 = !{!65, !10, i64 380}
!207 = !{!65, !10, i64 384}
!208 = !{!65, !16, i64 388}
!209 = !{!65, !16, i64 392}
!210 = !{!65, !6, i64 504}
!211 = !{!65, !10, i64 268}
!212 = !{!65, !10, i64 272}
!213 = !{!65, !6, i64 368}
!214 = !{!65, !10, i64 320}
!215 = !{!65, !10, i64 324}
!216 = !{!17, !16, i64 56}
!217 = !{!17, !16, i64 52}
!218 = !{!17, !16, i64 76}
!219 = !{!17, !16, i64 28}
!220 = !{!30, !16, i64 0}
!221 = !{!30, !16, i64 8}
!222 = !{!65, !16, i64 560}
!223 = !{!65, !16, i64 564}
!224 = !{!65, !16, i64 568}
!225 = !{!65, !16, i64 572}
!226 = !{!65, !16, i64 576}
!227 = !{!65, !16, i64 580}
!228 = !{!65, !16, i64 584}
!229 = !{!65, !16, i64 588}
!230 = !{!65, !10, i64 80}
!231 = !{!65, !10, i64 276}
!232 = !{!65, !10, i64 280}
!233 = !{!65, !13, i64 124}
!234 = !{!65, !16, i64 544}
!235 = !{!65, !16, i64 552}
!236 = !{!65, !16, i64 548}
!237 = !{!65, !16, i64 556}
!238 = !{!65, !13, i64 129}
!239 = !{!17, !16, i64 0}
!240 = !{!65, !13, i64 127}


; 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.ImGuiResizeGripDef = type { %struct.ImVec2, %struct.ImVec2, i32, i32 }
%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImVec4 = type { float, float, float, float }

@GImGui = external dso_local local_unnamed_addr global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [85 x i8], align 1
@_ZL15resize_grip_def = external hidden global [4 x %struct.ImGuiResizeGripDef], align 16
@.str.62 = external hidden unnamed_addr constant [15 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi = external hidden unnamed_addr constant [58 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [43 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #1 align 2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #4

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef, float noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui17RenderTextClippedERK6ImVec2S2_PKcS4_PS1_S2_PK6ImRect(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #9

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImDrawList10PathLineToERK6ImVec2(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #11 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6ImRect8ContainsERKS_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #9 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #9

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL12SetWindowPosP11ImGuiWindowRK6ImVec2i(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #9

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

declare void @_ZN10ImDrawList5ClearEv(ptr noundef nonnull align 8 dereferenceable(168)) local_unnamed_addr #10

declare void @_ZN10ImDrawList13PushTextureIDEPv(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef) local_unnamed_addr #10

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui5BeginEPKcPbi(ptr noundef %0, ptr noundef writeonly %1, i32 noundef %2) local_unnamed_addr #9 {
  %4 = alloca ptr, align 8
  %5 = alloca %struct.ImVec2, align 8
  %6 = alloca %struct.ImVec2, align 8
  %7 = alloca %struct.ImRect, align 4
  %8 = alloca %struct.ImVec4, align 4
  %9 = alloca %struct.ImVec2, align 8
  %10 = alloca %struct.ImVec2, align 8
  %11 = alloca %struct.ImRect, align 8
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImVec2, align 4
  %14 = alloca %struct.ImRect, align 8
  %15 = alloca %struct.ImVec2, align 8
  %16 = alloca %struct.ImVec2, align 8
  %17 = alloca %struct.ImVec2, align 8
  %18 = alloca %struct.ImVec2, align 8
  %19 = alloca %struct.ImVec2, align 8
  %20 = alloca %struct.ImVec2, align 8
  %21 = alloca %struct.ImVec2, align 8
  %22 = alloca %struct.ImVec2, align 8
  %23 = alloca %struct.ImVec2, align 8
  %24 = alloca i32, align 4
  %25 = alloca [4 x i32], align 16
  %26 = alloca %struct.ImRect, align 8
  %27 = alloca %struct.ImRect, align 8
  %28 = alloca %struct.ImRect, align 8
  %29 = alloca %struct.ImVec2, align 8
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec2, align 8
  %32 = alloca %struct.ImRect, align 8
  %33 = alloca %struct.ImRect, align 8
  %34 = alloca %struct.ImVec2, align 8
  %35 = alloca %struct.ImVec2, align 8
  %36 = alloca %struct.ImVec2, align 8
  %37 = alloca %struct.ImVec2, align 8
  %38 = alloca %struct.ImVec2, align 8
  %39 = alloca %struct.ImVec2, align 8
  %40 = alloca %struct.ImVec2, align 4
  %41 = alloca %struct.ImVec2, align 8
  %42 = alloca %struct.ImVec2, align 8
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca %struct.ImVec2, align 8
  %46 = alloca %struct.ImRect, align 8
  %47 = alloca %struct.ImVec2, align 8
  %48 = alloca %struct.ImVec2, align 8
  %49 = alloca %struct.ImVec2, align 4
  %50 = alloca %struct.ImVec2, align 8
  %51 = alloca %struct.ImVec2, align 8
  %52 = alloca %struct.ImVec2, align 4
  %53 = alloca %struct.ImRect, align 8
  %54 = alloca %struct.ImVec2, align 4
  %55 = alloca %struct.ImVec2, align 8
  %56 = alloca %struct.ImVec2, align 8
  %57 = alloca %struct.ImVec2, align 8
  %58 = alloca %struct.ImRect, align 8
  %59 = alloca %struct.ImVec2, align 4
  %60 = alloca %struct.ImVec2, align 8
  %61 = alloca %struct.ImRect, align 4
  %62 = alloca %struct.ImRect, align 4
  %63 = load ptr, ptr @GImGui, align 8, !tbaa !5
  %64 = getelementptr inbounds i8, ptr %63, i64 5440
  %.not = icmp eq ptr %0, null
  br i1 %.not, label %65, label %66

65:                                               ; preds = %3
  tail call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 4583, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #13
  unreachable

66:                                               ; preds = %3
  %67 = getelementptr inbounds i8, ptr %63, i64 1
  %68 = load i8, ptr %67, align 1, !tbaa !9, !range !55, !noundef !56
  %69 = trunc nuw i8 %68 to i1
  br i1 %69, label %71, label %70

70:                                               ; preds = %66
  tail call void @__assert_fail(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.3, i32 noundef 4584, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #13
  unreachable

71:                                               ; preds = %66
  %72 = getelementptr inbounds i8, ptr %63, i64 6444
  %73 = load i32, ptr %72, align 4, !tbaa !57
  %74 = getelementptr inbounds i8, ptr %63, i64 6440
  %75 = load i32, ptr %74, align 8, !tbaa !58
  %.not370 = icmp eq i32 %73, %75
  br i1 %.not370, label %76, label %77

76:                                               ; preds = %71
  tail call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.3, i32 noundef 4585, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #13
  unreachable

77:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #14
  %78 = tail call noundef ptr @_ZN5ImGui16FindWindowByNameEPKc(ptr noundef nonnull %0)
  store ptr %78, ptr %4, align 8, !tbaa !5
  %79 = icmp ne ptr %78, null
  br i1 %79, label %90, label %80

80:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #14
  %81 = getelementptr inbounds i8, ptr %63, i64 6748
  %82 = load i32, ptr %81, align 4, !tbaa !59
  %.not371 = icmp eq i32 %82, 0
  br i1 %.not371, label %87, label %83

83:                                               ; preds = %80
  %84 = getelementptr inbounds i8, ptr %63, i64 6788
  %85 = load i64, ptr %84, align 4
  store i64 %85, ptr %5, align 8
  %86 = bitcast i64 %85 to <2 x float>
  br label %88

87:                                               ; preds = %80
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %5, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %.sroa.0139.0.copyload.pre = load <2 x float>, ptr %5, align 8
  br label %88

88:                                               ; preds = %87, %83
  %.sroa.0139.0.copyload = phi <2 x float> [ %.sroa.0139.0.copyload.pre, %87 ], [ %86, %83 ]
  %89 = call noundef ptr @_ZL15CreateNewWindowPKc6ImVec2i(ptr noundef nonnull %0, <2 x float> %.sroa.0139.0.copyload, i32 noundef %2)
  store ptr %89, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #14
  br label %90

90:                                               ; preds = %88, %77
  %91 = phi ptr [ %89, %88 ], [ %78, %77 ]
  %92 = and i32 %2, 786944
  %93 = icmp eq i32 %92, 786944
  %94 = or i32 %2, 6
  %spec.select = select i1 %93, i32 %94, i32 %2
  %95 = and i32 %spec.select, 25165824
  %or.cond = icmp eq i32 %95, 8388608
  br i1 %or.cond, label %96, label %97

96:                                               ; preds = %90
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.3, i32 noundef 4601, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #13
  unreachable

97:                                               ; preds = %90
  %98 = load i32, ptr %74, align 8, !tbaa !58
  %99 = getelementptr inbounds i8, ptr %91, i64 608
  %100 = load i32, ptr %99, align 8, !tbaa !60
  %.not374 = icmp eq i32 %100, %98
  %101 = getelementptr inbounds i8, ptr %91, i64 12
  br i1 %.not374, label %103, label %102

102:                                              ; preds = %97
  store i32 %spec.select, ptr %101, align 4, !tbaa !69
  br label %105

103:                                              ; preds = %97
  %104 = load i32, ptr %101, align 4, !tbaa !69
  br label %105

105:                                              ; preds = %103, %102
  %.1 = phi i32 [ %spec.select, %102 ], [ %104, %103 ]
  %106 = getelementptr inbounds i8, ptr %63, i64 6504
  %107 = call noundef zeroext i1 @_ZNK8ImVectorIP11ImGuiWindowE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %106)
  br i1 %107, label %111, label %108

108:                                              ; preds = %105
  %109 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8ImVectorIP11ImGuiWindowE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %106)
  %110 = load ptr, ptr %109, align 8, !tbaa !5
  br label %111

111:                                              ; preds = %105, %108
  %112 = phi ptr [ %110, %108 ], [ null, %105 ]
  br i1 %.not374, label %116, label %113

113:                                              ; preds = %111
  %114 = and i32 %.1, 83886080
  %.not375 = icmp eq i32 %114, 0
  %115 = select i1 %.not375, ptr null, ptr %112
  br label %120

116:                                              ; preds = %111
  %117 = load ptr, ptr %4, align 8, !tbaa !5
  %118 = getelementptr inbounds i8, ptr %117, i64 880
  %119 = load ptr, ptr %118, align 8, !tbaa !70
  br label %120

120:                                              ; preds = %116, %113
  %121 = phi ptr [ %115, %113 ], [ %119, %116 ]
  %122 = icmp eq ptr %121, null
  %123 = and i32 %.1, 16777216
  %124 = icmp ne i32 %123, 0
  %.not377 = select i1 %122, i1 %124, i1 false
  br i1 %.not377, label %125, label %126

125:                                              ; preds = %120
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.3, i32 noundef 4613, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #13
  unreachable

126:                                              ; preds = %120
  %127 = icmp ne ptr %1, null
  %128 = load ptr, ptr %4, align 8, !tbaa !5
  %129 = getelementptr inbounds i8, ptr %128, i64 130
  %130 = zext i1 %127 to i8
  store i8 %130, ptr %129, align 2, !tbaa !71
  %131 = getelementptr inbounds i8, ptr %128, i64 608
  %132 = load i32, ptr %131, align 8, !tbaa !60
  %133 = add nsw i32 %98, -1
  %134 = icmp slt i32 %132, %133
  %135 = getelementptr inbounds i8, ptr %128, i64 172
  %136 = load i32, ptr %135, align 4, !tbaa !72
  %137 = icmp sgt i32 %136, 0
  %138 = and i32 %.1, 67108864
  %.not378 = icmp eq i32 %138, 0
  br i1 %.not378, label %154, label %139

139:                                              ; preds = %126
  %140 = getelementptr inbounds i8, ptr %63, i64 6712
  %141 = getelementptr inbounds i8, ptr %63, i64 6728
  %142 = load i32, ptr %141, align 8, !tbaa !73
  %143 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI13ImGuiPopupRefEixEi(ptr noundef nonnull align 8 dereferenceable(16) %140, i32 noundef %142)
  %144 = load ptr, ptr %4, align 8, !tbaa !5
  %145 = getelementptr inbounds i8, ptr %144, i64 144
  %146 = load i32, ptr %145, align 8, !tbaa !74
  %147 = load i32, ptr %143, align 8, !tbaa !75
  %148 = icmp ne i32 %146, %147
  %149 = getelementptr inbounds i8, ptr %143, i64 8
  %150 = load ptr, ptr %149, align 8, !tbaa !77
  %151 = icmp ne ptr %144, %150
  %152 = or i1 %148, %151
  %153 = or i1 %134, %152
  br label %154

154:                                              ; preds = %139, %126
  %155 = phi ptr [ %144, %139 ], [ %128, %126 ]
  %.0335.in = phi i1 [ %153, %139 ], [ %134, %126 ]
  %156 = select i1 %.0335.in, i1 true, i1 %137
  %157 = getelementptr inbounds i8, ptr %155, i64 128
  %158 = zext i1 %156 to i8
  store i8 %158, ptr %157, align 8, !tbaa !78
  br i1 %156, label %159, label %160

159:                                              ; preds = %154
  call void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef nonnull %155, i32 noundef 8, i1 noundef zeroext true)
  br label %160

160:                                              ; preds = %159, %154
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %106, ptr noundef nonnull align 8 dereferenceable(8) %4)
  %161 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef %161)
  %162 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZL15CheckStacksSizeP11ImGuiWindowb(ptr noundef %162, i1 noundef zeroext true)
  br i1 %.not378, label %173, label %163

163:                                              ; preds = %160
  %164 = getelementptr inbounds i8, ptr %63, i64 6712
  %165 = getelementptr inbounds i8, ptr %63, i64 6728
  %166 = load i32, ptr %165, align 8, !tbaa !73
  %167 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI13ImGuiPopupRefEixEi(ptr noundef nonnull align 8 dereferenceable(16) %164, i32 noundef %166)
  %168 = load ptr, ptr %4, align 8, !tbaa !5
  %169 = getelementptr inbounds i8, ptr %167, i64 8
  store ptr %168, ptr %169, align 8, !tbaa !77
  call void @_ZN8ImVectorI13ImGuiPopupRefE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %165, ptr noundef nonnull align 8 dereferenceable(48) %167)
  %170 = load i32, ptr %167, align 8, !tbaa !75
  %171 = load ptr, ptr %4, align 8, !tbaa !5
  %172 = getelementptr inbounds i8, ptr %171, i64 144
  store i32 %170, ptr %172, align 8, !tbaa !74
  br label %173

173:                                              ; preds = %163, %160
  %.not424 = xor i1 %137, true
  %brmerge = select i1 %.not424, i1 true, i1 %124
  br i1 %brmerge, label %177, label %174

174:                                              ; preds = %173
  %175 = load ptr, ptr %4, align 8, !tbaa !5
  %176 = getelementptr inbounds i8, ptr %175, i64 920
  store i32 0, ptr %176, align 8, !tbaa !79
  br label %177

177:                                              ; preds = %173, %174
  %178 = getelementptr inbounds i8, ptr %63, i64 6744
  %179 = load i32, ptr %178, align 8, !tbaa !80
  %.not379 = icmp eq i32 %179, 0
  br i1 %.not379, label %203, label %180

180:                                              ; preds = %177
  %181 = load ptr, ptr %4, align 8, !tbaa !5
  %182 = getelementptr inbounds i8, ptr %181, i64 176
  %183 = load i32, ptr %182, align 8, !tbaa !81
  %184 = and i32 %183, %179
  %185 = icmp ne i32 %184, 0
  br i1 %185, label %186, label %199

186:                                              ; preds = %180
  %187 = getelementptr inbounds i8, ptr %63, i64 6780
  %188 = call noundef float @_ZL11ImLengthSqrRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %187)
  %189 = fcmp ogt float %188, 0x3EE4F8B580000000
  %.pre = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %189, label %190, label %._crit_edge

._crit_edge:                                      ; preds = %186
  %.pre494 = load i32, ptr %178, align 8, !tbaa !80
  br label %199

190:                                              ; preds = %186
  %191 = getelementptr inbounds i8, ptr %63, i64 6772
  %192 = getelementptr inbounds i8, ptr %.pre, i64 188
  %193 = load i64, ptr %191, align 4
  store i64 %193, ptr %192, align 4
  %194 = getelementptr inbounds i8, ptr %.pre, i64 196
  %195 = load i64, ptr %187, align 4
  store i64 %195, ptr %194, align 4
  %196 = getelementptr inbounds i8, ptr %.pre, i64 176
  %197 = load i32, ptr %196, align 8, !tbaa !81
  %198 = and i32 %197, -15
  store i32 %198, ptr %196, align 8, !tbaa !81
  br label %203

199:                                              ; preds = %._crit_edge, %180
  %200 = phi i32 [ %.pre494, %._crit_edge ], [ %179, %180 ]
  %201 = phi ptr [ %.pre, %._crit_edge ], [ %181, %180 ]
  %202 = getelementptr inbounds i8, ptr %63, i64 6772
  call void @_ZL12SetWindowPosP11ImGuiWindowRK6ImVec2i(ptr noundef %201, ptr noundef nonnull align 4 dereferenceable(8) %202, i32 noundef %200)
  br label %203

203:                                              ; preds = %190, %199, %177
  %.0337.shrunk = phi i1 [ true, %190 ], [ %185, %199 ], [ false, %177 ]
  %204 = getelementptr inbounds i8, ptr %63, i64 6748
  %205 = load i32, ptr %204, align 4, !tbaa !59
  %.not380 = icmp eq i32 %205, 0
  br i1 %.not380, label %221, label %206

206:                                              ; preds = %203
  %207 = load ptr, ptr %4, align 8, !tbaa !5
  %208 = getelementptr inbounds i8, ptr %207, i64 180
  %209 = load i32, ptr %208, align 4, !tbaa !82
  %210 = and i32 %209, %205
  %.not381 = icmp eq i32 %210, 0
  br i1 %.not381, label %.thread, label %211

211:                                              ; preds = %206
  %212 = getelementptr inbounds i8, ptr %63, i64 6788
  %213 = load float, ptr %212, align 4, !tbaa !83
  %214 = fcmp ogt float %213, 0.000000e+00
  %215 = getelementptr inbounds i8, ptr %63, i64 6792
  %216 = load float, ptr %215, align 4, !tbaa !84
  %217 = fcmp ogt float %216, 0.000000e+00
  br label %.thread

.thread:                                          ; preds = %206, %211
  %218 = phi i1 [ %214, %211 ], [ false, %206 ]
  %219 = phi i1 [ %217, %211 ], [ false, %206 ]
  %220 = getelementptr inbounds i8, ptr %63, i64 6788
  call void @_ZL13SetWindowSizeP11ImGuiWindowRK6ImVec2i(ptr noundef nonnull %207, ptr noundef nonnull align 4 dereferenceable(8) %220, i32 noundef %205)
  br label %221

221:                                              ; preds = %.thread, %203
  %.0339 = phi i1 [ %219, %.thread ], [ false, %203 ]
  %.0338 = phi i1 [ %218, %.thread ], [ false, %203 ]
  %222 = getelementptr inbounds i8, ptr %63, i64 6752
  %223 = load i32, ptr %222, align 8, !tbaa !85
  %.not383 = icmp eq i32 %223, 0
  br i1 %.not383, label %239, label %224

224:                                              ; preds = %221
  %225 = getelementptr inbounds i8, ptr %63, i64 6796
  %226 = load ptr, ptr %4, align 8, !tbaa !5
  %227 = getelementptr inbounds i8, ptr %226, i64 56
  %228 = load i64, ptr %225, align 4
  store i64 %228, ptr %227, align 8
  %229 = and i64 %228, 9223372032559808512
  %.not547 = icmp eq i64 %229, 0
  br i1 %.not547, label %244, label %230

230:                                              ; preds = %224
  %231 = call noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %226)
  %232 = load ptr, ptr %4, align 8, !tbaa !5
  %233 = call noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %232)
  %234 = fadd float %231, %233
  %235 = load ptr, ptr %4, align 8, !tbaa !5
  %236 = getelementptr inbounds i8, ptr %235, i64 60
  %237 = load float, ptr %236, align 4, !tbaa !86
  %238 = fadd float %234, %237
  store float %238, ptr %236, align 4, !tbaa !86
  br label %244

239:                                              ; preds = %221
  br i1 %.not374, label %._crit_edge540, label %240

._crit_edge540:                                   ; preds = %239
  %.pre496.pre533.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %244

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %241 = load ptr, ptr %4, align 8, !tbaa !5
  %242 = getelementptr inbounds i8, ptr %241, i64 56
  %243 = load i64, ptr %6, align 8
  store i64 %243, ptr %242, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #14
  br label %244

244:                                              ; preds = %._crit_edge540, %240, %224, %230
  %.pre496.pre533 = phi ptr [ %.pre496.pre533.pre, %._crit_edge540 ], [ %241, %240 ], [ %226, %224 ], [ %235, %230 ]
  %245 = getelementptr inbounds i8, ptr %63, i64 6756
  %246 = load i32, ptr %245, align 4, !tbaa !87
  %.not384 = icmp eq i32 %246, 0
  br i1 %.not384, label %251, label %247

247:                                              ; preds = %244
  %248 = getelementptr inbounds i8, ptr %63, i64 6804
  %249 = load i8, ptr %248, align 4, !tbaa !88, !range !55, !noundef !56
  %250 = trunc nuw i8 %249 to i1
  call void @_ZL18SetWindowCollapsedP11ImGuiWindowbi(ptr noundef %.pre496.pre533, i1 noundef zeroext %250, i32 noundef %246)
  %.pre496.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %251

251:                                              ; preds = %247, %244
  %.pre496 = phi ptr [ %.pre496.pre, %247 ], [ %.pre496.pre533, %244 ]
  %252 = getelementptr inbounds i8, ptr %63, i64 6764
  %253 = load i32, ptr %252, align 4, !tbaa !89
  %.not385 = icmp eq i32 %253, 0
  br i1 %.not385, label %255, label %254

254:                                              ; preds = %251
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef %.pre496)
  %.pre495 = load ptr, ptr %4, align 8, !tbaa !5
  br label %255

255:                                              ; preds = %254, %251
  %256 = phi ptr [ %.pre495, %254 ], [ %.pre496, %251 ]
  %257 = getelementptr inbounds i8, ptr %256, i64 128
  %258 = load i8, ptr %257, align 8, !tbaa !78, !range !55, !noundef !56
  %259 = trunc nuw i8 %258 to i1
  br i1 %259, label %260, label %261

260:                                              ; preds = %255
  call void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef nonnull %256, i32 noundef 8, i1 noundef zeroext false)
  br label %261

261:                                              ; preds = %260, %255
  br i1 %.not374, label %.critedge464, label %262

262:                                              ; preds = %261
  %263 = and i32 %.1, 33554432
  %.not386 = icmp eq i32 %263, 0
  %264 = and i32 %.1, 50331648
  %265 = icmp eq i32 %264, 50331648
  %266 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN5ImGui30UpdateWindowParentAndRootLinksEP11ImGuiWindowiS1_(ptr noundef %266, i32 noundef %.1, ptr noundef %121)
  %267 = load ptr, ptr %4, align 8, !tbaa !5
  %268 = getelementptr inbounds i8, ptr %267, i64 122
  store i8 1, ptr %268, align 2, !tbaa !90
  %269 = getelementptr inbounds i8, ptr %267, i64 136
  store i32 0, ptr %269, align 8, !tbaa !91
  %270 = getelementptr inbounds i8, ptr %63, i64 6536
  %271 = load i32, ptr %270, align 8, !tbaa !92
  %272 = add nsw i32 %271, 1
  store i32 %272, ptr %270, align 8, !tbaa !92
  %273 = getelementptr inbounds i8, ptr %267, i64 140
  store i32 %271, ptr %273, align 4, !tbaa !93
  %274 = getelementptr inbounds i8, ptr %267, i64 132
  store i32 0, ptr %274, align 4, !tbaa !94
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #14
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %8, float noundef 0xC7EFFFFFE0000000, float noundef 0xC7EFFFFFE0000000, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %7, ptr noundef nonnull align 4 dereferenceable(16) %8)
  %275 = load ptr, ptr %4, align 8, !tbaa !5
  %276 = getelementptr inbounds i8, ptr %275, i64 528
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %276, ptr noundef nonnull align 4 dereferenceable(16) %7, i64 16, i1 false), !tbaa.struct !95
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #14
  %277 = getelementptr inbounds i8, ptr %275, i64 608
  store i32 %98, ptr %277, align 8, !tbaa !60
  %278 = getelementptr inbounds i8, ptr %275, i64 512
  call void @_ZN8ImVectorIjE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %278, i32 noundef 1)
  %279 = load ptr, ptr %4, align 8, !tbaa !5
  %280 = call <2 x float> @_ZL16CalcSizeContentsP11ImGuiWindow(ptr noundef %279)
  %281 = load ptr, ptr %4, align 8, !tbaa !5
  %282 = getelementptr inbounds i8, ptr %281, i64 48
  store <2 x float> %280, ptr %282, align 8
  %283 = getelementptr inbounds i8, ptr %281, i64 168
  %284 = load i32, ptr %283, align 8, !tbaa !97
  %285 = icmp sgt i32 %284, 0
  br i1 %285, label %286, label %288

286:                                              ; preds = %262
  %287 = add nsw i32 %284, -1
  store i32 %287, ptr %283, align 8, !tbaa !97
  br label %288

288:                                              ; preds = %286, %262
  %289 = getelementptr inbounds i8, ptr %281, i64 172
  %290 = load i32, ptr %289, align 4, !tbaa !72
  %291 = icmp slt i32 %290, 1
  %292 = select i1 %.0338, i1 %.0339, i1 false
  %or.cond486 = select i1 %79, i1 true, i1 %292
  %.not490 = and i1 %291, %or.cond486
  br i1 %.not490, label %295, label %293

293:                                              ; preds = %288
  %294 = add nsw i32 %290, -1
  %simplifycfg.merge487 = select i1 %or.cond486, i32 %294, i32 1
  store i32 %simplifycfg.merge487, ptr %289, align 4, !tbaa !72
  br label %295

295:                                              ; preds = %288, %293
  %296 = and i32 %.1, 100663296
  %.not387 = icmp ne i32 %296, 0
  %or.cond426.not = select i1 %.0335.in, i1 %.not387, i1 false
  br i1 %or.cond426.not, label %297, label %311

297:                                              ; preds = %295
  store i32 1, ptr %289, align 4, !tbaa !72
  %298 = and i32 %.1, 64
  %.not388 = icmp eq i32 %298, 0
  br i1 %.not388, label %311, label %299

299:                                              ; preds = %297
  br i1 %.0338, label %303, label %300

300:                                              ; preds = %299
  %301 = getelementptr inbounds i8, ptr %281, i64 32
  store float 0.000000e+00, ptr %301, align 8, !tbaa !98
  %302 = getelementptr inbounds i8, ptr %281, i64 24
  store float 0.000000e+00, ptr %302, align 8, !tbaa !99
  br label %303

303:                                              ; preds = %300, %299
  br i1 %.0339, label %307, label %304

304:                                              ; preds = %303
  %305 = getelementptr inbounds i8, ptr %281, i64 36
  store float 0.000000e+00, ptr %305, align 4, !tbaa !100
  %306 = getelementptr inbounds i8, ptr %281, i64 28
  store float 0.000000e+00, ptr %306, align 4, !tbaa !101
  br label %307

307:                                              ; preds = %304, %303
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %308 = load ptr, ptr %4, align 8, !tbaa !5
  %309 = getelementptr inbounds i8, ptr %308, i64 48
  %310 = load i64, ptr %9, align 8
  store i64 %310, ptr %309, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  br label %311

311:                                              ; preds = %297, %307, %295
  %312 = phi ptr [ %281, %297 ], [ %308, %307 ], [ %281, %295 ]
  call void @_ZL16SetCurrentWindowP11ImGuiWindow(ptr noundef nonnull %312)
  %313 = and i32 %.1, 134217728
  %.not390 = icmp eq i32 %313, 0
  %or.cond427 = and i1 %.not387, %.not390
  %. = select i1 %or.cond427, i64 5488, i64 5456
  %.sink557 = select i1 %124, i64 5480, i64 %.
  %314 = getelementptr inbounds i8, ptr %63, i64 %.sink557
  %315 = load float, ptr %314, align 4, !tbaa !96
  %316 = load ptr, ptr %4, align 8, !tbaa !5
  %317 = getelementptr inbounds i8, ptr %316, i64 76
  store float %315, ptr %317, align 4, !tbaa !102
  %318 = getelementptr inbounds i8, ptr %63, i64 5444
  %319 = getelementptr inbounds i8, ptr %316, i64 64
  %320 = load i64, ptr %318, align 4
  store i64 %320, ptr %319, align 8
  %321 = and i32 %.1, 83951616
  %or.cond428 = icmp eq i32 %321, 16777216
  %322 = fcmp oeq float %315, 0.000000e+00
  %or.cond478 = select i1 %or.cond428, i1 %322, i1 false
  br i1 %or.cond478, label %323, label %333

323:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  %324 = and i32 %.1, 1024
  %.not392 = icmp eq i32 %324, 0
  br i1 %.not392, label %328, label %325

325:                                              ; preds = %323
  %326 = getelementptr inbounds i8, ptr %63, i64 5448
  %327 = load float, ptr %326, align 4, !tbaa !103
  br label %328

328:                                              ; preds = %323, %325
  %329 = phi float [ %327, %325 ], [ 0.000000e+00, %323 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef 0.000000e+00, float noundef %329)
  %330 = load ptr, ptr %4, align 8, !tbaa !5
  %331 = getelementptr inbounds i8, ptr %330, i64 64
  %332 = load i64, ptr %10, align 8
  store i64 %332, ptr %331, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  br label %333

333:                                              ; preds = %328, %311
  %.in548.in = phi i64 [ %332, %328 ], [ %320, %311 ]
  %.in548 = trunc i64 %.in548.in to i32
  %334 = bitcast i32 %.in548 to float
  %335 = getelementptr inbounds i8, ptr %63, i64 5508
  %336 = load float, ptr %335, align 4, !tbaa !104
  %337 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %334, float noundef %336)
  %338 = getelementptr inbounds i8, ptr %63, i64 6844
  %339 = load float, ptr %338, align 4, !tbaa !105
  %340 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %337, float noundef %339)
  %341 = load ptr, ptr %4, align 8, !tbaa !5
  %342 = getelementptr inbounds i8, ptr %341, i64 340
  store float %340, ptr %342, align 4, !tbaa !106
  %343 = getelementptr inbounds i8, ptr %63, i64 6848
  %344 = load float, ptr %343, align 4, !tbaa !107
  %345 = getelementptr inbounds i8, ptr %341, i64 344
  store float %344, ptr %345, align 4, !tbaa !108
  %346 = and i32 %.1, 1
  %.not393 = icmp eq i32 %346, 0
  %347 = and i32 %.1, 32
  %.not394 = icmp eq i32 %347, 0
  %348 = and i32 %.1, 33
  %or.cond429 = icmp eq i32 %348, 0
  br i1 %or.cond429, label %349, label %385

349:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #14
  %350 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(984) %341)
  %351 = extractvalue { <2 x float>, <2 x float> } %350, 0
  store <2 x float> %351, ptr %11, align 8
  %352 = getelementptr inbounds i8, ptr %11, i64 8
  %353 = extractvalue { <2 x float>, <2 x float> } %350, 1
  store <2 x float> %353, ptr %352, align 8
  %354 = getelementptr inbounds i8, ptr %63, i64 6552
  %355 = load ptr, ptr %354, align 8, !tbaa !109
  %356 = load ptr, ptr %4, align 8, !tbaa !5
  %357 = icmp eq ptr %355, %356
  br i1 %357, label %358, label %374

358:                                              ; preds = %349
  %359 = getelementptr inbounds i8, ptr %63, i64 6568
  %360 = load i32, ptr %359, align 8, !tbaa !110
  %361 = icmp eq i32 %360, 0
  br i1 %361, label %362, label %374

362:                                              ; preds = %358
  %363 = getelementptr inbounds i8, ptr %63, i64 6576
  %364 = load i32, ptr %363, align 8, !tbaa !111
  %365 = icmp eq i32 %364, 0
  br i1 %365, label %366, label %374

366:                                              ; preds = %362
  %367 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %352, i1 noundef zeroext true)
  br i1 %367, label %368, label %._crit_edge497

._crit_edge497:                                   ; preds = %366
  %.pre498 = load ptr, ptr %4, align 8, !tbaa !5
  br label %374

368:                                              ; preds = %366
  %369 = getelementptr inbounds i8, ptr %63, i64 1061
  %370 = load i8, ptr %369, align 1, !tbaa !112, !range !55, !noundef !56
  %371 = trunc nuw i8 %370 to i1
  %.pre499 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %371, label %372, label %374

372:                                              ; preds = %368
  %373 = getelementptr inbounds i8, ptr %.pre499, i64 126
  store i8 1, ptr %373, align 2, !tbaa !113
  br label %374

374:                                              ; preds = %._crit_edge497, %372, %368, %362, %358, %349
  %375 = phi ptr [ %.pre498, %._crit_edge497 ], [ %.pre499, %372 ], [ %.pre499, %368 ], [ %356, %362 ], [ %356, %358 ], [ %356, %349 ]
  %376 = getelementptr inbounds i8, ptr %375, i64 126
  %377 = load i8, ptr %376, align 2, !tbaa !113, !range !55, !noundef !56
  %378 = trunc nuw i8 %377 to i1
  br i1 %378, label %379, label %384

379:                                              ; preds = %374
  %380 = getelementptr inbounds i8, ptr %375, i64 125
  %381 = load i8, ptr %380, align 1, !tbaa !114, !range !55, !noundef !56
  %382 = xor i8 %381, 1
  store i8 %382, ptr %380, align 1, !tbaa !114
  call void @_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow(ptr noundef nonnull %375)
  %383 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef %383)
  %.pre500.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %384

384:                                              ; preds = %379, %374
  %.pre500 = phi ptr [ %.pre500.pre, %379 ], [ %375, %374 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #14
  br label %387

385:                                              ; preds = %333
  %386 = getelementptr inbounds i8, ptr %341, i64 125
  store i8 0, ptr %386, align 1, !tbaa !114
  br label %387

387:                                              ; preds = %385, %384
  %388 = phi ptr [ %341, %385 ], [ %.pre500, %384 ]
  %389 = getelementptr inbounds i8, ptr %388, i64 126
  store i8 0, ptr %389, align 2, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #14
  %390 = getelementptr inbounds i8, ptr %388, i64 48
  %391 = call <2 x float> @_ZL15CalcSizeAutoFitP11ImGuiWindowRK6ImVec2(ptr noundef %388, ptr noundef nonnull align 4 dereferenceable(8) %390)
  store <2 x float> %391, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %13, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  %392 = and i32 %.1, 64
  %.not395 = icmp ne i32 %392, 0
  %.pre501 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %.not395, label %393, label %407

393:                                              ; preds = %387
  %394 = getelementptr inbounds i8, ptr %.pre501, i64 125
  %395 = load i8, ptr %394, align 1, !tbaa !114, !range !55, !noundef !56
  %396 = trunc nuw i8 %395 to i1
  br i1 %396, label %407, label %397

397:                                              ; preds = %393
  br i1 %.0338, label %401, label %398

398:                                              ; preds = %397
  %399 = load float, ptr %12, align 8, !tbaa !115
  store float %399, ptr %13, align 4, !tbaa !115
  %400 = getelementptr inbounds i8, ptr %.pre501, i64 32
  store float %399, ptr %400, align 8, !tbaa !98
  br label %401

401:                                              ; preds = %398, %397
  br i1 %.0339, label %460, label %402

402:                                              ; preds = %401
  %403 = getelementptr inbounds i8, ptr %12, i64 4
  %404 = load float, ptr %403, align 4, !tbaa !116
  %405 = getelementptr inbounds i8, ptr %13, i64 4
  store float %404, ptr %405, align 4, !tbaa !116
  %406 = getelementptr inbounds i8, ptr %.pre501, i64 36
  store float %404, ptr %406, align 4, !tbaa !100
  br label %460

407:                                              ; preds = %393, %387
  %408 = getelementptr inbounds i8, ptr %.pre501, i64 148
  %409 = load i32, ptr %408, align 4, !tbaa !117
  %410 = icmp sgt i32 %409, 0
  br i1 %410, label %415, label %411

411:                                              ; preds = %407
  %412 = getelementptr inbounds i8, ptr %.pre501, i64 152
  %413 = load i32, ptr %412, align 8, !tbaa !118
  %414 = icmp sgt i32 %413, 0
  br i1 %414, label %.thread467, label %460

415:                                              ; preds = %407
  br i1 %.0338, label %.thread467, label %416

416:                                              ; preds = %415
  %417 = getelementptr inbounds i8, ptr %.pre501, i64 156
  %418 = load i8, ptr %417, align 4, !tbaa !119, !range !55, !noundef !56
  %419 = trunc nuw i8 %418 to i1
  br i1 %419, label %420, label %425

420:                                              ; preds = %416
  %421 = getelementptr inbounds i8, ptr %.pre501, i64 32
  %422 = load float, ptr %421, align 8, !tbaa !98
  %423 = load float, ptr %12, align 8, !tbaa !115
  %424 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %422, float noundef %423)
  %.pre502 = load ptr, ptr %4, align 8, !tbaa !5
  br label %427

425:                                              ; preds = %416
  %426 = load float, ptr %12, align 8, !tbaa !115
  br label %427

427:                                              ; preds = %425, %420
  %428 = phi ptr [ %.pre502, %420 ], [ %.pre501, %425 ]
  %429 = phi float [ %424, %420 ], [ %426, %425 ]
  store float %429, ptr %13, align 4, !tbaa !115
  %430 = getelementptr inbounds i8, ptr %428, i64 32
  store float %429, ptr %430, align 8, !tbaa !98
  br label %.thread467

.thread467:                                       ; preds = %411, %427, %415
  %431 = phi ptr [ %.pre501, %411 ], [ %428, %427 ], [ %.pre501, %415 ]
  br i1 %.0339, label %454, label %432

432:                                              ; preds = %.thread467
  %433 = getelementptr inbounds i8, ptr %431, i64 152
  %434 = load i32, ptr %433, align 8, !tbaa !118
  %435 = icmp sgt i32 %434, 0
  br i1 %435, label %436, label %454

436:                                              ; preds = %432
  %437 = getelementptr inbounds i8, ptr %431, i64 156
  %438 = load i8, ptr %437, align 4, !tbaa !119, !range !55, !noundef !56
  %439 = trunc nuw i8 %438 to i1
  br i1 %439, label %440, label %446

440:                                              ; preds = %436
  %441 = getelementptr inbounds i8, ptr %431, i64 36
  %442 = load float, ptr %441, align 4, !tbaa !100
  %443 = getelementptr inbounds i8, ptr %12, i64 4
  %444 = load float, ptr %443, align 4, !tbaa !116
  %445 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %442, float noundef %444)
  %.pre503 = load ptr, ptr %4, align 8, !tbaa !5
  br label %449

446:                                              ; preds = %436
  %447 = getelementptr inbounds i8, ptr %12, i64 4
  %448 = load float, ptr %447, align 4, !tbaa !116
  br label %449

449:                                              ; preds = %446, %440
  %450 = phi ptr [ %.pre503, %440 ], [ %431, %446 ]
  %451 = phi float [ %445, %440 ], [ %448, %446 ]
  %452 = getelementptr inbounds i8, ptr %13, i64 4
  store float %451, ptr %452, align 4, !tbaa !116
  %453 = getelementptr inbounds i8, ptr %450, i64 36
  store float %451, ptr %453, align 4, !tbaa !100
  br label %454

454:                                              ; preds = %449, %432, %.thread467
  %455 = phi ptr [ %450, %449 ], [ %431, %432 ], [ %431, %.thread467 ]
  %456 = getelementptr inbounds i8, ptr %455, i64 125
  %457 = load i8, ptr %456, align 1, !tbaa !114, !range !55, !noundef !56
  %458 = trunc nuw i8 %457 to i1
  br i1 %458, label %460, label %459

459:                                              ; preds = %454
  call void @_ZN5ImGui20MarkIniSettingsDirtyEP11ImGuiWindow(ptr noundef nonnull %455)
  %.pre504 = load ptr, ptr %4, align 8, !tbaa !5
  br label %460

460:                                              ; preds = %411, %459, %454, %401, %402
  %461 = phi ptr [ %.pre501, %411 ], [ %.pre504, %459 ], [ %455, %454 ], [ %.pre501, %401 ], [ %.pre501, %402 ]
  %462 = getelementptr inbounds i8, ptr %461, i64 32
  %.sroa.079.0.copyload = load <2 x float>, ptr %462, align 8
  %463 = call <2 x float> @_ZL23CalcSizeAfterConstraintP11ImGuiWindow6ImVec2(ptr noundef %461, <2 x float> %.sroa.079.0.copyload)
  %464 = load ptr, ptr %4, align 8
  %465 = getelementptr inbounds i8, ptr %464, i64 32
  store <2 x float> %463, ptr %465, align 8
  %466 = getelementptr inbounds i8, ptr %464, i64 125
  %467 = load i8, ptr %466, align 1, !tbaa !114, !range !55, !noundef !56
  %468 = trunc nuw i8 %467 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #14
  %.not430 = xor i1 %468, true
  %brmerge431 = select i1 %.not430, i1 true, i1 %124
  br i1 %brmerge431, label %475, label %469

469:                                              ; preds = %460
  %470 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(984) %464)
  %471 = extractvalue { <2 x float>, <2 x float> } %470, 0
  store <2 x float> %471, ptr %14, align 8
  %472 = getelementptr inbounds i8, ptr %14, i64 8
  %473 = extractvalue { <2 x float>, <2 x float> } %470, 1
  store <2 x float> %473, ptr %472, align 8
  %474 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %14)
  %.pre505 = load ptr, ptr %4, align 8
  %.phi.trans.insert = getelementptr inbounds i8, ptr %.pre505, i64 125
  %.pre506 = load i8, ptr %.phi.trans.insert, align 1, !tbaa !114, !range !55
  br label %475

475:                                              ; preds = %460, %469
  %476 = phi i8 [ %.pre506, %469 ], [ %467, %460 ]
  %477 = phi ptr [ %.pre505, %469 ], [ %464, %460 ]
  %.sroa.077.0 = phi <2 x float> [ %474, %469 ], [ %463, %460 ]
  %478 = getelementptr inbounds i8, ptr %477, i64 24
  store <2 x float> %.sroa.077.0, ptr %478, align 8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #14
  %479 = trunc nuw i8 %476 to i1
  br i1 %479, label %554, label %480

480:                                              ; preds = %475
  %481 = load float, ptr %13, align 4, !tbaa !115
  %482 = fcmp une float %481, 0x47EFFFFFE0000000
  %.in396.v = select i1 %482, i64 32, i64 40
  %.in396 = getelementptr inbounds i8, ptr %477, i64 %.in396.v
  %483 = load float, ptr %.in396, align 8, !tbaa !96
  %484 = getelementptr inbounds i8, ptr %13, i64 4
  %485 = load float, ptr %484, align 4, !tbaa !116
  %486 = fcmp une float %485, 0x47EFFFFFE0000000
  %.in397.v = select i1 %486, i64 36, i64 44
  %.in397 = getelementptr inbounds i8, ptr %477, i64 %.in397.v
  %487 = load float, ptr %.in397, align 4, !tbaa !96
  %488 = and i32 %.1, 16384
  %.not398 = icmp eq i32 %488, 0
  br i1 %.not398, label %489, label %.thread468

489:                                              ; preds = %480
  %490 = getelementptr inbounds i8, ptr %477, i64 52
  %491 = load float, ptr %490, align 4, !tbaa !120
  %492 = fcmp ogt float %491, %487
  %493 = and i32 %.1, 8
  %.not399 = icmp eq i32 %493, 0
  %494 = select i1 %492, i1 %.not399, i1 false
  %495 = getelementptr inbounds i8, ptr %477, i64 121
  %496 = zext i1 %494 to i8
  store i8 %496, ptr %495, align 1, !tbaa !121
  %497 = and i32 %.1, 32768
  %.not400 = icmp eq i32 %497, 0
  br i1 %.not400, label %503, label %.thread472

.thread468:                                       ; preds = %480
  %498 = getelementptr inbounds i8, ptr %477, i64 121
  store i8 1, ptr %498, align 1, !tbaa !121
  %499 = and i32 %.1, 32768
  %.not400469 = icmp eq i32 %499, 0
  br i1 %.not400469, label %.thread470, label %.thread472.thread

.thread472.thread:                                ; preds = %.thread468
  %500 = getelementptr inbounds i8, ptr %477, i64 120
  store i8 1, ptr %500, align 8, !tbaa !122
  br label %.thread556

.thread470:                                       ; preds = %.thread468
  %501 = getelementptr inbounds i8, ptr %477, i64 48
  %502 = load float, ptr %501, align 8, !tbaa !123
  %.pre546 = and i32 %.1, 8
  br label %506

503:                                              ; preds = %489
  %504 = getelementptr inbounds i8, ptr %477, i64 48
  %505 = load float, ptr %504, align 8, !tbaa !123
  br i1 %494, label %506, label %511

506:                                              ; preds = %.thread470, %503
  %.pre543.pre-phi = phi i32 [ %.pre546, %.thread470 ], [ 0, %503 ]
  %507 = phi float [ %502, %.thread470 ], [ %505, %503 ]
  %508 = phi ptr [ %498, %.thread470 ], [ %495, %503 ]
  %509 = getelementptr inbounds i8, ptr %63, i64 5540
  %510 = load float, ptr %509, align 4, !tbaa !124
  br label %511

511:                                              ; preds = %503, %506
  %.pre-phi544 = phi i32 [ %493, %503 ], [ %.pre543.pre-phi, %506 ]
  %512 = phi i8 [ 0, %503 ], [ 1, %506 ]
  %513 = phi float [ %505, %503 ], [ %507, %506 ]
  %514 = phi i1 [ false, %503 ], [ true, %506 ]
  %515 = phi ptr [ %495, %503 ], [ %508, %506 ]
  %516 = phi float [ 0.000000e+00, %503 ], [ %510, %506 ]
  %517 = fsub float %483, %516
  %518 = fcmp ogt float %513, %517
  %.not401 = icmp eq i32 %.pre-phi544, 0
  %or.cond432 = select i1 %518, i1 %.not401, i1 false
  br i1 %or.cond432, label %521, label %.thread473

.thread473:                                       ; preds = %511
  %519 = getelementptr inbounds i8, ptr %477, i64 120
  store i8 0, ptr %519, align 8, !tbaa !122
  br label %536

.thread472:                                       ; preds = %489
  %520 = getelementptr inbounds i8, ptr %477, i64 120
  store i8 1, ptr %520, align 8, !tbaa !122
  br i1 %494, label %.thread556, label %525

521:                                              ; preds = %511
  %522 = and i32 %.1, 2048
  %.not483 = icmp eq i32 %522, 0
  %523 = getelementptr inbounds i8, ptr %477, i64 120
  %.lobit = lshr exact i32 %522, 11
  %524 = trunc nuw nsw i32 %.lobit to i8
  store i8 %524, ptr %523, align 8, !tbaa !122
  %brmerge480 = or i1 %.not483, %514
  %not..not483 = xor i1 %.not483, true
  br i1 %brmerge480, label %536, label %._crit_edge507

._crit_edge507:                                   ; preds = %521
  %.phi.trans.insert508 = getelementptr inbounds i8, ptr %477, i64 52
  %.pre509 = load float, ptr %.phi.trans.insert508, align 4, !tbaa !120
  br label %525

525:                                              ; preds = %._crit_edge507, %.thread472
  %.pre-phi545 = phi i32 [ 0, %._crit_edge507 ], [ %493, %.thread472 ]
  %526 = phi float [ %.pre509, %._crit_edge507 ], [ %491, %.thread472 ]
  %527 = phi ptr [ %515, %._crit_edge507 ], [ %495, %.thread472 ]
  %528 = getelementptr inbounds i8, ptr %63, i64 5540
  %529 = load float, ptr %528, align 4, !tbaa !124
  %530 = fsub float %487, %529
  %531 = fcmp ogt float %526, %530
  %.not402 = icmp eq i32 %.pre-phi545, 0
  %532 = select i1 %531, i1 %.not402, i1 false
  %533 = zext i1 %532 to i8
  store i8 %533, ptr %527, align 1, !tbaa !121
  br label %536

.thread556:                                       ; preds = %.thread472.thread, %.thread472
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #14
  %534 = getelementptr inbounds i8, ptr %63, i64 5540
  %535 = load float, ptr %534, align 4, !tbaa !124
  br label %544

536:                                              ; preds = %521, %.thread473, %525
  %537 = phi i8 [ %533, %525 ], [ %512, %521 ], [ %512, %.thread473 ]
  %538 = phi i1 [ true, %525 ], [ %not..not483, %521 ], [ false, %.thread473 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #14
  %539 = trunc nuw i8 %537 to i1
  br i1 %539, label %540, label %543

540:                                              ; preds = %536
  %541 = getelementptr inbounds i8, ptr %63, i64 5540
  %542 = load float, ptr %541, align 4, !tbaa !124
  br i1 %538, label %544, label %548

543:                                              ; preds = %536
  br i1 %538, label %544, label %548

544:                                              ; preds = %.thread556, %540, %543
  %545 = phi float [ %542, %540 ], [ 0.000000e+00, %543 ], [ %535, %.thread556 ]
  %546 = getelementptr inbounds i8, ptr %63, i64 5540
  %547 = load float, ptr %546, align 4, !tbaa !124
  br label %548

548:                                              ; preds = %540, %543, %544
  %549 = phi float [ %545, %544 ], [ 0.000000e+00, %543 ], [ %542, %540 ]
  %550 = phi float [ %547, %544 ], [ 0.000000e+00, %543 ], [ 0.000000e+00, %540 ]
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %15, float noundef %549, float noundef %550)
  %551 = load ptr, ptr %4, align 8, !tbaa !5
  %552 = getelementptr inbounds i8, ptr %551, i64 112
  %553 = load i64, ptr %15, align 8
  store i64 %553, ptr %552, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #14
  br label %554

554:                                              ; preds = %548, %475
  %555 = phi ptr [ %551, %548 ], [ %477, %475 ]
  br i1 %.0335.in, label %556, label %565

556:                                              ; preds = %554
  %557 = getelementptr inbounds i8, ptr %555, i64 164
  store i32 -1, ptr %557, align 4, !tbaa !125
  %brmerge433 = or i1 %.not378, %.0337.shrunk
  br i1 %brmerge433, label %565, label %558

558:                                              ; preds = %556
  %559 = getelementptr inbounds i8, ptr %63, i64 6728
  %560 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN8ImVectorI13ImGuiPopupRefE4backEv(ptr noundef nonnull align 8 dereferenceable(16) %559)
  %561 = getelementptr inbounds i8, ptr %560, i64 32
  %562 = load ptr, ptr %4, align 8, !tbaa !5
  %563 = getelementptr inbounds i8, ptr %562, i64 16
  %564 = load i64, ptr %561, align 8
  store i64 %564, ptr %563, align 8
  br label %565

565:                                              ; preds = %556, %558, %554
  %566 = phi ptr [ %555, %556 ], [ %562, %558 ], [ %555, %554 ]
  br i1 %124, label %567, label %575

567:                                              ; preds = %565
  %568 = getelementptr inbounds i8, ptr %121, i64 352
  %569 = load i32, ptr %568, align 8, !tbaa !126
  %570 = getelementptr inbounds i8, ptr %566, i64 136
  store i32 %569, ptr %570, align 8, !tbaa !91
  call void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %568, ptr noundef nonnull align 8 dereferenceable(8) %4)
  %.not378.not = xor i1 %.not378, true
  %brmerge434 = or i1 %.0337.shrunk, %.not378.not
  %brmerge435 = select i1 %brmerge434, i1 true, i1 %265
  %.pre510 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %brmerge435, label %575, label %571

571:                                              ; preds = %567
  %572 = getelementptr inbounds i8, ptr %121, i64 208
  %573 = getelementptr inbounds i8, ptr %.pre510, i64 16
  %574 = load i64, ptr %572, align 8
  store i64 %574, ptr %573, align 8
  br label %575

575:                                              ; preds = %567, %571, %565
  %576 = phi ptr [ %.pre510, %567 ], [ %.pre510, %571 ], [ %566, %565 ]
  %577 = getelementptr inbounds i8, ptr %576, i64 188
  %578 = load float, ptr %577, align 4, !tbaa !127
  %579 = fcmp une float %578, 0x47EFFFFFE0000000
  br i1 %579, label %580, label %.critedge

580:                                              ; preds = %575
  %581 = getelementptr inbounds i8, ptr %576, i64 172
  %582 = load i32, ptr %581, align 4, !tbaa !72
  %583 = icmp eq i32 %582, 0
  br i1 %583, label %584, label %.critedge

584:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #14
  %585 = getelementptr inbounds i8, ptr %63, i64 5572
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #14
  %586 = getelementptr inbounds i8, ptr %576, i64 32
  %587 = getelementptr inbounds i8, ptr %576, i64 196
  %588 = call <2 x float> @_ZmlRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %586, ptr noundef nonnull align 4 dereferenceable(8) %587)
  store <2 x float> %588, ptr %18, align 8
  %589 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %577, ptr noundef nonnull align 4 dereferenceable(8) %18)
  store <2 x float> %589, ptr %17, align 8
  %590 = call <2 x float> @_ZL5ImMaxRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %585, ptr noundef nonnull align 4 dereferenceable(8) %17)
  store <2 x float> %590, ptr %16, align 8
  call void @_ZL12SetWindowPosP11ImGuiWindowRK6ImVec2i(ptr noundef nonnull %576, ptr noundef nonnull align 4 dereferenceable(8) %16, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #14
  %.pre511.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %606

.critedge:                                        ; preds = %575, %580
  %591 = and i32 %.1, 268435456
  %.not403 = icmp eq i32 %591, 0
  br i1 %.not403, label %596, label %592

592:                                              ; preds = %.critedge
  %593 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef nonnull %576)
  %594 = load ptr, ptr %4, align 8, !tbaa !5
  %595 = getelementptr inbounds i8, ptr %594, i64 16
  store <2 x float> %593, ptr %595, align 8
  br label %606

596:                                              ; preds = %.critedge
  %brmerge436 = or i1 %.not378, %.0337.shrunk
  %brmerge438 = or i1 %brmerge436, %.not424
  br i1 %brmerge438, label %601, label %597

597:                                              ; preds = %596
  %598 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef nonnull %576)
  %599 = load ptr, ptr %4, align 8, !tbaa !5
  %600 = getelementptr inbounds i8, ptr %599, i64 16
  store <2 x float> %598, ptr %600, align 8
  br label %606

601:                                              ; preds = %596
  %brmerge439 = or i1 %.not386, %.0337.shrunk
  %brmerge440 = select i1 %brmerge439, i1 true, i1 %265
  br i1 %brmerge440, label %606, label %602

602:                                              ; preds = %601
  %603 = call <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef nonnull %576)
  %604 = load ptr, ptr %4, align 8, !tbaa !5
  %605 = getelementptr inbounds i8, ptr %604, i64 16
  store <2 x float> %603, ptr %605, align 8
  br label %606

606:                                              ; preds = %601, %592, %602, %597, %584
  %.pre511 = phi ptr [ %576, %601 ], [ %594, %592 ], [ %604, %602 ], [ %599, %597 ], [ %.pre511.pre, %584 ]
  %brmerge441 = or i1 %124, %.0337.shrunk
  br i1 %brmerge441, label %645, label %607

607:                                              ; preds = %606
  %608 = getelementptr inbounds i8, ptr %.pre511, i64 148
  %609 = load i32, ptr %608, align 4, !tbaa !117
  %610 = icmp slt i32 %609, 1
  br i1 %610, label %611, label %.thread551

611:                                              ; preds = %607
  %612 = getelementptr inbounds i8, ptr %.pre511, i64 152
  %613 = load i32, ptr %612, align 8, !tbaa !118
  %614 = icmp slt i32 %613, 1
  br i1 %614, label %615, label %.thread551

615:                                              ; preds = %611
  %616 = getelementptr inbounds i8, ptr %63, i64 16
  %617 = load float, ptr %616, align 8, !tbaa !128
  %618 = fcmp ogt float %617, 0.000000e+00
  br i1 %618, label %619, label %.thread551

619:                                              ; preds = %615
  %620 = getelementptr inbounds i8, ptr %63, i64 20
  %621 = load float, ptr %620, align 4, !tbaa !129
  %622 = fcmp ogt float %621, 0.000000e+00
  br i1 %622, label %623, label %.thread551

623:                                              ; preds = %619
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  %624 = getelementptr inbounds i8, ptr %63, i64 5564
  %625 = getelementptr inbounds i8, ptr %63, i64 5572
  %626 = call <2 x float> @_ZL5ImMaxRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %624, ptr noundef nonnull align 4 dereferenceable(8) %625)
  store <2 x float> %626, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #14
  %627 = load ptr, ptr %4, align 8, !tbaa !5
  %628 = getelementptr inbounds i8, ptr %627, i64 16
  %629 = getelementptr inbounds i8, ptr %627, i64 24
  %630 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %628, ptr noundef nonnull align 4 dereferenceable(8) %629)
  store <2 x float> %630, ptr %21, align 8
  %631 = call <2 x float> @_ZL5ImMaxRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %21, ptr noundef nonnull align 4 dereferenceable(8) %19)
  store <2 x float> %631, ptr %20, align 8
  %632 = load ptr, ptr %4, align 8, !tbaa !5
  %633 = getelementptr inbounds i8, ptr %632, i64 24
  %634 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %20, ptr noundef nonnull align 4 dereferenceable(8) %633)
  %635 = load ptr, ptr %4, align 8, !tbaa !5
  %636 = getelementptr inbounds i8, ptr %635, i64 16
  store <2 x float> %634, ptr %636, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #14
  %637 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %616, ptr noundef nonnull align 4 dereferenceable(8) %19)
  store <2 x float> %637, ptr %22, align 8
  %638 = call <2 x float> @_ZL5ImMinRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %636, ptr noundef nonnull align 4 dereferenceable(8) %22)
  %639 = load ptr, ptr %4, align 8, !tbaa !5
  %640 = getelementptr inbounds i8, ptr %639, i64 16
  store <2 x float> %638, ptr %640, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  br label %.thread551

.thread551:                                       ; preds = %607, %611, %615, %619, %623
  %.ph = phi ptr [ %639, %623 ], [ %.pre511, %619 ], [ %.pre511, %615 ], [ %.pre511, %611 ], [ %.pre511, %607 ]
  %641 = getelementptr inbounds i8, ptr %.ph, i64 16
  %642 = call <2 x float> @_ZL7ImFloorRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %641)
  %643 = load ptr, ptr %4, align 8, !tbaa !5
  %644 = getelementptr inbounds i8, ptr %643, i64 16
  store <2 x float> %642, ptr %644, align 8
  br label %650

645:                                              ; preds = %606
  %646 = getelementptr inbounds i8, ptr %.pre511, i64 16
  %647 = call <2 x float> @_ZL7ImFloorRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %646)
  %648 = load ptr, ptr %4, align 8, !tbaa !5
  %649 = getelementptr inbounds i8, ptr %648, i64 16
  store <2 x float> %647, ptr %649, align 8
  br i1 %124, label %653, label %650

650:                                              ; preds = %.thread551, %645
  %651 = phi ptr [ %643, %.thread551 ], [ %648, %645 ]
  %652 = and i32 %.1, 201326592
  %or.cond443.not.not = icmp eq i32 %652, 67108864
  %.560 = select i1 %or.cond443.not.not, i64 5484, i64 5452
  br label %653

653:                                              ; preds = %650, %645
  %.sink558 = phi i64 [ 5476, %645 ], [ %.560, %650 ]
  %654 = phi ptr [ %648, %645 ], [ %651, %650 ]
  %655 = getelementptr inbounds i8, ptr %63, i64 %.sink558
  %656 = load float, ptr %655, align 4, !tbaa !96
  %657 = getelementptr inbounds i8, ptr %654, i64 72
  store float %656, ptr %657, align 8, !tbaa !130
  %658 = getelementptr inbounds i8, ptr %654, i64 976
  %659 = load i32, ptr %658, align 8, !tbaa !131
  %660 = icmp eq i32 %659, 2147483647
  br i1 %660, label %669, label %661

661:                                              ; preds = %653
  %662 = getelementptr inbounds i8, ptr %654, i64 960
  %663 = load i32, ptr %662, align 8, !tbaa !132
  %664 = icmp eq i32 %663, -1
  br i1 %664, label %669, label %665

665:                                              ; preds = %661
  %666 = add nuw nsw i32 %663, 1
  %667 = add nsw i32 %666, %659
  %668 = srem i32 %667, %666
  br label %669

669:                                              ; preds = %653, %661, %665
  %670 = phi i32 [ %668, %665 ], [ 2147483647, %661 ], [ 2147483647, %653 ]
  %671 = getelementptr inbounds i8, ptr %654, i64 968
  store i32 %670, ptr %671, align 8, !tbaa !133
  %672 = getelementptr inbounds i8, ptr %654, i64 980
  %673 = load i32, ptr %672, align 4, !tbaa !134
  %674 = icmp eq i32 %673, 2147483647
  br i1 %674, label %683, label %675

675:                                              ; preds = %669
  %676 = getelementptr inbounds i8, ptr %654, i64 964
  %677 = load i32, ptr %676, align 4, !tbaa !135
  %678 = icmp eq i32 %677, -1
  br i1 %678, label %683, label %679

679:                                              ; preds = %675
  %680 = add nuw nsw i32 %677, 1
  %681 = add nsw i32 %680, %673
  %682 = srem i32 %681, %680
  br label %683

683:                                              ; preds = %669, %675, %679
  %684 = phi i32 [ %682, %679 ], [ 2147483647, %675 ], [ 2147483647, %669 ]
  %685 = getelementptr inbounds i8, ptr %654, i64 972
  store i32 %684, ptr %685, align 4, !tbaa !136
  %686 = getelementptr inbounds i8, ptr %654, i64 964
  store i32 -1, ptr %686, align 4, !tbaa !135
  %687 = getelementptr inbounds i8, ptr %654, i64 960
  store i32 -1, ptr %687, align 8, !tbaa !132
  store i32 2147483647, ptr %672, align 4, !tbaa !134
  store i32 2147483647, ptr %658, align 8, !tbaa !131
  %688 = call <2 x float> @_ZL38CalcNextScrollFromScrollTargetAndClampP11ImGuiWindowb(ptr noundef nonnull %654, i1 noundef zeroext true)
  %689 = load ptr, ptr %4, align 8, !tbaa !5
  %690 = getelementptr inbounds i8, ptr %689, i64 88
  store <2 x float> %688, ptr %690, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef 0x47EFFFFFE0000000, float noundef 0x47EFFFFFE0000000)
  %691 = load ptr, ptr %4, align 8, !tbaa !5
  %692 = getelementptr inbounds i8, ptr %691, i64 96
  %693 = load i64, ptr %23, align 8
  store i64 %693, ptr %692, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #14
  %694 = and i32 %.1, 4096
  %.not406 = icmp eq i32 %694, 0
  %or.cond444 = select i1 %.0335.in, i1 %.not406, i1 false
  br i1 %or.cond444, label %695, label %696

695:                                              ; preds = %683
  %.not407 = icmp eq i32 %264, 0
  %.not378.not445 = xor i1 %.not378, true
  %brmerge446 = or i1 %.not407, %.not378.not445
  br label %696

696:                                              ; preds = %695, %683
  %.0340 = phi i1 [ false, %683 ], [ %brmerge446, %695 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #14
  store i32 -1, ptr %24, align 4, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %25, i8 0, i64 16, i1 false)
  %697 = getelementptr inbounds i8, ptr %63, i64 211
  %698 = load i8, ptr %697, align 1, !tbaa !137, !range !55, !noundef !56
  %699 = trunc nuw i8 %698 to i1
  %700 = select i1 %699, i32 2, i32 1
  %701 = getelementptr inbounds i8, ptr %63, i64 6288
  %702 = load float, ptr %701, align 8, !tbaa !138
  %703 = fmul float %702, 0x3FF59999A0000000
  %704 = getelementptr inbounds i8, ptr %691, i64 72
  %705 = load float, ptr %704, align 8, !tbaa !130
  %706 = fadd float %705, 1.000000e+00
  %707 = call float @llvm.fmuladd.f32(float %702, float 0x3FC99999A0000000, float %706)
  %708 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %703, float noundef %707)
  %709 = fptosi float %708 to i32
  %710 = sitofp i32 %709 to float
  %711 = load ptr, ptr %4, align 8, !tbaa !5
  %712 = getelementptr inbounds i8, ptr %711, i64 125
  %713 = load i8, ptr %712, align 1, !tbaa !114, !range !55, !noundef !56
  %714 = trunc nuw i8 %713 to i1
  br i1 %714, label %716, label %715

715:                                              ; preds = %696
  call void @_ZN5ImGuiL18UpdateManualResizeEP11ImGuiWindowRK6ImVec2PiiPj(ptr noundef nonnull %711, ptr noundef nonnull align 4 dereferenceable(8) %12, ptr noundef nonnull %24, i32 noundef %700, ptr noundef nonnull %25)
  %.pre512 = load ptr, ptr %4, align 8, !tbaa !5
  br label %716

716:                                              ; preds = %715, %696
  %717 = phi ptr [ %.pre512, %715 ], [ %711, %696 ]
  %718 = getelementptr inbounds i8, ptr %717, i64 24
  %719 = load float, ptr %718, align 8, !tbaa !99
  %720 = fcmp ule float %719, 0.000000e+00
  %.not386.not = xor i1 %.not386, true
  %brmerge448 = select i1 %720, i1 true, i1 %.not386.not
  %brmerge449 = or i1 %.not395, %brmerge448
  br i1 %brmerge449, label %723, label %721

721:                                              ; preds = %716
  %722 = fmul float %719, 0x3FE4CCCCC0000000
  br label %726

723:                                              ; preds = %716
  %724 = load float, ptr %701, align 8, !tbaa !138
  %725 = fmul float %724, 1.600000e+01
  br label %726

726:                                              ; preds = %723, %721
  %.sink.in.in = phi float [ %725, %723 ], [ %722, %721 ]
  %.sink.in = fptosi float %.sink.in.in to i32
  %.sink = sitofp i32 %.sink.in to float
  %727 = getelementptr inbounds i8, ptr %717, i64 612
  store float %.sink, ptr %727, align 4
  %728 = getelementptr inbounds i8, ptr %717, i64 704
  %729 = load ptr, ptr %728, align 8, !tbaa !139
  call void @_ZN10ImDrawList5ClearEv(ptr noundef nonnull align 8 dereferenceable(168) %729)
  %730 = getelementptr inbounds i8, ptr %63, i64 5584
  %731 = load i8, ptr %730, align 8, !tbaa !140, !range !55, !noundef !56
  %732 = zext nneg i8 %731 to i32
  %733 = getelementptr inbounds i8, ptr %63, i64 5585
  %734 = load i8, ptr %733, align 1, !tbaa !141, !range !55, !noundef !56
  %735 = trunc nuw i8 %734 to i1
  %736 = select i1 %735, i32 2, i32 0
  %737 = or disjoint i32 %736, %732
  %738 = load ptr, ptr %4, align 8, !tbaa !5
  %739 = getelementptr inbounds i8, ptr %738, i64 704
  %740 = load ptr, ptr %739, align 8, !tbaa !139
  %741 = getelementptr inbounds i8, ptr %740, i64 48
  store i32 %737, ptr %741, align 8, !tbaa !142
  %742 = getelementptr inbounds i8, ptr %63, i64 6280
  %743 = load ptr, ptr %742, align 8, !tbaa !143
  %744 = getelementptr inbounds i8, ptr %743, i64 88
  %745 = load ptr, ptr %744, align 8, !tbaa !144
  %746 = getelementptr inbounds i8, ptr %745, i64 8
  %747 = load ptr, ptr %746, align 8, !tbaa !145
  call void @_ZN10ImDrawList13PushTextureIDEPv(ptr noundef nonnull align 8 dereferenceable(168) %740, ptr noundef %747)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #14
  %748 = call { <2 x float>, <2 x float> } @_ZL15GetViewportRectv()
  %749 = extractvalue { <2 x float>, <2 x float> } %748, 0
  store <2 x float> %749, ptr %26, align 8
  %750 = getelementptr inbounds i8, ptr %26, i64 8
  %751 = extractvalue { <2 x float>, <2 x float> } %748, 1
  store <2 x float> %751, ptr %750, align 8
  %752 = and i32 %.1, 83886080
  %brmerge452.demorgan = icmp ne i32 %752, 16777216
  %brmerge453 = or i1 %brmerge452.demorgan, %265
  br i1 %brmerge453, label %756, label %753

753:                                              ; preds = %726
  %754 = getelementptr inbounds i8, ptr %121, i64 528
  %755 = getelementptr inbounds i8, ptr %121, i64 536
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %754, ptr noundef nonnull align 4 dereferenceable(8) %755, i1 noundef zeroext true)
  br label %757

756:                                              ; preds = %726
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %750, i1 noundef zeroext true)
  br label %757

757:                                              ; preds = %756, %753
  %758 = and i32 %.1, 134217728
  %.not408 = icmp eq i32 %758, 0
  br i1 %.not408, label %768, label %759

759:                                              ; preds = %757
  %760 = load ptr, ptr %4, align 8, !tbaa !5
  %761 = call noundef ptr @_ZN5ImGui22GetFrontMostPopupModalEv()
  %762 = icmp eq ptr %760, %761
  br i1 %762, label %763, label %768

763:                                              ; preds = %759
  %764 = load ptr, ptr %4, align 8, !tbaa !5
  %765 = getelementptr inbounds i8, ptr %764, i64 172
  %766 = load i32, ptr %765, align 4, !tbaa !72
  %767 = icmp slt i32 %766, 1
  br label %768

768:                                              ; preds = %763, %759, %757
  %769 = phi i1 [ false, %759 ], [ false, %757 ], [ %767, %763 ]
  %770 = getelementptr inbounds i8, ptr %63, i64 6936
  %771 = load ptr, ptr %770, align 8, !tbaa !149
  %.not409 = icmp eq ptr %771, null
  br i1 %.not409, label %777, label %772

772:                                              ; preds = %768
  %773 = load ptr, ptr %4, align 8, !tbaa !5
  %774 = getelementptr inbounds i8, ptr %771, i64 888
  %775 = load ptr, ptr %774, align 8, !tbaa !150
  %776 = icmp eq ptr %773, %775
  br label %777

777:                                              ; preds = %772, %768
  %778 = phi i1 [ false, %768 ], [ %776, %772 ]
  %brmerge454 = select i1 %769, i1 true, i1 %778
  br i1 %brmerge454, label %779, label %786

779:                                              ; preds = %777
  %.mux = select i1 %769, i32 42, i32 41
  %780 = getelementptr inbounds i8, ptr %63, i64 7248
  %781 = load float, ptr %780, align 8, !tbaa !151
  %782 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %.mux, float noundef %781)
  %783 = load ptr, ptr %4, align 8, !tbaa !5
  %784 = getelementptr inbounds i8, ptr %783, i64 704
  %785 = load ptr, ptr %784, align 8, !tbaa !139
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %785, ptr noundef nonnull align 4 dereferenceable(8) %26, ptr noundef nonnull align 4 dereferenceable(8) %750, i32 noundef %782, float noundef 0.000000e+00, i32 noundef 15)
  br label %786

786:                                              ; preds = %777, %779
  %.pre514 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %778, label %787, label %808

787:                                              ; preds = %786
  %788 = load ptr, ptr %770, align 8, !tbaa !149
  %789 = icmp eq ptr %.pre514, %788
  br i1 %789, label %790, label %808

790:                                              ; preds = %787
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #14
  %791 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %.pre514)
  %792 = extractvalue { <2 x float>, <2 x float> } %791, 0
  store <2 x float> %792, ptr %27, align 8
  %793 = getelementptr inbounds i8, ptr %27, i64 8
  %794 = extractvalue { <2 x float>, <2 x float> } %791, 1
  store <2 x float> %794, ptr %793, align 8
  %795 = load float, ptr %701, align 8, !tbaa !138
  call void @_ZN6ImRect6ExpandEf(ptr noundef nonnull align 4 dereferenceable(16) %27, float noundef %795)
  %796 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %27, ptr noundef nonnull align 4 dereferenceable(16) %26)
  br i1 %796, label %807, label %797

797:                                              ; preds = %790
  %798 = load ptr, ptr %4, align 8, !tbaa !5
  %799 = getelementptr inbounds i8, ptr %798, i64 704
  %800 = load ptr, ptr %799, align 8, !tbaa !139
  %801 = getelementptr inbounds i8, ptr %63, i64 6956
  %802 = load float, ptr %801, align 4, !tbaa !152
  %803 = fmul float %802, 2.500000e-01
  %804 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 40, float noundef %803)
  %805 = getelementptr inbounds i8, ptr %63, i64 5452
  %806 = load float, ptr %805, align 4, !tbaa !153
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %800, ptr noundef nonnull align 4 dereferenceable(8) %27, ptr noundef nonnull align 4 dereferenceable(8) %793, i32 noundef %804, float noundef %806, i32 noundef 15)
  br label %807

807:                                              ; preds = %797, %790
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #14
  %.pre513 = load ptr, ptr %4, align 8, !tbaa !5
  br label %808

808:                                              ; preds = %807, %787, %786
  %809 = phi ptr [ %.pre513, %807 ], [ %.pre514, %787 ], [ %.pre514, %786 ]
  %810 = getelementptr inbounds i8, ptr %809, i64 72
  %811 = load float, ptr %810, align 8, !tbaa !130
  %812 = getelementptr inbounds i8, ptr %809, i64 76
  %813 = load float, ptr %812, align 4, !tbaa !102
  %814 = getelementptr inbounds i8, ptr %63, i64 6928
  %815 = load ptr, ptr %814, align 8, !tbaa !154
  %.not410 = icmp eq ptr %815, null
  br i1 %.not410, label %816, label %819

816:                                              ; preds = %808
  %817 = getelementptr inbounds i8, ptr %63, i64 6864
  %818 = load ptr, ptr %817, align 8, !tbaa !155
  br label %819

819:                                              ; preds = %808, %816
  %820 = phi ptr [ %818, %816 ], [ %815, %808 ]
  br i1 %.0340, label %828, label %821

821:                                              ; preds = %819
  %.not411 = icmp eq ptr %820, null
  br i1 %.not411, label %828, label %822

822:                                              ; preds = %821
  %823 = getelementptr inbounds i8, ptr %809, i64 896
  %824 = load ptr, ptr %823, align 8, !tbaa !156
  %825 = getelementptr inbounds i8, ptr %820, i64 896
  %826 = load ptr, ptr %825, align 8, !tbaa !156
  %827 = icmp eq ptr %824, %826
  br label %828

828:                                              ; preds = %821, %822, %819
  %829 = phi i1 [ true, %819 ], [ false, %821 ], [ %827, %822 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #14
  %830 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(984) %809)
  %831 = extractvalue { <2 x float>, <2 x float> } %830, 0
  store <2 x float> %831, ptr %28, align 8
  %832 = getelementptr inbounds i8, ptr %28, i64 8
  %833 = extractvalue { <2 x float>, <2 x float> } %830, 1
  store <2 x float> %833, ptr %832, align 8
  %834 = load ptr, ptr %4, align 8, !tbaa !5
  %835 = getelementptr inbounds i8, ptr %834, i64 125
  %836 = load i8, ptr %835, align 1, !tbaa !114, !range !55, !noundef !56
  %837 = trunc nuw i8 %836 to i1
  br i1 %837, label %838, label %849

838:                                              ; preds = %828
  %839 = getelementptr inbounds i8, ptr %63, i64 5504
  %840 = load float, ptr %839, align 4, !tbaa !157
  %841 = getelementptr inbounds i8, ptr %834, i64 76
  %842 = load float, ptr %841, align 4, !tbaa !102
  store float %842, ptr %839, align 8, !tbaa !158
  br i1 %829, label %843, label %.thread474

843:                                              ; preds = %838
  %844 = getelementptr inbounds i8, ptr %63, i64 6974
  %845 = load i8, ptr %844, align 2, !tbaa !159, !range !55, !noundef !56
  %846 = trunc nuw i8 %845 to i1
  %spec.select482 = select i1 %846, i32 12, i32 11
  br label %.thread474

.thread474:                                       ; preds = %843, %838
  %847 = phi i32 [ 12, %838 ], [ %spec.select482, %843 ]
  %848 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %847, float noundef 1.000000e+00)
  %.sroa.028.0.copyload = load <2 x float>, ptr %28, align 8
  %.sroa.027.0.copyload = load <2 x float>, ptr %832, align 8
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.028.0.copyload, <2 x float> %.sroa.027.0.copyload, i32 noundef %848, i1 noundef zeroext true, float noundef %811)
  store float %840, ptr %839, align 8, !tbaa !158
  br label %1025

849:                                              ; preds = %828
  %850 = and i32 %.1, 128
  %.not412 = icmp ne i32 %850, 0
  br i1 %.not412, label %.thread552, label %853

.thread552:                                       ; preds = %849
  %851 = getelementptr inbounds i8, ptr %63, i64 6768
  store i32 0, ptr %851, align 8, !tbaa !160
  %852 = select i1 %829, i32 11, i32 10
  br label %881

853:                                              ; preds = %849
  %854 = call noundef i32 @_ZL28GetWindowBgColorIdxFromFlagsi(i32 noundef %.1)
  %855 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %854, float noundef 1.000000e+00)
  %856 = getelementptr inbounds i8, ptr %63, i64 6768
  %857 = load i32, ptr %856, align 8, !tbaa !160
  %.not413 = icmp eq i32 %857, 0
  br i1 %.not413, label %867, label %858

858:                                              ; preds = %853
  %859 = and i32 %855, 16777215
  %860 = getelementptr inbounds i8, ptr %63, i64 6840
  %861 = load float, ptr %860, align 8, !tbaa !161
  %862 = call noundef float @_ZL10ImSaturatef(float noundef %861)
  %863 = call float @llvm.fmuladd.f32(float %862, float 2.550000e+02, float 5.000000e-01)
  %864 = fptosi float %863 to i32
  %865 = shl i32 %864, 24
  %866 = or disjoint i32 %865, %859
  br label %867

867:                                              ; preds = %853, %858
  %.0342 = phi i32 [ %866, %858 ], [ %855, %853 ]
  %868 = load ptr, ptr %4, align 8, !tbaa !5
  %869 = getelementptr inbounds i8, ptr %868, i64 704
  %870 = load ptr, ptr %869, align 8, !tbaa !139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  %871 = getelementptr inbounds i8, ptr %868, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #14
  %872 = call noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %868)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef 0.000000e+00, float noundef %872)
  %873 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %871, ptr noundef nonnull align 4 dereferenceable(8) %30)
  store <2 x float> %873, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  %874 = load ptr, ptr %4, align 8, !tbaa !5
  %875 = getelementptr inbounds i8, ptr %874, i64 16
  %876 = getelementptr inbounds i8, ptr %874, i64 24
  %877 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %875, ptr noundef nonnull align 4 dereferenceable(8) %876)
  store <2 x float> %877, ptr %31, align 8
  %878 = select i1 %.not393, i32 12, i32 15
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %870, ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %31, i32 noundef %.0342, float noundef %811, i32 noundef %878)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #14
  %.pre515 = load ptr, ptr %4, align 8, !tbaa !5
  %.phi.trans.insert516 = getelementptr inbounds i8, ptr %.pre515, i64 125
  %.pre517 = load i8, ptr %.phi.trans.insert516, align 1, !tbaa !114, !range !55
  %.pre517.fr = freeze i8 %.pre517
  %.pre542 = trunc i8 %.pre517.fr to i1
  %879 = getelementptr inbounds i8, ptr %63, i64 6768
  store i32 0, ptr %879, align 8, !tbaa !160
  %880 = select i1 %829, i32 11, i32 10
  %spec.select559 = select i1 %.pre542, i32 12, i32 %880
  br label %881

881:                                              ; preds = %867, %.thread552
  %882 = phi i32 [ %852, %.thread552 ], [ %spec.select559, %867 ]
  %883 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %882, float noundef 1.000000e+00)
  br i1 %.not393, label %884, label %888

884:                                              ; preds = %881
  %885 = load ptr, ptr %4, align 8, !tbaa !5
  %886 = getelementptr inbounds i8, ptr %885, i64 704
  %887 = load ptr, ptr %886, align 8, !tbaa !139
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %887, ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %832, i32 noundef %883, float noundef %811, i32 noundef 3)
  br label %888

888:                                              ; preds = %884, %881
  %889 = and i32 %.1, 1024
  %.not414 = icmp eq i32 %889, 0
  %.pre519 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %.not414, label %925, label %890

890:                                              ; preds = %888
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #14
  %891 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow11MenuBarRectEv(ptr noundef nonnull align 8 dereferenceable(984) %.pre519)
  %892 = extractvalue { <2 x float>, <2 x float> } %891, 0
  store <2 x float> %892, ptr %32, align 8
  %893 = getelementptr inbounds i8, ptr %32, i64 8
  %894 = extractvalue { <2 x float>, <2 x float> } %891, 1
  store <2 x float> %894, ptr %893, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #14
  %895 = load ptr, ptr %4, align 8, !tbaa !5
  %896 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %895)
  %897 = extractvalue { <2 x float>, <2 x float> } %896, 0
  store <2 x float> %897, ptr %33, align 8
  %898 = getelementptr inbounds i8, ptr %33, i64 8
  %899 = extractvalue { <2 x float>, <2 x float> } %896, 1
  store <2 x float> %899, ptr %898, align 8
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %32, ptr noundef nonnull align 4 dereferenceable(16) %33)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #14
  %900 = load ptr, ptr %4, align 8, !tbaa !5
  %901 = getelementptr inbounds i8, ptr %900, i64 704
  %902 = load ptr, ptr %901, align 8, !tbaa !139
  %903 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 13, float noundef 1.000000e+00)
  %904 = select i1 %.not393, float 0.000000e+00, float %811
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(168) %902, ptr noundef nonnull align 4 dereferenceable(8) %32, ptr noundef nonnull align 4 dereferenceable(8) %893, i32 noundef %903, float noundef %904, i32 noundef 3)
  %905 = getelementptr inbounds i8, ptr %63, i64 5504
  %906 = load float, ptr %905, align 4, !tbaa !157
  %907 = fcmp ogt float %906, 0.000000e+00
  %.pre518.pre537 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %907, label %908, label %924

908:                                              ; preds = %890
  %909 = getelementptr inbounds i8, ptr %32, i64 12
  %910 = load float, ptr %909, align 4, !tbaa !162
  %911 = getelementptr inbounds i8, ptr %.pre518.pre537, i64 20
  %912 = load float, ptr %911, align 4, !tbaa !163
  %913 = getelementptr inbounds i8, ptr %.pre518.pre537, i64 28
  %914 = load float, ptr %913, align 4, !tbaa !101
  %915 = fadd float %912, %914
  %916 = fcmp olt float %910, %915
  br i1 %916, label %917, label %924

917:                                              ; preds = %908
  %918 = getelementptr inbounds i8, ptr %.pre518.pre537, i64 704
  %919 = load ptr, ptr %918, align 8, !tbaa !139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  %920 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %32)
  store <2 x float> %920, ptr %34, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  %921 = call <2 x float> @_ZNK6ImRect5GetBREv(ptr noundef nonnull align 4 dereferenceable(16) %32)
  store <2 x float> %921, ptr %35, align 8
  %922 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 5, float noundef 1.000000e+00)
  %923 = load float, ptr %905, align 4, !tbaa !157
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(168) %919, ptr noundef nonnull align 4 dereferenceable(8) %34, ptr noundef nonnull align 4 dereferenceable(8) %35, i32 noundef %922, float noundef %923)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  %.pre518.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %924

924:                                              ; preds = %917, %908, %890
  %.pre518 = phi ptr [ %.pre518.pre, %917 ], [ %.pre518.pre537, %908 ], [ %.pre518.pre537, %890 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #14
  br label %925

925:                                              ; preds = %924, %888
  %926 = phi ptr [ %.pre518, %924 ], [ %.pre519, %888 ]
  %927 = getelementptr inbounds i8, ptr %926, i64 120
  %928 = load i8, ptr %927, align 8, !tbaa !122, !range !55, !noundef !56
  %929 = trunc nuw i8 %928 to i1
  br i1 %929, label %930, label %931

930:                                              ; preds = %925
  call void @_ZN5ImGui9ScrollbarEi(i32 noundef 1)
  %.pre520 = load ptr, ptr %4, align 8, !tbaa !5
  br label %931

931:                                              ; preds = %930, %925
  %932 = phi ptr [ %.pre520, %930 ], [ %926, %925 ]
  %933 = getelementptr inbounds i8, ptr %932, i64 121
  %934 = load i8, ptr %933, align 1, !tbaa !121, !range !55, !noundef !56
  %935 = trunc nuw i8 %934 to i1
  br i1 %935, label %936, label %937

936:                                              ; preds = %931
  call void @_ZN5ImGui9ScrollbarEi(i32 noundef 0)
  br label %937

937:                                              ; preds = %936, %931
  %938 = and i32 %.1, 2
  %.not415 = icmp eq i32 %938, 0
  br i1 %.not415, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %937
  %939 = fadd float %811, %813
  %940 = getelementptr inbounds i8, ptr %36, i64 4
  %wide.trip.count = zext nneg i32 %700 to i64
  br label %941

941:                                              ; preds = %.preheader, %963
  %indvars.iv = phi i64 [ 0, %.preheader ], [ %indvars.iv.next, %963 ]
  %942 = getelementptr inbounds [4 x %struct.ImGuiResizeGripDef], ptr @_ZL15resize_grip_def, i64 0, i64 %indvars.iv
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #14
  %943 = load ptr, ptr %4, align 8, !tbaa !5
  %944 = getelementptr inbounds i8, ptr %943, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #14
  %945 = getelementptr inbounds i8, ptr %943, i64 24
  %946 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %944, ptr noundef nonnull align 4 dereferenceable(8) %945)
  store <2 x float> %946, ptr %37, align 8
  %947 = call <2 x float> @_ZL6ImLerpRK6ImVec2S1_S1_(ptr noundef nonnull align 4 dereferenceable(8) %944, ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %942)
  store <2 x float> %947, ptr %36, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #14
  %948 = load ptr, ptr %4, align 8, !tbaa !5
  %949 = getelementptr inbounds i8, ptr %948, i64 704
  %950 = load ptr, ptr %949, align 8, !tbaa !139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #14
  %951 = getelementptr inbounds i8, ptr %942, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #14
  %952 = and i64 %indvars.iv, 1
  %.not416 = icmp eq i64 %952, 0
  br i1 %.not416, label %954, label %953

953:                                              ; preds = %941
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %40, float noundef %813, float noundef %710)
  br label %955

954:                                              ; preds = %941
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %40, float noundef %710, float noundef %813)
  br label %955

955:                                              ; preds = %954, %953
  %956 = call <2 x float> @_ZmlRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %951, ptr noundef nonnull align 4 dereferenceable(8) %40)
  store <2 x float> %956, ptr %39, align 8
  %957 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %36, ptr noundef nonnull align 4 dereferenceable(8) %39)
  store <2 x float> %957, ptr %38, align 8
  call void @_ZN10ImDrawList10PathLineToERK6ImVec2(ptr noundef nonnull align 8 dereferenceable(168) %950, ptr noundef nonnull align 4 dereferenceable(8) %38)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #14
  %958 = load ptr, ptr %4, align 8, !tbaa !5
  %959 = getelementptr inbounds i8, ptr %958, i64 704
  %960 = load ptr, ptr %959, align 8, !tbaa !139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #14
  br i1 %.not416, label %962, label %961

961:                                              ; preds = %955
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef %710, float noundef %813)
  br label %963

962:                                              ; preds = %955
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef %813, float noundef %710)
  br label %963

963:                                              ; preds = %962, %961
  %964 = call <2 x float> @_ZmlRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %951, ptr noundef nonnull align 4 dereferenceable(8) %43)
  store <2 x float> %964, ptr %42, align 8
  %965 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %36, ptr noundef nonnull align 4 dereferenceable(8) %42)
  store <2 x float> %965, ptr %41, align 8
  call void @_ZN10ImDrawList10PathLineToERK6ImVec2(ptr noundef nonnull align 8 dereferenceable(168) %960, ptr noundef nonnull align 4 dereferenceable(8) %41)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #14
  %966 = load ptr, ptr %4, align 8, !tbaa !5
  %967 = getelementptr inbounds i8, ptr %966, i64 704
  %968 = load ptr, ptr %967, align 8, !tbaa !139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #14
  %969 = load float, ptr %36, align 8, !tbaa !115
  %970 = load float, ptr %951, align 8, !tbaa !164
  %971 = call float @llvm.fmuladd.f32(float %970, float %939, float %969)
  %972 = load float, ptr %940, align 4, !tbaa !116
  %973 = getelementptr inbounds i8, ptr %942, i64 12
  %974 = load float, ptr %973, align 4, !tbaa !166
  %975 = call float @llvm.fmuladd.f32(float %974, float %939, float %972)
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %971, float noundef %975)
  %976 = getelementptr inbounds i8, ptr %942, i64 16
  %977 = load i32, ptr %976, align 8, !tbaa !167
  %978 = getelementptr inbounds i8, ptr %942, i64 20
  %979 = load i32, ptr %978, align 4, !tbaa !168
  call void @_ZN10ImDrawList13PathArcToFastERK6ImVec2fii(ptr noundef nonnull align 8 dereferenceable(168) %968, ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef %811, i32 noundef %977, i32 noundef %979)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #14
  %980 = load ptr, ptr %4, align 8, !tbaa !5
  %981 = getelementptr inbounds i8, ptr %980, i64 704
  %982 = load ptr, ptr %981, align 8, !tbaa !139
  %983 = getelementptr inbounds [4 x i32], ptr %25, i64 0, i64 %indvars.iv
  %984 = load i32, ptr %983, align 4, !tbaa !79
  call void @_ZN10ImDrawList14PathFillConvexEj(ptr noundef nonnull align 8 dereferenceable(168) %982, i32 noundef %984)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #14
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit, label %941, !llvm.loop !169

.loopexit:                                        ; preds = %963, %937
  %985 = fcmp ule float %813, 0.000000e+00
  %brmerge457 = or i1 %.not412, %985
  br i1 %brmerge457, label %994, label %986

986:                                              ; preds = %.loopexit
  %987 = load ptr, ptr %4, align 8, !tbaa !5
  %988 = getelementptr inbounds i8, ptr %987, i64 704
  %989 = load ptr, ptr %988, align 8, !tbaa !139
  %990 = getelementptr inbounds i8, ptr %987, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #14
  %991 = getelementptr inbounds i8, ptr %987, i64 24
  %992 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %990, ptr noundef nonnull align 4 dereferenceable(8) %991)
  store <2 x float> %992, ptr %45, align 8
  %993 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 5, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(168) %989, ptr noundef nonnull align 4 dereferenceable(8) %990, ptr noundef nonnull align 4 dereferenceable(8) %45, i32 noundef %993, float noundef %811, i32 noundef 15, float noundef %813)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #14
  br label %994

994:                                              ; preds = %.loopexit, %986
  %995 = load i32, ptr %24, align 4, !tbaa !79
  %.not417 = icmp eq i32 %995, -1
  br i1 %.not417, label %1007, label %996

996:                                              ; preds = %994
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #14
  %997 = load ptr, ptr %4, align 8, !tbaa !5
  %998 = call { <2 x float>, <2 x float> } @_ZL19GetResizeBorderRectP11ImGuiWindowiff(ptr noundef %997, i32 noundef %995, float noundef %710, float noundef 0.000000e+00)
  %999 = extractvalue { <2 x float>, <2 x float> } %998, 0
  store <2 x float> %999, ptr %46, align 8
  %1000 = getelementptr inbounds i8, ptr %46, i64 8
  %1001 = extractvalue { <2 x float>, <2 x float> } %998, 1
  store <2 x float> %1001, ptr %1000, align 8
  %1002 = load ptr, ptr %4, align 8, !tbaa !5
  %1003 = getelementptr inbounds i8, ptr %1002, i64 704
  %1004 = load ptr, ptr %1003, align 8, !tbaa !139
  %1005 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 29, float noundef 1.000000e+00)
  %1006 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 1.000000e+00, float noundef %813)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(168) %1004, ptr noundef nonnull align 4 dereferenceable(8) %46, ptr noundef nonnull align 4 dereferenceable(8) %1000, i32 noundef %1005, float noundef %1006)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #14
  br label %1007

1007:                                             ; preds = %996, %994
  %1008 = getelementptr inbounds i8, ptr %63, i64 5504
  %1009 = load float, ptr %1008, align 4, !tbaa !157
  %1010 = fcmp ogt float %1009, 0.000000e+00
  %brmerge459.not = and i1 %.not393, %1010
  br i1 %brmerge459.not, label %1011, label %1025

1011:                                             ; preds = %1007
  %1012 = load ptr, ptr %4, align 8, !tbaa !5
  %1013 = getelementptr inbounds i8, ptr %1012, i64 704
  %1014 = load ptr, ptr %1013, align 8, !tbaa !139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  %1015 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %28)
  store <2 x float> %1015, ptr %48, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #14
  %1016 = getelementptr inbounds i8, ptr %63, i64 5456
  %1017 = load float, ptr %1016, align 4, !tbaa !171
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %49, float noundef %1017, float noundef -1.000000e+00)
  %1018 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %48, ptr noundef nonnull align 4 dereferenceable(8) %49)
  store <2 x float> %1018, ptr %47, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  %1019 = call <2 x float> @_ZNK6ImRect5GetBREv(ptr noundef nonnull align 4 dereferenceable(16) %28)
  store <2 x float> %1019, ptr %51, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  %1020 = load float, ptr %1016, align 4, !tbaa !171
  %1021 = fneg float %1020
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef %1021, float noundef -1.000000e+00)
  %1022 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %51, ptr noundef nonnull align 4 dereferenceable(8) %52)
  store <2 x float> %1022, ptr %50, align 8
  %1023 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 5, float noundef 1.000000e+00)
  %1024 = load float, ptr %1008, align 4, !tbaa !157
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(168) %1014, ptr noundef nonnull align 4 dereferenceable(8) %47, ptr noundef nonnull align 4 dereferenceable(8) %50, i32 noundef %1023, float noundef %1024)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #14
  br label %1025

1025:                                             ; preds = %1011, %1007, %.thread474
  %1026 = load ptr, ptr %770, align 8, !tbaa !149
  %1027 = load ptr, ptr %4, align 8, !tbaa !5
  %1028 = icmp eq ptr %1026, %1027
  br i1 %1028, label %1029, label %1055

1029:                                             ; preds = %1025
  %1030 = getelementptr inbounds i8, ptr %1027, i64 72
  %1031 = load float, ptr %1030, align 8, !tbaa !130
  %1032 = getelementptr inbounds i8, ptr %63, i64 5452
  %1033 = load float, ptr %1032, align 4, !tbaa !153
  %1034 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1031, float noundef %1033)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #14
  %1035 = load ptr, ptr %4, align 8, !tbaa !5
  %1036 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %1035)
  %1037 = extractvalue { <2 x float>, <2 x float> } %1036, 0
  store <2 x float> %1037, ptr %53, align 8
  %1038 = getelementptr inbounds i8, ptr %53, i64 8
  %1039 = extractvalue { <2 x float>, <2 x float> } %1036, 1
  store <2 x float> %1039, ptr %1038, align 8
  %1040 = load float, ptr %701, align 8, !tbaa !138
  call void @_ZN6ImRect6ExpandEf(ptr noundef nonnull align 4 dereferenceable(16) %53, float noundef %1040)
  %1041 = call noundef zeroext i1 @_ZNK6ImRect8ContainsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %53, ptr noundef nonnull align 4 dereferenceable(16) %26)
  br i1 %1041, label %1042, label %._crit_edge521

._crit_edge521:                                   ; preds = %1029
  %.pre522 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1048

1042:                                             ; preds = %1029
  %1043 = load float, ptr %701, align 8, !tbaa !138
  %1044 = fsub float -1.000000e+00, %1043
  call void @_ZN6ImRect6ExpandEf(ptr noundef nonnull align 4 dereferenceable(16) %53, float noundef %1044)
  %1045 = load ptr, ptr %4, align 8, !tbaa !5
  %1046 = getelementptr inbounds i8, ptr %1045, i64 72
  %1047 = load float, ptr %1046, align 8, !tbaa !130
  br label %1048

1048:                                             ; preds = %._crit_edge521, %1042
  %1049 = phi ptr [ %1045, %1042 ], [ %.pre522, %._crit_edge521 ]
  %.0341 = phi float [ %1047, %1042 ], [ %1034, %._crit_edge521 ]
  %1050 = getelementptr inbounds i8, ptr %1049, i64 704
  %1051 = load ptr, ptr %1050, align 8, !tbaa !139
  %1052 = getelementptr inbounds i8, ptr %63, i64 6956
  %1053 = load float, ptr %1052, align 4, !tbaa !152
  %1054 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 40, float noundef %1053)
  call void @_ZN10ImDrawList7AddRectERK6ImVec2S2_jfif(ptr noundef nonnull align 8 dereferenceable(168) %1051, ptr noundef nonnull align 4 dereferenceable(8) %53, ptr noundef nonnull align 4 dereferenceable(8) %1038, i32 noundef %1054, float noundef %.0341, i32 noundef -1, float noundef 3.000000e+00)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #14
  %.pre523 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1055

1055:                                             ; preds = %1048, %1025
  %1056 = phi ptr [ %.pre523, %1048 ], [ %1027, %1025 ]
  %1057 = getelementptr inbounds i8, ptr %1056, i64 32
  %1058 = getelementptr inbounds i8, ptr %1056, i64 40
  %1059 = load i64, ptr %1057, align 8
  store i64 %1059, ptr %1058, align 8
  %1060 = getelementptr inbounds i8, ptr %1056, i64 16
  %1061 = load float, ptr %1060, align 8, !tbaa !172
  %1062 = getelementptr inbounds i8, ptr %1056, i64 88
  %1063 = load float, ptr %1062, align 8, !tbaa !173
  %1064 = fsub float %1061, %1063
  %1065 = getelementptr inbounds i8, ptr %1056, i64 64
  %1066 = load float, ptr %1065, align 8, !tbaa !174
  %1067 = fadd float %1064, %1066
  %1068 = getelementptr inbounds i8, ptr %1056, i64 592
  store float %1067, ptr %1068, align 8, !tbaa !175
  %1069 = getelementptr inbounds i8, ptr %1056, i64 20
  %1070 = load float, ptr %1069, align 4, !tbaa !163
  %1071 = getelementptr inbounds i8, ptr %1056, i64 92
  %1072 = load float, ptr %1071, align 4, !tbaa !176
  %1073 = fsub float %1070, %1072
  %1074 = getelementptr inbounds i8, ptr %1056, i64 68
  %1075 = load float, ptr %1074, align 4, !tbaa !177
  %1076 = fadd float %1073, %1075
  %1077 = call noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %1056)
  %1078 = fadd float %1076, %1077
  %1079 = load ptr, ptr %4, align 8, !tbaa !5
  %1080 = call noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %1079)
  %1081 = fadd float %1078, %1080
  %1082 = load ptr, ptr %4, align 8, !tbaa !5
  %1083 = getelementptr inbounds i8, ptr %1082, i64 596
  store float %1081, ptr %1083, align 4, !tbaa !178
  %1084 = getelementptr inbounds i8, ptr %1082, i64 16
  %1085 = load float, ptr %1084, align 8, !tbaa !172
  %1086 = getelementptr inbounds i8, ptr %1082, i64 88
  %1087 = load float, ptr %1086, align 8, !tbaa !173
  %1088 = fsub float %1085, %1087
  %1089 = getelementptr inbounds i8, ptr %1082, i64 64
  %1090 = load float, ptr %1089, align 8, !tbaa !174
  %1091 = fsub float %1088, %1090
  %1092 = getelementptr inbounds i8, ptr %1082, i64 56
  %1093 = load float, ptr %1092, align 8, !tbaa !179
  %1094 = fcmp une float %1093, 0.000000e+00
  br i1 %1094, label %1101, label %1095

1095:                                             ; preds = %1055
  %1096 = getelementptr inbounds i8, ptr %1082, i64 24
  %1097 = load float, ptr %1096, align 8, !tbaa !99
  %1098 = getelementptr inbounds i8, ptr %1082, i64 112
  %1099 = load float, ptr %1098, align 8, !tbaa !180
  %1100 = fsub float %1097, %1099
  br label %1101

1101:                                             ; preds = %1055, %1095
  %1102 = phi float [ %1100, %1095 ], [ %1093, %1055 ]
  %1103 = fadd float %1091, %1102
  %1104 = getelementptr inbounds i8, ptr %1082, i64 600
  store float %1103, ptr %1104, align 8, !tbaa !181
  %1105 = getelementptr inbounds i8, ptr %1082, i64 20
  %1106 = load float, ptr %1105, align 4, !tbaa !163
  %1107 = getelementptr inbounds i8, ptr %1082, i64 92
  %1108 = load float, ptr %1107, align 4, !tbaa !176
  %1109 = fsub float %1106, %1108
  %1110 = getelementptr inbounds i8, ptr %1082, i64 68
  %1111 = load float, ptr %1110, align 4, !tbaa !177
  %1112 = fsub float %1109, %1111
  %1113 = getelementptr inbounds i8, ptr %1082, i64 60
  %1114 = load float, ptr %1113, align 4, !tbaa !86
  %1115 = fcmp une float %1114, 0.000000e+00
  br i1 %1115, label %1122, label %1116

1116:                                             ; preds = %1101
  %1117 = getelementptr inbounds i8, ptr %1082, i64 28
  %1118 = load float, ptr %1117, align 4, !tbaa !101
  %1119 = getelementptr inbounds i8, ptr %1082, i64 116
  %1120 = load float, ptr %1119, align 4, !tbaa !182
  %1121 = fsub float %1118, %1120
  br label %1122

1122:                                             ; preds = %1101, %1116
  %1123 = phi float [ %1121, %1116 ], [ %1114, %1101 ]
  %1124 = fadd float %1112, %1123
  %1125 = getelementptr inbounds i8, ptr %1082, i64 604
  store float %1124, ptr %1125, align 4, !tbaa !183
  %1126 = fadd float %1090, 0.000000e+00
  %1127 = fsub float %1126, %1087
  %1128 = getelementptr inbounds i8, ptr %1082, i64 488
  store float %1127, ptr %1128, align 8, !tbaa !184
  %1129 = getelementptr inbounds i8, ptr %1082, i64 492
  store <2 x float> zeroinitializer, ptr %1129, align 4, !tbaa !96
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  %1130 = call noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %1082)
  %1131 = load ptr, ptr %4, align 8, !tbaa !5
  %1132 = call noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %1131)
  %1133 = fadd float %1130, %1132
  %1134 = load ptr, ptr %4, align 8, !tbaa !5
  %1135 = getelementptr inbounds i8, ptr %1134, i64 68
  %1136 = load float, ptr %1135, align 4, !tbaa !177
  %1137 = fadd float %1133, %1136
  %1138 = getelementptr inbounds i8, ptr %1134, i64 92
  %1139 = load float, ptr %1138, align 4, !tbaa !176
  %1140 = fsub float %1137, %1139
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %54, float noundef %1127, float noundef %1140)
  %1141 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %1084, ptr noundef nonnull align 4 dereferenceable(8) %54)
  %1142 = load ptr, ptr %4, align 8, !tbaa !5
  %1143 = getelementptr inbounds i8, ptr %1142, i64 224
  store <2 x float> %1141, ptr %1143, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #14
  %1144 = getelementptr inbounds i8, ptr %1142, i64 208
  store <2 x float> %1141, ptr %1144, align 8
  %1145 = getelementptr inbounds i8, ptr %1142, i64 216
  store <2 x float> %1141, ptr %1145, align 8
  %1146 = getelementptr inbounds i8, ptr %1142, i64 232
  store <2 x float> %1141, ptr %1146, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef 0.000000e+00, float noundef 0.000000e+00)
  %1147 = load ptr, ptr %4, align 8, !tbaa !5
  %1148 = getelementptr inbounds i8, ptr %1147, i64 252
  %1149 = load i64, ptr %55, align 8
  store i64 %1149, ptr %1148, align 4
  %1150 = getelementptr inbounds i8, ptr %1147, i64 240
  store i64 %1149, ptr %1150, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  %1151 = getelementptr inbounds i8, ptr %1147, i64 260
  store float 0.000000e+00, ptr %1151, align 4, !tbaa !185
  %1152 = getelementptr inbounds i8, ptr %1147, i64 248
  store float 0.000000e+00, ptr %1152, align 8, !tbaa !186
  %1153 = getelementptr inbounds i8, ptr %1147, i64 316
  store i8 0, ptr %1153, align 4, !tbaa !187
  %1154 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %1155 = fcmp ogt float %1154, 0.000000e+00
  %1156 = load ptr, ptr %4, align 8, !tbaa !5
  %1157 = getelementptr inbounds i8, ptr %1156, i64 317
  %1158 = zext i1 %1155 to i8
  store i8 %1158, ptr %1157, align 1, !tbaa !188
  %1159 = getelementptr inbounds i8, ptr %1156, i64 332
  %1160 = load i32, ptr %1159, align 4, !tbaa !189
  %1161 = getelementptr inbounds i8, ptr %1156, i64 328
  store i32 %1160, ptr %1161, align 8, !tbaa !190
  store i32 0, ptr %1159, align 4, !tbaa !189
  %1162 = getelementptr inbounds i8, ptr %1156, i64 336
  store i8 0, ptr %1162, align 8, !tbaa !191
  %1163 = getelementptr inbounds i8, ptr %1156, i64 212
  %1164 = load float, ptr %1163, align 4, !tbaa !192
  %1165 = fadd float %1164, -9.999000e+03
  %1166 = getelementptr inbounds i8, ptr %1156, i64 264
  store float %1165, ptr %1166, align 8, !tbaa !193
  %1167 = getelementptr inbounds i8, ptr %1156, i64 352
  call void @_ZN8ImVectorIP11ImGuiWindowE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1167, i32 noundef 0)
  %1168 = load ptr, ptr %4, align 8, !tbaa !5
  %1169 = getelementptr inbounds i8, ptr %1168, i64 376
  store i32 0, ptr %1169, align 8, !tbaa !194
  br i1 %122, label %.critedge461, label %1170

1170:                                             ; preds = %1122
  %1171 = getelementptr inbounds i8, ptr %121, i64 376
  %1172 = load i32, ptr %1171, align 8, !tbaa !194
  %1173 = getelementptr inbounds i8, ptr %121, i64 384
  %1174 = load i32, ptr %1173, align 8, !tbaa !195
  br label %.critedge461

.critedge461:                                     ; preds = %1122, %1170
  %.sink492 = phi i32 [ %1172, %1170 ], [ 0, %1122 ]
  %1175 = phi i32 [ %1174, %1170 ], [ 0, %1122 ]
  %1176 = getelementptr inbounds i8, ptr %1168, i64 380
  store i32 %.sink492, ptr %1176, align 4
  %1177 = getelementptr inbounds i8, ptr %1168, i64 384
  store i32 %1175, ptr %1177, align 8, !tbaa !195
  %1178 = getelementptr inbounds i8, ptr %1168, i64 612
  %1179 = load float, ptr %1178, align 4, !tbaa !196
  %1180 = getelementptr inbounds i8, ptr %1168, i64 388
  store float %1179, ptr %1180, align 4, !tbaa !197
  %1181 = getelementptr inbounds i8, ptr %1168, i64 392
  store float -1.000000e+00, ptr %1181, align 8, !tbaa !198
  %1182 = getelementptr inbounds i8, ptr %1168, i64 400
  call void @_ZN8ImVectorIiE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1182, i32 noundef 0)
  %1183 = load ptr, ptr %4, align 8, !tbaa !5
  %1184 = getelementptr inbounds i8, ptr %1183, i64 416
  call void @_ZN8ImVectorIfE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1184, i32 noundef 0)
  %1185 = load ptr, ptr %4, align 8, !tbaa !5
  %1186 = getelementptr inbounds i8, ptr %1185, i64 432
  call void @_ZN8ImVectorIfE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1186, i32 noundef 0)
  %1187 = load ptr, ptr %4, align 8, !tbaa !5
  %1188 = getelementptr inbounds i8, ptr %1187, i64 504
  store ptr null, ptr %1188, align 8, !tbaa !199
  %1189 = getelementptr inbounds i8, ptr %1187, i64 268
  store i32 0, ptr %1189, align 4, !tbaa !200
  %1190 = getelementptr inbounds i8, ptr %1187, i64 272
  store i32 0, ptr %1190, align 8, !tbaa !201
  %1191 = getelementptr inbounds i8, ptr %1187, i64 664
  %1192 = getelementptr inbounds i8, ptr %1187, i64 368
  store ptr %1191, ptr %1192, align 8, !tbaa !202
  %1193 = getelementptr inbounds i8, ptr %1187, i64 448
  call void @_ZN8ImVectorI14ImGuiGroupDataE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1193, i32 noundef 0)
  %1194 = load ptr, ptr %4, align 8, !tbaa !5
  %1195 = getelementptr inbounds i8, ptr %1194, i64 616
  %1196 = load float, ptr %335, align 4, !tbaa !104
  call void @_ZN16ImGuiMenuColumns6UpdateEifb(ptr noundef nonnull align 4 dereferenceable(48) %1195, i32 noundef 3, float noundef %1196, i1 noundef zeroext %.0335.in)
  %.pre525 = load ptr, ptr %4, align 8, !tbaa !5
  br i1 %124, label %1197, label %1204

1197:                                             ; preds = %.critedge461
  %1198 = getelementptr inbounds i8, ptr %.pre525, i64 384
  %1199 = load i32, ptr %1198, align 8, !tbaa !195
  %1200 = getelementptr inbounds i8, ptr %121, i64 384
  %1201 = load i32, ptr %1200, align 8, !tbaa !195
  %.not418 = icmp eq i32 %1199, %1201
  br i1 %.not418, label %1204, label %1202

1202:                                             ; preds = %1197
  store i32 %1201, ptr %1198, align 8, !tbaa !195
  %1203 = getelementptr inbounds i8, ptr %.pre525, i64 400
  call void @_ZN8ImVectorIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(16) %1203, ptr noundef nonnull align 4 dereferenceable(4) %1198)
  %.pre524 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1204

1204:                                             ; preds = %1202, %1197, %.critedge461
  %1205 = phi ptr [ %.pre524, %1202 ], [ %.pre525, %1197 ], [ %.pre525, %.critedge461 ]
  %1206 = getelementptr inbounds i8, ptr %1205, i64 148
  %1207 = load i32, ptr %1206, align 4, !tbaa !117
  %1208 = icmp sgt i32 %1207, 0
  br i1 %1208, label %1209, label %1211

1209:                                             ; preds = %1204
  %1210 = add nsw i32 %1207, -1
  store i32 %1210, ptr %1206, align 4, !tbaa !117
  br label %1211

1211:                                             ; preds = %1209, %1204
  %1212 = getelementptr inbounds i8, ptr %1205, i64 152
  %1213 = load i32, ptr %1212, align 8, !tbaa !118
  %1214 = icmp sgt i32 %1213, 0
  br i1 %1214, label %1215, label %1217

1215:                                             ; preds = %1211
  %1216 = add nsw i32 %1213, -1
  store i32 %1216, ptr %1212, align 8, !tbaa !118
  br label %1217

1217:                                             ; preds = %1215, %1211
  br i1 %.0340, label %1218, label %1220

1218:                                             ; preds = %1217
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindow(ptr noundef nonnull %1205)
  %1219 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZN5ImGui13NavInitWindowEP11ImGuiWindowb(ptr noundef %1219, i1 noundef zeroext false)
  %.pre527.pre = load ptr, ptr %4, align 8, !tbaa !5
  br label %1220

1220:                                             ; preds = %1218, %1217
  %.pre527 = phi ptr [ %.pre527.pre, %1218 ], [ %1205, %1217 ]
  br i1 %.not393, label %1221, label %1316

1221:                                             ; preds = %1220
  %1222 = getelementptr inbounds i8, ptr %.pre527, i64 384
  %1223 = load i32, ptr %1222, align 8, !tbaa !195
  %1224 = or i32 %1223, 16
  store i32 %1224, ptr %1222, align 8, !tbaa !195
  %1225 = getelementptr inbounds i8, ptr %.pre527, i64 320
  %1226 = load i32, ptr %1225, align 8, !tbaa !203
  %1227 = add nsw i32 %1226, 1
  store i32 %1227, ptr %1225, align 8, !tbaa !203
  %1228 = getelementptr inbounds i8, ptr %.pre527, i64 324
  %1229 = load i32, ptr %1228, align 4, !tbaa !204
  %1230 = shl i32 %1229, 1
  store i32 %1230, ptr %1228, align 4, !tbaa !204
  br i1 %.not394, label %1231, label %1239

1231:                                             ; preds = %1221
  %1232 = call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(984) %.pre527, ptr noundef nonnull @.str.67, ptr noundef null)
  %1233 = load ptr, ptr %4, align 8, !tbaa !5
  %1234 = getelementptr inbounds i8, ptr %1233, i64 16
  %1235 = call noundef zeroext i1 @_ZN5ImGui14CollapseButtonEjRK6ImVec2(i32 noundef %1232, ptr noundef nonnull align 4 dereferenceable(8) %1234)
  br i1 %1235, label %1236, label %1239

1236:                                             ; preds = %1231
  %1237 = load ptr, ptr %4, align 8, !tbaa !5
  %1238 = getelementptr inbounds i8, ptr %1237, i64 126
  store i8 1, ptr %1238, align 2, !tbaa !113
  br label %1239

1239:                                             ; preds = %1231, %1236, %1221
  br i1 %127, label %1240, label %1260

1240:                                             ; preds = %1239
  %1241 = getelementptr inbounds i8, ptr %63, i64 5496
  %1242 = load float, ptr %1241, align 4, !tbaa !205
  %1243 = load float, ptr %701, align 8, !tbaa !138
  %1244 = fmul float %1243, 5.000000e-01
  %1245 = load ptr, ptr %4, align 8, !tbaa !5
  %1246 = call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(984) %1245, ptr noundef nonnull @.str.68, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %58) #14
  %1247 = load ptr, ptr %4, align 8, !tbaa !5
  %1248 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %1247)
  %1249 = extractvalue { <2 x float>, <2 x float> } %1248, 0
  store <2 x float> %1249, ptr %58, align 8
  %1250 = getelementptr inbounds i8, ptr %58, i64 8
  %1251 = extractvalue { <2 x float>, <2 x float> } %1248, 1
  store <2 x float> %1251, ptr %1250, align 8
  %1252 = call <2 x float> @_ZNK6ImRect5GetTREv(ptr noundef nonnull align 4 dereferenceable(16) %58)
  store <2 x float> %1252, ptr %57, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #14
  %1253 = fneg float %1242
  %1254 = fsub float %1253, %1244
  %1255 = fadd float %1242, %1244
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %59, float noundef %1254, float noundef %1255)
  %1256 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %57, ptr noundef nonnull align 4 dereferenceable(8) %59)
  store <2 x float> %1256, ptr %56, align 8
  %1257 = fadd float %1244, 1.000000e+00
  %1258 = call noundef zeroext i1 @_ZN5ImGui11CloseButtonEjRK6ImVec2f(i32 noundef %1246, ptr noundef nonnull align 4 dereferenceable(8) %56, float noundef %1257)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #14
  br i1 %1258, label %1259, label %1260

1259:                                             ; preds = %1240
  store i8 0, ptr %1, align 1, !tbaa !112
  br label %1260

1260:                                             ; preds = %1240, %1259, %1239
  %1261 = load ptr, ptr %4, align 8, !tbaa !5
  %1262 = getelementptr inbounds i8, ptr %1261, i64 320
  %1263 = load i32, ptr %1262, align 8, !tbaa !203
  %1264 = add nsw i32 %1263, -1
  store i32 %1264, ptr %1262, align 8, !tbaa !203
  %1265 = getelementptr inbounds i8, ptr %1261, i64 324
  %1266 = load i32, ptr %1265, align 4, !tbaa !204
  %1267 = ashr i32 %1266, 1
  store i32 %1267, ptr %1265, align 4, !tbaa !204
  %1268 = getelementptr inbounds i8, ptr %1261, i64 384
  store i32 %1223, ptr %1268, align 8, !tbaa !195
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #14
  %1269 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef nonnull %0, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  store <2 x float> %1269, ptr %60, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %61, ptr noundef nonnull align 8 dereferenceable(16) %28, i64 16, i1 false), !tbaa.struct !95
  %1270 = getelementptr inbounds i8, ptr %63, i64 5492
  %1271 = load float, ptr %1270, align 4, !tbaa !206
  br i1 %.not394, label %1272, label %1278

1272:                                             ; preds = %1260
  %1273 = load float, ptr %701, align 8, !tbaa !138
  %1274 = fadd float %1271, %1273
  %1275 = getelementptr inbounds i8, ptr %63, i64 5516
  %1276 = load float, ptr %1275, align 4, !tbaa !207
  %1277 = fadd float %1274, %1276
  br label %1278

1278:                                             ; preds = %1260, %1272
  %1279 = phi float [ %1277, %1272 ], [ %1271, %1260 ]
  %1280 = icmp eq ptr %1, null
  br i1 %1280, label %1287, label %1281

1281:                                             ; preds = %1278
  %1282 = load float, ptr %701, align 8, !tbaa !138
  %1283 = fadd float %1271, %1282
  %1284 = getelementptr inbounds i8, ptr %63, i64 5516
  %1285 = load float, ptr %1284, align 4, !tbaa !207
  %1286 = fadd float %1283, %1285
  br label %1287

1287:                                             ; preds = %1278, %1281
  %1288 = phi float [ %1286, %1281 ], [ %1271, %1278 ]
  %1289 = getelementptr inbounds i8, ptr %63, i64 5468
  %1290 = load float, ptr %1289, align 4, !tbaa !208
  %1291 = fcmp ogt float %1290, 0.000000e+00
  br i1 %1291, label %1292, label %1294

1292:                                             ; preds = %1287
  %1293 = call noundef float @_ZL6ImLerpIfET_S0_S0_f(float noundef %1288, float noundef %1279, float noundef %1290)
  br label %1294

1294:                                             ; preds = %1292, %1287
  %.0336 = phi float [ %1293, %1292 ], [ %1288, %1287 ]
  %1295 = load float, ptr %61, align 4, !tbaa !209
  %1296 = fadd float %1279, %1295
  store float %1296, ptr %61, align 4, !tbaa !209
  %1297 = getelementptr inbounds i8, ptr %61, i64 8
  %1298 = load float, ptr %1297, align 4, !tbaa !210
  %1299 = fsub float %1298, %.0336
  store float %1299, ptr %1297, align 4, !tbaa !210
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %62) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %62, ptr noundef nonnull align 4 dereferenceable(16) %61, i64 16, i1 false), !tbaa.struct !95
  %1300 = load ptr, ptr %4, align 8, !tbaa !5
  %1301 = getelementptr inbounds i8, ptr %1300, i64 16
  %1302 = load float, ptr %1301, align 8, !tbaa !172
  %1303 = getelementptr inbounds i8, ptr %1300, i64 24
  %1304 = load float, ptr %1303, align 8, !tbaa !99
  %1305 = fadd float %1302, %1304
  br i1 %127, label %1306, label %1309

1306:                                             ; preds = %1294
  %1307 = call noundef float @_ZNK6ImRect9GetHeightEv(ptr noundef nonnull align 4 dereferenceable(16) %28)
  %1308 = fadd float %1307, -3.000000e+00
  br label %1312

1309:                                             ; preds = %1294
  %1310 = getelementptr inbounds i8, ptr %63, i64 5492
  %1311 = load float, ptr %1310, align 4, !tbaa !206
  br label %1312

1312:                                             ; preds = %1309, %1306
  %1313 = phi float [ %1308, %1306 ], [ %1311, %1309 ]
  %1314 = fsub float %1305, %1313
  %1315 = getelementptr inbounds i8, ptr %62, i64 8
  store float %1314, ptr %1315, align 4, !tbaa !210
  call void @_ZN5ImGui17RenderTextClippedERK6ImVec2S2_PKcS4_PS1_S2_PK6ImRect(ptr noundef nonnull align 4 dereferenceable(8) %61, ptr noundef nonnull align 4 dereferenceable(8) %1297, ptr noundef nonnull %0, ptr noundef null, ptr noundef nonnull %60, ptr noundef nonnull align 4 dereferenceable(8) %1289, ptr noundef nonnull %62)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #14
  %.pre526 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1316

1316:                                             ; preds = %1220, %1312
  %1317 = phi ptr [ %.pre527, %1220 ], [ %.pre526, %1312 ]
  %1318 = call { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984) %1317)
  %1319 = extractvalue { <2 x float>, <2 x float> } %1318, 0
  %1320 = extractvalue { <2 x float>, <2 x float> } %1318, 1
  %1321 = load ptr, ptr %4, align 8, !tbaa !5
  %1322 = getelementptr inbounds i8, ptr %1321, i64 544
  store <2 x float> %1319, ptr %1322, align 8
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %1321, i64 552
  store <2 x float> %1320, ptr %.sroa.4.0..sroa_idx, align 8
  %1323 = getelementptr inbounds i8, ptr %1321, i64 528
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %1322, ptr noundef nonnull align 4 dereferenceable(16) %1323)
  %1324 = load float, ptr %28, align 8, !tbaa !209
  %1325 = load ptr, ptr %4, align 8, !tbaa !5
  %1326 = getelementptr inbounds i8, ptr %1325, i64 76
  %1327 = load float, ptr %1326, align 4, !tbaa !102
  %1328 = fadd float %1324, %1327
  %1329 = getelementptr inbounds i8, ptr %1325, i64 560
  store float %1328, ptr %1329, align 8, !tbaa !211
  %1330 = getelementptr inbounds i8, ptr %28, i64 12
  %1331 = load float, ptr %1330, align 4, !tbaa !162
  %1332 = call noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984) %1325)
  %1333 = fadd float %1331, %1332
  %1334 = and i32 %.1, 1025
  %brmerge462.not = icmp eq i32 %1334, 1
  %1335 = getelementptr inbounds i8, ptr %63, i64 5504
  %1336 = load ptr, ptr %4, align 8
  %1337 = getelementptr inbounds i8, ptr %1336, i64 76
  %.in421 = select i1 %brmerge462.not, ptr %1337, ptr %1335
  %1338 = load float, ptr %.in421, align 4, !tbaa !96
  %1339 = fadd float %1333, %1338
  %1340 = getelementptr inbounds i8, ptr %1336, i64 564
  store float %1339, ptr %1340, align 4, !tbaa !212
  %1341 = getelementptr inbounds i8, ptr %1336, i64 16
  %1342 = getelementptr inbounds i8, ptr %1336, i64 24
  %1343 = getelementptr inbounds i8, ptr %1336, i64 112
  %1344 = load float, ptr %1337, align 4, !tbaa !102
  %1345 = getelementptr inbounds i8, ptr %1336, i64 568
  %1346 = load <2 x float>, ptr %1341, align 8, !tbaa !96
  %1347 = load <2 x float>, ptr %1342, align 8, !tbaa !96
  %1348 = fadd <2 x float> %1346, %1347
  %1349 = load <2 x float>, ptr %1343, align 8, !tbaa !96
  %1350 = fsub <2 x float> %1348, %1349
  %1351 = insertelement <2 x float> poison, float %1344, i64 0
  %1352 = shufflevector <2 x float> %1351, <2 x float> poison, <2 x i32> zeroinitializer
  %1353 = fsub <2 x float> %1350, %1352
  store <2 x float> %1353, ptr %1345, align 8, !tbaa !96
  %1354 = getelementptr inbounds i8, ptr %1336, i64 560
  %1355 = load float, ptr %1354, align 8, !tbaa !211
  %1356 = fadd float %1355, 5.000000e-01
  %1357 = getelementptr inbounds i8, ptr %1336, i64 64
  %1358 = load float, ptr %1357, align 8, !tbaa !174
  %1359 = fneg float %1344
  %1360 = call float @llvm.fmuladd.f32(float %1358, float 5.000000e-01, float %1359)
  %1361 = call noundef float @_ZL7ImFloorf(float noundef %1360)
  %1362 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1361)
  %1363 = fadd float %1356, %1362
  %1364 = call noundef float @_ZL7ImFloorf(float noundef %1363)
  %1365 = load ptr, ptr %4, align 8, !tbaa !5
  %1366 = getelementptr inbounds i8, ptr %1365, i64 576
  store float %1364, ptr %1366, align 8, !tbaa !213
  %1367 = getelementptr inbounds i8, ptr %1365, i64 564
  %1368 = load float, ptr %1367, align 4, !tbaa !212
  %1369 = fadd float %1368, 5.000000e-01
  %1370 = call noundef float @_ZL7ImFloorf(float noundef %1369)
  %1371 = load ptr, ptr %4, align 8, !tbaa !5
  %1372 = getelementptr inbounds i8, ptr %1371, i64 580
  store float %1370, ptr %1372, align 4, !tbaa !214
  %1373 = getelementptr inbounds i8, ptr %1371, i64 568
  %1374 = load float, ptr %1373, align 8, !tbaa !215
  %1375 = fadd float %1374, 5.000000e-01
  %1376 = getelementptr inbounds i8, ptr %1371, i64 64
  %1377 = load float, ptr %1376, align 8, !tbaa !174
  %1378 = getelementptr inbounds i8, ptr %1371, i64 76
  %1379 = load float, ptr %1378, align 4, !tbaa !102
  %1380 = fneg float %1379
  %1381 = call float @llvm.fmuladd.f32(float %1377, float 5.000000e-01, float %1380)
  %1382 = call noundef float @_ZL7ImFloorf(float noundef %1381)
  %1383 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1382)
  %1384 = fsub float %1375, %1383
  %1385 = call noundef float @_ZL7ImFloorf(float noundef %1384)
  %1386 = load ptr, ptr %4, align 8, !tbaa !5
  %1387 = getelementptr inbounds i8, ptr %1386, i64 584
  store float %1385, ptr %1387, align 8, !tbaa !216
  %1388 = getelementptr inbounds i8, ptr %1386, i64 572
  %1389 = load float, ptr %1388, align 4, !tbaa !217
  %1390 = fadd float %1389, 5.000000e-01
  %1391 = call noundef float @_ZL7ImFloorf(float noundef %1390)
  %1392 = load ptr, ptr %4, align 8, !tbaa !5
  %1393 = getelementptr inbounds i8, ptr %1392, i64 588
  store float %1391, ptr %1393, align 4, !tbaa !218
  %1394 = getelementptr inbounds i8, ptr %1392, i64 80
  %1395 = load i32, ptr %1394, align 8, !tbaa !219
  %1396 = getelementptr inbounds i8, ptr %1392, i64 276
  store i32 %1395, ptr %1396, align 4, !tbaa !220
  %1397 = call noundef zeroext i1 @_ZN5ImGui19IsMouseHoveringRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %28, ptr noundef nonnull align 4 dereferenceable(8) %832, i1 noundef zeroext false)
  %1398 = zext i1 %1397 to i32
  %1399 = load ptr, ptr %4, align 8, !tbaa !5
  %1400 = getelementptr inbounds i8, ptr %1399, i64 280
  store i32 %1398, ptr %1400, align 8, !tbaa !221
  %1401 = getelementptr inbounds i8, ptr %1399, i64 284
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %1401, ptr noundef nonnull align 8 dereferenceable(16) %28, i64 16, i1 false), !tbaa.struct !95
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #14
  %1402 = getelementptr inbounds i8, ptr %1399, i64 576
  %1403 = getelementptr inbounds i8, ptr %1399, i64 584
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %1402, ptr noundef nonnull align 4 dereferenceable(8) %1403, i1 noundef zeroext true)
  %1404 = load ptr, ptr %4, align 8, !tbaa !5
  %1405 = getelementptr inbounds i8, ptr %1404, i64 124
  store i8 0, ptr %1405, align 4, !tbaa !222
  br label %1409

.critedge464:                                     ; preds = %261
  %1406 = load ptr, ptr %4, align 8, !tbaa !5
  %1407 = getelementptr inbounds i8, ptr %1406, i64 576
  %1408 = getelementptr inbounds i8, ptr %1406, i64 584
  call void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8) %1407, ptr noundef nonnull align 4 dereferenceable(8) %1408, i1 noundef zeroext true)
  %.pre528 = load ptr, ptr %4, align 8, !tbaa !5
  br label %1409

1409:                                             ; preds = %.critedge464, %1316
  %1410 = phi ptr [ %.pre528, %.critedge464 ], [ %1404, %1316 ]
  %1411 = getelementptr inbounds i8, ptr %1410, i64 132
  %1412 = load i32, ptr %1411, align 4, !tbaa !94
  %1413 = add nsw i32 %1412, 1
  store i32 %1413, ptr %1411, align 4, !tbaa !94
  call void @_ZN19ImGuiNextWindowData5ClearEv(ptr noundef nonnull align 8 dereferenceable(108) %178)
  br i1 %124, label %1414, label %1454

1414:                                             ; preds = %1409
  %1415 = and i32 %.1, 1
  %.not422 = icmp eq i32 %1415, 0
  br i1 %.not422, label %1416, label %1417

1416:                                             ; preds = %1414
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.3, i32 noundef 5147, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui5BeginEPKcPbi) #13
  unreachable

1417:                                             ; preds = %1414
  %1418 = and i32 %.1, 64
  %.not423 = icmp eq i32 %1418, 0
  br i1 %.not423, label %1419, label %1442

1419:                                             ; preds = %1417
  %1420 = load ptr, ptr %4, align 8, !tbaa !5
  %1421 = getelementptr inbounds i8, ptr %1420, i64 148
  %1422 = load i32, ptr %1421, align 4, !tbaa !117
  %1423 = icmp slt i32 %1422, 1
  br i1 %1423, label %1424, label %1442

1424:                                             ; preds = %1419
  %1425 = getelementptr inbounds i8, ptr %1420, i64 152
  %1426 = load i32, ptr %1425, align 8, !tbaa !118
  %1427 = icmp slt i32 %1426, 1
  br i1 %1427, label %1428, label %1442

1428:                                             ; preds = %1424
  %1429 = getelementptr inbounds i8, ptr %1420, i64 544
  %1430 = load float, ptr %1429, align 8, !tbaa !223
  %1431 = getelementptr inbounds i8, ptr %1420, i64 552
  %1432 = load float, ptr %1431, align 8, !tbaa !224
  %1433 = fcmp ult float %1430, %1432
  br i1 %1433, label %1434, label %1440

1434:                                             ; preds = %1428
  %1435 = getelementptr inbounds i8, ptr %1420, i64 548
  %1436 = load float, ptr %1435, align 4, !tbaa !225
  %1437 = getelementptr inbounds i8, ptr %1420, i64 556
  %1438 = load float, ptr %1437, align 4, !tbaa !226
  %1439 = fcmp ult float %1436, %1438
  br i1 %1439, label %1442, label %1440

1440:                                             ; preds = %1434, %1428
  %1441 = getelementptr inbounds i8, ptr %1420, i64 168
  store i32 1, ptr %1441, align 8, !tbaa !97
  br label %1442

1442:                                             ; preds = %1434, %1440, %1424, %1419, %1417
  br i1 %122, label %1454, label %1443

1443:                                             ; preds = %1442
  %1444 = getelementptr inbounds i8, ptr %121, i64 125
  %1445 = load i8, ptr %1444, align 1, !tbaa !114, !range !55, !noundef !56
  %1446 = trunc nuw i8 %1445 to i1
  br i1 %1446, label %1451, label %1447

1447:                                             ; preds = %1443
  %1448 = getelementptr inbounds i8, ptr %121, i64 129
  %1449 = load i8, ptr %1448, align 1, !tbaa !227, !range !55, !noundef !56
  %1450 = trunc nuw i8 %1449 to i1
  br i1 %1450, label %1451, label %1454

1451:                                             ; preds = %1447, %1443
  %1452 = load ptr, ptr %4, align 8, !tbaa !5
  %1453 = getelementptr inbounds i8, ptr %1452, i64 168
  store i32 1, ptr %1453, align 8, !tbaa !97
  br label %1454

1454:                                             ; preds = %1442, %1447, %1451, %1409
  %1455 = load float, ptr %64, align 4, !tbaa !228
  %1456 = fcmp ugt float %1455, 0.000000e+00
  %.pre529 = load ptr, ptr %4, align 8, !tbaa !5
  %.phi.trans.insert531 = getelementptr inbounds i8, ptr %.pre529, i64 168
  br i1 %1456, label %1457, label %.thread555

.thread555:                                       ; preds = %1454
  store i32 1, ptr %.phi.trans.insert531, align 8, !tbaa !97
  br label %1464

1457:                                             ; preds = %1454
  %.pre532 = load i32, ptr %.phi.trans.insert531, align 8, !tbaa !97
  %1458 = icmp sgt i32 %.pre532, 0
  br i1 %1458, label %1464, label %1459

1459:                                             ; preds = %1457
  %1460 = getelementptr inbounds i8, ptr %.pre529, i64 172
  %1461 = load i32, ptr %1460, align 4, !tbaa !72
  %1462 = icmp ne i32 %1461, 0
  %1463 = zext i1 %1462 to i8
  br label %1464

1464:                                             ; preds = %.thread555, %1459, %1457
  %1465 = phi i8 [ 1, %1457 ], [ %1463, %1459 ], [ 1, %.thread555 ]
  %1466 = getelementptr inbounds i8, ptr %.pre529, i64 129
  store i8 %1465, ptr %1466, align 1, !tbaa !227
  %1467 = getelementptr inbounds i8, ptr %.pre529, i64 125
  %1468 = load i8, ptr %1467, align 1, !tbaa !114, !range !55, !noundef !56
  %1469 = trunc nuw i8 %1468 to i1
  br i1 %1469, label %1476, label %1470

1470:                                             ; preds = %1464
  %1471 = getelementptr inbounds i8, ptr %.pre529, i64 122
  %1472 = load i8, ptr %1471, align 2, !tbaa !90, !range !55, !noundef !56
  %1473 = trunc nuw i8 %1472 to i1
  br i1 %1473, label %1474, label %1476

1474:                                             ; preds = %1470
  %1475 = trunc nuw i8 %1465 to i1
  br i1 %1475, label %1476, label %1489

1476:                                             ; preds = %1474, %1470, %1464
  %1477 = getelementptr inbounds i8, ptr %.pre529, i64 148
  %1478 = load i32, ptr %1477, align 4, !tbaa !117
  %1479 = icmp slt i32 %1478, 1
  br i1 %1479, label %1480, label %1489

1480:                                             ; preds = %1476
  %1481 = getelementptr inbounds i8, ptr %.pre529, i64 152
  %1482 = load i32, ptr %1481, align 8, !tbaa !118
  %1483 = icmp slt i32 %1482, 1
  br i1 %1483, label %1484, label %1489

1484:                                             ; preds = %1480
  %1485 = getelementptr inbounds i8, ptr %.pre529, i64 172
  %1486 = load i32, ptr %1485, align 4, !tbaa !72
  %1487 = icmp slt i32 %1486, 1
  %1488 = zext i1 %1487 to i8
  br label %1489

1489:                                             ; preds = %1484, %1480, %1476, %1474
  %1490 = phi i8 [ 0, %1480 ], [ 0, %1476 ], [ 0, %1474 ], [ %1488, %1484 ]
  %1491 = getelementptr inbounds i8, ptr %.pre529, i64 127
  store i8 %1490, ptr %1491, align 1, !tbaa !229
  %1492 = trunc nuw i8 %1490 to i1
  %1493 = xor i1 %1492, true
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #14
  ret i1 %1493
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui12PushClipRectERK6ImVec2S2_b(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #9

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN5ImGui16FindWindowByNameEPKc(ptr noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare hidden <2 x float> @_ZL16CalcSizeContentsP11ImGuiWindow(ptr noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare hidden <2 x float> @_ZL23CalcSizeAfterConstraintP11ImGuiWindow6ImVec2(ptr noundef, <2 x float>) local_unnamed_addr #9

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN5ImGui30UpdateWindowParentAndRootLinksEP11ImGuiWindowiS1_(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden noundef ptr @_ZL15CreateNewWindowPKc6ImVec2i(ptr noundef, <2 x float>, i32 noundef) local_unnamed_addr #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK8ImVectorIP11ImGuiWindowE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL28SetWindowConditionAllowFlagsP11ImGuiWindowib(ptr noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIP11ImGuiWindowE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #11 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL15CheckStacksSizeP11ImGuiWindowb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorI13ImGuiPopupRefE9push_backERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #11 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL13SetWindowSizeP11ImGuiWindowRK6ImVec2i(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK11ImGuiWindow14TitleBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK11ImGuiWindow13MenuBarHeightEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZL18SetWindowCollapsedP11ImGuiWindowbi(ptr noundef, i1 noundef zeroext, i32 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow12TitleBarRectEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #8 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZN5ImGui25FindBestWindowPosForPopupEP11ImGuiWindow(ptr noundef) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare hidden <2 x float> @_ZL38CalcNextScrollFromScrollTargetAndClampP11ImGuiWindowb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImGuiL18UpdateManualResizeEP11ImGuiWindowRK6ImVec2PiiPj(ptr noundef, ptr noundef nonnull align 4 dereferenceable(8), ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare hidden { <2 x float>, <2 x float> } @_ZL15GetViewportRectv() local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow4RectEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #8 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL28GetWindowBgColorIdxFromFlagsi(i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, <2 x float> } @_ZNK11ImGuiWindow11MenuBarRectEv(ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #8 align 2

declare void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef) local_unnamed_addr #10

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #9 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local <2 x float> @_ZNK6ImRect5GetBREv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #12 align 2

declare void @_ZN5ImGui9ScrollbarEi(i32 noundef) local_unnamed_addr #10

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

declare void @_ZN10ImDrawList13PathArcToFastERK6ImVec2fii(ptr noundef nonnull align 8 dereferenceable(168), ptr noundef nonnull align 4 dereferenceable(8), float noundef, i32 noundef, i32 noundef) local_unnamed_addr #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10ImDrawList14PathFillConvexEj(ptr noundef nonnull align 8 dereferenceable(168), i32 noundef) local_unnamed_addr #11 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN5ImGui13GetScrollMaxYEv() local_unnamed_addr #8

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

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

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

declare void @_ZN16ImGuiMenuColumns6UpdateEifb(ptr noundef nonnull align 4 dereferenceable(48), i32 noundef, float noundef, i1 noundef zeroext) local_unnamed_addr #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ImVectorIiE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #11 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui13NavInitWindowEP11ImGuiWindowb(ptr noundef, i1 noundef zeroext) local_unnamed_addr #8

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

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

; Function Attrs: mustprogress uwtable
declare dso_local <2 x float> @_ZNK6ImRect5GetTREv(ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #9 align 2

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { 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 #8 = { 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 = { 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 #10 = { "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 #11 = { 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 #12 = { mustprogress nounwind 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 #13 = { noreturn nounwind }
attributes #14 = { 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, !11, i64 1}
!10 = !{!"_ZTS12ImGuiContext", !11, i64 0, !11, i64 1, !11, i64 2, !12, i64 8, !16, i64 5440, !6, i64 6280, !15, i64 6288, !15, i64 6292, !17, i64 6296, !19, i64 6432, !13, i64 6440, !13, i64 6444, !13, i64 6448, !20, i64 6456, !20, i64 6472, !20, i64 6488, !20, i64 6504, !21, i64 6520, !13, i64 6536, !6, i64 6544, !6, i64 6552, !6, i64 6560, !13, i64 6568, !11, i64 6572, !13, i64 6576, !15, i64 6580, !15, i64 6584, !13, i64 6588, !13, i64 6592, !13, i64 6596, !15, i64 6600, !11, i64 6604, !11, i64 6605, !11, i64 6606, !11, i64 6607, !11, i64 6608, !13, i64 6612, !14, i64 6616, !6, i64 6624, !6, i64 6632, !23, i64 6640, !13, i64 6644, !15, i64 6648, !6, i64 6656, !24, i64 6664, !25, i64 6680, !26, i64 6696, !27, i64 6712, !27, i64 6728, !28, i64 6744, !11, i64 6856, !13, i64 6860, !6, i64 6864, !13, i64 6872, !13, i64 6876, !13, i64 6880, !13, i64 6884, !13, i64 6888, !13, i64 6892, !13, i64 6896, !13, i64 6900, !23, i64 6904, !29, i64 6908, !13, i64 6924, !6, i64 6928, !6, i64 6936, !6, i64 6944, !15, i64 6952, !15, i64 6956, !11, i64 6960, !13, i64 6964, !13, i64 6968, !11, i64 6972, !11, i64 6973, !11, i64 6974, !11, i64 6975, !11, i64 6976, !11, i64 6977, !11, i64 6978, !13, i64 6980, !29, i64 6984, !11, i64 7000, !11, i64 7001, !13, i64 7004, !30, i64 7008, !13, i64 7012, !13, i64 7016, !13, i64 7020, !31, i64 7024, !31, i64 7072, !31, i64 7120, !32, i64 7168, !33, i64 7216, !15, i64 7248, !34, i64 7256, !13, i64 7424, !11, i64 7428, !11, i64 7429, !13, i64 7432, !13, i64 7436, !13, i64 7440, !42, i64 7448, !29, i64 7512, !13, i64 7528, !13, i64 7532, !15, i64 7536, !13, i64 7540, !13, i64 7544, !13, i64 7548, !43, i64 7552, !7, i64 7568, !44, i64 7576, !49, i64 11296, !13, i64 11408, !13, i64 11412, !18, i64 11416, !11, i64 11432, !15, i64 11436, !15, i64 11440, !14, i64 11444, !13, i64 11452, !45, i64 11456, !14, i64 11472, !14, i64 11480, !11, i64 11488, !15, i64 11492, !52, i64 11496, !53, i64 11512, !54, i64 11528, !11, i64 11544, !6, i64 11552, !52, i64 11560, !13, i64 11576, !13, i64 11580, !7, i64 11584, !13, i64 12064, !15, i64 12068, !13, i64 12072, !13, i64 12076, !13, i64 12080, !7, i64 12084}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"_ZTS7ImGuiIO", !13, i64 0, !13, i64 4, !14, i64 8, !15, i64 16, !15, i64 20, !6, i64 24, !6, i64 32, !15, i64 40, !15, i64 44, !15, i64 48, !7, i64 52, !15, i64 136, !15, i64 140, !6, i64 144, !6, i64 152, !15, i64 160, !11, i64 164, !6, i64 168, !14, i64 176, !14, i64 184, !14, i64 192, !11, i64 200, !11, i64 201, !11, i64 202, !11, i64 203, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !14, i64 256, !7, i64 264, !15, i64 272, !15, i64 276, !11, i64 280, !11, i64 281, !11, i64 282, !11, i64 283, !7, i64 284, !7, i64 796, !7, i64 832, !11, i64 916, !11, i64 917, !11, i64 918, !11, i64 919, !11, i64 920, !11, i64 921, !11, i64 922, !15, i64 924, !13, i64 928, !13, i64 932, !13, i64 936, !13, i64 940, !13, i64 944, !14, i64 948, !14, i64 956, !7, i64 964, !7, i64 1008, !7, i64 1048, !7, i64 1053, !7, i64 1058, !7, i64 1063, !7, i64 1068, !7, i64 1088, !7, i64 1108, !7, i64 1148, !7, i64 1168, !7, i64 3216, !7, i64 5264, !7, i64 5348}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS6ImVec2", !15, i64 0, !15, i64 4}
!15 = !{!"float", !7, i64 0}
!16 = !{!"_ZTS10ImGuiStyle", !15, i64 0, !14, i64 4, !15, i64 12, !15, i64 16, !14, i64 20, !14, i64 28, !15, i64 36, !15, i64 40, !15, i64 44, !15, i64 48, !14, i64 52, !15, i64 60, !15, i64 64, !14, i64 68, !14, i64 76, !14, i64 84, !15, i64 92, !15, i64 96, !15, i64 100, !15, i64 104, !15, i64 108, !15, i64 112, !14, i64 116, !14, i64 124, !14, i64 132, !15, i64 140, !11, i64 144, !11, i64 145, !15, i64 148, !7, i64 152}
!17 = !{!"_ZTS20ImDrawListSharedData", !14, i64 0, !6, i64 8, !15, i64 16, !15, i64 20, !18, i64 24, !7, i64 40}
!18 = !{!"_ZTS6ImVec4", !15, i64 0, !15, i64 4, !15, i64 8, !15, i64 12}
!19 = !{!"double", !7, i64 0}
!20 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !13, i64 0, !13, i64 4, !6, i64 8}
!21 = !{!"_ZTS12ImGuiStorage", !22, i64 0}
!22 = !{!"_ZTS8ImVectorIN12ImGuiStorage4PairEE", !13, i64 0, !13, i64 4, !6, i64 8}
!23 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!24 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !13, i64 0, !13, i64 4, !6, i64 8}
!25 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !13, i64 0, !13, i64 4, !6, i64 8}
!26 = !{!"_ZTS8ImVectorIP6ImFontE", !13, i64 0, !13, i64 4, !6, i64 8}
!27 = !{!"_ZTS8ImVectorI13ImGuiPopupRefE", !13, i64 0, !13, i64 4, !6, i64 8}
!28 = !{!"_ZTS19ImGuiNextWindowData", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !14, i64 28, !14, i64 36, !14, i64 44, !14, i64 52, !11, i64 60, !29, i64 64, !6, i64 80, !6, i64 88, !15, i64 96, !14, i64 100}
!29 = !{!"_ZTS6ImRect", !14, i64 0, !14, i64 8}
!30 = !{!"_ZTS15ImGuiNavForward", !7, i64 0}
!31 = !{!"_ZTS18ImGuiNavMoveResult", !13, i64 0, !6, i64 8, !15, i64 16, !15, i64 20, !15, i64 24, !29, i64 28}
!32 = !{!"_ZTS10ImDrawData", !11, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !14, i64 28, !14, i64 36}
!33 = !{!"_ZTS17ImDrawDataBuilder", !7, i64 0}
!34 = !{!"_ZTS10ImDrawList", !35, i64 0, !36, i64 16, !37, i64 32, !13, i64 48, !6, i64 56, !6, i64 64, !13, i64 72, !6, i64 80, !6, i64 88, !38, i64 96, !39, i64 112, !40, i64 128, !13, i64 144, !13, i64 148, !41, i64 152}
!35 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !13, i64 0, !13, i64 4, !6, i64 8}
!36 = !{!"_ZTS8ImVectorItE", !13, i64 0, !13, i64 4, !6, i64 8}
!37 = !{!"_ZTS8ImVectorI10ImDrawVertE", !13, i64 0, !13, i64 4, !6, i64 8}
!38 = !{!"_ZTS8ImVectorI6ImVec4E", !13, i64 0, !13, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorIPvE", !13, i64 0, !13, i64 4, !6, i64 8}
!40 = !{!"_ZTS8ImVectorI6ImVec2E", !13, i64 0, !13, i64 4, !6, i64 8}
!41 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !13, i64 0, !13, i64 4, !6, i64 8}
!42 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !7, i64 24, !11, i64 57, !11, i64 58}
!43 = !{!"_ZTS8ImVectorIhE", !13, i64 0, !13, i64 4, !6, i64 8}
!44 = !{!"_ZTS19ImGuiInputTextState", !13, i64 0, !36, i64 8, !45, i64 24, !45, i64 40, !13, i64 56, !13, i64 60, !13, i64 64, !15, i64 68, !46, i64 72, !15, i64 3692, !11, i64 3696, !11, i64 3697, !13, i64 3700, !6, i64 3704, !6, i64 3712}
!45 = !{!"_ZTS8ImVectorIcE", !13, i64 0, !13, i64 4, !6, i64 8}
!46 = !{!"_ZTSN8ImGuiStb17STB_TexteditStateE", !13, i64 0, !13, i64 4, !13, i64 8, !7, i64 12, !7, i64 13, !7, i64 14, !7, i64 15, !7, i64 16, !7, i64 17, !7, i64 18, !7, i64 19, !15, i64 20, !47, i64 24}
!47 = !{!"_ZTSN8ImGuiStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !48, i64 3582, !48, i64 3584, !13, i64 3588, !13, i64 3592}
!48 = !{!"short", !7, i64 0}
!49 = !{!"_ZTS6ImFont", !15, i64 0, !15, i64 4, !14, i64 8, !50, i64 16, !51, i64 32, !36, i64 48, !6, i64 64, !15, i64 72, !48, i64 76, !48, i64 78, !6, i64 80, !6, i64 88, !15, i64 96, !15, i64 100, !11, i64 104, !13, i64 108}
!50 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !13, i64 0, !13, i64 4, !6, i64 8}
!51 = !{!"_ZTS8ImVectorIfE", !13, i64 0, !13, i64 4, !6, i64 8}
!52 = !{!"_ZTS15ImGuiTextBuffer", !45, i64 0}
!53 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !13, i64 0, !13, i64 4, !6, i64 8}
!54 = !{!"_ZTS8ImVectorI19ImGuiWindowSettingsE", !13, i64 0, !13, i64 4, !6, i64 8}
!55 = !{i8 0, i8 2}
!56 = !{}
!57 = !{!10, !13, i64 6444}
!58 = !{!10, !13, i64 6440}
!59 = !{!10, !13, i64 6748}
!60 = !{!61, !13, i64 608}
!61 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !13, i64 8, !13, i64 12, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !15, i64 72, !15, i64 76, !13, i64 80, !13, i64 84, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !11, i64 120, !11, i64 121, !11, i64 122, !11, i64 123, !11, i64 124, !11, i64 125, !11, i64 126, !11, i64 127, !11, i64 128, !11, i64 129, !11, i64 130, !13, i64 132, !13, i64 136, !13, i64 140, !13, i64 144, !13, i64 148, !13, i64 152, !11, i64 156, !13, i64 160, !13, i64 164, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !13, i64 184, !14, i64 188, !14, i64 196, !62, i64 208, !66, i64 512, !29, i64 528, !29, i64 544, !29, i64 560, !29, i64 576, !29, i64 592, !13, i64 608, !15, i64 612, !67, i64 616, !21, i64 664, !68, i64 680, !15, i64 696, !13, i64 700, !6, i64 704, !34, i64 712, !6, i64 880, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !7, i64 920, !7, i64 928, !13, i64 960, !13, i64 964, !13, i64 968, !13, i64 972, !13, i64 976, !13, i64 980}
!62 = !{!"_ZTS19ImGuiWindowTempData", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !15, i64 40, !14, i64 44, !15, i64 52, !15, i64 56, !13, i64 60, !13, i64 64, !13, i64 68, !13, i64 72, !29, i64 76, !29, i64 92, !11, i64 108, !11, i64 109, !13, i64 112, !13, i64 116, !13, i64 120, !13, i64 124, !11, i64 128, !14, i64 132, !20, i64 144, !6, i64 160, !13, i64 168, !13, i64 172, !13, i64 176, !15, i64 180, !15, i64 184, !63, i64 192, !51, i64 208, !51, i64 224, !64, i64 240, !7, i64 256, !65, i64 280, !65, i64 284, !65, i64 288, !6, i64 296}
!63 = !{!"_ZTS8ImVectorIiE", !13, i64 0, !13, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !13, i64 0, !13, i64 4, !6, i64 8}
!65 = !{!"_ZTS6ImVec1", !15, i64 0}
!66 = !{!"_ZTS8ImVectorIjE", !13, i64 0, !13, i64 4, !6, i64 8}
!67 = !{!"_ZTS16ImGuiMenuColumns", !13, i64 0, !15, i64 4, !15, i64 8, !15, i64 12, !7, i64 16, !7, i64 32}
!68 = !{!"_ZTS8ImVectorI15ImGuiColumnsSetE", !13, i64 0, !13, i64 4, !6, i64 8}
!69 = !{!61, !13, i64 12}
!70 = !{!61, !6, i64 880}
!71 = !{!61, !11, i64 130}
!72 = !{!61, !13, i64 172}
!73 = !{!10, !13, i64 6728}
!74 = !{!61, !13, i64 144}
!75 = !{!76, !13, i64 0}
!76 = !{!"_ZTS13ImGuiPopupRef", !13, i64 0, !6, i64 8, !6, i64 16, !13, i64 24, !13, i64 28, !14, i64 32, !14, i64 40}
!77 = !{!76, !6, i64 8}
!78 = !{!61, !11, i64 128}
!79 = !{!13, !13, i64 0}
!80 = !{!10, !13, i64 6744}
!81 = !{!61, !13, i64 176}
!82 = !{!61, !13, i64 180}
!83 = !{!10, !15, i64 6788}
!84 = !{!10, !15, i64 6792}
!85 = !{!10, !13, i64 6752}
!86 = !{!61, !15, i64 60}
!87 = !{!10, !13, i64 6756}
!88 = !{!10, !11, i64 6804}
!89 = !{!10, !13, i64 6764}
!90 = !{!61, !11, i64 122}
!91 = !{!61, !13, i64 136}
!92 = !{!10, !13, i64 6536}
!93 = !{!61, !13, i64 140}
!94 = !{!61, !13, i64 132}
!95 = !{i64 0, i64 4, !96, i64 4, i64 4, !96, i64 8, i64 4, !96, i64 12, i64 4, !96}
!96 = !{!15, !15, i64 0}
!97 = !{!61, !13, i64 168}
!98 = !{!61, !15, i64 32}
!99 = !{!61, !15, i64 24}
!100 = !{!61, !15, i64 36}
!101 = !{!61, !15, i64 28}
!102 = !{!61, !15, i64 76}
!103 = !{!16, !15, i64 8}
!104 = !{!16, !15, i64 68}
!105 = !{!10, !15, i64 6844}
!106 = !{!61, !15, i64 340}
!107 = !{!10, !15, i64 6848}
!108 = !{!61, !15, i64 344}
!109 = !{!10, !6, i64 6552}
!110 = !{!10, !13, i64 6568}
!111 = !{!10, !13, i64 6576}
!112 = !{!11, !11, i64 0}
!113 = !{!61, !11, i64 126}
!114 = !{!61, !11, i64 125}
!115 = !{!14, !15, i64 0}
!116 = !{!14, !15, i64 4}
!117 = !{!61, !13, i64 148}
!118 = !{!61, !13, i64 152}
!119 = !{!61, !11, i64 156}
!120 = !{!61, !15, i64 52}
!121 = !{!61, !11, i64 121}
!122 = !{!61, !11, i64 120}
!123 = !{!61, !15, i64 48}
!124 = !{!16, !15, i64 100}
!125 = !{!61, !13, i64 164}
!126 = !{!61, !13, i64 352}
!127 = !{!61, !15, i64 188}
!128 = !{!10, !15, i64 16}
!129 = !{!10, !15, i64 20}
!130 = !{!61, !15, i64 72}
!131 = !{!61, !13, i64 976}
!132 = !{!61, !13, i64 960}
!133 = !{!61, !13, i64 968}
!134 = !{!61, !13, i64 980}
!135 = !{!61, !13, i64 964}
!136 = !{!61, !13, i64 972}
!137 = !{!10, !11, i64 211}
!138 = !{!10, !15, i64 6288}
!139 = !{!61, !6, i64 704}
!140 = !{!10, !11, i64 5584}
!141 = !{!10, !11, i64 5585}
!142 = !{!34, !13, i64 48}
!143 = !{!10, !6, i64 6280}
!144 = !{!49, !6, i64 88}
!145 = !{!146, !6, i64 8}
!146 = !{!"_ZTS11ImFontAtlas", !11, i64 0, !13, i64 4, !6, i64 8, !13, i64 16, !13, i64 20, !6, i64 24, !6, i64 32, !13, i64 40, !13, i64 44, !14, i64 48, !14, i64 56, !26, i64 64, !147, i64 80, !148, i64 96, !7, i64 112}
!147 = !{!"_ZTS8ImVectorIN11ImFontAtlas10CustomRectEE", !13, i64 0, !13, i64 4, !6, i64 8}
!148 = !{!"_ZTS8ImVectorI12ImFontConfigE", !13, i64 0, !13, i64 4, !6, i64 8}
!149 = !{!10, !6, i64 6936}
!150 = !{!61, !6, i64 888}
!151 = !{!10, !15, i64 7248}
!152 = !{!10, !15, i64 6956}
!153 = !{!10, !15, i64 5452}
!154 = !{!10, !6, i64 6928}
!155 = !{!10, !6, i64 6864}
!156 = !{!61, !6, i64 896}
!157 = !{!16, !15, i64 64}
!158 = !{!10, !15, i64 5504}
!159 = !{!10, !11, i64 6974}
!160 = !{!10, !13, i64 6768}
!161 = !{!10, !15, i64 6840}
!162 = !{!29, !15, i64 12}
!163 = !{!61, !15, i64 20}
!164 = !{!165, !15, i64 8}
!165 = !{!"_ZTS18ImGuiResizeGripDef", !14, i64 0, !14, i64 8, !13, i64 16, !13, i64 20}
!166 = !{!165, !15, i64 12}
!167 = !{!165, !13, i64 16}
!168 = !{!165, !13, i64 20}
!169 = distinct !{!169, !170}
!170 = !{!"llvm.loop.mustprogress"}
!171 = !{!16, !15, i64 16}
!172 = !{!61, !15, i64 16}
!173 = !{!61, !15, i64 88}
!174 = !{!61, !15, i64 64}
!175 = !{!61, !15, i64 592}
!176 = !{!61, !15, i64 92}
!177 = !{!61, !15, i64 68}
!178 = !{!61, !15, i64 596}
!179 = !{!61, !15, i64 56}
!180 = !{!61, !15, i64 112}
!181 = !{!61, !15, i64 600}
!182 = !{!61, !15, i64 116}
!183 = !{!61, !15, i64 604}
!184 = !{!61, !15, i64 488}
!185 = !{!61, !15, i64 260}
!186 = !{!61, !15, i64 248}
!187 = !{!61, !11, i64 316}
!188 = !{!61, !11, i64 317}
!189 = !{!61, !13, i64 332}
!190 = !{!61, !13, i64 328}
!191 = !{!61, !11, i64 336}
!192 = !{!61, !15, i64 212}
!193 = !{!61, !15, i64 264}
!194 = !{!61, !13, i64 376}
!195 = !{!61, !13, i64 384}
!196 = !{!61, !15, i64 612}
!197 = !{!61, !15, i64 388}
!198 = !{!61, !15, i64 392}
!199 = !{!61, !6, i64 504}
!200 = !{!61, !13, i64 268}
!201 = !{!61, !13, i64 272}
!202 = !{!61, !6, i64 368}
!203 = !{!61, !13, i64 320}
!204 = !{!61, !13, i64 324}
!205 = !{!16, !15, i64 56}
!206 = !{!16, !15, i64 52}
!207 = !{!16, !15, i64 76}
!208 = !{!16, !15, i64 28}
!209 = !{!29, !15, i64 0}
!210 = !{!29, !15, i64 8}
!211 = !{!61, !15, i64 560}
!212 = !{!61, !15, i64 564}
!213 = !{!61, !15, i64 576}
!214 = !{!61, !15, i64 580}
!215 = !{!61, !15, i64 568}
!216 = !{!61, !15, i64 584}
!217 = !{!61, !15, i64 572}
!218 = !{!61, !15, i64 588}
!219 = !{!61, !13, i64 80}
!220 = !{!61, !13, i64 276}
!221 = !{!61, !13, i64 280}
!222 = !{!61, !11, i64 124}
!223 = !{!61, !15, i64 544}
!224 = !{!61, !15, i64 552}
!225 = !{!61, !15, i64 548}
!226 = !{!61, !15, i64 556}
!227 = !{!61, !11, i64 129}
!228 = !{!16, !15, i64 0}
!229 = !{!61, !11, i64 127}


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