; LLVM IR from hadryansalles/Luz :: deps/imgui (imgui_widgets)

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

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

@GImGui = external global ptr, align 8
@.str = external hidden unnamed_addr constant [1 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv = external hidden unnamed_addr constant [134 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [34 x i8], align 1
@__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no = external hidden unnamed_addr constant [2 x i32], align 4

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #2

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

declare <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) #4

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

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

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

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

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

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

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

declare void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float>, ptr noundef, ptr noundef, i1 noundef zeroext) #4

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

declare void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef, ptr noundef nonnull align 4 dereferenceable(16)) #4

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) #4

declare noundef float @_ZN5ImGui13CalcItemWidthEv() #4

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

declare noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef, float noundef) #4

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

declare void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef, i32 noundef) #4

declare void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef, i32 noundef, i32 noundef) #4

declare void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef, ptr noundef) #4

declare void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef, ptr noundef) #4

declare void @_ZN5ImGui13ClearActiveIDEv() #4

declare noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1152), ptr noundef, ptr noundef) #4

declare <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float>, float noundef, float noundef) #4

declare void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) #4

declare void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) #4

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef, i32 noundef) #10

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

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

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

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

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

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) #4

declare void @_ZN5ImGui14MarkItemEditedEj(i32 noundef) #4

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

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

; 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 noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) #3 align 2

declare void @_ZN5ImGui10BeginGroupEv() #4

declare void @_ZN5ImGui8EndGroupEv() #4

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

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

declare void @_Z9ImStrncpyPcPKcm(ptr noundef, ptr noundef, i64 noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef %3, ptr noundef nonnull align 4 dereferenceable(8) %4, i32 noundef %5, ptr noundef %6, ptr noundef %7) #9 personality ptr @__gxx_personality_v0 {
  %9 = alloca i1, align 1
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i8, align 1
  %24 = alloca i8, align 1
  %25 = alloca i32, align 4
  %26 = alloca %struct.ImVec2, align 4
  %27 = alloca %struct.ImVec2, align 4
  %28 = alloca %struct.ImVec2, align 4
  %29 = alloca %struct.ImVec2, align 4
  %30 = alloca %struct.ImRect, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImRect, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca ptr, align 8
  %35 = alloca %struct.ImVec2, align 4
  %36 = alloca %struct.ImGuiLastItemData, align 4
  %37 = alloca %struct.ImVec2, align 4
  %38 = alloca i32, align 4
  %39 = alloca %struct.ImVec2, align 4
  %40 = alloca i8, align 1
  %41 = alloca %struct.ImVec2, align 4
  %42 = alloca i8, align 1
  %43 = alloca ptr, align 8
  %44 = alloca i8, align 1
  %45 = alloca i8, align 1
  %46 = alloca i8, align 1
  %47 = alloca i8, align 1
  %48 = alloca i8, align 1
  %49 = alloca i8, align 1
  %50 = alloca i8, align 1
  %51 = alloca i8, align 1
  %52 = alloca i8, align 1
  %53 = alloca i8, align 1
  %54 = alloca float, align 4
  %55 = alloca i8, align 1
  %56 = alloca i8, align 1
  %57 = alloca i8, align 1
  %58 = alloca i32, align 4
  %59 = alloca i8, align 1
  %60 = alloca ptr, align 8
  %61 = alloca i8, align 1
  %62 = alloca i8, align 1
  %63 = alloca i8, align 1
  %64 = alloca i8, align 1
  %65 = alloca i8, align 1
  %66 = alloca ptr, align 8
  %67 = alloca i8, align 1
  %68 = alloca i8, align 1
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca float, align 4
  %73 = alloca float, align 4
  %74 = alloca i32, align 4
  %75 = alloca i8, align 1
  %76 = alloca i8, align 1
  %77 = alloca i32, align 4
  %78 = alloca i8, align 1
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i8, align 1
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i8, align 1
  %85 = alloca i8, align 1
  %86 = alloca i32, align 4
  %87 = alloca i8, align 1
  %88 = alloca i8, align 1
  %89 = alloca i8, align 1
  %90 = alloca i8, align 1
  %91 = alloca i8, align 1
  %92 = alloca i8, align 1
  %93 = alloca i8, align 1
  %94 = alloca i8, align 1
  %95 = alloca i8, align 1
  %96 = alloca i8, align 1
  %97 = alloca i8, align 1
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca ptr, align 8
  %103 = alloca ptr, align 8
  %104 = alloca i32, align 4
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca ptr, align 8
  %108 = alloca i32, align 4
  %109 = alloca ptr, align 8
  %110 = alloca i32, align 4
  %111 = alloca i16, align 2
  %112 = alloca %struct.ImVector.5, align 8
  %113 = alloca ptr, align 8
  %114 = alloca i32, align 4
  %115 = alloca i8, align 1
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %119 = alloca ptr, align 8
  %120 = alloca ptr, align 8
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i8, align 1
  %125 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %126 = alloca %struct.ImVec2, align 4
  %127 = alloca %struct.ImVec2, align 4
  %128 = alloca %struct.ImVec4, align 4
  %129 = alloca %struct.ImVec2, align 4
  %130 = alloca %struct.ImVec2, align 4
  %131 = alloca i32, align 4
  %132 = alloca ptr, align 8
  %133 = alloca ptr, align 8
  %134 = alloca ptr, align 8
  %135 = alloca %struct.ImVec2, align 4
  %136 = alloca %struct.ImVec2, align 4
  %137 = alloca [2 x ptr], align 16
  %138 = alloca [2 x i32], align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca ptr, align 8
  %142 = alloca %struct.ImVec2, align 4
  %143 = alloca %struct.ImVec2, align 4
  %144 = alloca %struct.ImVec2, align 4
  %145 = alloca float, align 4
  %146 = alloca float, align 4
  %147 = alloca float, align 4
  %148 = alloca %struct.ImVec2, align 4
  %149 = alloca ptr, align 8
  %150 = alloca ptr, align 8
  %151 = alloca i32, align 4
  %152 = alloca float, align 4
  %153 = alloca float, align 4
  %154 = alloca %struct.ImVec2, align 4
  %155 = alloca %struct.ImVec2, align 4
  %156 = alloca ptr, align 8
  %157 = alloca %struct.ImVec2, align 4
  %158 = alloca %struct.ImRect, align 4
  %159 = alloca %struct.ImVec2, align 4
  %160 = alloca %struct.ImVec2, align 4
  %161 = alloca %struct.ImVec2, align 4
  %162 = alloca %struct.ImVec2, align 4
  %163 = alloca %struct.ImRect, align 4
  %164 = alloca %struct.ImRect, align 4
  %165 = alloca i32, align 4
  %166 = alloca %struct.ImVec2, align 4
  %167 = alloca i8, align 1
  %168 = alloca %struct.ImVec2, align 4
  %169 = alloca %struct.ImVec2, align 4
  %170 = alloca %struct.ImVec2, align 4
  %171 = alloca %struct.ImRect, align 4
  %172 = alloca %struct.ImRect, align 4
  %173 = alloca %struct.ImVec2, align 4
  %174 = alloca %struct.ImVec2, align 4
  %175 = alloca %struct.ImVec2, align 4
  %176 = alloca i32, align 4
  %177 = alloca %struct.ImVec2, align 4
  %178 = alloca %struct.ImVec2, align 4
  store ptr %0, ptr %10, align 8, !tbaa !5
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  store i32 %3, ptr %13, align 4, !tbaa !9
  store ptr %4, ptr %14, align 8, !tbaa !5
  store i32 %5, ptr %15, align 4, !tbaa !9
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #14
  %179 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  store ptr %179, ptr %18, align 8, !tbaa !5
  %180 = load ptr, ptr %18, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.ImGuiWindow, ptr %180, i32 0, i32 44
  %182 = load i8, ptr %181, align 8, !tbaa !11, !range !42, !noundef !43
  %183 = trunc i8 %182 to i1
  br i1 %183, label %184, label %185

184:                                              ; preds = %8
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3595

185:                                              ; preds = %8
  %186 = load ptr, ptr %12, align 8, !tbaa !5
  %187 = icmp ne ptr %186, null
  br i1 %187, label %188, label %191

188:                                              ; preds = %185
  %189 = load i32, ptr %13, align 4, !tbaa !9
  %190 = icmp sge i32 %189, 0
  br label %191

191:                                              ; preds = %188, %185
  %192 = phi i1 [ false, %185 ], [ %190, %188 ]
  br i1 %192, label %193, label %194

193:                                              ; preds = %191
  br label %196

194:                                              ; preds = %191
  call void @__assert_fail(ptr noundef @.str.58, ptr noundef @.str.4, i32 noundef 4095, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

195:                                              ; No predecessors!
  br label %196

196:                                              ; preds = %195, %193
  %197 = load i32, ptr %15, align 4, !tbaa !9
  %198 = and i32 %197, 128
  %199 = icmp ne i32 %198, 0
  br i1 %199, label %200, label %204

200:                                              ; preds = %196
  %201 = load i32, ptr %15, align 4, !tbaa !9
  %202 = and i32 %201, 67108864
  %203 = icmp ne i32 %202, 0
  br label %204

204:                                              ; preds = %200, %196
  %205 = phi i1 [ false, %196 ], [ %203, %200 ]
  %206 = xor i1 %205, true
  br i1 %206, label %207, label %208

207:                                              ; preds = %204
  br label %210

208:                                              ; preds = %204
  call void @__assert_fail(ptr noundef @.str.59, ptr noundef @.str.4, i32 noundef 4096, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

209:                                              ; No predecessors!
  br label %210

210:                                              ; preds = %209, %207
  %211 = load i32, ptr %15, align 4, !tbaa !9
  %212 = and i32 %211, 64
  %213 = icmp ne i32 %212, 0
  br i1 %213, label %214, label %218

214:                                              ; preds = %210
  %215 = load i32, ptr %15, align 4, !tbaa !9
  %216 = and i32 %215, 1024
  %217 = icmp ne i32 %216, 0
  br label %218

218:                                              ; preds = %214, %210
  %219 = phi i1 [ false, %210 ], [ %217, %214 ]
  %220 = xor i1 %219, true
  br i1 %220, label %221, label %222

221:                                              ; preds = %218
  br label %224

222:                                              ; preds = %218
  call void @__assert_fail(ptr noundef @.str.60, ptr noundef @.str.4, i32 noundef 4097, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

223:                                              ; No predecessors!
  br label %224

224:                                              ; preds = %223, %221
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #14
  %225 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %225, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #14
  %226 = load ptr, ptr %20, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.ImGuiContext, ptr %226, i32 0, i32 2
  store ptr %227, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #14
  %228 = load ptr, ptr %20, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.ImGuiContext, ptr %228, i32 0, i32 4
  store ptr %229, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #14
  store i8 0, ptr %23, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #14
  %230 = load i32, ptr %15, align 4, !tbaa !9
  %231 = and i32 %230, 67108864
  %232 = icmp ne i32 %231, 0
  %233 = zext i1 %232 to i8
  store i8 %233, ptr %24, align 1, !tbaa !44
  %234 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %235 = trunc i8 %234 to i1
  br i1 %235, label %236, label %237

236:                                              ; preds = %224
  call void @_ZN5ImGui10BeginGroupEv()
  br label %237

237:                                              ; preds = %236, %224
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #14
  %238 = load ptr, ptr %18, align 8, !tbaa !5
  %239 = load ptr, ptr %10, align 8, !tbaa !5
  %240 = call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1152) %238, ptr noundef %239, ptr noundef null)
  store i32 %240, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #14
  %241 = load ptr, ptr %10, align 8, !tbaa !5
  %242 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %241, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  store <2 x float> %242, ptr %26, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #14
  %243 = load ptr, ptr %14, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %28, ptr align 4 %243, i64 8, i1 false), !tbaa.struct !45
  %244 = call noundef float @_ZN5ImGui13CalcItemWidthEv()
  %245 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %246 = trunc i8 %245 to i1
  br i1 %246, label %247, label %252

247:                                              ; preds = %237
  %248 = load ptr, ptr %20, align 8, !tbaa !5
  %249 = getelementptr inbounds %struct.ImGuiContext, ptr %248, i32 0, i32 8
  %250 = load float, ptr %249, align 8, !tbaa !47
  %251 = fmul float %250, 8.000000e+00
  br label %255

252:                                              ; preds = %237
  %253 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 1
  %254 = load float, ptr %253, align 4, !tbaa !113
  br label %255

255:                                              ; preds = %252, %247
  %256 = phi float [ %251, %247 ], [ %254, %252 ]
  %257 = load ptr, ptr %22, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.ImGuiStyle, ptr %257, i32 0, i32 12
  %259 = getelementptr inbounds %struct.ImVec2, ptr %258, i32 0, i32 1
  %260 = load float, ptr %259, align 4, !tbaa !114
  %261 = call float @llvm.fmuladd.f32(float %260, float 2.000000e+00, float %256)
  %262 = load <2 x float>, ptr %28, align 4
  %263 = call <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float> %262, float noundef %244, float noundef %261)
  store <2 x float> %263, ptr %27, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #14
  %264 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 0
  %265 = load float, ptr %264, align 4, !tbaa !115
  %266 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %267 = load float, ptr %266, align 4, !tbaa !115
  %268 = fcmp ogt float %267, 0.000000e+00
  br i1 %268, label %269, label %277

269:                                              ; preds = %255
  %270 = load ptr, ptr %22, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.ImGuiStyle, ptr %270, i32 0, i32 16
  %272 = getelementptr inbounds %struct.ImVec2, ptr %271, i32 0, i32 0
  %273 = load float, ptr %272, align 4, !tbaa !116
  %274 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %275 = load float, ptr %274, align 4, !tbaa !115
  %276 = fadd float %273, %275
  br label %278

277:                                              ; preds = %255
  br label %278

278:                                              ; preds = %277, %269
  %279 = phi float [ %276, %269 ], [ 0.000000e+00, %277 ]
  %280 = fadd float %265, %279
  %281 = getelementptr inbounds %struct.ImVec2, ptr %27, i32 0, i32 1
  %282 = load float, ptr %281, align 4, !tbaa !113
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %29, float noundef %280, float noundef %282)
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #14
  %283 = load ptr, ptr %18, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.ImGuiWindow, ptr %283, i32 0, i32 70
  %285 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %284, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #14
  %286 = load ptr, ptr %18, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.ImGuiWindow, ptr %286, i32 0, i32 70
  %288 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %287, i32 0, i32 0
  %289 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %288, ptr noundef nonnull align 4 dereferenceable(8) %27)
  store <2 x float> %289, ptr %31, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %30, ptr noundef nonnull align 4 dereferenceable(8) %285, ptr noundef nonnull align 4 dereferenceable(8) %31)
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #14
  %290 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #14
  %291 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %292 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %291, ptr noundef nonnull align 4 dereferenceable(8) %29)
  store <2 x float> %292, ptr %33, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %32, ptr noundef nonnull align 4 dereferenceable(8) %290, ptr noundef nonnull align 4 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #14
  %293 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %293, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %35, ptr align 4 %27, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.start.p0(i64 76, ptr %36) #14
  call void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(76) %36)
  %294 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %295 = trunc i8 %294 to i1
  br i1 %295, label %296, label %397

296:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #14
  %297 = load ptr, ptr %18, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.ImGuiWindow, ptr %297, i32 0, i32 70
  %299 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %298, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %37, ptr align 8 %299, i64 8, i1 false), !tbaa.struct !45
  %300 = load ptr, ptr %22, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.ImGuiStyle, ptr %300, i32 0, i32 12
  %302 = getelementptr inbounds %struct.ImVec2, ptr %301, i32 0, i32 1
  %303 = load float, ptr %302, align 4, !tbaa !114
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %32, float noundef %303)
  %304 = load i32, ptr %25, align 4, !tbaa !9
  %305 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %32, i32 noundef %304, ptr noundef %30, i32 noundef 1024)
  br i1 %305, label %307, label %306

306:                                              ; preds = %296
  call void @_ZN5ImGui8EndGroupEv()
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %394

307:                                              ; preds = %296
  %308 = load ptr, ptr %20, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.ImGuiContext, ptr %308, i32 0, i32 87
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %36, ptr align 8 %309, i64 76, i1 false), !tbaa.struct !117
  %310 = load ptr, ptr %18, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImGuiWindow, ptr %310, i32 0, i32 70
  %312 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %311, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %312, ptr align 4 %37, i64 8, i1 false), !tbaa.struct !45
  %313 = load ptr, ptr %20, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.ImGuiContext, ptr %313, i32 0, i32 116
  %315 = load i32, ptr %314, align 8, !tbaa !118
  %316 = load i32, ptr %25, align 4, !tbaa !9
  %317 = icmp eq i32 %315, %316
  br i1 %317, label %318, label %331

318:                                              ; preds = %307
  %319 = load ptr, ptr %20, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.ImGuiContext, ptr %319, i32 0, i32 119
  %321 = load i32, ptr %320, align 4, !tbaa !119
  %322 = and i32 %321, 8
  %323 = icmp ne i32 %322, 0
  br i1 %323, label %324, label %331

324:                                              ; preds = %318
  %325 = load i32, ptr %15, align 4, !tbaa !9
  %326 = and i32 %325, 1024
  %327 = icmp ne i32 %326, 0
  br i1 %327, label %328, label %331

328:                                              ; preds = %324
  %329 = load ptr, ptr %20, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.ImGuiContext, ptr %329, i32 0, i32 116
  store i32 0, ptr %330, align 8, !tbaa !118
  br label %331

331:                                              ; preds = %328, %324, %318, %307
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #14
  %332 = load ptr, ptr %20, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.ImGuiContext, ptr %332, i32 0, i32 116
  %334 = load i32, ptr %333, align 8, !tbaa !118
  store i32 %334, ptr %38, align 4, !tbaa !9
  %335 = load ptr, ptr %20, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.ImGuiContext, ptr %335, i32 0, i32 52
  %337 = load i32, ptr %336, align 4, !tbaa !120
  %338 = load i32, ptr %25, align 4, !tbaa !9
  %339 = icmp eq i32 %337, %338
  br i1 %339, label %340, label %343

340:                                              ; preds = %331
  %341 = load ptr, ptr %20, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.ImGuiContext, ptr %341, i32 0, i32 116
  store i32 0, ptr %342, align 8, !tbaa !118
  br label %343

343:                                              ; preds = %340, %331
  %344 = load ptr, ptr %22, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImGuiStyle, ptr %344, i32 0, i32 46
  %346 = getelementptr inbounds [55 x %struct.ImVec4], ptr %345, i64 0, i64 7
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %346)
  %347 = load ptr, ptr %22, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.ImGuiStyle, ptr %347, i32 0, i32 13
  %349 = load float, ptr %348, align 4, !tbaa !121
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %349)
  %350 = load ptr, ptr %22, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.ImGuiStyle, ptr %350, i32 0, i32 14
  %352 = load float, ptr %351, align 4, !tbaa !122
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 8, float noundef %352)
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %39, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 2, ptr noundef nonnull align 4 dereferenceable(8) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #14
  %353 = load ptr, ptr %10, align 8, !tbaa !5
  %354 = load i32, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #14
  %355 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %30)
  store <2 x float> %355, ptr %41, align 4
  %356 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2ii(ptr noundef %353, i32 noundef %354, ptr noundef nonnull align 4 dereferenceable(8) %41, i32 noundef 1, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #14
  %357 = zext i1 %356 to i8
  store i8 %357, ptr %40, align 1, !tbaa !44
  %358 = load i32, ptr %38, align 4, !tbaa !9
  %359 = load ptr, ptr %20, align 8, !tbaa !5
  %360 = getelementptr inbounds %struct.ImGuiContext, ptr %359, i32 0, i32 116
  store i32 %358, ptr %360, align 8, !tbaa !118
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  %361 = load i8, ptr %40, align 1, !tbaa !44, !range !42, !noundef !43
  %362 = trunc i8 %361 to i1
  br i1 %362, label %364, label %363

363:                                              ; preds = %343
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8EndGroupEv()
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %393

364:                                              ; preds = %343
  %365 = load ptr, ptr %20, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.ImGuiContext, ptr %365, i32 0, i32 34
  %367 = load ptr, ptr %366, align 8, !tbaa !123
  store ptr %367, ptr %34, align 8, !tbaa !5
  %368 = load ptr, ptr %34, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.ImGuiWindow, ptr %368, i32 0, i32 70
  %370 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %369, i32 0, i32 15
  %371 = load i32, ptr %370, align 8, !tbaa !124
  %372 = shl i32 1, %371
  %373 = load ptr, ptr %34, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.ImGuiWindow, ptr %373, i32 0, i32 70
  %375 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %374, i32 0, i32 17
  %376 = load i16, ptr %375, align 2, !tbaa !125
  %377 = sext i16 %376 to i32
  %378 = or i32 %377, %372
  %379 = trunc i32 %378 to i16
  store i16 %379, ptr %375, align 2, !tbaa !125
  %380 = load ptr, ptr %22, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.ImGuiStyle, ptr %380, i32 0, i32 12
  %382 = load ptr, ptr %34, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.ImGuiWindow, ptr %382, i32 0, i32 70
  %384 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %383, i32 0, i32 0
  %385 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZpLR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %384, ptr noundef nonnull align 4 dereferenceable(8) %381)
  %386 = load ptr, ptr %34, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.ImGuiWindow, ptr %386, i32 0, i32 35
  %388 = getelementptr inbounds %struct.ImVec2, ptr %387, i32 0, i32 0
  %389 = load float, ptr %388, align 8, !tbaa !126
  %390 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %391 = load float, ptr %390, align 4, !tbaa !115
  %392 = fsub float %391, %389
  store float %392, ptr %390, align 4, !tbaa !115
  store i32 0, ptr %19, align 4
  br label %393

393:                                              ; preds = %364, %363
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #14
  br label %394

394:                                              ; preds = %393, %306
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #14
  %395 = load i32, ptr %19, align 4
  switch i32 %395, label %3594 [
    i32 0, label %396
  ]

396:                                              ; preds = %394
  br label %411

397:                                              ; preds = %278
  %398 = load ptr, ptr %22, align 8, !tbaa !5
  %399 = getelementptr inbounds %struct.ImGuiStyle, ptr %398, i32 0, i32 12
  %400 = getelementptr inbounds %struct.ImVec2, ptr %399, i32 0, i32 1
  %401 = load float, ptr %400, align 4, !tbaa !114
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %32, float noundef %401)
  %402 = load i32, ptr %15, align 4, !tbaa !9
  %403 = and i32 %402, 268435456
  %404 = icmp ne i32 %403, 0
  br i1 %404, label %410, label %405

405:                                              ; preds = %397
  %406 = load i32, ptr %25, align 4, !tbaa !9
  %407 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %32, i32 noundef %406, ptr noundef %30, i32 noundef 1024)
  br i1 %407, label %409, label %408

408:                                              ; preds = %405
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3594

409:                                              ; preds = %405
  br label %410

410:                                              ; preds = %409, %397
  br label %411

411:                                              ; preds = %410, %396
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #14
  %412 = load i32, ptr %25, align 4, !tbaa !9
  %413 = load ptr, ptr %20, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.ImGuiContext, ptr %413, i32 0, i32 87
  %415 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %414, i32 0, i32 1
  %416 = load i32, ptr %415, align 4, !tbaa !127
  %417 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %30, i32 noundef %412, i32 noundef %416)
  %418 = zext i1 %417 to i8
  store i8 %418, ptr %42, align 1, !tbaa !44
  %419 = load i8, ptr %42, align 1, !tbaa !44, !range !42, !noundef !43
  %420 = trunc i8 %419 to i1
  br i1 %420, label %421, label %424

421:                                              ; preds = %411
  %422 = load ptr, ptr %20, align 8, !tbaa !5
  %423 = getelementptr inbounds %struct.ImGuiContext, ptr %422, i32 0, i32 205
  store i32 1, ptr %423, align 8, !tbaa !128
  br label %424

424:                                              ; preds = %421, %411
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #14
  %425 = load i32, ptr %25, align 4, !tbaa !9
  %426 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %425)
  store ptr %426, ptr %43, align 8, !tbaa !5
  %427 = load ptr, ptr %20, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.ImGuiContext, ptr %427, i32 0, i32 87
  %429 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %428, i32 0, i32 1
  %430 = load i32, ptr %429, align 4, !tbaa !127
  %431 = and i32 %430, 128
  %432 = icmp ne i32 %431, 0
  br i1 %432, label %433, label %436

433:                                              ; preds = %424
  %434 = load i32, ptr %15, align 4, !tbaa !9
  %435 = or i32 %434, 16384
  store i32 %435, ptr %15, align 4, !tbaa !9
  br label %436

436:                                              ; preds = %433, %424
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #14
  %437 = load i32, ptr %15, align 4, !tbaa !9
  %438 = and i32 %437, 16384
  %439 = icmp ne i32 %438, 0
  %440 = zext i1 %439 to i8
  store i8 %440, ptr %44, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #14
  %441 = load i32, ptr %15, align 4, !tbaa !9
  %442 = and i32 %441, 32768
  %443 = icmp ne i32 %442, 0
  %444 = zext i1 %443 to i8
  store i8 %444, ptr %45, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #14
  %445 = load i32, ptr %15, align 4, !tbaa !9
  %446 = and i32 %445, 65536
  %447 = icmp eq i32 %446, 0
  %448 = zext i1 %447 to i8
  store i8 %448, ptr %46, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #14
  %449 = load i32, ptr %15, align 4, !tbaa !9
  %450 = and i32 %449, 262144
  %451 = icmp ne i32 %450, 0
  %452 = zext i1 %451 to i8
  store i8 %452, ptr %47, align 1, !tbaa !44
  %453 = load i8, ptr %47, align 1, !tbaa !44, !range !42, !noundef !43
  %454 = trunc i8 %453 to i1
  br i1 %454, label %455, label %462

455:                                              ; preds = %436
  %456 = load ptr, ptr %16, align 8, !tbaa !5
  %457 = icmp ne ptr %456, null
  br i1 %457, label %458, label %459

458:                                              ; preds = %455
  br label %461

459:                                              ; preds = %455
  call void @__assert_fail(ptr noundef @.str.61, ptr noundef @.str.4, i32 noundef 4182, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

460:                                              ; No predecessors!
  br label %461

461:                                              ; preds = %460, %458
  br label %462

462:                                              ; preds = %461, %436
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #14
  %463 = load ptr, ptr %20, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.ImGuiContext, ptr %463, i32 0, i32 52
  %465 = load i32, ptr %464, align 4, !tbaa !120
  %466 = load i32, ptr %25, align 4, !tbaa !9
  %467 = icmp ne i32 %465, %466
  br i1 %467, label %468, label %489

468:                                              ; preds = %462
  %469 = load ptr, ptr %20, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.ImGuiContext, ptr %469, i32 0, i32 116
  %471 = load i32, ptr %470, align 8, !tbaa !118
  %472 = load i32, ptr %25, align 4, !tbaa !9
  %473 = icmp eq i32 %471, %472
  br i1 %473, label %474, label %487

474:                                              ; preds = %468
  %475 = load ptr, ptr %20, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.ImGuiContext, ptr %475, i32 0, i32 119
  %477 = load i32, ptr %476, align 4, !tbaa !119
  %478 = and i32 %477, 1
  %479 = icmp ne i32 %478, 0
  br i1 %479, label %485, label %480

480:                                              ; preds = %474
  %481 = load ptr, ptr %20, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.ImGuiContext, ptr %481, i32 0, i32 127
  %483 = load i32, ptr %482, align 4, !tbaa !129
  %484 = icmp eq i32 %483, 2
  br label %485

485:                                              ; preds = %480, %474
  %486 = phi i1 [ true, %474 ], [ %484, %480 ]
  br label %487

487:                                              ; preds = %485, %468
  %488 = phi i1 [ false, %468 ], [ %486, %485 ]
  br label %489

489:                                              ; preds = %487, %462
  %490 = phi i1 [ false, %462 ], [ %488, %487 ]
  %491 = zext i1 %490 to i8
  store i8 %491, ptr %48, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #14
  %492 = load i8, ptr %42, align 1, !tbaa !44, !range !42, !noundef !43
  %493 = trunc i8 %492 to i1
  br i1 %493, label %494, label %500

494:                                              ; preds = %489
  %495 = load ptr, ptr %21, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.ImGuiIO, ptr %495, i32 0, i32 83
  %497 = getelementptr inbounds [5 x i8], ptr %496, i64 0, i64 0
  %498 = load i8, ptr %497, align 8, !tbaa !44, !range !42, !noundef !43
  %499 = trunc i8 %498 to i1
  br label %500

500:                                              ; preds = %494, %489
  %501 = phi i1 [ false, %489 ], [ %499, %494 ]
  %502 = zext i1 %501 to i8
  store i8 %502, ptr %49, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #14
  %503 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %504 = trunc i8 %503 to i1
  br i1 %504, label %505, label %520

505:                                              ; preds = %500
  %506 = load ptr, ptr %43, align 8, !tbaa !5
  %507 = icmp ne ptr %506, null
  br i1 %507, label %508, label %520

508:                                              ; preds = %505
  %509 = load ptr, ptr %20, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.ImGuiContext, ptr %509, i32 0, i32 52
  %511 = load i32, ptr %510, align 4, !tbaa !120
  %512 = icmp eq i32 %511, 0
  br i1 %512, label %513, label %520

513:                                              ; preds = %508
  %514 = load ptr, ptr %20, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.ImGuiContext, ptr %514, i32 0, i32 66
  %516 = load i32, ptr %515, align 4, !tbaa !130
  %517 = load ptr, ptr %34, align 8, !tbaa !5
  %518 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef %517, i32 noundef 1)
  %519 = icmp eq i32 %516, %518
  br label %520

520:                                              ; preds = %513, %508, %505, %500
  %521 = phi i1 [ false, %508 ], [ false, %505 ], [ false, %500 ], [ %519, %513 ]
  %522 = zext i1 %521 to i8
  store i8 %522, ptr %50, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #14
  %523 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %524 = trunc i8 %523 to i1
  br i1 %524, label %525, label %535

525:                                              ; preds = %520
  %526 = load ptr, ptr %43, align 8, !tbaa !5
  %527 = icmp ne ptr %526, null
  br i1 %527, label %528, label %535

528:                                              ; preds = %525
  %529 = load ptr, ptr %20, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct.ImGuiContext, ptr %529, i32 0, i32 52
  %531 = load i32, ptr %530, align 4, !tbaa !120
  %532 = load ptr, ptr %34, align 8, !tbaa !5
  %533 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef %532, i32 noundef 1)
  %534 = icmp eq i32 %531, %533
  br label %535

535:                                              ; preds = %528, %525, %520
  %536 = phi i1 [ false, %525 ], [ false, %520 ], [ %534, %528 ]
  %537 = zext i1 %536 to i8
  store i8 %537, ptr %51, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #14
  store i8 0, ptr %52, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #14
  store i8 0, ptr %53, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #14
  %538 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %539 = trunc i8 %538 to i1
  br i1 %539, label %540, label %545

540:                                              ; preds = %535
  %541 = load ptr, ptr %34, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.ImGuiWindow, ptr %541, i32 0, i32 30
  %543 = getelementptr inbounds %struct.ImVec2, ptr %542, i32 0, i32 1
  %544 = load float, ptr %543, align 4, !tbaa !131
  br label %546

545:                                              ; preds = %535
  br label %546

546:                                              ; preds = %545, %540
  %547 = phi float [ %544, %540 ], [ 0x47EFFFFFE0000000, %545 ]
  store float %547, ptr %54, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #14
  %548 = load ptr, ptr %43, align 8, !tbaa !5
  %549 = icmp ne ptr %548, null
  br i1 %549, label %550, label %561

550:                                              ; preds = %546
  %551 = load ptr, ptr %43, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %551, i32 0, i32 12
  %553 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %552, i32 0, i32 8
  %554 = load i8, ptr %553, align 1, !tbaa !132
  %555 = zext i8 %554 to i32
  %556 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %557 = trunc i8 %556 to i1
  %558 = xor i1 %557, true
  %559 = zext i1 %558 to i32
  %560 = icmp ne i32 %555, %559
  br label %561

561:                                              ; preds = %550, %546
  %562 = phi i1 [ false, %546 ], [ %560, %550 ]
  %563 = zext i1 %562 to i8
  store i8 %563, ptr %55, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #14
  %564 = load i8, ptr %49, align 1, !tbaa !44, !range !42, !noundef !43
  %565 = trunc i8 %564 to i1
  br i1 %565, label %572, label %566

566:                                              ; preds = %561
  %567 = load i8, ptr %50, align 1, !tbaa !44, !range !42, !noundef !43
  %568 = trunc i8 %567 to i1
  br i1 %568, label %572, label %569

569:                                              ; preds = %566
  %570 = load i8, ptr %48, align 1, !tbaa !44, !range !42, !noundef !43
  %571 = trunc i8 %570 to i1
  br label %572

572:                                              ; preds = %569, %566, %561
  %573 = phi i1 [ true, %566 ], [ true, %561 ], [ %571, %569 ]
  %574 = zext i1 %573 to i8
  store i8 %574, ptr %56, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #14
  %575 = load i8, ptr %56, align 1, !tbaa !44, !range !42, !noundef !43
  %576 = trunc i8 %575 to i1
  br i1 %576, label %580, label %577

577:                                              ; preds = %572
  %578 = load i8, ptr %51, align 1, !tbaa !44, !range !42, !noundef !43
  %579 = trunc i8 %578 to i1
  br label %580

580:                                              ; preds = %577, %572
  %581 = phi i1 [ true, %572 ], [ %579, %577 ]
  %582 = zext i1 %581 to i8
  store i8 %582, ptr %57, align 1, !tbaa !44
  %583 = load i8, ptr %57, align 1, !tbaa !44, !range !42, !noundef !43
  %584 = trunc i8 %583 to i1
  br i1 %584, label %585, label %591

585:                                              ; preds = %580
  %586 = load ptr, ptr %20, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.ImGuiContext, ptr %586, i32 0, i32 52
  %588 = load i32, ptr %587, align 4, !tbaa !120
  %589 = load i32, ptr %25, align 4, !tbaa !9
  %590 = icmp ne i32 %588, %589
  br i1 %590, label %594, label %591

591:                                              ; preds = %585, %580
  %592 = load i8, ptr %55, align 1, !tbaa !44, !range !42, !noundef !43
  %593 = trunc i8 %592 to i1
  br i1 %593, label %594, label %734

594:                                              ; preds = %591, %585
  %595 = load ptr, ptr %20, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.ImGuiContext, ptr %595, i32 0, i32 208
  store ptr %596, ptr %43, align 8, !tbaa !5
  %597 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %597)
  %598 = load ptr, ptr %43, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %598, i32 0, i32 1
  %600 = load i32, ptr %599, align 8, !tbaa !133
  call void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef %600)
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #14
  %601 = load ptr, ptr %12, align 8, !tbaa !5
  %602 = call i64 @strlen(ptr noundef %601) #16
  %603 = trunc i64 %602 to i32
  store i32 %603, ptr %58, align 4, !tbaa !9
  %604 = load ptr, ptr %43, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %604, i32 0, i32 7
  %606 = load i32, ptr %58, align 4, !tbaa !9
  %607 = add nsw i32 %606, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %605, i32 noundef %607)
  %608 = load ptr, ptr %43, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %608, i32 0, i32 7
  %610 = getelementptr inbounds %struct.ImVector.33, ptr %609, i32 0, i32 2
  %611 = load ptr, ptr %610, align 8, !tbaa !134
  %612 = load ptr, ptr %12, align 8, !tbaa !5
  %613 = load i32, ptr %58, align 4, !tbaa !9
  %614 = add nsw i32 %613, 1
  %615 = sext i32 %614 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %611, ptr align 1 %612, i64 %615, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #14
  %616 = load ptr, ptr %43, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %616, i32 0, i32 1
  %618 = load i32, ptr %617, align 8, !tbaa !133
  %619 = load i32, ptr %25, align 4, !tbaa !9
  %620 = icmp eq i32 %618, %619
  br i1 %620, label %621, label %625

621:                                              ; preds = %594
  %622 = load i8, ptr %55, align 1, !tbaa !44, !range !42, !noundef !43
  %623 = trunc i8 %622 to i1
  %624 = xor i1 %623, true
  br label %625

625:                                              ; preds = %621, %594
  %626 = phi i1 [ false, %594 ], [ %624, %621 ]
  %627 = zext i1 %626 to i8
  store i8 %627, ptr %59, align 1, !tbaa !44
  %628 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %629 = trunc i8 %628 to i1
  br i1 %629, label %630, label %652

630:                                              ; preds = %625
  %631 = load ptr, ptr %43, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %631, i32 0, i32 3
  %633 = load i32, ptr %632, align 8, !tbaa !135
  %634 = load i32, ptr %58, align 4, !tbaa !9
  %635 = icmp ne i32 %633, %634
  br i1 %635, label %651, label %636

636:                                              ; preds = %630
  %637 = load ptr, ptr %43, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %637, i32 0, i32 8
  %639 = load i8, ptr %638, align 8, !tbaa !136, !range !42, !noundef !43
  %640 = trunc i8 %639 to i1
  br i1 %640, label %641, label %652

641:                                              ; preds = %636
  %642 = load ptr, ptr %43, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %642, i32 0, i32 6
  %644 = getelementptr inbounds %struct.ImVector.33, ptr %643, i32 0, i32 2
  %645 = load ptr, ptr %644, align 8, !tbaa !137
  %646 = load ptr, ptr %12, align 8, !tbaa !5
  %647 = load i32, ptr %58, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = call i32 @strncmp(ptr noundef %645, ptr noundef %646, i64 noundef %648) #16
  %650 = icmp ne i32 %649, 0
  br i1 %650, label %651, label %652

651:                                              ; preds = %641, %630
  store i8 0, ptr %59, align 1, !tbaa !44
  br label %652

652:                                              ; preds = %651, %641, %636, %625
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #14
  store ptr null, ptr %60, align 8, !tbaa !5
  %653 = load i32, ptr %25, align 4, !tbaa !9
  %654 = load ptr, ptr %43, align 8, !tbaa !5
  %655 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %654, i32 0, i32 1
  store i32 %653, ptr %655, align 8, !tbaa !133
  %656 = load ptr, ptr %43, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %656, i32 0, i32 5
  %658 = load i32, ptr %13, align 4, !tbaa !9
  %659 = add nsw i32 %658, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %657, i32 noundef %659)
  %660 = load ptr, ptr %43, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %660, i32 0, i32 6
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %661, i32 noundef 0)
  %662 = load ptr, ptr %43, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %662, i32 0, i32 8
  store i8 0, ptr %663, align 8, !tbaa !136
  %664 = load ptr, ptr %43, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %664, i32 0, i32 5
  %666 = getelementptr inbounds %struct.ImVector.5, ptr %665, i32 0, i32 2
  %667 = load ptr, ptr %666, align 8, !tbaa !138
  %668 = load i32, ptr %13, align 4, !tbaa !9
  %669 = load ptr, ptr %12, align 8, !tbaa !5
  %670 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %667, i32 noundef %668, ptr noundef %669, ptr noundef null, ptr noundef %60)
  %671 = load ptr, ptr %43, align 8, !tbaa !5
  %672 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %671, i32 0, i32 2
  store i32 %670, ptr %672, align 4, !tbaa !139
  %673 = load ptr, ptr %60, align 8, !tbaa !5
  %674 = load ptr, ptr %12, align 8, !tbaa !5
  %675 = ptrtoint ptr %673 to i64
  %676 = ptrtoint ptr %674 to i64
  %677 = sub i64 %675, %676
  %678 = trunc i64 %677 to i32
  %679 = load ptr, ptr %43, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %679, i32 0, i32 3
  store i32 %678, ptr %680, align 8, !tbaa !135
  %681 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %682 = trunc i8 %681 to i1
  br i1 %682, label %683, label %685

683:                                              ; preds = %652
  %684 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %684)
  br label %694

685:                                              ; preds = %652
  %686 = load ptr, ptr %43, align 8, !tbaa !5
  %687 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %686, i32 0, i32 11
  store float 0.000000e+00, ptr %687, align 8, !tbaa !140
  %688 = load ptr, ptr %43, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %688, i32 0, i32 12
  %690 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %691 = trunc i8 %690 to i1
  %692 = xor i1 %691, true
  %693 = zext i1 %692 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef %689, i32 noundef %693)
  br label %694

694:                                              ; preds = %685, %683
  %695 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %696 = trunc i8 %695 to i1
  br i1 %696, label %725, label %697

697:                                              ; preds = %694
  %698 = load i32, ptr %15, align 4, !tbaa !9
  %699 = and i32 %698, 16
  %700 = icmp ne i32 %699, 0
  br i1 %700, label %701, label %702

701:                                              ; preds = %697
  store i8 1, ptr %53, align 1, !tbaa !44
  br label %702

702:                                              ; preds = %701, %697
  %703 = load i8, ptr %48, align 1, !tbaa !44, !range !42, !noundef !43
  %704 = trunc i8 %703 to i1
  br i1 %704, label %705, label %715

705:                                              ; preds = %702
  %706 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %707 = trunc i8 %706 to i1
  br i1 %707, label %708, label %714

708:                                              ; preds = %705
  %709 = load ptr, ptr %20, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.ImGuiContext, ptr %709, i32 0, i32 119
  %711 = load i32, ptr %710, align 4, !tbaa !119
  %712 = and i32 %711, 4
  %713 = icmp ne i32 %712, 0
  br i1 %713, label %715, label %714

714:                                              ; preds = %708, %705
  store i8 1, ptr %53, align 1, !tbaa !44
  br label %715

715:                                              ; preds = %714, %708, %702
  %716 = load i8, ptr %49, align 1, !tbaa !44, !range !42, !noundef !43
  %717 = trunc i8 %716 to i1
  br i1 %717, label %718, label %724

718:                                              ; preds = %715
  %719 = load ptr, ptr %21, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.ImGuiIO, ptr %719, i32 0, i32 73
  %721 = load i8, ptr %720, align 8, !tbaa !141, !range !42, !noundef !43
  %722 = trunc i8 %721 to i1
  br i1 %722, label %723, label %724

723:                                              ; preds = %718
  store i8 1, ptr %53, align 1, !tbaa !44
  br label %724

724:                                              ; preds = %723, %718, %715
  br label %725

725:                                              ; preds = %724, %694
  %726 = load i32, ptr %15, align 4, !tbaa !9
  %727 = and i32 %726, 8192
  %728 = icmp ne i32 %727, 0
  br i1 %728, label %729, label %733

729:                                              ; preds = %725
  %730 = load ptr, ptr %43, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %730, i32 0, i32 12
  %732 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %731, i32 0, i32 3
  store i8 1, ptr %732, align 4, !tbaa !142
  br label %733

733:                                              ; preds = %729, %725
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #14
  br label %734

734:                                              ; preds = %733, %591
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #14
  %735 = load ptr, ptr %21, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.ImGuiIO, ptr %735, i32 0, i32 22
  %737 = load i8, ptr %736, align 1, !tbaa !143, !range !42, !noundef !43
  %738 = trunc i8 %737 to i1
  %739 = zext i1 %738 to i8
  store i8 %739, ptr %61, align 1, !tbaa !44
  %740 = load ptr, ptr %20, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.ImGuiContext, ptr %740, i32 0, i32 52
  %742 = load i32, ptr %741, align 4, !tbaa !120
  %743 = load i32, ptr %25, align 4, !tbaa !9
  %744 = icmp ne i32 %742, %743
  br i1 %744, label %745, label %768

745:                                              ; preds = %734
  %746 = load i8, ptr %56, align 1, !tbaa !44, !range !42, !noundef !43
  %747 = trunc i8 %746 to i1
  br i1 %747, label %748, label %768

748:                                              ; preds = %745
  %749 = load ptr, ptr %43, align 8, !tbaa !5
  %750 = icmp ne ptr %749, null
  br i1 %750, label %751, label %757

751:                                              ; preds = %748
  %752 = load ptr, ptr %43, align 8, !tbaa !5
  %753 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %752, i32 0, i32 1
  %754 = load i32, ptr %753, align 8, !tbaa !133
  %755 = load i32, ptr %25, align 4, !tbaa !9
  %756 = icmp eq i32 %754, %755
  br label %757

757:                                              ; preds = %751, %748
  %758 = phi i1 [ false, %748 ], [ %756, %751 ]
  br i1 %758, label %759, label %760

759:                                              ; preds = %757
  br label %762

760:                                              ; preds = %757
  call void @__assert_fail(ptr noundef @.str.62, ptr noundef @.str.4, i32 noundef 4256, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

761:                                              ; No predecessors!
  br label %762

762:                                              ; preds = %761, %759
  %763 = load i32, ptr %25, align 4, !tbaa !9
  %764 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %763, ptr noundef %764)
  %765 = load i32, ptr %25, align 4, !tbaa !9
  %766 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %765, ptr noundef %766)
  %767 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef %767, i32 noundef 0)
  br label %768

768:                                              ; preds = %762, %745, %734
  %769 = load ptr, ptr %20, align 8, !tbaa !5
  %770 = getelementptr inbounds %struct.ImGuiContext, ptr %769, i32 0, i32 52
  %771 = load i32, ptr %770, align 4, !tbaa !120
  %772 = load i32, ptr %25, align 4, !tbaa !9
  %773 = icmp eq i32 %771, %772
  br i1 %773, label %774, label %811

774:                                              ; preds = %768
  %775 = load i8, ptr %49, align 1, !tbaa !44, !range !42, !noundef !43
  %776 = trunc i8 %775 to i1
  br i1 %776, label %777, label %779

777:                                              ; preds = %774
  %778 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 655, i32 noundef %778, i32 noundef 0)
  br label %779

779:                                              ; preds = %777, %774
  %780 = load ptr, ptr %20, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.ImGuiContext, ptr %780, i32 0, i32 78
  %782 = load i32, ptr %781, align 8, !tbaa !144
  %783 = or i32 %782, 3
  store i32 %783, ptr %781, align 8, !tbaa !144
  %784 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %785 = trunc i8 %784 to i1
  br i1 %785, label %790, label %786

786:                                              ; preds = %779
  %787 = load i32, ptr %15, align 4, !tbaa !9
  %788 = and i32 %787, 128
  %789 = icmp ne i32 %788, 0
  br i1 %789, label %790, label %795

790:                                              ; preds = %786, %779
  %791 = load ptr, ptr %20, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.ImGuiContext, ptr %791, i32 0, i32 78
  %793 = load i32, ptr %792, align 8, !tbaa !144
  %794 = or i32 %793, 12
  store i32 %794, ptr %792, align 8, !tbaa !144
  br label %795

795:                                              ; preds = %790, %786
  %796 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 525, i32 noundef %796, i32 noundef 0)
  %797 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 627, i32 noundef %797, i32 noundef 0)
  %798 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 519, i32 noundef %798, i32 noundef 0)
  %799 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 520, i32 noundef %799, i32 noundef 0)
  %800 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %801 = trunc i8 %800 to i1
  br i1 %801, label %802, label %805

802:                                              ; preds = %795
  %803 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 517, i32 noundef %803, i32 noundef 0)
  %804 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 518, i32 noundef %804, i32 noundef 0)
  br label %805

805:                                              ; preds = %802, %795
  %806 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %807 = trunc i8 %806 to i1
  br i1 %807, label %808, label %810

808:                                              ; preds = %805
  %809 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 16384, i32 noundef %809, i32 noundef 0)
  br label %810

810:                                              ; preds = %808, %805
  br label %811

811:                                              ; preds = %810, %768
  %812 = load ptr, ptr %20, align 8, !tbaa !5
  %813 = getelementptr inbounds %struct.ImGuiContext, ptr %812, i32 0, i32 52
  %814 = load i32, ptr %813, align 4, !tbaa !120
  %815 = load i32, ptr %25, align 4, !tbaa !9
  %816 = icmp eq i32 %814, %815
  br i1 %816, label %817, label %821

817:                                              ; preds = %811
  %818 = load ptr, ptr %43, align 8, !tbaa !5
  %819 = icmp eq ptr %818, null
  br i1 %819, label %820, label %821

820:                                              ; preds = %817
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %821

821:                                              ; preds = %820, %817, %811
  %822 = load ptr, ptr %20, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.ImGuiContext, ptr %822, i32 0, i32 52
  %824 = load i32, ptr %823, align 4, !tbaa !120
  %825 = load i32, ptr %25, align 4, !tbaa !9
  %826 = icmp eq i32 %824, %825
  br i1 %826, label %827, label %840

827:                                              ; preds = %821
  %828 = load ptr, ptr %21, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.ImGuiIO, ptr %828, i32 0, i32 83
  %830 = getelementptr inbounds [5 x i8], ptr %829, i64 0, i64 0
  %831 = load i8, ptr %830, align 8, !tbaa !44, !range !42, !noundef !43
  %832 = trunc i8 %831 to i1
  br i1 %832, label %833, label %840

833:                                              ; preds = %827
  %834 = load i8, ptr %57, align 1, !tbaa !44, !range !42, !noundef !43
  %835 = trunc i8 %834 to i1
  br i1 %835, label %840, label %836

836:                                              ; preds = %833
  %837 = load i8, ptr %56, align 1, !tbaa !44, !range !42, !noundef !43
  %838 = trunc i8 %837 to i1
  br i1 %838, label %840, label %839

839:                                              ; preds = %836
  store i8 1, ptr %52, align 1, !tbaa !44
  br label %840

840:                                              ; preds = %839, %836, %833, %827, %821
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #14
  %841 = load ptr, ptr %20, align 8, !tbaa !5
  %842 = getelementptr inbounds %struct.ImGuiContext, ptr %841, i32 0, i32 52
  %843 = load i32, ptr %842, align 4, !tbaa !120
  %844 = load i32, ptr %25, align 4, !tbaa !9
  %845 = icmp eq i32 %843, %844
  br i1 %845, label %854, label %846

846:                                              ; preds = %840
  %847 = load ptr, ptr %43, align 8, !tbaa !5
  %848 = icmp ne ptr %847, null
  br i1 %848, label %849, label %852

849:                                              ; preds = %846
  %850 = load i8, ptr %51, align 1, !tbaa !44, !range !42, !noundef !43
  %851 = trunc i8 %850 to i1
  br label %852

852:                                              ; preds = %849, %846
  %853 = phi i1 [ false, %846 ], [ %851, %849 ]
  br label %854

854:                                              ; preds = %852, %840
  %855 = phi i1 [ true, %840 ], [ %853, %852 ]
  %856 = zext i1 %855 to i8
  store i8 %856, ptr %62, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #14
  %857 = load ptr, ptr %43, align 8, !tbaa !5
  %858 = icmp ne ptr %857, null
  br i1 %858, label %859, label %868

859:                                              ; preds = %854
  %860 = load ptr, ptr %43, align 8, !tbaa !5
  %861 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %860)
  br i1 %861, label %865, label %862

862:                                              ; preds = %859
  %863 = load i8, ptr %53, align 1, !tbaa !44, !range !42, !noundef !43
  %864 = trunc i8 %863 to i1
  br i1 %864, label %865, label %868

865:                                              ; preds = %862, %859
  %866 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %867 = trunc i8 %866 to i1
  br label %868

868:                                              ; preds = %865, %862, %854
  %869 = phi i1 [ false, %862 ], [ false, %854 ], [ %867, %865 ]
  %870 = zext i1 %869 to i8
  store i8 %870, ptr %63, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #14
  store i8 0, ptr %64, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #14
  store i8 0, ptr %65, align 1, !tbaa !44
  %871 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %872 = trunc i8 %871 to i1
  br i1 %872, label %873, label %917

873:                                              ; preds = %868
  %874 = load ptr, ptr %43, align 8, !tbaa !5
  %875 = icmp ne ptr %874, null
  br i1 %875, label %876, label %917

876:                                              ; preds = %873
  %877 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %878 = trunc i8 %877 to i1
  br i1 %878, label %882, label %879

879:                                              ; preds = %876
  %880 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %881 = trunc i8 %880 to i1
  br i1 %881, label %882, label %917

882:                                              ; preds = %879, %876
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #14
  store ptr null, ptr %66, align 8, !tbaa !5
  %883 = load ptr, ptr %43, align 8, !tbaa !5
  %884 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %883, i32 0, i32 5
  %885 = load i32, ptr %13, align 4, !tbaa !9
  %886 = add nsw i32 %885, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %884, i32 noundef %886)
  %887 = load ptr, ptr %43, align 8, !tbaa !5
  %888 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %887, i32 0, i32 5
  %889 = getelementptr inbounds %struct.ImVector.5, ptr %888, i32 0, i32 2
  %890 = load ptr, ptr %889, align 8, !tbaa !138
  %891 = load ptr, ptr %43, align 8, !tbaa !5
  %892 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %891, i32 0, i32 5
  %893 = getelementptr inbounds %struct.ImVector.5, ptr %892, i32 0, i32 0
  %894 = load i32, ptr %893, align 8, !tbaa !145
  %895 = load ptr, ptr %12, align 8, !tbaa !5
  %896 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %890, i32 noundef %894, ptr noundef %895, ptr noundef null, ptr noundef %66)
  %897 = load ptr, ptr %43, align 8, !tbaa !5
  %898 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %897, i32 0, i32 2
  store i32 %896, ptr %898, align 4, !tbaa !139
  %899 = load ptr, ptr %66, align 8, !tbaa !5
  %900 = load ptr, ptr %12, align 8, !tbaa !5
  %901 = ptrtoint ptr %899 to i64
  %902 = ptrtoint ptr %900 to i64
  %903 = sub i64 %901, %902
  %904 = trunc i64 %903 to i32
  %905 = load ptr, ptr %43, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %905, i32 0, i32 3
  store i32 %904, ptr %906, align 8, !tbaa !135
  %907 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %907)
  %908 = load ptr, ptr %43, align 8, !tbaa !5
  %909 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %908)
  %910 = zext i1 %909 to i32
  %911 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %912 = trunc i8 %911 to i1
  %913 = zext i1 %912 to i32
  %914 = and i32 %913, %910
  %915 = icmp ne i32 %914, 0
  %916 = zext i1 %915 to i8
  store i8 %916, ptr %63, align 1, !tbaa !44
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #14
  br label %917

917:                                              ; preds = %882, %879, %873, %868
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #14
  %918 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %919 = trunc i8 %918 to i1
  br i1 %919, label %929, label %920

920:                                              ; preds = %917
  %921 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %922 = trunc i8 %921 to i1
  br i1 %922, label %929, label %923

923:                                              ; preds = %920
  %924 = load ptr, ptr %20, align 8, !tbaa !5
  %925 = getelementptr inbounds %struct.ImGuiContext, ptr %924, i32 0, i32 52
  %926 = load i32, ptr %925, align 4, !tbaa !120
  %927 = load i32, ptr %25, align 4, !tbaa !9
  %928 = icmp eq i32 %926, %927
  br i1 %928, label %929, label %940

929:                                              ; preds = %923, %920, %917
  %930 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %931 = trunc i8 %930 to i1
  br i1 %931, label %940, label %932

932:                                              ; preds = %929
  %933 = load ptr, ptr %43, align 8, !tbaa !5
  %934 = icmp ne ptr %933, null
  br i1 %934, label %935, label %940

935:                                              ; preds = %932
  %936 = load ptr, ptr %43, align 8, !tbaa !5
  %937 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %936, i32 0, i32 8
  %938 = load i8, ptr %937, align 8, !tbaa !136, !range !42, !noundef !43
  %939 = trunc i8 %938 to i1
  br label %940

940:                                              ; preds = %935, %932, %929, %923
  %941 = phi i1 [ false, %932 ], [ false, %929 ], [ false, %923 ], [ %939, %935 ]
  %942 = zext i1 %941 to i8
  store i8 %942, ptr %67, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #14
  %943 = load ptr, ptr %11, align 8, !tbaa !5
  %944 = icmp ne ptr %943, null
  br i1 %944, label %945, label %961

945:                                              ; preds = %940
  %946 = load i8, ptr %67, align 1, !tbaa !44, !range !42, !noundef !43
  %947 = trunc i8 %946 to i1
  br i1 %947, label %948, label %953

948:                                              ; preds = %945
  %949 = load ptr, ptr %43, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %949, i32 0, i32 6
  %951 = getelementptr inbounds %struct.ImVector.33, ptr %950, i32 0, i32 2
  %952 = load ptr, ptr %951, align 8, !tbaa !137
  br label %955

953:                                              ; preds = %945
  %954 = load ptr, ptr %12, align 8, !tbaa !5
  br label %955

955:                                              ; preds = %953, %948
  %956 = phi ptr [ %952, %948 ], [ %954, %953 ]
  %957 = getelementptr inbounds i8, ptr %956, i64 0
  %958 = load i8, ptr %957, align 1, !tbaa !146
  %959 = sext i8 %958 to i32
  %960 = icmp eq i32 %959, 0
  br label %961

961:                                              ; preds = %955, %940
  %962 = phi i1 [ false, %940 ], [ %960, %955 ]
  %963 = zext i1 %962 to i8
  store i8 %963, ptr %68, align 1, !tbaa !44
  %964 = load i8, ptr %45, align 1, !tbaa !44, !range !42, !noundef !43
  %965 = trunc i8 %964 to i1
  br i1 %965, label %966, label %1037

966:                                              ; preds = %961
  %967 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %968 = trunc i8 %967 to i1
  br i1 %968, label %1037, label %969

969:                                              ; preds = %966
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #14
  %970 = load ptr, ptr %20, align 8, !tbaa !5
  %971 = getelementptr inbounds %struct.ImGuiContext, ptr %970, i32 0, i32 7
  %972 = load ptr, ptr %971, align 8, !tbaa !147
  %973 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118) %972, i16 noundef zeroext 42)
  store ptr %973, ptr %69, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #14
  %974 = load ptr, ptr %20, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.ImGuiContext, ptr %974, i32 0, i32 210
  store ptr %975, ptr %70, align 8, !tbaa !5
  %976 = load ptr, ptr %20, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.ImGuiContext, ptr %976, i32 0, i32 7
  %978 = load ptr, ptr %977, align 8, !tbaa !147
  %979 = getelementptr inbounds %struct.ImFont, ptr %978, i32 0, i32 2
  %980 = load float, ptr %979, align 4, !tbaa !148
  %981 = load ptr, ptr %70, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.ImFont, ptr %981, i32 0, i32 2
  store float %980, ptr %982, align 4, !tbaa !148
  %983 = load ptr, ptr %20, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.ImGuiContext, ptr %983, i32 0, i32 7
  %985 = load ptr, ptr %984, align 8, !tbaa !147
  %986 = getelementptr inbounds %struct.ImFont, ptr %985, i32 0, i32 16
  %987 = load float, ptr %986, align 4, !tbaa !149
  %988 = load ptr, ptr %70, align 8, !tbaa !5
  %989 = getelementptr inbounds %struct.ImFont, ptr %988, i32 0, i32 16
  store float %987, ptr %989, align 4, !tbaa !149
  %990 = load ptr, ptr %20, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.ImGuiContext, ptr %990, i32 0, i32 7
  %992 = load ptr, ptr %991, align 8, !tbaa !147
  %993 = getelementptr inbounds %struct.ImFont, ptr %992, i32 0, i32 17
  %994 = load float, ptr %993, align 8, !tbaa !150
  %995 = load ptr, ptr %70, align 8, !tbaa !5
  %996 = getelementptr inbounds %struct.ImFont, ptr %995, i32 0, i32 17
  store float %994, ptr %996, align 8, !tbaa !150
  %997 = load ptr, ptr %20, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.ImGuiContext, ptr %997, i32 0, i32 7
  %999 = load ptr, ptr %998, align 8, !tbaa !147
  %1000 = getelementptr inbounds %struct.ImFont, ptr %999, i32 0, i32 18
  %1001 = load float, ptr %1000, align 4, !tbaa !151
  %1002 = load ptr, ptr %70, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.ImFont, ptr %1002, i32 0, i32 18
  store float %1001, ptr %1003, align 4, !tbaa !151
  %1004 = load ptr, ptr %20, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.ImGuiContext, ptr %1004, i32 0, i32 7
  %1006 = load ptr, ptr %1005, align 8, !tbaa !147
  %1007 = getelementptr inbounds %struct.ImFont, ptr %1006, i32 0, i32 6
  %1008 = load ptr, ptr %1007, align 8, !tbaa !152
  %1009 = load ptr, ptr %70, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.ImFont, ptr %1009, i32 0, i32 6
  store ptr %1008, ptr %1010, align 8, !tbaa !152
  %1011 = load ptr, ptr %69, align 8, !tbaa !5
  %1012 = load ptr, ptr %70, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.ImFont, ptr %1012, i32 0, i32 5
  store ptr %1011, ptr %1013, align 8, !tbaa !153
  %1014 = load ptr, ptr %69, align 8, !tbaa !5
  %1015 = getelementptr inbounds %struct.ImFontGlyph, ptr %1014, i32 0, i32 1
  %1016 = load float, ptr %1015, align 4, !tbaa !154
  %1017 = load ptr, ptr %70, align 8, !tbaa !5
  %1018 = getelementptr inbounds %struct.ImFont, ptr %1017, i32 0, i32 1
  store float %1016, ptr %1018, align 8, !tbaa !156
  %1019 = load ptr, ptr %70, align 8, !tbaa !5
  %1020 = getelementptr inbounds %struct.ImFont, ptr %1019, i32 0, i32 4
  %1021 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1020)
  br i1 %1021, label %1022, label %1030

1022:                                             ; preds = %969
  %1023 = load ptr, ptr %70, align 8, !tbaa !5
  %1024 = getelementptr inbounds %struct.ImFont, ptr %1023, i32 0, i32 0
  %1025 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1024)
  br i1 %1025, label %1026, label %1030

1026:                                             ; preds = %1022
  %1027 = load ptr, ptr %70, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.ImFont, ptr %1027, i32 0, i32 3
  %1029 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1028)
  br label %1030

1030:                                             ; preds = %1026, %1022, %969
  %1031 = phi i1 [ false, %1022 ], [ false, %969 ], [ %1029, %1026 ]
  br i1 %1031, label %1032, label %1033

1032:                                             ; preds = %1030
  br label %1035

1033:                                             ; preds = %1030
  call void @__assert_fail(ptr noundef @.str.63, ptr noundef @.str.4, i32 noundef 4324, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

1034:                                             ; No predecessors!
  br label %1035

1035:                                             ; preds = %1034, %1032
  %1036 = load ptr, ptr %70, align 8, !tbaa !5
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef %1036)
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #14
  br label %1037

1037:                                             ; preds = %1035, %966, %961
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #14
  store i32 0, ptr %71, align 4, !tbaa !9
  %1038 = load ptr, ptr %20, align 8, !tbaa !5
  %1039 = getelementptr inbounds %struct.ImGuiContext, ptr %1038, i32 0, i32 52
  %1040 = load i32, ptr %1039, align 4, !tbaa !120
  %1041 = load i32, ptr %25, align 4, !tbaa !9
  %1042 = icmp eq i32 %1040, %1041
  br i1 %1042, label %1043, label %1427

1043:                                             ; preds = %1037
  %1044 = load ptr, ptr %43, align 8, !tbaa !5
  %1045 = icmp ne ptr %1044, null
  br i1 %1045, label %1046, label %1047

1046:                                             ; preds = %1043
  br label %1049

1047:                                             ; preds = %1043
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.4, i32 noundef 4332, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

1048:                                             ; No predecessors!
  br label %1049

1049:                                             ; preds = %1048, %1046
  %1050 = load ptr, ptr %43, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1050, i32 0, i32 3
  %1052 = load i32, ptr %1051, align 8, !tbaa !135
  store i32 %1052, ptr %71, align 4, !tbaa !9
  %1053 = load ptr, ptr %43, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1053, i32 0, i32 16
  store i8 0, ptr %1054, align 2, !tbaa !157
  %1055 = load i32, ptr %13, align 4, !tbaa !9
  %1056 = load ptr, ptr %43, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1056, i32 0, i32 10
  store i32 %1055, ptr %1057, align 4, !tbaa !158
  %1058 = load i32, ptr %15, align 4, !tbaa !9
  %1059 = load ptr, ptr %43, align 8, !tbaa !5
  %1060 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1059, i32 0, i32 18
  store i32 %1058, ptr %1060, align 8, !tbaa !159
  %1061 = load ptr, ptr %21, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.ImGuiIO, ptr %1061, i32 0, i32 68
  %1063 = getelementptr inbounds [5 x i8], ptr %1062, i64 0, i64 0
  %1064 = load i8, ptr %1063, align 8, !tbaa !44, !range !42, !noundef !43
  %1065 = trunc i8 %1064 to i1
  %1066 = xor i1 %1065, true
  %1067 = load ptr, ptr %20, align 8, !tbaa !5
  %1068 = getelementptr inbounds %struct.ImGuiContext, ptr %1067, i32 0, i32 56
  %1069 = zext i1 %1066 to i8
  store i8 %1069, ptr %1068, align 1, !tbaa !160
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #14
  %1070 = load ptr, ptr %21, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.ImGuiIO, ptr %1070, i32 0, i32 67
  %1072 = getelementptr inbounds %struct.ImVec2, ptr %1071, i32 0, i32 0
  %1073 = load float, ptr %1072, align 8, !tbaa !161
  %1074 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %1075 = getelementptr inbounds %struct.ImVec2, ptr %1074, i32 0, i32 0
  %1076 = load float, ptr %1075, align 4, !tbaa !162
  %1077 = fsub float %1073, %1076
  %1078 = load ptr, ptr %22, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.ImGuiStyle, ptr %1078, i32 0, i32 12
  %1080 = getelementptr inbounds %struct.ImVec2, ptr %1079, i32 0, i32 0
  %1081 = load float, ptr %1080, align 4, !tbaa !163
  %1082 = fsub float %1077, %1081
  %1083 = load ptr, ptr %43, align 8, !tbaa !5
  %1084 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1083, i32 0, i32 11
  %1085 = load float, ptr %1084, align 8, !tbaa !140
  %1086 = fadd float %1082, %1085
  store float %1086, ptr %72, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #14
  %1087 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1088 = trunc i8 %1087 to i1
  br i1 %1088, label %1089, label %1100

1089:                                             ; preds = %1049
  %1090 = load ptr, ptr %21, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.ImGuiIO, ptr %1090, i32 0, i32 67
  %1092 = getelementptr inbounds %struct.ImVec2, ptr %1091, i32 0, i32 1
  %1093 = load float, ptr %1092, align 4, !tbaa !164
  %1094 = load ptr, ptr %34, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct.ImGuiWindow, ptr %1094, i32 0, i32 70
  %1096 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1095, i32 0, i32 0
  %1097 = getelementptr inbounds %struct.ImVec2, ptr %1096, i32 0, i32 1
  %1098 = load float, ptr %1097, align 4, !tbaa !165
  %1099 = fsub float %1093, %1098
  br label %1105

1100:                                             ; preds = %1049
  %1101 = load ptr, ptr %20, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.ImGuiContext, ptr %1101, i32 0, i32 8
  %1103 = load float, ptr %1102, align 8, !tbaa !47
  %1104 = fmul float %1103, 5.000000e-01
  br label %1105

1105:                                             ; preds = %1100, %1089
  %1106 = phi float [ %1099, %1089 ], [ %1104, %1100 ]
  store float %1106, ptr %73, align 4, !tbaa !46
  %1107 = load i8, ptr %53, align 1, !tbaa !44, !range !42, !noundef !43
  %1108 = trunc i8 %1107 to i1
  br i1 %1108, label %1109, label %1113

1109:                                             ; preds = %1105
  %1110 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %1110)
  %1111 = load ptr, ptr %43, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1111, i32 0, i32 15
  store i8 1, ptr %1112, align 1, !tbaa !166
  br label %1315

1113:                                             ; preds = %1105
  %1114 = load i8, ptr %42, align 1, !tbaa !44, !range !42, !noundef !43
  %1115 = trunc i8 %1114 to i1
  br i1 %1115, label %1116, label %1246

1116:                                             ; preds = %1113
  %1117 = load ptr, ptr %21, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.ImGuiIO, ptr %1117, i32 0, i32 85
  %1119 = getelementptr inbounds [5 x i16], ptr %1118, i64 0, i64 0
  %1120 = load i16, ptr %1119, align 2, !tbaa !167
  %1121 = zext i16 %1120 to i32
  %1122 = icmp sge i32 %1121, 2
  br i1 %1122, label %1123, label %1246

1123:                                             ; preds = %1116
  %1124 = load ptr, ptr %21, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.ImGuiIO, ptr %1124, i32 0, i32 74
  %1126 = load i8, ptr %1125, align 1, !tbaa !168, !range !42, !noundef !43
  %1127 = trunc i8 %1126 to i1
  br i1 %1127, label %1246, label %1128

1128:                                             ; preds = %1123
  %1129 = load ptr, ptr %43, align 8, !tbaa !5
  %1130 = load ptr, ptr %43, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1130, i32 0, i32 12
  %1132 = load float, ptr %72, align 4, !tbaa !46
  %1133 = load float, ptr %73, align 4, !tbaa !46
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1129, ptr noundef %1131, float noundef %1132, float noundef %1133)
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #14
  %1134 = load ptr, ptr %21, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.ImGuiIO, ptr %1134, i32 0, i32 85
  %1136 = getelementptr inbounds [5 x i16], ptr %1135, i64 0, i64 0
  %1137 = load i16, ptr %1136, align 2, !tbaa !167
  %1138 = zext i16 %1137 to i32
  %1139 = sub nsw i32 %1138, 2
  store i32 %1139, ptr %74, align 4, !tbaa !9
  %1140 = load i32, ptr %74, align 4, !tbaa !9
  %1141 = srem i32 %1140, 2
  %1142 = icmp eq i32 %1141, 0
  br i1 %1142, label %1143, label %1209

1143:                                             ; preds = %1128
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #14
  %1144 = load ptr, ptr %43, align 8, !tbaa !5
  %1145 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1144, i32 0, i32 12
  %1146 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1145, i32 0, i32 0
  %1147 = load i32, ptr %1146, align 4, !tbaa !169
  %1148 = icmp eq i32 %1147, 0
  br i1 %1148, label %1159, label %1149

1149:                                             ; preds = %1143
  %1150 = load ptr, ptr %43, align 8, !tbaa !5
  %1151 = load ptr, ptr %43, align 8, !tbaa !5
  %1152 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1151, i32 0, i32 12
  %1153 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1152, i32 0, i32 0
  %1154 = load i32, ptr %1153, align 4, !tbaa !169
  %1155 = sub nsw i32 %1154, 1
  %1156 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef %1150, i32 noundef %1155)
  %1157 = zext i16 %1156 to i32
  %1158 = icmp eq i32 %1157, 10
  br label %1159

1159:                                             ; preds = %1149, %1143
  %1160 = phi i1 [ true, %1143 ], [ %1158, %1149 ]
  %1161 = zext i1 %1160 to i8
  store i8 %1161, ptr %75, align 1, !tbaa !44
  %1162 = load ptr, ptr %43, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1162, i32 0, i32 12
  %1164 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1163, i32 0, i32 1
  %1165 = load i32, ptr %1164, align 4, !tbaa !170
  %1166 = load ptr, ptr %43, align 8, !tbaa !5
  %1167 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1166, i32 0, i32 12
  %1168 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1167, i32 0, i32 2
  %1169 = load i32, ptr %1168, align 4, !tbaa !171
  %1170 = icmp ne i32 %1165, %1169
  br i1 %1170, label %1174, label %1171

1171:                                             ; preds = %1159
  %1172 = load i8, ptr %75, align 1, !tbaa !44, !range !42, !noundef !43
  %1173 = trunc i8 %1172 to i1
  br i1 %1173, label %1176, label %1174

1174:                                             ; preds = %1171, %1159
  %1175 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1175, i32 noundef 2097164)
  br label %1176

1176:                                             ; preds = %1174, %1171
  %1177 = load ptr, ptr %43, align 8, !tbaa !5
  %1178 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1177, i32 0, i32 12
  %1179 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1178, i32 0, i32 1
  %1180 = load i32, ptr %1179, align 4, !tbaa !170
  %1181 = load ptr, ptr %43, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1181, i32 0, i32 12
  %1183 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1182, i32 0, i32 2
  %1184 = load i32, ptr %1183, align 4, !tbaa !171
  %1185 = icmp ne i32 %1180, %1184
  br i1 %1185, label %1189, label %1186

1186:                                             ; preds = %1176
  %1187 = load ptr, ptr %43, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1187, i32 0, i32 12
  call void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef %1188)
  br label %1189

1189:                                             ; preds = %1186, %1176
  %1190 = load ptr, ptr %43, align 8, !tbaa !5
  %1191 = load ptr, ptr %43, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1191, i32 0, i32 12
  %1193 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1192, i32 0, i32 0
  %1194 = load i32, ptr %1193, align 4, !tbaa !169
  %1195 = call noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef %1190, i32 noundef %1194)
  %1196 = load ptr, ptr %43, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1196, i32 0, i32 12
  %1198 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1197, i32 0, i32 0
  store i32 %1195, ptr %1198, align 4, !tbaa !169
  %1199 = load ptr, ptr %43, align 8, !tbaa !5
  %1200 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1199, i32 0, i32 12
  %1201 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1200, i32 0, i32 0
  %1202 = load i32, ptr %1201, align 4, !tbaa !169
  %1203 = load ptr, ptr %43, align 8, !tbaa !5
  %1204 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1203, i32 0, i32 12
  %1205 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1204, i32 0, i32 2
  store i32 %1202, ptr %1205, align 4, !tbaa !171
  %1206 = load ptr, ptr %43, align 8, !tbaa !5
  %1207 = load ptr, ptr %43, align 8, !tbaa !5
  %1208 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1207, i32 0, i32 12
  call void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %1206, ptr noundef %1208)
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #14
  br label %1244

1209:                                             ; preds = %1128
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #14
  %1210 = load ptr, ptr %43, align 8, !tbaa !5
  %1211 = load ptr, ptr %43, align 8, !tbaa !5
  %1212 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1211, i32 0, i32 12
  %1213 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1212, i32 0, i32 0
  %1214 = load i32, ptr %1213, align 4, !tbaa !169
  %1215 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef %1210, i32 noundef %1214)
  %1216 = zext i16 %1215 to i32
  %1217 = icmp eq i32 %1216, 10
  %1218 = zext i1 %1217 to i8
  store i8 %1218, ptr %76, align 1, !tbaa !44
  %1219 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1219, i32 noundef 2097156)
  %1220 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1220, i32 noundef 6291461)
  %1221 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1221, i32 noundef 6291457)
  %1222 = load i8, ptr %76, align 1, !tbaa !44, !range !42, !noundef !43
  %1223 = trunc i8 %1222 to i1
  br i1 %1223, label %1241, label %1224

1224:                                             ; preds = %1209
  %1225 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1226 = trunc i8 %1225 to i1
  br i1 %1226, label %1227, label %1241

1227:                                             ; preds = %1224
  %1228 = load ptr, ptr %43, align 8, !tbaa !5
  %1229 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1228, i32 0, i32 12
  %1230 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1229, i32 0, i32 1
  %1231 = load ptr, ptr %43, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1231, i32 0, i32 12
  %1233 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1232, i32 0, i32 2
  call void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4) %1230, ptr noundef nonnull align 4 dereferenceable(4) %1233)
  %1234 = load ptr, ptr %43, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1234, i32 0, i32 12
  %1236 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1235, i32 0, i32 2
  %1237 = load i32, ptr %1236, align 4, !tbaa !171
  %1238 = load ptr, ptr %43, align 8, !tbaa !5
  %1239 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1238, i32 0, i32 12
  %1240 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1239, i32 0, i32 0
  store i32 %1237, ptr %1240, align 4, !tbaa !169
  br label %1241

1241:                                             ; preds = %1227, %1224, %1209
  %1242 = load ptr, ptr %43, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1242, i32 0, i32 14
  store i8 0, ptr %1243, align 4, !tbaa !172
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #14
  br label %1244

1244:                                             ; preds = %1241, %1189
  %1245 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %1245)
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #14
  br label %1314

1246:                                             ; preds = %1123, %1116, %1113
  %1247 = load ptr, ptr %21, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.ImGuiIO, ptr %1247, i32 0, i32 83
  %1249 = getelementptr inbounds [5 x i8], ptr %1248, i64 0, i64 0
  %1250 = load i8, ptr %1249, align 8, !tbaa !44, !range !42, !noundef !43
  %1251 = trunc i8 %1250 to i1
  br i1 %1251, label %1252, label %1280

1252:                                             ; preds = %1246
  %1253 = load ptr, ptr %43, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1253, i32 0, i32 15
  %1255 = load i8, ptr %1254, align 1, !tbaa !166, !range !42, !noundef !43
  %1256 = trunc i8 %1255 to i1
  br i1 %1256, label %1280, label %1257

1257:                                             ; preds = %1252
  %1258 = load i8, ptr %42, align 1, !tbaa !44, !range !42, !noundef !43
  %1259 = trunc i8 %1258 to i1
  br i1 %1259, label %1260, label %1279

1260:                                             ; preds = %1257
  %1261 = load ptr, ptr %21, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.ImGuiIO, ptr %1261, i32 0, i32 74
  %1263 = load i8, ptr %1262, align 1, !tbaa !168, !range !42, !noundef !43
  %1264 = trunc i8 %1263 to i1
  br i1 %1264, label %1265, label %1271

1265:                                             ; preds = %1260
  %1266 = load ptr, ptr %43, align 8, !tbaa !5
  %1267 = load ptr, ptr %43, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1267, i32 0, i32 12
  %1269 = load float, ptr %72, align 4, !tbaa !46
  %1270 = load float, ptr %73, align 4, !tbaa !46
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1266, ptr noundef %1268, float noundef %1269, float noundef %1270)
  br label %1277

1271:                                             ; preds = %1260
  %1272 = load ptr, ptr %43, align 8, !tbaa !5
  %1273 = load ptr, ptr %43, align 8, !tbaa !5
  %1274 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1273, i32 0, i32 12
  %1275 = load float, ptr %72, align 4, !tbaa !46
  %1276 = load float, ptr %73, align 4, !tbaa !46
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1272, ptr noundef %1274, float noundef %1275, float noundef %1276)
  br label %1277

1277:                                             ; preds = %1271, %1265
  %1278 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %1278)
  br label %1279

1279:                                             ; preds = %1277, %1257
  br label %1313

1280:                                             ; preds = %1252, %1246
  %1281 = load ptr, ptr %21, align 8, !tbaa !5
  %1282 = getelementptr inbounds %struct.ImGuiIO, ptr %1281, i32 0, i32 68
  %1283 = getelementptr inbounds [5 x i8], ptr %1282, i64 0, i64 0
  %1284 = load i8, ptr %1283, align 8, !tbaa !44, !range !42, !noundef !43
  %1285 = trunc i8 %1284 to i1
  br i1 %1285, label %1286, label %1312

1286:                                             ; preds = %1280
  %1287 = load ptr, ptr %43, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1287, i32 0, i32 15
  %1289 = load i8, ptr %1288, align 1, !tbaa !166, !range !42, !noundef !43
  %1290 = trunc i8 %1289 to i1
  br i1 %1290, label %1312, label %1291

1291:                                             ; preds = %1286
  %1292 = load ptr, ptr %21, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.ImGuiIO, ptr %1292, i32 0, i32 62
  %1294 = getelementptr inbounds %struct.ImVec2, ptr %1293, i32 0, i32 0
  %1295 = load float, ptr %1294, align 8, !tbaa !173
  %1296 = fcmp une float %1295, 0.000000e+00
  br i1 %1296, label %1303, label %1297

1297:                                             ; preds = %1291
  %1298 = load ptr, ptr %21, align 8, !tbaa !5
  %1299 = getelementptr inbounds %struct.ImGuiIO, ptr %1298, i32 0, i32 62
  %1300 = getelementptr inbounds %struct.ImVec2, ptr %1299, i32 0, i32 1
  %1301 = load float, ptr %1300, align 4, !tbaa !174
  %1302 = fcmp une float %1301, 0.000000e+00
  br i1 %1302, label %1303, label %1312

1303:                                             ; preds = %1297, %1291
  %1304 = load ptr, ptr %43, align 8, !tbaa !5
  %1305 = load ptr, ptr %43, align 8, !tbaa !5
  %1306 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1305, i32 0, i32 12
  %1307 = load float, ptr %72, align 4, !tbaa !46
  %1308 = load float, ptr %73, align 4, !tbaa !46
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1304, ptr noundef %1306, float noundef %1307, float noundef %1308)
  %1309 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %1309)
  %1310 = load ptr, ptr %43, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1310, i32 0, i32 14
  store i8 1, ptr %1311, align 4, !tbaa !172
  br label %1312

1312:                                             ; preds = %1303, %1297, %1286, %1280
  br label %1313

1313:                                             ; preds = %1312, %1279
  br label %1314

1314:                                             ; preds = %1313, %1244
  br label %1315

1315:                                             ; preds = %1314, %1109
  %1316 = load ptr, ptr %43, align 8, !tbaa !5
  %1317 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1316, i32 0, i32 15
  %1318 = load i8, ptr %1317, align 1, !tbaa !166, !range !42, !noundef !43
  %1319 = trunc i8 %1318 to i1
  br i1 %1319, label %1320, label %1329

1320:                                             ; preds = %1315
  %1321 = load ptr, ptr %21, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.ImGuiIO, ptr %1321, i32 0, i32 68
  %1323 = getelementptr inbounds [5 x i8], ptr %1322, i64 0, i64 0
  %1324 = load i8, ptr %1323, align 8, !tbaa !44, !range !42, !noundef !43
  %1325 = trunc i8 %1324 to i1
  br i1 %1325, label %1329, label %1326

1326:                                             ; preds = %1320
  %1327 = load ptr, ptr %43, align 8, !tbaa !5
  %1328 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1327, i32 0, i32 15
  store i8 0, ptr %1328, align 1, !tbaa !166
  br label %1329

1329:                                             ; preds = %1326, %1320, %1315
  %1330 = load i32, ptr %15, align 4, !tbaa !9
  %1331 = and i32 %1330, 1024
  %1332 = icmp ne i32 %1331, 0
  br i1 %1332, label %1333, label %1350

1333:                                             ; preds = %1329
  %1334 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %1335 = trunc i8 %1334 to i1
  br i1 %1335, label %1350, label %1336

1336:                                             ; preds = %1333
  %1337 = load i32, ptr %25, align 4, !tbaa !9
  %1338 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %1337, i32 noundef 1)
  br i1 %1338, label %1339, label %1349

1339:                                             ; preds = %1336
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #14
  store i32 9, ptr %77, align 4, !tbaa !9
  %1340 = load ptr, ptr %20, align 8, !tbaa !5
  %1341 = load i32, ptr %15, align 4, !tbaa !9
  %1342 = load ptr, ptr %16, align 8, !tbaa !5
  %1343 = load ptr, ptr %17, align 8, !tbaa !5
  %1344 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %1340, ptr noundef %77, i32 noundef %1341, ptr noundef %1342, ptr noundef %1343, i32 noundef 2)
  br i1 %1344, label %1345, label %1348

1345:                                             ; preds = %1339
  %1346 = load ptr, ptr %43, align 8, !tbaa !5
  %1347 = load i32, ptr %77, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1346, i32 noundef %1347)
  br label %1348

1348:                                             ; preds = %1345, %1339
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #14
  br label %1349

1349:                                             ; preds = %1348, %1336
  br label %1350

1350:                                             ; preds = %1349, %1333, %1329
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #14
  %1351 = load ptr, ptr %21, align 8, !tbaa !5
  %1352 = getelementptr inbounds %struct.ImGuiIO, ptr %1351, i32 0, i32 73
  %1353 = load i8, ptr %1352, align 8, !tbaa !141, !range !42, !noundef !43
  %1354 = trunc i8 %1353 to i1
  br i1 %1354, label %1355, label %1360

1355:                                             ; preds = %1350
  %1356 = load ptr, ptr %21, align 8, !tbaa !5
  %1357 = getelementptr inbounds %struct.ImGuiIO, ptr %1356, i32 0, i32 75
  %1358 = load i8, ptr %1357, align 2, !tbaa !175, !range !42, !noundef !43
  %1359 = trunc i8 %1358 to i1
  br i1 %1359, label %1360, label %1370

1360:                                             ; preds = %1355, %1350
  %1361 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %1362 = trunc i8 %1361 to i1
  br i1 %1362, label %1363, label %1368

1363:                                             ; preds = %1360
  %1364 = load ptr, ptr %21, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.ImGuiIO, ptr %1364, i32 0, i32 76
  %1366 = load i8, ptr %1365, align 1, !tbaa !176, !range !42, !noundef !43
  %1367 = trunc i8 %1366 to i1
  br label %1368

1368:                                             ; preds = %1363, %1360
  %1369 = phi i1 [ false, %1360 ], [ %1367, %1363 ]
  br label %1370

1370:                                             ; preds = %1368, %1355
  %1371 = phi i1 [ true, %1355 ], [ %1369, %1368 ]
  %1372 = zext i1 %1371 to i8
  store i8 %1372, ptr %78, align 1, !tbaa !44
  %1373 = load ptr, ptr %21, align 8, !tbaa !5
  %1374 = getelementptr inbounds %struct.ImGuiIO, ptr %1373, i32 0, i32 101
  %1375 = getelementptr inbounds %struct.ImVector.5, ptr %1374, i32 0, i32 0
  %1376 = load i32, ptr %1375, align 8, !tbaa !177
  %1377 = icmp sgt i32 %1376, 0
  br i1 %1377, label %1378, label %1426

1378:                                             ; preds = %1370
  %1379 = load i8, ptr %78, align 1, !tbaa !44, !range !42, !noundef !43
  %1380 = trunc i8 %1379 to i1
  br i1 %1380, label %1423, label %1381

1381:                                             ; preds = %1378
  %1382 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %1383 = trunc i8 %1382 to i1
  br i1 %1383, label %1423, label %1384

1384:                                             ; preds = %1381
  %1385 = load i8, ptr %48, align 1, !tbaa !44, !range !42, !noundef !43
  %1386 = trunc i8 %1385 to i1
  br i1 %1386, label %1423, label %1387

1387:                                             ; preds = %1384
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #14
  store i32 0, ptr %79, align 4, !tbaa !9
  br label %1388

1388:                                             ; preds = %1419, %1387
  %1389 = load i32, ptr %79, align 4, !tbaa !9
  %1390 = load ptr, ptr %21, align 8, !tbaa !5
  %1391 = getelementptr inbounds %struct.ImGuiIO, ptr %1390, i32 0, i32 101
  %1392 = getelementptr inbounds %struct.ImVector.5, ptr %1391, i32 0, i32 0
  %1393 = load i32, ptr %1392, align 8, !tbaa !177
  %1394 = icmp slt i32 %1389, %1393
  br i1 %1394, label %1396, label %1395

1395:                                             ; preds = %1388
  store i32 2, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #14
  br label %1422

1396:                                             ; preds = %1388
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #14
  %1397 = load ptr, ptr %21, align 8, !tbaa !5
  %1398 = getelementptr inbounds %struct.ImGuiIO, ptr %1397, i32 0, i32 101
  %1399 = load i32, ptr %79, align 4, !tbaa !9
  %1400 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1398, i32 noundef %1399)
  %1401 = load i16, ptr %1400, align 2, !tbaa !167
  %1402 = zext i16 %1401 to i32
  store i32 %1402, ptr %80, align 4, !tbaa !9
  %1403 = load i32, ptr %80, align 4, !tbaa !9
  %1404 = icmp eq i32 %1403, 9
  br i1 %1404, label %1405, label %1406

1405:                                             ; preds = %1396
  store i32 4, ptr %19, align 4
  br label %1416

1406:                                             ; preds = %1396
  %1407 = load ptr, ptr %20, align 8, !tbaa !5
  %1408 = load i32, ptr %15, align 4, !tbaa !9
  %1409 = load ptr, ptr %16, align 8, !tbaa !5
  %1410 = load ptr, ptr %17, align 8, !tbaa !5
  %1411 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %1407, ptr noundef %80, i32 noundef %1408, ptr noundef %1409, ptr noundef %1410, i32 noundef 2)
  br i1 %1411, label %1412, label %1415

1412:                                             ; preds = %1406
  %1413 = load ptr, ptr %43, align 8, !tbaa !5
  %1414 = load i32, ptr %80, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1413, i32 noundef %1414)
  br label %1415

1415:                                             ; preds = %1412, %1406
  store i32 0, ptr %19, align 4
  br label %1416

1416:                                             ; preds = %1415, %1405
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #14
  %1417 = load i32, ptr %19, align 4
  switch i32 %1417, label %3602 [
    i32 0, label %1418
    i32 4, label %1419
  ]

1418:                                             ; preds = %1416
  br label %1419

1419:                                             ; preds = %1418, %1416
  %1420 = load i32, ptr %79, align 4, !tbaa !9
  %1421 = add nsw i32 %1420, 1
  store i32 %1421, ptr %79, align 4, !tbaa !9
  br label %1388, !llvm.loop !178

1422:                                             ; preds = %1395
  br label %1423

1423:                                             ; preds = %1422, %1384, %1381, %1378
  %1424 = load ptr, ptr %21, align 8, !tbaa !5
  %1425 = getelementptr inbounds %struct.ImGuiIO, ptr %1424, i32 0, i32 101
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1425, i32 noundef 0)
  br label %1426

1426:                                             ; preds = %1423, %1370
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #14
  br label %1427

1427:                                             ; preds = %1426, %1037
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #14
  store i8 0, ptr %81, align 1, !tbaa !44
  %1428 = load ptr, ptr %20, align 8, !tbaa !5
  %1429 = getelementptr inbounds %struct.ImGuiContext, ptr %1428, i32 0, i32 52
  %1430 = load i32, ptr %1429, align 4, !tbaa !120
  %1431 = load i32, ptr %25, align 4, !tbaa !9
  %1432 = icmp eq i32 %1430, %1431
  br i1 %1432, label %1433, label %2144

1433:                                             ; preds = %1427
  %1434 = load ptr, ptr %20, align 8, !tbaa !5
  %1435 = getelementptr inbounds %struct.ImGuiContext, ptr %1434, i32 0, i32 55
  %1436 = load i8, ptr %1435, align 8, !tbaa !180, !range !42, !noundef !43
  %1437 = trunc i8 %1436 to i1
  br i1 %1437, label %2144, label %1438

1438:                                             ; preds = %1433
  %1439 = load i8, ptr %52, align 1, !tbaa !44, !range !42, !noundef !43
  %1440 = trunc i8 %1439 to i1
  br i1 %1440, label %2144, label %1441

1441:                                             ; preds = %1438
  %1442 = load ptr, ptr %43, align 8, !tbaa !5
  %1443 = icmp ne ptr %1442, null
  br i1 %1443, label %1444, label %1445

1444:                                             ; preds = %1441
  br label %1447

1445:                                             ; preds = %1441
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.4, i32 noundef 4449, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

1446:                                             ; No predecessors!
  br label %1447

1447:                                             ; preds = %1446, %1444
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #14
  %1448 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %1449 = load float, ptr %1448, align 4, !tbaa !113
  %1450 = load ptr, ptr %22, align 8, !tbaa !5
  %1451 = getelementptr inbounds %struct.ImGuiStyle, ptr %1450, i32 0, i32 12
  %1452 = getelementptr inbounds %struct.ImVec2, ptr %1451, i32 0, i32 1
  %1453 = load float, ptr %1452, align 4, !tbaa !114
  %1454 = fsub float %1449, %1453
  %1455 = load ptr, ptr %20, align 8, !tbaa !5
  %1456 = getelementptr inbounds %struct.ImGuiContext, ptr %1455, i32 0, i32 8
  %1457 = load float, ptr %1456, align 8, !tbaa !47
  %1458 = fdiv float %1454, %1457
  %1459 = fptosi float %1458 to i32
  %1460 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1459, i32 noundef 1)
  store i32 %1460, ptr %82, align 4, !tbaa !9
  %1461 = load i32, ptr %82, align 4, !tbaa !9
  %1462 = load ptr, ptr %43, align 8, !tbaa !5
  %1463 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1462, i32 0, i32 12
  %1464 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1463, i32 0, i32 4
  store i32 %1461, ptr %1464, align 4, !tbaa !181
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #14
  %1465 = load ptr, ptr %21, align 8, !tbaa !5
  %1466 = getelementptr inbounds %struct.ImGuiIO, ptr %1465, i32 0, i32 74
  %1467 = load i8, ptr %1466, align 1, !tbaa !168, !range !42, !noundef !43
  %1468 = trunc i8 %1467 to i1
  %1469 = zext i1 %1468 to i64
  %1470 = select i1 %1468, i32 4194304, i32 0
  store i32 %1470, ptr %83, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #14
  %1471 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %1472 = trunc i8 %1471 to i1
  br i1 %1472, label %1473, label %1478

1473:                                             ; preds = %1447
  %1474 = load ptr, ptr %21, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.ImGuiIO, ptr %1474, i32 0, i32 75
  %1476 = load i8, ptr %1475, align 2, !tbaa !175, !range !42, !noundef !43
  %1477 = trunc i8 %1476 to i1
  br label %1483

1478:                                             ; preds = %1447
  %1479 = load ptr, ptr %21, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.ImGuiIO, ptr %1479, i32 0, i32 73
  %1481 = load i8, ptr %1480, align 8, !tbaa !141, !range !42, !noundef !43
  %1482 = trunc i8 %1481 to i1
  br label %1483

1483:                                             ; preds = %1478, %1473
  %1484 = phi i1 [ %1477, %1473 ], [ %1482, %1478 ]
  %1485 = zext i1 %1484 to i8
  store i8 %1485, ptr %84, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #14
  %1486 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %1487 = trunc i8 %1486 to i1
  br i1 %1487, label %1488, label %1504

1488:                                             ; preds = %1483
  %1489 = load ptr, ptr %21, align 8, !tbaa !5
  %1490 = getelementptr inbounds %struct.ImGuiIO, ptr %1489, i32 0, i32 76
  %1491 = load i8, ptr %1490, align 1, !tbaa !176, !range !42, !noundef !43
  %1492 = trunc i8 %1491 to i1
  br i1 %1492, label %1493, label %1504

1493:                                             ; preds = %1488
  %1494 = load ptr, ptr %21, align 8, !tbaa !5
  %1495 = getelementptr inbounds %struct.ImGuiIO, ptr %1494, i32 0, i32 73
  %1496 = load i8, ptr %1495, align 8, !tbaa !141, !range !42, !noundef !43
  %1497 = trunc i8 %1496 to i1
  br i1 %1497, label %1504, label %1498

1498:                                             ; preds = %1493
  %1499 = load ptr, ptr %21, align 8, !tbaa !5
  %1500 = getelementptr inbounds %struct.ImGuiIO, ptr %1499, i32 0, i32 75
  %1501 = load i8, ptr %1500, align 2, !tbaa !175, !range !42, !noundef !43
  %1502 = trunc i8 %1501 to i1
  %1503 = xor i1 %1502, true
  br label %1504

1504:                                             ; preds = %1498, %1493, %1488, %1483
  %1505 = phi i1 [ false, %1493 ], [ false, %1488 ], [ false, %1483 ], [ %1503, %1498 ]
  %1506 = zext i1 %1505 to i8
  store i8 %1506, ptr %85, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #14
  store i32 1, ptr %86, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #14
  %1507 = load i32, ptr %25, align 4, !tbaa !9
  %1508 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2617, i32 noundef %1507, i32 noundef 1)
  br i1 %1508, label %1512, label %1509

1509:                                             ; preds = %1504
  %1510 = load i32, ptr %25, align 4, !tbaa !9
  %1511 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8714, i32 noundef %1510, i32 noundef 1)
  br i1 %1511, label %1512, label %1526

1512:                                             ; preds = %1509, %1504
  %1513 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %1514 = trunc i8 %1513 to i1
  br i1 %1514, label %1526, label %1515

1515:                                             ; preds = %1512
  %1516 = load i8, ptr %45, align 1, !tbaa !44, !range !42, !noundef !43
  %1517 = trunc i8 %1516 to i1
  br i1 %1517, label %1526, label %1518

1518:                                             ; preds = %1515
  %1519 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1520 = trunc i8 %1519 to i1
  br i1 %1520, label %1521, label %1524

1521:                                             ; preds = %1518
  %1522 = load ptr, ptr %43, align 8, !tbaa !5
  %1523 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1522)
  br label %1524

1524:                                             ; preds = %1521, %1518
  %1525 = phi i1 [ true, %1518 ], [ %1523, %1521 ]
  br label %1526

1526:                                             ; preds = %1524, %1515, %1512, %1509
  %1527 = phi i1 [ false, %1515 ], [ false, %1512 ], [ false, %1509 ], [ %1525, %1524 ]
  %1528 = zext i1 %1527 to i8
  store i8 %1528, ptr %87, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #14
  %1529 = load i32, ptr %25, align 4, !tbaa !9
  %1530 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2596, i32 noundef %1529, i32 noundef 0)
  br i1 %1530, label %1534, label %1531

1531:                                             ; preds = %1526
  %1532 = load i32, ptr %25, align 4, !tbaa !9
  %1533 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 4617, i32 noundef %1532, i32 noundef 0)
  br i1 %1533, label %1534, label %1545

1534:                                             ; preds = %1531, %1526
  %1535 = load i8, ptr %45, align 1, !tbaa !44, !range !42, !noundef !43
  %1536 = trunc i8 %1535 to i1
  br i1 %1536, label %1545, label %1537

1537:                                             ; preds = %1534
  %1538 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1539 = trunc i8 %1538 to i1
  br i1 %1539, label %1540, label %1543

1540:                                             ; preds = %1537
  %1541 = load ptr, ptr %43, align 8, !tbaa !5
  %1542 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1541)
  br label %1543

1543:                                             ; preds = %1540, %1537
  %1544 = phi i1 [ true, %1537 ], [ %1542, %1540 ]
  br label %1545

1545:                                             ; preds = %1543, %1534, %1531
  %1546 = phi i1 [ false, %1534 ], [ false, %1531 ], [ %1544, %1543 ]
  %1547 = zext i1 %1546 to i8
  store i8 %1547, ptr %88, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #14
  %1548 = load i32, ptr %25, align 4, !tbaa !9
  %1549 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2615, i32 noundef %1548, i32 noundef 1)
  br i1 %1549, label %1553, label %1550

1550:                                             ; preds = %1545
  %1551 = load i32, ptr %25, align 4, !tbaa !9
  %1552 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8713, i32 noundef %1551, i32 noundef 1)
  br i1 %1552, label %1553, label %1557

1553:                                             ; preds = %1550, %1545
  %1554 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %1555 = trunc i8 %1554 to i1
  %1556 = xor i1 %1555, true
  br label %1557

1557:                                             ; preds = %1553, %1550
  %1558 = phi i1 [ false, %1550 ], [ %1556, %1553 ]
  %1559 = zext i1 %1558 to i8
  store i8 %1559, ptr %89, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #14
  %1560 = load i32, ptr %25, align 4, !tbaa !9
  %1561 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2619, i32 noundef %1560, i32 noundef 1)
  br i1 %1561, label %1562, label %1568

1562:                                             ; preds = %1557
  %1563 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %1564 = trunc i8 %1563 to i1
  br i1 %1564, label %1568, label %1565

1565:                                             ; preds = %1562
  %1566 = load i8, ptr %46, align 1, !tbaa !44, !range !42, !noundef !43
  %1567 = trunc i8 %1566 to i1
  br label %1568

1568:                                             ; preds = %1565, %1562, %1557
  %1569 = phi i1 [ false, %1562 ], [ false, %1557 ], [ %1567, %1565 ]
  %1570 = zext i1 %1569 to i8
  store i8 %1570, ptr %90, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #14
  %1571 = load i32, ptr %25, align 4, !tbaa !9
  %1572 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2618, i32 noundef %1571, i32 noundef 1)
  br i1 %1572, label %1579, label %1573

1573:                                             ; preds = %1568
  %1574 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %1575 = trunc i8 %1574 to i1
  br i1 %1575, label %1576, label %1585

1576:                                             ; preds = %1573
  %1577 = load i32, ptr %25, align 4, !tbaa !9
  %1578 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 10811, i32 noundef %1577, i32 noundef 1)
  br i1 %1578, label %1579, label %1585

1579:                                             ; preds = %1576, %1568
  %1580 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %1581 = trunc i8 %1580 to i1
  br i1 %1581, label %1585, label %1582

1582:                                             ; preds = %1579
  %1583 = load i8, ptr %46, align 1, !tbaa !44, !range !42, !noundef !43
  %1584 = trunc i8 %1583 to i1
  br label %1585

1585:                                             ; preds = %1582, %1579, %1576, %1573
  %1586 = phi i1 [ false, %1579 ], [ false, %1576 ], [ false, %1573 ], [ %1584, %1582 ]
  %1587 = zext i1 %1586 to i8
  store i8 %1587, ptr %91, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #14
  %1588 = load i32, ptr %25, align 4, !tbaa !9
  %1589 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2594, i32 noundef %1588, i32 noundef 0)
  %1590 = zext i1 %1589 to i8
  store i8 %1590, ptr %92, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #14
  %1591 = load ptr, ptr %21, align 8, !tbaa !5
  %1592 = getelementptr inbounds %struct.ImGuiIO, ptr %1591, i32 0, i32 0
  %1593 = load i32, ptr %1592, align 8, !tbaa !182
  %1594 = and i32 %1593, 2
  %1595 = icmp ne i32 %1594, 0
  br i1 %1595, label %1596, label %1602

1596:                                             ; preds = %1585
  %1597 = load ptr, ptr %21, align 8, !tbaa !5
  %1598 = getelementptr inbounds %struct.ImGuiIO, ptr %1597, i32 0, i32 1
  %1599 = load i32, ptr %1598, align 4, !tbaa !183
  %1600 = and i32 %1599, 1
  %1601 = icmp ne i32 %1600, 0
  br label %1602

1602:                                             ; preds = %1596, %1585
  %1603 = phi i1 [ false, %1585 ], [ %1601, %1596 ]
  %1604 = zext i1 %1603 to i8
  store i8 %1604, ptr %93, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #14
  %1605 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 525, i1 noundef zeroext true)
  br i1 %1605, label %1608, label %1606

1606:                                             ; preds = %1602
  %1607 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 627, i1 noundef zeroext true)
  br label %1608

1608:                                             ; preds = %1606, %1602
  %1609 = phi i1 [ true, %1602 ], [ %1607, %1606 ]
  %1610 = zext i1 %1609 to i8
  store i8 %1610, ptr %94, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #14
  %1611 = load i8, ptr %93, align 1, !tbaa !44, !range !42, !noundef !43
  %1612 = trunc i8 %1611 to i1
  br i1 %1612, label %1613, label %1619

1613:                                             ; preds = %1608
  %1614 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 636, i1 noundef zeroext false)
  br i1 %1614, label %1617, label %1615

1615:                                             ; preds = %1613
  %1616 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 635, i1 noundef zeroext false)
  br label %1617

1617:                                             ; preds = %1615, %1613
  %1618 = phi i1 [ true, %1613 ], [ %1616, %1615 ]
  br label %1619

1619:                                             ; preds = %1617, %1608
  %1620 = phi i1 [ false, %1608 ], [ %1618, %1617 ]
  %1621 = zext i1 %1620 to i8
  store i8 %1621, ptr %95, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #14
  %1622 = load i32, ptr %25, align 4, !tbaa !9
  %1623 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 526, i32 noundef %1622, i32 noundef 1)
  br i1 %1623, label %1632, label %1624

1624:                                             ; preds = %1619
  %1625 = load i8, ptr %93, align 1, !tbaa !44, !range !42, !noundef !43
  %1626 = trunc i8 %1625 to i1
  br i1 %1626, label %1627, label %1630

1627:                                             ; preds = %1624
  %1628 = load i32, ptr %25, align 4, !tbaa !9
  %1629 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 634, i32 noundef %1628, i32 noundef 1)
  br label %1630

1630:                                             ; preds = %1627, %1624
  %1631 = phi i1 [ false, %1624 ], [ %1629, %1627 ]
  br label %1632

1632:                                             ; preds = %1630, %1619
  %1633 = phi i1 [ true, %1619 ], [ %1631, %1630 ]
  %1634 = zext i1 %1633 to i8
  store i8 %1634, ptr %96, align 1, !tbaa !44
  %1635 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %1635, label %1636, label %1650

1636:                                             ; preds = %1632
  %1637 = load ptr, ptr %43, align 8, !tbaa !5
  %1638 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1639 = trunc i8 %1638 to i1
  br i1 %1639, label %1640, label %1641

1640:                                             ; preds = %1636
  br label %1646

1641:                                             ; preds = %1636
  %1642 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1643 = trunc i8 %1642 to i1
  %1644 = zext i1 %1643 to i64
  %1645 = select i1 %1643, i32 2097164, i32 2097152
  br label %1646

1646:                                             ; preds = %1641, %1640
  %1647 = phi i32 [ 2097156, %1640 ], [ %1645, %1641 ]
  %1648 = load i32, ptr %83, align 4, !tbaa !9
  %1649 = or i32 %1647, %1648
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1637, i32 noundef %1649)
  br label %2129

1650:                                             ; preds = %1632
  %1651 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %1651, label %1652, label %1666

1652:                                             ; preds = %1650
  %1653 = load ptr, ptr %43, align 8, !tbaa !5
  %1654 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1655 = trunc i8 %1654 to i1
  br i1 %1655, label %1656, label %1657

1656:                                             ; preds = %1652
  br label %1662

1657:                                             ; preds = %1652
  %1658 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1659 = trunc i8 %1658 to i1
  %1660 = zext i1 %1659 to i64
  %1661 = select i1 %1659, i32 2097165, i32 2097153
  br label %1662

1662:                                             ; preds = %1657, %1656
  %1663 = phi i32 [ 2097157, %1656 ], [ %1661, %1657 ]
  %1664 = load i32, ptr %83, align 4, !tbaa !9
  %1665 = or i32 %1663, %1664
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1653, i32 noundef %1665)
  br label %2128

1666:                                             ; preds = %1650
  %1667 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %1667, label %1668, label %1696

1668:                                             ; preds = %1666
  %1669 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1670 = trunc i8 %1669 to i1
  br i1 %1670, label %1671, label %1696

1671:                                             ; preds = %1668
  %1672 = load ptr, ptr %21, align 8, !tbaa !5
  %1673 = getelementptr inbounds %struct.ImGuiIO, ptr %1672, i32 0, i32 73
  %1674 = load i8, ptr %1673, align 8, !tbaa !141, !range !42, !noundef !43
  %1675 = trunc i8 %1674 to i1
  br i1 %1675, label %1676, label %1687

1676:                                             ; preds = %1671
  %1677 = load ptr, ptr %34, align 8, !tbaa !5
  %1678 = load ptr, ptr %34, align 8, !tbaa !5
  %1679 = getelementptr inbounds %struct.ImGuiWindow, ptr %1678, i32 0, i32 30
  %1680 = getelementptr inbounds %struct.ImVec2, ptr %1679, i32 0, i32 1
  %1681 = load float, ptr %1680, align 4, !tbaa !131
  %1682 = load ptr, ptr %20, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.ImGuiContext, ptr %1682, i32 0, i32 8
  %1684 = load float, ptr %1683, align 8, !tbaa !47
  %1685 = fsub float %1681, %1684
  %1686 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1685, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1677, float noundef %1686)
  br label %1695

1687:                                             ; preds = %1671
  %1688 = load ptr, ptr %43, align 8, !tbaa !5
  %1689 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1690 = trunc i8 %1689 to i1
  %1691 = zext i1 %1690 to i64
  %1692 = select i1 %1690, i32 2097158, i32 2097154
  %1693 = load i32, ptr %83, align 4, !tbaa !9
  %1694 = or i32 %1692, %1693
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1688, i32 noundef %1694)
  br label %1695

1695:                                             ; preds = %1687, %1676
  br label %2127

1696:                                             ; preds = %1668, %1666
  %1697 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %1697, label %1698, label %1727

1698:                                             ; preds = %1696
  %1699 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1700 = trunc i8 %1699 to i1
  br i1 %1700, label %1701, label %1727

1701:                                             ; preds = %1698
  %1702 = load ptr, ptr %21, align 8, !tbaa !5
  %1703 = getelementptr inbounds %struct.ImGuiIO, ptr %1702, i32 0, i32 73
  %1704 = load i8, ptr %1703, align 8, !tbaa !141, !range !42, !noundef !43
  %1705 = trunc i8 %1704 to i1
  br i1 %1705, label %1706, label %1718

1706:                                             ; preds = %1701
  %1707 = load ptr, ptr %34, align 8, !tbaa !5
  %1708 = load ptr, ptr %34, align 8, !tbaa !5
  %1709 = getelementptr inbounds %struct.ImGuiWindow, ptr %1708, i32 0, i32 30
  %1710 = getelementptr inbounds %struct.ImVec2, ptr %1709, i32 0, i32 1
  %1711 = load float, ptr %1710, align 4, !tbaa !131
  %1712 = load ptr, ptr %20, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.ImGuiContext, ptr %1712, i32 0, i32 8
  %1714 = load float, ptr %1713, align 8, !tbaa !47
  %1715 = fadd float %1711, %1714
  %1716 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %1717 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1715, float noundef %1716)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1707, float noundef %1717)
  br label %1726

1718:                                             ; preds = %1701
  %1719 = load ptr, ptr %43, align 8, !tbaa !5
  %1720 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1721 = trunc i8 %1720 to i1
  %1722 = zext i1 %1721 to i64
  %1723 = select i1 %1721, i32 2097159, i32 2097155
  %1724 = load i32, ptr %83, align 4, !tbaa !9
  %1725 = or i32 %1723, %1724
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1719, i32 noundef %1725)
  br label %1726

1726:                                             ; preds = %1718, %1706
  br label %2126

1727:                                             ; preds = %1698, %1696
  %1728 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  br i1 %1728, label %1729, label %1744

1729:                                             ; preds = %1727
  %1730 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1731 = trunc i8 %1730 to i1
  br i1 %1731, label %1732, label %1744

1732:                                             ; preds = %1729
  %1733 = load ptr, ptr %43, align 8, !tbaa !5
  %1734 = load i32, ptr %83, align 4, !tbaa !9
  %1735 = or i32 2097166, %1734
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1733, i32 noundef %1735)
  %1736 = load i32, ptr %82, align 4, !tbaa !9
  %1737 = sitofp i32 %1736 to float
  %1738 = load ptr, ptr %20, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.ImGuiContext, ptr %1738, i32 0, i32 8
  %1740 = load float, ptr %1739, align 8, !tbaa !47
  %1741 = load float, ptr %54, align 4, !tbaa !46
  %1742 = fneg float %1737
  %1743 = call float @llvm.fmuladd.f32(float %1742, float %1740, float %1741)
  store float %1743, ptr %54, align 4, !tbaa !46
  br label %2125

1744:                                             ; preds = %1729, %1727
  %1745 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  br i1 %1745, label %1746, label %1760

1746:                                             ; preds = %1744
  %1747 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1748 = trunc i8 %1747 to i1
  br i1 %1748, label %1749, label %1760

1749:                                             ; preds = %1746
  %1750 = load ptr, ptr %43, align 8, !tbaa !5
  %1751 = load i32, ptr %83, align 4, !tbaa !9
  %1752 = or i32 2097167, %1751
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1750, i32 noundef %1752)
  %1753 = load i32, ptr %82, align 4, !tbaa !9
  %1754 = sitofp i32 %1753 to float
  %1755 = load ptr, ptr %20, align 8, !tbaa !5
  %1756 = getelementptr inbounds %struct.ImGuiContext, ptr %1755, i32 0, i32 8
  %1757 = load float, ptr %1756, align 8, !tbaa !47
  %1758 = load float, ptr %54, align 4, !tbaa !46
  %1759 = call float @llvm.fmuladd.f32(float %1754, float %1757, float %1758)
  store float %1759, ptr %54, align 4, !tbaa !46
  br label %2124

1760:                                             ; preds = %1746, %1744
  %1761 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %1761, label %1762, label %1776

1762:                                             ; preds = %1760
  %1763 = load ptr, ptr %43, align 8, !tbaa !5
  %1764 = load ptr, ptr %21, align 8, !tbaa !5
  %1765 = getelementptr inbounds %struct.ImGuiIO, ptr %1764, i32 0, i32 73
  %1766 = load i8, ptr %1765, align 8, !tbaa !141, !range !42, !noundef !43
  %1767 = trunc i8 %1766 to i1
  br i1 %1767, label %1768, label %1771

1768:                                             ; preds = %1762
  %1769 = load i32, ptr %83, align 4, !tbaa !9
  %1770 = or i32 2097158, %1769
  br label %1774

1771:                                             ; preds = %1762
  %1772 = load i32, ptr %83, align 4, !tbaa !9
  %1773 = or i32 2097156, %1772
  br label %1774

1774:                                             ; preds = %1771, %1768
  %1775 = phi i32 [ %1770, %1768 ], [ %1773, %1771 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1763, i32 noundef %1775)
  br label %2123

1776:                                             ; preds = %1760
  %1777 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %1777, label %1778, label %1792

1778:                                             ; preds = %1776
  %1779 = load ptr, ptr %43, align 8, !tbaa !5
  %1780 = load ptr, ptr %21, align 8, !tbaa !5
  %1781 = getelementptr inbounds %struct.ImGuiIO, ptr %1780, i32 0, i32 73
  %1782 = load i8, ptr %1781, align 8, !tbaa !141, !range !42, !noundef !43
  %1783 = trunc i8 %1782 to i1
  br i1 %1783, label %1784, label %1787

1784:                                             ; preds = %1778
  %1785 = load i32, ptr %83, align 4, !tbaa !9
  %1786 = or i32 2097159, %1785
  br label %1790

1787:                                             ; preds = %1778
  %1788 = load i32, ptr %83, align 4, !tbaa !9
  %1789 = or i32 2097157, %1788
  br label %1790

1790:                                             ; preds = %1787, %1784
  %1791 = phi i32 [ %1786, %1784 ], [ %1789, %1787 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1779, i32 noundef %1791)
  br label %2122

1792:                                             ; preds = %1776
  %1793 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  br i1 %1793, label %1794, label %1813

1794:                                             ; preds = %1792
  %1795 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %1796 = trunc i8 %1795 to i1
  br i1 %1796, label %1813, label %1797

1797:                                             ; preds = %1794
  %1798 = load i8, ptr %87, align 1, !tbaa !44, !range !42, !noundef !43
  %1799 = trunc i8 %1798 to i1
  br i1 %1799, label %1813, label %1800

1800:                                             ; preds = %1797
  %1801 = load ptr, ptr %43, align 8, !tbaa !5
  %1802 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1801)
  br i1 %1802, label %1809, label %1803

1803:                                             ; preds = %1800
  %1804 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1805 = trunc i8 %1804 to i1
  br i1 %1805, label %1806, label %1808

1806:                                             ; preds = %1803
  %1807 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1807, i32 noundef 6291469)
  br label %1808

1808:                                             ; preds = %1806, %1803
  br label %1809

1809:                                             ; preds = %1808, %1800
  %1810 = load ptr, ptr %43, align 8, !tbaa !5
  %1811 = load i32, ptr %83, align 4, !tbaa !9
  %1812 = or i32 2097160, %1811
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1810, i32 noundef %1812)
  br label %2121

1813:                                             ; preds = %1797, %1794, %1792
  %1814 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  br i1 %1814, label %1815, label %1852

1815:                                             ; preds = %1813
  %1816 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %1817 = trunc i8 %1816 to i1
  br i1 %1817, label %1852, label %1818

1818:                                             ; preds = %1815
  %1819 = load ptr, ptr %43, align 8, !tbaa !5
  %1820 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1819)
  br i1 %1820, label %1848, label %1821

1821:                                             ; preds = %1818
  %1822 = load i8, ptr %84, align 1, !tbaa !44, !range !42, !noundef !43
  %1823 = trunc i8 %1822 to i1
  br i1 %1823, label %1824, label %1826

1824:                                             ; preds = %1821
  %1825 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1825, i32 noundef 6291468)
  br label %1847

1826:                                             ; preds = %1821
  %1827 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %1828 = trunc i8 %1827 to i1
  br i1 %1828, label %1829, label %1846

1829:                                             ; preds = %1826
  %1830 = load ptr, ptr %21, align 8, !tbaa !5
  %1831 = getelementptr inbounds %struct.ImGuiIO, ptr %1830, i32 0, i32 76
  %1832 = load i8, ptr %1831, align 1, !tbaa !176, !range !42, !noundef !43
  %1833 = trunc i8 %1832 to i1
  br i1 %1833, label %1834, label %1846

1834:                                             ; preds = %1829
  %1835 = load ptr, ptr %21, align 8, !tbaa !5
  %1836 = getelementptr inbounds %struct.ImGuiIO, ptr %1835, i32 0, i32 75
  %1837 = load i8, ptr %1836, align 2, !tbaa !175, !range !42, !noundef !43
  %1838 = trunc i8 %1837 to i1
  br i1 %1838, label %1846, label %1839

1839:                                             ; preds = %1834
  %1840 = load ptr, ptr %21, align 8, !tbaa !5
  %1841 = getelementptr inbounds %struct.ImGuiIO, ptr %1840, i32 0, i32 73
  %1842 = load i8, ptr %1841, align 8, !tbaa !141, !range !42, !noundef !43
  %1843 = trunc i8 %1842 to i1
  br i1 %1843, label %1846, label %1844

1844:                                             ; preds = %1839
  %1845 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1845, i32 noundef 6291460)
  br label %1846

1846:                                             ; preds = %1844, %1839, %1834, %1829, %1826
  br label %1847

1847:                                             ; preds = %1846, %1824
  br label %1848

1848:                                             ; preds = %1847, %1818
  %1849 = load ptr, ptr %43, align 8, !tbaa !5
  %1850 = load i32, ptr %83, align 4, !tbaa !9
  %1851 = or i32 2097161, %1850
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1849, i32 noundef %1851)
  br label %2120

1852:                                             ; preds = %1815, %1813
  %1853 = load i8, ptr %94, align 1, !tbaa !44, !range !42, !noundef !43
  %1854 = trunc i8 %1853 to i1
  br i1 %1854, label %1858, label %1855

1855:                                             ; preds = %1852
  %1856 = load i8, ptr %95, align 1, !tbaa !44, !range !42, !noundef !43
  %1857 = trunc i8 %1856 to i1
  br i1 %1857, label %1858, label %1911

1858:                                             ; preds = %1855, %1852
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #14
  %1859 = load i32, ptr %15, align 4, !tbaa !9
  %1860 = and i32 %1859, 2048
  %1861 = icmp ne i32 %1860, 0
  %1862 = zext i1 %1861 to i8
  store i8 %1862, ptr %97, align 1, !tbaa !44
  %1863 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1864 = trunc i8 %1863 to i1
  br i1 %1864, label %1865, label %1884

1865:                                             ; preds = %1858
  %1866 = load i8, ptr %95, align 1, !tbaa !44, !range !42, !noundef !43
  %1867 = trunc i8 %1866 to i1
  br i1 %1867, label %1884, label %1868

1868:                                             ; preds = %1865
  %1869 = load i8, ptr %97, align 1, !tbaa !44, !range !42, !noundef !43
  %1870 = trunc i8 %1869 to i1
  br i1 %1870, label %1871, label %1876

1871:                                             ; preds = %1868
  %1872 = load ptr, ptr %21, align 8, !tbaa !5
  %1873 = getelementptr inbounds %struct.ImGuiIO, ptr %1872, i32 0, i32 73
  %1874 = load i8, ptr %1873, align 8, !tbaa !141, !range !42, !noundef !43
  %1875 = trunc i8 %1874 to i1
  br i1 %1875, label %1876, label %1884

1876:                                             ; preds = %1871, %1868
  %1877 = load i8, ptr %97, align 1, !tbaa !44, !range !42, !noundef !43
  %1878 = trunc i8 %1877 to i1
  br i1 %1878, label %1896, label %1879

1879:                                             ; preds = %1876
  %1880 = load ptr, ptr %21, align 8, !tbaa !5
  %1881 = getelementptr inbounds %struct.ImGuiIO, ptr %1880, i32 0, i32 73
  %1882 = load i8, ptr %1881, align 8, !tbaa !141, !range !42, !noundef !43
  %1883 = trunc i8 %1882 to i1
  br i1 %1883, label %1884, label %1896

1884:                                             ; preds = %1879, %1871, %1865, %1858
  store i8 1, ptr %65, align 1, !tbaa !44
  %1885 = load ptr, ptr %21, align 8, !tbaa !5
  %1886 = getelementptr inbounds %struct.ImGuiIO, ptr %1885, i32 0, i32 25
  %1887 = load i8, ptr %1886, align 4, !tbaa !184, !range !42, !noundef !43
  %1888 = trunc i8 %1887 to i1
  br i1 %1888, label %1889, label %1894

1889:                                             ; preds = %1884
  %1890 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1891 = trunc i8 %1890 to i1
  br i1 %1891, label %1894, label %1892

1892:                                             ; preds = %1889
  %1893 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %1893)
  br label %1895

1894:                                             ; preds = %1889, %1884
  store i8 1, ptr %52, align 1, !tbaa !44
  br label %1895

1895:                                             ; preds = %1894, %1892
  br label %1910

1896:                                             ; preds = %1879, %1876
  %1897 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %1898 = trunc i8 %1897 to i1
  br i1 %1898, label %1909, label %1899

1899:                                             ; preds = %1896
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #14
  store i32 10, ptr %98, align 4, !tbaa !9
  %1900 = load ptr, ptr %20, align 8, !tbaa !5
  %1901 = load i32, ptr %15, align 4, !tbaa !9
  %1902 = load ptr, ptr %16, align 8, !tbaa !5
  %1903 = load ptr, ptr %17, align 8, !tbaa !5
  %1904 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %1900, ptr noundef %98, i32 noundef %1901, ptr noundef %1902, ptr noundef %1903, i32 noundef 2)
  br i1 %1904, label %1905, label %1908

1905:                                             ; preds = %1899
  %1906 = load ptr, ptr %43, align 8, !tbaa !5
  %1907 = load i32, ptr %98, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1906, i32 noundef %1907)
  br label %1908

1908:                                             ; preds = %1905, %1899
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #14
  br label %1909

1909:                                             ; preds = %1908, %1896
  br label %1910

1910:                                             ; preds = %1909, %1895
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #14
  br label %2119

1911:                                             ; preds = %1855
  %1912 = load i8, ptr %96, align 1, !tbaa !44, !range !42, !noundef !43
  %1913 = trunc i8 %1912 to i1
  br i1 %1913, label %1914, label %1929

1914:                                             ; preds = %1911
  %1915 = load i32, ptr %15, align 4, !tbaa !9
  %1916 = and i32 %1915, 1048576
  %1917 = icmp ne i32 %1916, 0
  br i1 %1917, label %1918, label %1927

1918:                                             ; preds = %1914
  %1919 = load ptr, ptr %12, align 8, !tbaa !5
  %1920 = getelementptr inbounds i8, ptr %1919, i64 0
  %1921 = load i8, ptr %1920, align 1, !tbaa !146
  %1922 = sext i8 %1921 to i32
  %1923 = icmp ne i32 %1922, 0
  br i1 %1923, label %1924, label %1925

1924:                                             ; preds = %1918
  store i8 1, ptr %81, align 1, !tbaa !44
  br label %1926

1925:                                             ; preds = %1918
  store i8 0, ptr %63, align 1, !tbaa !44
  store i8 0, ptr %62, align 1, !tbaa !44
  store i8 1, ptr %52, align 1, !tbaa !44
  br label %1926

1926:                                             ; preds = %1925, %1924
  br label %1928

1927:                                             ; preds = %1914
  store i8 1, ptr %81, align 1, !tbaa !44
  store i8 1, ptr %52, align 1, !tbaa !44
  store i8 0, ptr %63, align 1, !tbaa !44
  store i8 0, ptr %62, align 1, !tbaa !44
  br label %1928

1928:                                             ; preds = %1927, %1926
  br label %2118

1929:                                             ; preds = %1911
  %1930 = load i8, ptr %90, align 1, !tbaa !44, !range !42, !noundef !43
  %1931 = trunc i8 %1930 to i1
  br i1 %1931, label %1935, label %1932

1932:                                             ; preds = %1929
  %1933 = load i8, ptr %91, align 1, !tbaa !44, !range !42, !noundef !43
  %1934 = trunc i8 %1933 to i1
  br i1 %1934, label %1935, label %1942

1935:                                             ; preds = %1932, %1929
  %1936 = load ptr, ptr %43, align 8, !tbaa !5
  %1937 = load i8, ptr %90, align 1, !tbaa !44, !range !42, !noundef !43
  %1938 = trunc i8 %1937 to i1
  %1939 = zext i1 %1938 to i64
  %1940 = select i1 %1938, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1936, i32 noundef %1940)
  %1941 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1941)
  br label %2117

1942:                                             ; preds = %1932
  %1943 = load i8, ptr %92, align 1, !tbaa !44, !range !42, !noundef !43
  %1944 = trunc i8 %1943 to i1
  br i1 %1944, label %1945, label %1949

1945:                                             ; preds = %1942
  %1946 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %1946)
  %1947 = load ptr, ptr %43, align 8, !tbaa !5
  %1948 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1947, i32 0, i32 14
  store i8 1, ptr %1948, align 4, !tbaa !172
  br label %2116

1949:                                             ; preds = %1942
  %1950 = load i8, ptr %87, align 1, !tbaa !44, !range !42, !noundef !43
  %1951 = trunc i8 %1950 to i1
  br i1 %1951, label %1955, label %1952

1952:                                             ; preds = %1949
  %1953 = load i8, ptr %88, align 1, !tbaa !44, !range !42, !noundef !43
  %1954 = trunc i8 %1953 to i1
  br i1 %1954, label %1955, label %2049

1955:                                             ; preds = %1952, %1949
  %1956 = load ptr, ptr %21, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.ImGuiIO, ptr %1956, i32 0, i32 46
  %1958 = load ptr, ptr %1957, align 8, !tbaa !185
  %1959 = icmp ne ptr %1958, null
  br i1 %1959, label %1960, label %2033

1960:                                             ; preds = %1955
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #14
  %1961 = load ptr, ptr %43, align 8, !tbaa !5
  %1962 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1961)
  br i1 %1962, label %1963, label %1973

1963:                                             ; preds = %1960
  %1964 = load ptr, ptr %43, align 8, !tbaa !5
  %1965 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1964, i32 0, i32 12
  %1966 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1965, i32 0, i32 1
  %1967 = load i32, ptr %1966, align 4, !tbaa !170
  %1968 = load ptr, ptr %43, align 8, !tbaa !5
  %1969 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1968, i32 0, i32 12
  %1970 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1969, i32 0, i32 2
  %1971 = load i32, ptr %1970, align 4, !tbaa !171
  %1972 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1967, i32 noundef %1971)
  br label %1974

1973:                                             ; preds = %1960
  br label %1974

1974:                                             ; preds = %1973, %1963
  %1975 = phi i32 [ %1972, %1963 ], [ 0, %1973 ]
  store i32 %1975, ptr %99, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #14
  %1976 = load ptr, ptr %43, align 8, !tbaa !5
  %1977 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1976)
  br i1 %1977, label %1978, label %1988

1978:                                             ; preds = %1974
  %1979 = load ptr, ptr %43, align 8, !tbaa !5
  %1980 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1979, i32 0, i32 12
  %1981 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1980, i32 0, i32 1
  %1982 = load i32, ptr %1981, align 4, !tbaa !170
  %1983 = load ptr, ptr %43, align 8, !tbaa !5
  %1984 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1983, i32 0, i32 12
  %1985 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1984, i32 0, i32 2
  %1986 = load i32, ptr %1985, align 4, !tbaa !171
  %1987 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1982, i32 noundef %1986)
  br label %1992

1988:                                             ; preds = %1974
  %1989 = load ptr, ptr %43, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1989, i32 0, i32 2
  %1991 = load i32, ptr %1990, align 4, !tbaa !139
  br label %1992

1992:                                             ; preds = %1988, %1978
  %1993 = phi i32 [ %1987, %1978 ], [ %1991, %1988 ]
  store i32 %1993, ptr %100, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #14
  %1994 = load ptr, ptr %43, align 8, !tbaa !5
  %1995 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1994, i32 0, i32 5
  %1996 = getelementptr inbounds %struct.ImVector.5, ptr %1995, i32 0, i32 2
  %1997 = load ptr, ptr %1996, align 8, !tbaa !138
  %1998 = load i32, ptr %99, align 4, !tbaa !9
  %1999 = sext i32 %1998 to i64
  %2000 = getelementptr inbounds i16, ptr %1997, i64 %1999
  %2001 = load ptr, ptr %43, align 8, !tbaa !5
  %2002 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2001, i32 0, i32 5
  %2003 = getelementptr inbounds %struct.ImVector.5, ptr %2002, i32 0, i32 2
  %2004 = load ptr, ptr %2003, align 8, !tbaa !138
  %2005 = load i32, ptr %100, align 4, !tbaa !9
  %2006 = sext i32 %2005 to i64
  %2007 = getelementptr inbounds i16, ptr %2004, i64 %2006
  %2008 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2000, ptr noundef %2007)
  %2009 = add nsw i32 %2008, 1
  store i32 %2009, ptr %101, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #14
  %2010 = load i32, ptr %101, align 4, !tbaa !9
  %2011 = sext i32 %2010 to i64
  %2012 = mul i64 %2011, 1
  %2013 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %2012)
  store ptr %2013, ptr %102, align 8, !tbaa !5
  %2014 = load ptr, ptr %102, align 8, !tbaa !5
  %2015 = load i32, ptr %101, align 4, !tbaa !9
  %2016 = load ptr, ptr %43, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2016, i32 0, i32 5
  %2018 = getelementptr inbounds %struct.ImVector.5, ptr %2017, i32 0, i32 2
  %2019 = load ptr, ptr %2018, align 8, !tbaa !138
  %2020 = load i32, ptr %99, align 4, !tbaa !9
  %2021 = sext i32 %2020 to i64
  %2022 = getelementptr inbounds i16, ptr %2019, i64 %2021
  %2023 = load ptr, ptr %43, align 8, !tbaa !5
  %2024 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2023, i32 0, i32 5
  %2025 = getelementptr inbounds %struct.ImVector.5, ptr %2024, i32 0, i32 2
  %2026 = load ptr, ptr %2025, align 8, !tbaa !138
  %2027 = load i32, ptr %100, align 4, !tbaa !9
  %2028 = sext i32 %2027 to i64
  %2029 = getelementptr inbounds i16, ptr %2026, i64 %2028
  %2030 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2014, i32 noundef %2015, ptr noundef %2022, ptr noundef %2029)
  %2031 = load ptr, ptr %102, align 8, !tbaa !5
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %2031)
  %2032 = load ptr, ptr %102, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2032)
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #14
  br label %2033

2033:                                             ; preds = %1992, %1955
  %2034 = load i8, ptr %87, align 1, !tbaa !44, !range !42, !noundef !43
  %2035 = trunc i8 %2034 to i1
  br i1 %2035, label %2036, label %2048

2036:                                             ; preds = %2033
  %2037 = load ptr, ptr %43, align 8, !tbaa !5
  %2038 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %2037)
  br i1 %2038, label %2041, label %2039

2039:                                             ; preds = %2036
  %2040 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %2040)
  br label %2041

2041:                                             ; preds = %2039, %2036
  %2042 = load ptr, ptr %43, align 8, !tbaa !5
  %2043 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2042, i32 0, i32 14
  store i8 1, ptr %2043, align 4, !tbaa !172
  %2044 = load ptr, ptr %43, align 8, !tbaa !5
  %2045 = load ptr, ptr %43, align 8, !tbaa !5
  %2046 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2045, i32 0, i32 12
  %2047 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %2044, ptr noundef %2046)
  br label %2048

2048:                                             ; preds = %2041, %2033
  br label %2115

2049:                                             ; preds = %1952
  %2050 = load i8, ptr %89, align 1, !tbaa !44, !range !42, !noundef !43
  %2051 = trunc i8 %2050 to i1
  br i1 %2051, label %2052, label %2114

2052:                                             ; preds = %2049
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #14
  %2053 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  store ptr %2053, ptr %103, align 8, !tbaa !5
  %2054 = load ptr, ptr %103, align 8, !tbaa !5
  %2055 = icmp ne ptr %2054, null
  br i1 %2055, label %2056, label %2113

2056:                                             ; preds = %2052
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #14
  %2057 = load ptr, ptr %103, align 8, !tbaa !5
  %2058 = call i64 @strlen(ptr noundef %2057) #16
  %2059 = trunc i64 %2058 to i32
  store i32 %2059, ptr %104, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #14
  %2060 = load i32, ptr %104, align 4, !tbaa !9
  %2061 = add nsw i32 %2060, 1
  %2062 = sext i32 %2061 to i64
  %2063 = mul i64 %2062, 2
  %2064 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %2063)
  store ptr %2064, ptr %105, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #14
  store i32 0, ptr %106, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #14
  %2065 = load ptr, ptr %103, align 8, !tbaa !5
  store ptr %2065, ptr %107, align 8, !tbaa !5
  br label %2066

2066:                                             ; preds = %2094, %2092, %2056
  %2067 = load ptr, ptr %107, align 8, !tbaa !5
  %2068 = load i8, ptr %2067, align 1, !tbaa !146
  %2069 = sext i8 %2068 to i32
  %2070 = icmp ne i32 %2069, 0
  br i1 %2070, label %2072, label %2071

2071:                                             ; preds = %2066
  store i32 5, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #14
  br label %2095

2072:                                             ; preds = %2066
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #14
  %2073 = load ptr, ptr %107, align 8, !tbaa !5
  %2074 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef %108, ptr noundef %2073, ptr noundef null)
  %2075 = load ptr, ptr %107, align 8, !tbaa !5
  %2076 = sext i32 %2074 to i64
  %2077 = getelementptr inbounds i8, ptr %2075, i64 %2076
  store ptr %2077, ptr %107, align 8, !tbaa !5
  %2078 = load ptr, ptr %20, align 8, !tbaa !5
  %2079 = load i32, ptr %15, align 4, !tbaa !9
  %2080 = load ptr, ptr %16, align 8, !tbaa !5
  %2081 = load ptr, ptr %17, align 8, !tbaa !5
  %2082 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %2078, ptr noundef %108, i32 noundef %2079, ptr noundef %2080, ptr noundef %2081, i32 noundef 4)
  br i1 %2082, label %2084, label %2083

2083:                                             ; preds = %2072
  store i32 6, ptr %19, align 4
  br label %2092, !llvm.loop !186

2084:                                             ; preds = %2072
  %2085 = load i32, ptr %108, align 4, !tbaa !9
  %2086 = trunc i32 %2085 to i16
  %2087 = load ptr, ptr %105, align 8, !tbaa !5
  %2088 = load i32, ptr %106, align 4, !tbaa !9
  %2089 = add nsw i32 %2088, 1
  store i32 %2089, ptr %106, align 4, !tbaa !9
  %2090 = sext i32 %2088 to i64
  %2091 = getelementptr inbounds i16, ptr %2087, i64 %2090
  store i16 %2086, ptr %2091, align 2, !tbaa !167
  store i32 0, ptr %19, align 4
  br label %2092

2092:                                             ; preds = %2084, %2083
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #14
  %2093 = load i32, ptr %19, align 4
  switch i32 %2093, label %3602 [
    i32 0, label %2094
    i32 6, label %2066
  ]

2094:                                             ; preds = %2092
  br label %2066, !llvm.loop !186

2095:                                             ; preds = %2071
  %2096 = load ptr, ptr %105, align 8, !tbaa !5
  %2097 = load i32, ptr %106, align 4, !tbaa !9
  %2098 = sext i32 %2097 to i64
  %2099 = getelementptr inbounds i16, ptr %2096, i64 %2098
  store i16 0, ptr %2099, align 2, !tbaa !167
  %2100 = load i32, ptr %106, align 4, !tbaa !9
  %2101 = icmp sgt i32 %2100, 0
  br i1 %2101, label %2102, label %2111

2102:                                             ; preds = %2095
  %2103 = load ptr, ptr %43, align 8, !tbaa !5
  %2104 = load ptr, ptr %43, align 8, !tbaa !5
  %2105 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2104, i32 0, i32 12
  %2106 = load ptr, ptr %105, align 8, !tbaa !5
  %2107 = load i32, ptr %106, align 4, !tbaa !9
  %2108 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2103, ptr noundef %2105, ptr noundef %2106, i32 noundef %2107)
  %2109 = load ptr, ptr %43, align 8, !tbaa !5
  %2110 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2109, i32 0, i32 14
  store i8 1, ptr %2110, align 4, !tbaa !172
  br label %2111

2111:                                             ; preds = %2102, %2095
  %2112 = load ptr, ptr %105, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2112)
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #14
  br label %2113

2113:                                             ; preds = %2111, %2052
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #14
  br label %2114

2114:                                             ; preds = %2113, %2049
  br label %2115

2115:                                             ; preds = %2114, %2048
  br label %2116

2116:                                             ; preds = %2115, %1945
  br label %2117

2117:                                             ; preds = %2116, %1935
  br label %2118

2118:                                             ; preds = %2117, %1928
  br label %2119

2119:                                             ; preds = %2118, %1910
  br label %2120

2120:                                             ; preds = %2119, %1848
  br label %2121

2121:                                             ; preds = %2120, %1809
  br label %2122

2122:                                             ; preds = %2121, %1790
  br label %2123

2123:                                             ; preds = %2122, %1774
  br label %2124

2124:                                             ; preds = %2123, %1749
  br label %2125

2125:                                             ; preds = %2124, %1732
  br label %2126

2126:                                             ; preds = %2125, %1726
  br label %2127

2127:                                             ; preds = %2126, %1695
  br label %2128

2128:                                             ; preds = %2127, %1662
  br label %2129

2129:                                             ; preds = %2128, %1646
  %2130 = load ptr, ptr %43, align 8, !tbaa !5
  %2131 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %2130)
  br i1 %2131, label %2132, label %2135

2132:                                             ; preds = %2129
  %2133 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %2134 = trunc i8 %2133 to i1
  br label %2135

2135:                                             ; preds = %2132, %2129
  %2136 = phi i1 [ false, %2129 ], [ %2134, %2132 ]
  %2137 = zext i1 %2136 to i32
  %2138 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %2139 = trunc i8 %2138 to i1
  %2140 = zext i1 %2139 to i32
  %2141 = or i32 %2140, %2137
  %2142 = icmp ne i32 %2141, 0
  %2143 = zext i1 %2142 to i8
  store i8 %2143, ptr %63, align 1, !tbaa !44
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #14
  br label %2144

2144:                                             ; preds = %2135, %1438, %1433, %1427
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #14
  store ptr null, ptr %109, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #14
  store i32 0, ptr %110, align 4, !tbaa !9
  %2145 = load ptr, ptr %20, align 8, !tbaa !5
  %2146 = getelementptr inbounds %struct.ImGuiContext, ptr %2145, i32 0, i32 52
  %2147 = load i32, ptr %2146, align 4, !tbaa !120
  %2148 = load i32, ptr %25, align 4, !tbaa !9
  %2149 = icmp eq i32 %2147, %2148
  br i1 %2149, label %2150, label %2628

2150:                                             ; preds = %2144
  %2151 = load ptr, ptr %43, align 8, !tbaa !5
  %2152 = icmp ne ptr %2151, null
  br i1 %2152, label %2153, label %2154

2153:                                             ; preds = %2150
  br label %2156

2154:                                             ; preds = %2150
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.4, i32 noundef 4609, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2155:                                             ; No predecessors!
  br label %2156

2156:                                             ; preds = %2155, %2153
  %2157 = load i8, ptr %81, align 1, !tbaa !44, !range !42, !noundef !43
  %2158 = trunc i8 %2157 to i1
  br i1 %2158, label %2159, label %2242

2159:                                             ; preds = %2156
  %2160 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %2161 = trunc i8 %2160 to i1
  br i1 %2161, label %2242, label %2162

2162:                                             ; preds = %2159
  %2163 = load i32, ptr %15, align 4, !tbaa !9
  %2164 = and i32 %2163, 1048576
  %2165 = icmp ne i32 %2164, 0
  br i1 %2165, label %2166, label %2179

2166:                                             ; preds = %2162
  %2167 = load ptr, ptr %12, align 8, !tbaa !5
  %2168 = getelementptr inbounds i8, ptr %2167, i64 0
  %2169 = load i8, ptr %2168, align 1, !tbaa !146
  %2170 = sext i8 %2169 to i32
  %2171 = icmp ne i32 %2170, 0
  br i1 %2171, label %2172, label %2173

2172:                                             ; preds = %2166
  br label %2175

2173:                                             ; preds = %2166
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.4, i32 noundef 4615, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2174:                                             ; No predecessors!
  br label %2175

2175:                                             ; preds = %2174, %2172
  store ptr @.str, ptr %109, align 8, !tbaa !5
  store i32 0, ptr %110, align 4, !tbaa !9
  store i8 1, ptr %64, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 2, ptr %111) #14
  %2176 = load ptr, ptr %43, align 8, !tbaa !5
  %2177 = load ptr, ptr %43, align 8, !tbaa !5
  %2178 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2177, i32 0, i32 12
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2176, ptr noundef %2178, ptr noundef %111, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr %111) #14
  br label %2241

2179:                                             ; preds = %2162
  %2180 = load ptr, ptr %12, align 8, !tbaa !5
  %2181 = load ptr, ptr %43, align 8, !tbaa !5
  %2182 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2181, i32 0, i32 7
  %2183 = getelementptr inbounds %struct.ImVector.33, ptr %2182, i32 0, i32 2
  %2184 = load ptr, ptr %2183, align 8, !tbaa !134
  %2185 = call i32 @strcmp(ptr noundef %2180, ptr noundef %2184) #16
  %2186 = icmp ne i32 %2185, 0
  br i1 %2186, label %2187, label %2240

2187:                                             ; preds = %2179
  %2188 = load ptr, ptr %43, align 8, !tbaa !5
  %2189 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2188, i32 0, i32 7
  %2190 = getelementptr inbounds %struct.ImVector.33, ptr %2189, i32 0, i32 2
  %2191 = load ptr, ptr %2190, align 8, !tbaa !134
  store ptr %2191, ptr %109, align 8, !tbaa !5
  %2192 = load ptr, ptr %43, align 8, !tbaa !5
  %2193 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2192, i32 0, i32 7
  %2194 = getelementptr inbounds %struct.ImVector.33, ptr %2193, i32 0, i32 0
  %2195 = load i32, ptr %2194, align 8, !tbaa !187
  %2196 = sub nsw i32 %2195, 1
  store i32 %2196, ptr %110, align 4, !tbaa !9
  store i8 1, ptr %64, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112)
  %2197 = load i32, ptr %110, align 4, !tbaa !9
  %2198 = icmp sgt i32 %2197, 0
  br i1 %2198, label %2199, label %2224

2199:                                             ; preds = %2187
  %2200 = load ptr, ptr %109, align 8, !tbaa !5
  %2201 = load ptr, ptr %109, align 8, !tbaa !5
  %2202 = load i32, ptr %110, align 4, !tbaa !9
  %2203 = sext i32 %2202 to i64
  %2204 = getelementptr inbounds i8, ptr %2201, i64 %2203
  %2205 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2200, ptr noundef %2204)
          to label %2206 unwind label %2220

2206:                                             ; preds = %2199
  %2207 = add nsw i32 %2205, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %112, i32 noundef %2207)
          to label %2208 unwind label %2220

2208:                                             ; preds = %2206
  %2209 = getelementptr inbounds %struct.ImVector.5, ptr %112, i32 0, i32 2
  %2210 = load ptr, ptr %2209, align 8, !tbaa !188
  %2211 = getelementptr inbounds %struct.ImVector.5, ptr %112, i32 0, i32 0
  %2212 = load i32, ptr %2211, align 8, !tbaa !189
  %2213 = load ptr, ptr %109, align 8, !tbaa !5
  %2214 = load ptr, ptr %109, align 8, !tbaa !5
  %2215 = load i32, ptr %110, align 4, !tbaa !9
  %2216 = sext i32 %2215 to i64
  %2217 = getelementptr inbounds i8, ptr %2214, i64 %2216
  %2218 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2210, i32 noundef %2212, ptr noundef %2213, ptr noundef %2217, ptr noundef null)
          to label %2219 unwind label %2220

2219:                                             ; preds = %2208
  br label %2224

2220:                                             ; preds = %2237, %2208, %2206, %2199
  %2221 = landingpad { ptr, i32 }
          cleanup
  %2222 = extractvalue { ptr, i32 } %2221, 0
  store ptr %2222, ptr %113, align 8
  %2223 = extractvalue { ptr, i32 } %2221, 1
  store i32 %2223, ptr %114, align 4
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #14
  call void @llvm.lifetime.end.p0(i64 76, ptr %36) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #14
  br label %3597

2224:                                             ; preds = %2219, %2187
  %2225 = load ptr, ptr %43, align 8, !tbaa !5
  %2226 = load ptr, ptr %43, align 8, !tbaa !5
  %2227 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2226, i32 0, i32 12
  %2228 = getelementptr inbounds %struct.ImVector.5, ptr %112, i32 0, i32 2
  %2229 = load ptr, ptr %2228, align 8, !tbaa !188
  %2230 = load i32, ptr %110, align 4, !tbaa !9
  %2231 = icmp sgt i32 %2230, 0
  br i1 %2231, label %2232, label %2236

2232:                                             ; preds = %2224
  %2233 = getelementptr inbounds %struct.ImVector.5, ptr %112, i32 0, i32 0
  %2234 = load i32, ptr %2233, align 8, !tbaa !189
  %2235 = sub nsw i32 %2234, 1
  br label %2237

2236:                                             ; preds = %2224
  br label %2237

2237:                                             ; preds = %2236, %2232
  %2238 = phi i32 [ %2235, %2232 ], [ 0, %2236 ]
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2225, ptr noundef %2227, ptr noundef %2229, i32 noundef %2238)
          to label %2239 unwind label %2220

2239:                                             ; preds = %2237
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %112) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #14
  br label %2240

2240:                                             ; preds = %2239, %2179
  br label %2241

2241:                                             ; preds = %2240, %2175
  br label %2242

2242:                                             ; preds = %2241, %2159, %2156
  %2243 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %2244 = trunc i8 %2243 to i1
  br i1 %2244, label %2269, label %2245

2245:                                             ; preds = %2242
  %2246 = load ptr, ptr %43, align 8, !tbaa !5
  %2247 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2246, i32 0, i32 8
  store i8 1, ptr %2247, align 8, !tbaa !136
  %2248 = load ptr, ptr %43, align 8, !tbaa !5
  %2249 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2248, i32 0, i32 6
  %2250 = load ptr, ptr %43, align 8, !tbaa !5
  %2251 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2250, i32 0, i32 5
  %2252 = getelementptr inbounds %struct.ImVector.5, ptr %2251, i32 0, i32 0
  %2253 = load i32, ptr %2252, align 8, !tbaa !145
  %2254 = mul nsw i32 %2253, 4
  %2255 = add nsw i32 %2254, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2249, i32 noundef %2255)
  %2256 = load ptr, ptr %43, align 8, !tbaa !5
  %2257 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2256, i32 0, i32 6
  %2258 = getelementptr inbounds %struct.ImVector.33, ptr %2257, i32 0, i32 2
  %2259 = load ptr, ptr %2258, align 8, !tbaa !137
  %2260 = load ptr, ptr %43, align 8, !tbaa !5
  %2261 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2260, i32 0, i32 6
  %2262 = getelementptr inbounds %struct.ImVector.33, ptr %2261, i32 0, i32 0
  %2263 = load i32, ptr %2262, align 8, !tbaa !190
  %2264 = load ptr, ptr %43, align 8, !tbaa !5
  %2265 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2264, i32 0, i32 5
  %2266 = getelementptr inbounds %struct.ImVector.5, ptr %2265, i32 0, i32 2
  %2267 = load ptr, ptr %2266, align 8, !tbaa !138
  %2268 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2259, i32 noundef %2263, ptr noundef %2267, ptr noundef null)
  br label %2269

2269:                                             ; preds = %2245, %2242
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #14
  %2270 = load i8, ptr %81, align 1, !tbaa !44, !range !42, !noundef !43
  %2271 = trunc i8 %2270 to i1
  br i1 %2271, label %2272, label %2281

2272:                                             ; preds = %2269
  %2273 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %2274 = trunc i8 %2273 to i1
  br i1 %2274, label %2275, label %2279

2275:                                             ; preds = %2272
  %2276 = load i32, ptr %15, align 4, !tbaa !9
  %2277 = and i32 %2276, 32
  %2278 = icmp ne i32 %2277, 0
  br label %2279

2279:                                             ; preds = %2275, %2272
  %2280 = phi i1 [ false, %2272 ], [ %2278, %2275 ]
  br label %2281

2281:                                             ; preds = %2279, %2269
  %2282 = phi i1 [ true, %2269 ], [ %2280, %2279 ]
  %2283 = zext i1 %2282 to i8
  store i8 %2283, ptr %115, align 1, !tbaa !44
  %2284 = load i8, ptr %115, align 1, !tbaa !44, !range !42, !noundef !43
  %2285 = trunc i8 %2284 to i1
  br i1 %2285, label %2286, label %2627

2286:                                             ; preds = %2281
  %2287 = load i32, ptr %15, align 4, !tbaa !9
  %2288 = and i32 %2287, 524736
  %2289 = icmp ne i32 %2288, 0
  br i1 %2289, label %2290, label %2607

2290:                                             ; preds = %2286
  %2291 = load ptr, ptr %16, align 8, !tbaa !5
  %2292 = icmp ne ptr %2291, null
  br i1 %2292, label %2293, label %2294

2293:                                             ; preds = %2290
  br label %2296

2294:                                             ; preds = %2290
  call void @__assert_fail(ptr noundef @.str.61, ptr noundef @.str.4, i32 noundef 4664, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2295:                                             ; No predecessors!
  br label %2296

2296:                                             ; preds = %2295, %2293
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #14
  store i32 0, ptr %116, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #14
  store i32 0, ptr %117, align 4, !tbaa !191
  %2297 = load i32, ptr %15, align 4, !tbaa !9
  %2298 = and i32 %2297, 64
  %2299 = icmp ne i32 %2298, 0
  br i1 %2299, label %2300, label %2304

2300:                                             ; preds = %2296
  %2301 = load i32, ptr %25, align 4, !tbaa !9
  %2302 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %2301, i32 noundef 0)
  br i1 %2302, label %2303, label %2304

2303:                                             ; preds = %2300
  store i32 64, ptr %116, align 4, !tbaa !9
  store i32 512, ptr %117, align 4, !tbaa !191
  br label %2337

2304:                                             ; preds = %2300, %2296
  %2305 = load i32, ptr %15, align 4, !tbaa !9
  %2306 = and i32 %2305, 128
  %2307 = icmp ne i32 %2306, 0
  br i1 %2307, label %2308, label %2311

2308:                                             ; preds = %2304
  %2309 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %2309, label %2310, label %2311

2310:                                             ; preds = %2308
  store i32 128, ptr %116, align 4, !tbaa !9
  store i32 515, ptr %117, align 4, !tbaa !191
  br label %2336

2311:                                             ; preds = %2308, %2304
  %2312 = load i32, ptr %15, align 4, !tbaa !9
  %2313 = and i32 %2312, 128
  %2314 = icmp ne i32 %2313, 0
  br i1 %2314, label %2315, label %2318

2315:                                             ; preds = %2311
  %2316 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %2316, label %2317, label %2318

2317:                                             ; preds = %2315
  store i32 128, ptr %116, align 4, !tbaa !9
  store i32 516, ptr %117, align 4, !tbaa !191
  br label %2335

2318:                                             ; preds = %2315, %2311
  %2319 = load i32, ptr %15, align 4, !tbaa !9
  %2320 = and i32 %2319, 524288
  %2321 = icmp ne i32 %2320, 0
  br i1 %2321, label %2322, label %2328

2322:                                             ; preds = %2318
  %2323 = load ptr, ptr %43, align 8, !tbaa !5
  %2324 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2323, i32 0, i32 16
  %2325 = load i8, ptr %2324, align 2, !tbaa !157, !range !42, !noundef !43
  %2326 = trunc i8 %2325 to i1
  br i1 %2326, label %2327, label %2328

2327:                                             ; preds = %2322
  store i32 524288, ptr %116, align 4, !tbaa !9
  br label %2334

2328:                                             ; preds = %2322, %2318
  %2329 = load i32, ptr %15, align 4, !tbaa !9
  %2330 = and i32 %2329, 256
  %2331 = icmp ne i32 %2330, 0
  br i1 %2331, label %2332, label %2333

2332:                                             ; preds = %2328
  store i32 256, ptr %116, align 4, !tbaa !9
  br label %2333

2333:                                             ; preds = %2332, %2328
  br label %2334

2334:                                             ; preds = %2333, %2327
  br label %2335

2335:                                             ; preds = %2334, %2317
  br label %2336

2336:                                             ; preds = %2335, %2310
  br label %2337

2337:                                             ; preds = %2336, %2303
  %2338 = load i32, ptr %116, align 4, !tbaa !9
  %2339 = icmp ne i32 %2338, 0
  br i1 %2339, label %2340, label %2606

2340:                                             ; preds = %2337
  call void @llvm.lifetime.start.p0(i64 64, ptr %118) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %118)
  %2341 = load ptr, ptr %20, align 8, !tbaa !5
  %2342 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 0
  store ptr %2341, ptr %2342, align 8, !tbaa !193
  %2343 = load i32, ptr %116, align 4, !tbaa !9
  %2344 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 1
  store i32 %2343, ptr %2344, align 8, !tbaa !195
  %2345 = load i32, ptr %15, align 4, !tbaa !9
  %2346 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 2
  store i32 %2345, ptr %2346, align 4, !tbaa !196
  %2347 = load ptr, ptr %17, align 8, !tbaa !5
  %2348 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 3
  store ptr %2347, ptr %2348, align 8, !tbaa !197
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #14
  %2349 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %2350 = trunc i8 %2349 to i1
  br i1 %2350, label %2351, label %2353

2351:                                             ; preds = %2340
  %2352 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2358

2353:                                             ; preds = %2340
  %2354 = load ptr, ptr %43, align 8, !tbaa !5
  %2355 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2354, i32 0, i32 6
  %2356 = getelementptr inbounds %struct.ImVector.33, ptr %2355, i32 0, i32 2
  %2357 = load ptr, ptr %2356, align 8, !tbaa !137
  br label %2358

2358:                                             ; preds = %2353, %2351
  %2359 = phi ptr [ %2352, %2351 ], [ %2357, %2353 ]
  store ptr %2359, ptr %119, align 8, !tbaa !5
  %2360 = load i32, ptr %117, align 4, !tbaa !191
  %2361 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 5
  store i32 %2360, ptr %2361, align 4, !tbaa !198
  %2362 = load ptr, ptr %119, align 8, !tbaa !5
  %2363 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  store ptr %2362, ptr %2363, align 8, !tbaa !199
  %2364 = load ptr, ptr %43, align 8, !tbaa !5
  %2365 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2364, i32 0, i32 3
  %2366 = load i32, ptr %2365, align 8, !tbaa !135
  %2367 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 7
  store i32 %2366, ptr %2367, align 8, !tbaa !200
  %2368 = load ptr, ptr %43, align 8, !tbaa !5
  %2369 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2368, i32 0, i32 10
  %2370 = load i32, ptr %2369, align 4, !tbaa !158
  %2371 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 8
  store i32 %2370, ptr %2371, align 4, !tbaa !201
  %2372 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 9
  store i8 0, ptr %2372, align 8, !tbaa !202
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #14
  %2373 = load ptr, ptr %43, align 8, !tbaa !5
  %2374 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2373, i32 0, i32 5
  %2375 = getelementptr inbounds %struct.ImVector.5, ptr %2374, i32 0, i32 2
  %2376 = load ptr, ptr %2375, align 8, !tbaa !138
  store ptr %2376, ptr %120, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #14
  %2377 = load ptr, ptr %120, align 8, !tbaa !5
  %2378 = load ptr, ptr %120, align 8, !tbaa !5
  %2379 = load ptr, ptr %43, align 8, !tbaa !5
  %2380 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2379, i32 0, i32 12
  %2381 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2380, i32 0, i32 0
  %2382 = load i32, ptr %2381, align 4, !tbaa !169
  %2383 = sext i32 %2382 to i64
  %2384 = getelementptr inbounds i16, ptr %2378, i64 %2383
  %2385 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2377, ptr noundef %2384)
  %2386 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 10
  store i32 %2385, ptr %2386, align 4, !tbaa !203
  store i32 %2385, ptr %121, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #14
  %2387 = load ptr, ptr %120, align 8, !tbaa !5
  %2388 = load ptr, ptr %120, align 8, !tbaa !5
  %2389 = load ptr, ptr %43, align 8, !tbaa !5
  %2390 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2389, i32 0, i32 12
  %2391 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2390, i32 0, i32 1
  %2392 = load i32, ptr %2391, align 4, !tbaa !170
  %2393 = sext i32 %2392 to i64
  %2394 = getelementptr inbounds i16, ptr %2388, i64 %2393
  %2395 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2387, ptr noundef %2394)
  %2396 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 11
  store i32 %2395, ptr %2396, align 8, !tbaa !204
  store i32 %2395, ptr %122, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #14
  %2397 = load ptr, ptr %120, align 8, !tbaa !5
  %2398 = load ptr, ptr %120, align 8, !tbaa !5
  %2399 = load ptr, ptr %43, align 8, !tbaa !5
  %2400 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2399, i32 0, i32 12
  %2401 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2400, i32 0, i32 2
  %2402 = load i32, ptr %2401, align 4, !tbaa !171
  %2403 = sext i32 %2402 to i64
  %2404 = getelementptr inbounds i16, ptr %2398, i64 %2403
  %2405 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2397, ptr noundef %2404)
  %2406 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 12
  store i32 %2405, ptr %2406, align 4, !tbaa !205
  store i32 %2405, ptr %123, align 4, !tbaa !9
  %2407 = load ptr, ptr %16, align 8, !tbaa !5
  %2408 = call noundef i32 %2407(ptr noundef %118)
  %2409 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %2410 = trunc i8 %2409 to i1
  br i1 %2410, label %2411, label %2413

2411:                                             ; preds = %2358
  %2412 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2418

2413:                                             ; preds = %2358
  %2414 = load ptr, ptr %43, align 8, !tbaa !5
  %2415 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2414, i32 0, i32 6
  %2416 = getelementptr inbounds %struct.ImVector.33, ptr %2415, i32 0, i32 2
  %2417 = load ptr, ptr %2416, align 8, !tbaa !137
  br label %2418

2418:                                             ; preds = %2413, %2411
  %2419 = phi ptr [ %2412, %2411 ], [ %2417, %2413 ]
  store ptr %2419, ptr %119, align 8, !tbaa !5
  %2420 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2421 = load ptr, ptr %2420, align 8, !tbaa !199
  %2422 = load ptr, ptr %119, align 8, !tbaa !5
  %2423 = icmp eq ptr %2421, %2422
  br i1 %2423, label %2424, label %2425

2424:                                             ; preds = %2418
  br label %2427

2425:                                             ; preds = %2418
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str.4, i32 noundef 4719, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2426:                                             ; No predecessors!
  br label %2427

2427:                                             ; preds = %2426, %2424
  %2428 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 8
  %2429 = load i32, ptr %2428, align 4, !tbaa !201
  %2430 = load ptr, ptr %43, align 8, !tbaa !5
  %2431 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2430, i32 0, i32 10
  %2432 = load i32, ptr %2431, align 4, !tbaa !158
  %2433 = icmp eq i32 %2429, %2432
  br i1 %2433, label %2434, label %2435

2434:                                             ; preds = %2427
  br label %2437

2435:                                             ; preds = %2427
  call void @__assert_fail(ptr noundef @.str.67, ptr noundef @.str.4, i32 noundef 4720, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2436:                                             ; No predecessors!
  br label %2437

2437:                                             ; preds = %2436, %2434
  %2438 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 2
  %2439 = load i32, ptr %2438, align 4, !tbaa !196
  %2440 = load i32, ptr %15, align 4, !tbaa !9
  %2441 = icmp eq i32 %2439, %2440
  br i1 %2441, label %2442, label %2443

2442:                                             ; preds = %2437
  br label %2445

2443:                                             ; preds = %2437
  call void @__assert_fail(ptr noundef @.str.68, ptr noundef @.str.4, i32 noundef 4721, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2444:                                             ; No predecessors!
  br label %2445

2445:                                             ; preds = %2444, %2442
  call void @llvm.lifetime.start.p0(i64 1, ptr %124) #14
  %2446 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 9
  %2447 = load i8, ptr %2446, align 8, !tbaa !202, !range !42, !noundef !43
  %2448 = trunc i8 %2447 to i1
  %2449 = zext i1 %2448 to i8
  store i8 %2449, ptr %124, align 1, !tbaa !44
  %2450 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 10
  %2451 = load i32, ptr %2450, align 4, !tbaa !203
  %2452 = load i32, ptr %121, align 4, !tbaa !9
  %2453 = icmp ne i32 %2451, %2452
  br i1 %2453, label %2457, label %2454

2454:                                             ; preds = %2445
  %2455 = load i8, ptr %124, align 1, !tbaa !44, !range !42, !noundef !43
  %2456 = trunc i8 %2455 to i1
  br i1 %2456, label %2457, label %2472

2457:                                             ; preds = %2454, %2445
  %2458 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2459 = load ptr, ptr %2458, align 8, !tbaa !199
  %2460 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2461 = load ptr, ptr %2460, align 8, !tbaa !199
  %2462 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 10
  %2463 = load i32, ptr %2462, align 4, !tbaa !203
  %2464 = sext i32 %2463 to i64
  %2465 = getelementptr inbounds i8, ptr %2461, i64 %2464
  %2466 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2459, ptr noundef %2465)
  %2467 = load ptr, ptr %43, align 8, !tbaa !5
  %2468 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2467, i32 0, i32 12
  %2469 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2468, i32 0, i32 0
  store i32 %2466, ptr %2469, align 4, !tbaa !169
  %2470 = load ptr, ptr %43, align 8, !tbaa !5
  %2471 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2470, i32 0, i32 14
  store i8 1, ptr %2471, align 4, !tbaa !172
  br label %2472

2472:                                             ; preds = %2457, %2454
  %2473 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 11
  %2474 = load i32, ptr %2473, align 8, !tbaa !204
  %2475 = load i32, ptr %122, align 4, !tbaa !9
  %2476 = icmp ne i32 %2474, %2475
  br i1 %2476, label %2480, label %2477

2477:                                             ; preds = %2472
  %2478 = load i8, ptr %124, align 1, !tbaa !44, !range !42, !noundef !43
  %2479 = trunc i8 %2478 to i1
  br i1 %2479, label %2480, label %2506

2480:                                             ; preds = %2477, %2472
  %2481 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 11
  %2482 = load i32, ptr %2481, align 8, !tbaa !204
  %2483 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 10
  %2484 = load i32, ptr %2483, align 4, !tbaa !203
  %2485 = icmp eq i32 %2482, %2484
  br i1 %2485, label %2486, label %2491

2486:                                             ; preds = %2480
  %2487 = load ptr, ptr %43, align 8, !tbaa !5
  %2488 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2487, i32 0, i32 12
  %2489 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2488, i32 0, i32 0
  %2490 = load i32, ptr %2489, align 4, !tbaa !169
  br label %2501

2491:                                             ; preds = %2480
  %2492 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2493 = load ptr, ptr %2492, align 8, !tbaa !199
  %2494 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2495 = load ptr, ptr %2494, align 8, !tbaa !199
  %2496 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 11
  %2497 = load i32, ptr %2496, align 8, !tbaa !204
  %2498 = sext i32 %2497 to i64
  %2499 = getelementptr inbounds i8, ptr %2495, i64 %2498
  %2500 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2493, ptr noundef %2499)
  br label %2501

2501:                                             ; preds = %2491, %2486
  %2502 = phi i32 [ %2490, %2486 ], [ %2500, %2491 ]
  %2503 = load ptr, ptr %43, align 8, !tbaa !5
  %2504 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2503, i32 0, i32 12
  %2505 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2504, i32 0, i32 1
  store i32 %2502, ptr %2505, align 4, !tbaa !170
  br label %2506

2506:                                             ; preds = %2501, %2477
  %2507 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 12
  %2508 = load i32, ptr %2507, align 4, !tbaa !205
  %2509 = load i32, ptr %123, align 4, !tbaa !9
  %2510 = icmp ne i32 %2508, %2509
  br i1 %2510, label %2514, label %2511

2511:                                             ; preds = %2506
  %2512 = load i8, ptr %124, align 1, !tbaa !44, !range !42, !noundef !43
  %2513 = trunc i8 %2512 to i1
  br i1 %2513, label %2514, label %2540

2514:                                             ; preds = %2511, %2506
  %2515 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 12
  %2516 = load i32, ptr %2515, align 4, !tbaa !205
  %2517 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 11
  %2518 = load i32, ptr %2517, align 8, !tbaa !204
  %2519 = icmp eq i32 %2516, %2518
  br i1 %2519, label %2520, label %2525

2520:                                             ; preds = %2514
  %2521 = load ptr, ptr %43, align 8, !tbaa !5
  %2522 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2521, i32 0, i32 12
  %2523 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2522, i32 0, i32 1
  %2524 = load i32, ptr %2523, align 4, !tbaa !170
  br label %2535

2525:                                             ; preds = %2514
  %2526 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2527 = load ptr, ptr %2526, align 8, !tbaa !199
  %2528 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2529 = load ptr, ptr %2528, align 8, !tbaa !199
  %2530 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 12
  %2531 = load i32, ptr %2530, align 4, !tbaa !205
  %2532 = sext i32 %2531 to i64
  %2533 = getelementptr inbounds i8, ptr %2529, i64 %2532
  %2534 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2527, ptr noundef %2533)
  br label %2535

2535:                                             ; preds = %2525, %2520
  %2536 = phi i32 [ %2524, %2520 ], [ %2534, %2525 ]
  %2537 = load ptr, ptr %43, align 8, !tbaa !5
  %2538 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2537, i32 0, i32 12
  %2539 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2538, i32 0, i32 2
  store i32 %2536, ptr %2539, align 4, !tbaa !171
  br label %2540

2540:                                             ; preds = %2535, %2511
  %2541 = load i8, ptr %124, align 1, !tbaa !44, !range !42, !noundef !43
  %2542 = trunc i8 %2541 to i1
  br i1 %2542, label %2543, label %2605

2543:                                             ; preds = %2540
  %2544 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %2545 = trunc i8 %2544 to i1
  %2546 = xor i1 %2545, true
  br i1 %2546, label %2547, label %2548

2547:                                             ; preds = %2543
  br label %2550

2548:                                             ; preds = %2543
  call void @__assert_fail(ptr noundef @.str.69, ptr noundef @.str.4, i32 noundef 4728, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2549:                                             ; No predecessors!
  br label %2550

2550:                                             ; preds = %2549, %2547
  %2551 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 7
  %2552 = load i32, ptr %2551, align 8, !tbaa !200
  %2553 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2554 = load ptr, ptr %2553, align 8, !tbaa !199
  %2555 = call i64 @strlen(ptr noundef %2554) #16
  %2556 = trunc i64 %2555 to i32
  %2557 = icmp eq i32 %2552, %2556
  br i1 %2557, label %2558, label %2559

2558:                                             ; preds = %2550
  br label %2561

2559:                                             ; preds = %2550
  call void @__assert_fail(ptr noundef @.str.70, ptr noundef @.str.4, i32 noundef 4729, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2560:                                             ; No predecessors!
  br label %2561

2561:                                             ; preds = %2560, %2558
  %2562 = load ptr, ptr %43, align 8, !tbaa !5
  %2563 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2564 = load ptr, ptr %2563, align 8, !tbaa !199
  %2565 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 7
  %2566 = load i32, ptr %2565, align 8, !tbaa !200
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef %2562, ptr noundef %2564, i32 noundef %2566)
  %2567 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 7
  %2568 = load i32, ptr %2567, align 8, !tbaa !200
  %2569 = load i32, ptr %71, align 4, !tbaa !9
  %2570 = icmp sgt i32 %2568, %2569
  br i1 %2570, label %2571, label %2586

2571:                                             ; preds = %2561
  %2572 = load i8, ptr %47, align 1, !tbaa !44, !range !42, !noundef !43
  %2573 = trunc i8 %2572 to i1
  br i1 %2573, label %2574, label %2586

2574:                                             ; preds = %2571
  %2575 = load ptr, ptr %43, align 8, !tbaa !5
  %2576 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2575, i32 0, i32 5
  %2577 = load ptr, ptr %43, align 8, !tbaa !5
  %2578 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2577, i32 0, i32 5
  %2579 = getelementptr inbounds %struct.ImVector.5, ptr %2578, i32 0, i32 0
  %2580 = load i32, ptr %2579, align 8, !tbaa !145
  %2581 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 7
  %2582 = load i32, ptr %2581, align 8, !tbaa !200
  %2583 = load i32, ptr %71, align 4, !tbaa !9
  %2584 = sub nsw i32 %2582, %2583
  %2585 = add nsw i32 %2580, %2584
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2576, i32 noundef %2585)
  br label %2586

2586:                                             ; preds = %2574, %2571, %2561
  %2587 = load ptr, ptr %43, align 8, !tbaa !5
  %2588 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2587, i32 0, i32 5
  %2589 = getelementptr inbounds %struct.ImVector.5, ptr %2588, i32 0, i32 2
  %2590 = load ptr, ptr %2589, align 8, !tbaa !138
  %2591 = load ptr, ptr %43, align 8, !tbaa !5
  %2592 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2591, i32 0, i32 5
  %2593 = getelementptr inbounds %struct.ImVector.5, ptr %2592, i32 0, i32 0
  %2594 = load i32, ptr %2593, align 8, !tbaa !145
  %2595 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 6
  %2596 = load ptr, ptr %2595, align 8, !tbaa !199
  %2597 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2590, i32 noundef %2594, ptr noundef %2596, ptr noundef null, ptr noundef null)
  %2598 = load ptr, ptr %43, align 8, !tbaa !5
  %2599 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2598, i32 0, i32 2
  store i32 %2597, ptr %2599, align 4, !tbaa !139
  %2600 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %118, i32 0, i32 7
  %2601 = load i32, ptr %2600, align 8, !tbaa !200
  %2602 = load ptr, ptr %43, align 8, !tbaa !5
  %2603 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2602, i32 0, i32 3
  store i32 %2601, ptr %2603, align 8, !tbaa !135
  %2604 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %2604)
  br label %2605

2605:                                             ; preds = %2586, %2540
  call void @llvm.lifetime.end.p0(i64 1, ptr %124) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #14
  call void @llvm.lifetime.end.p0(i64 64, ptr %118) #14
  br label %2606

2606:                                             ; preds = %2605, %2337
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #14
  br label %2607

2607:                                             ; preds = %2606, %2286
  %2608 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %2609 = trunc i8 %2608 to i1
  br i1 %2609, label %2626, label %2610

2610:                                             ; preds = %2607
  %2611 = load ptr, ptr %43, align 8, !tbaa !5
  %2612 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2611, i32 0, i32 6
  %2613 = getelementptr inbounds %struct.ImVector.33, ptr %2612, i32 0, i32 2
  %2614 = load ptr, ptr %2613, align 8, !tbaa !137
  %2615 = load ptr, ptr %12, align 8, !tbaa !5
  %2616 = call i32 @strcmp(ptr noundef %2614, ptr noundef %2615) #16
  %2617 = icmp ne i32 %2616, 0
  br i1 %2617, label %2618, label %2626

2618:                                             ; preds = %2610
  %2619 = load ptr, ptr %43, align 8, !tbaa !5
  %2620 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2619, i32 0, i32 6
  %2621 = getelementptr inbounds %struct.ImVector.33, ptr %2620, i32 0, i32 2
  %2622 = load ptr, ptr %2621, align 8, !tbaa !137
  store ptr %2622, ptr %109, align 8, !tbaa !5
  %2623 = load ptr, ptr %43, align 8, !tbaa !5
  %2624 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2623, i32 0, i32 3
  %2625 = load i32, ptr %2624, align 8, !tbaa !135
  store i32 %2625, ptr %110, align 4, !tbaa !9
  store i8 1, ptr %64, align 1, !tbaa !44
  br label %2626

2626:                                             ; preds = %2618, %2610, %2607
  br label %2627

2627:                                             ; preds = %2626, %2281
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #14
  br label %2628

2628:                                             ; preds = %2627, %2144
  %2629 = load ptr, ptr %20, align 8, !tbaa !5
  %2630 = getelementptr inbounds %struct.ImGuiContext, ptr %2629, i32 0, i32 209
  %2631 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2630, i32 0, i32 0
  %2632 = load i32, ptr %2631, align 8, !tbaa !206
  %2633 = load i32, ptr %25, align 4, !tbaa !9
  %2634 = icmp eq i32 %2632, %2633
  br i1 %2634, label %2635, label %2671

2635:                                             ; preds = %2628
  %2636 = load ptr, ptr %20, align 8, !tbaa !5
  %2637 = getelementptr inbounds %struct.ImGuiContext, ptr %2636, i32 0, i32 52
  %2638 = load i32, ptr %2637, align 4, !tbaa !120
  %2639 = load i32, ptr %25, align 4, !tbaa !9
  %2640 = icmp ne i32 %2638, %2639
  br i1 %2640, label %2641, label %2667

2641:                                             ; preds = %2635
  %2642 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  br i1 %2642, label %2643, label %2667

2643:                                             ; preds = %2641
  %2644 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %2645 = trunc i8 %2644 to i1
  br i1 %2645, label %2667, label %2646

2646:                                             ; preds = %2643
  %2647 = load ptr, ptr %20, align 8, !tbaa !5
  %2648 = getelementptr inbounds %struct.ImGuiContext, ptr %2647, i32 0, i32 209
  %2649 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2648, i32 0, i32 1
  %2650 = getelementptr inbounds %struct.ImVector.33, ptr %2649, i32 0, i32 2
  %2651 = load ptr, ptr %2650, align 8, !tbaa !207
  %2652 = load ptr, ptr %12, align 8, !tbaa !5
  %2653 = call i32 @strcmp(ptr noundef %2651, ptr noundef %2652) #16
  %2654 = icmp ne i32 %2653, 0
  br i1 %2654, label %2655, label %2667

2655:                                             ; preds = %2646
  %2656 = load ptr, ptr %20, align 8, !tbaa !5
  %2657 = getelementptr inbounds %struct.ImGuiContext, ptr %2656, i32 0, i32 209
  %2658 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2657, i32 0, i32 1
  %2659 = getelementptr inbounds %struct.ImVector.33, ptr %2658, i32 0, i32 2
  %2660 = load ptr, ptr %2659, align 8, !tbaa !207
  store ptr %2660, ptr %109, align 8, !tbaa !5
  %2661 = load ptr, ptr %20, align 8, !tbaa !5
  %2662 = getelementptr inbounds %struct.ImGuiContext, ptr %2661, i32 0, i32 209
  %2663 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2662, i32 0, i32 1
  %2664 = getelementptr inbounds %struct.ImVector.33, ptr %2663, i32 0, i32 0
  %2665 = load i32, ptr %2664, align 8, !tbaa !208
  %2666 = sub nsw i32 %2665, 1
  store i32 %2666, ptr %110, align 4, !tbaa !9
  store i8 1, ptr %64, align 1, !tbaa !44
  br label %2667

2667:                                             ; preds = %2655, %2646, %2643, %2641, %2635
  %2668 = load ptr, ptr %20, align 8, !tbaa !5
  %2669 = getelementptr inbounds %struct.ImGuiContext, ptr %2668, i32 0, i32 209
  %2670 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2669, i32 0, i32 0
  store i32 0, ptr %2670, align 8, !tbaa !206
  br label %2671

2671:                                             ; preds = %2667, %2628
  %2672 = load ptr, ptr %109, align 8, !tbaa !5
  %2673 = icmp ne ptr %2672, null
  br i1 %2673, label %2674, label %2726

2674:                                             ; preds = %2671
  %2675 = load i32, ptr %110, align 4, !tbaa !9
  %2676 = icmp sge i32 %2675, 0
  br i1 %2676, label %2677, label %2678

2677:                                             ; preds = %2674
  br label %2680

2678:                                             ; preds = %2674
  call void @__assert_fail(ptr noundef @.str.71, ptr noundef @.str.4, i32 noundef 4769, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2679:                                             ; No predecessors!
  br label %2680

2680:                                             ; preds = %2679, %2677
  %2681 = load i8, ptr %47, align 1, !tbaa !44, !range !42, !noundef !43
  %2682 = trunc i8 %2681 to i1
  br i1 %2682, label %2683, label %2718

2683:                                             ; preds = %2680
  call void @llvm.lifetime.start.p0(i64 64, ptr %125) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %125)
  %2684 = load ptr, ptr %20, align 8, !tbaa !5
  %2685 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 0
  store ptr %2684, ptr %2685, align 8, !tbaa !193
  %2686 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 1
  store i32 262144, ptr %2686, align 8, !tbaa !195
  %2687 = load i32, ptr %15, align 4, !tbaa !9
  %2688 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 2
  store i32 %2687, ptr %2688, align 4, !tbaa !196
  %2689 = load ptr, ptr %12, align 8, !tbaa !5
  %2690 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 6
  store ptr %2689, ptr %2690, align 8, !tbaa !199
  %2691 = load i32, ptr %110, align 4, !tbaa !9
  %2692 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 7
  store i32 %2691, ptr %2692, align 8, !tbaa !200
  %2693 = load i32, ptr %13, align 4, !tbaa !9
  %2694 = load i32, ptr %110, align 4, !tbaa !9
  %2695 = add nsw i32 %2694, 1
  %2696 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2693, i32 noundef %2695)
  %2697 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 8
  store i32 %2696, ptr %2697, align 4, !tbaa !201
  %2698 = load ptr, ptr %17, align 8, !tbaa !5
  %2699 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 3
  store ptr %2698, ptr %2699, align 8, !tbaa !197
  %2700 = load ptr, ptr %16, align 8, !tbaa !5
  %2701 = call noundef i32 %2700(ptr noundef %125)
  %2702 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 6
  %2703 = load ptr, ptr %2702, align 8, !tbaa !199
  store ptr %2703, ptr %12, align 8, !tbaa !5
  %2704 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 8
  %2705 = load i32, ptr %2704, align 4, !tbaa !201
  store i32 %2705, ptr %13, align 4, !tbaa !9
  %2706 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %125, i32 0, i32 7
  %2707 = load i32, ptr %2706, align 8, !tbaa !200
  %2708 = load i32, ptr %13, align 4, !tbaa !9
  %2709 = sub nsw i32 %2708, 1
  %2710 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2707, i32 noundef %2709)
  store i32 %2710, ptr %110, align 4, !tbaa !9
  %2711 = load i32, ptr %110, align 4, !tbaa !9
  %2712 = load i32, ptr %13, align 4, !tbaa !9
  %2713 = icmp sle i32 %2711, %2712
  br i1 %2713, label %2714, label %2715

2714:                                             ; preds = %2683
  br label %2717

2715:                                             ; preds = %2683
  call void @__assert_fail(ptr noundef @.str.72, ptr noundef @.str.4, i32 noundef 4784, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2716:                                             ; No predecessors!
  br label %2717

2717:                                             ; preds = %2716, %2714
  call void @llvm.lifetime.end.p0(i64 64, ptr %125) #14
  br label %2718

2718:                                             ; preds = %2717, %2680
  %2719 = load ptr, ptr %12, align 8, !tbaa !5
  %2720 = load ptr, ptr %109, align 8, !tbaa !5
  %2721 = load i32, ptr %110, align 4, !tbaa !9
  %2722 = add nsw i32 %2721, 1
  %2723 = load i32, ptr %13, align 4, !tbaa !9
  %2724 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2722, i32 noundef %2723)
  %2725 = sext i32 %2724 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %2719, ptr noundef %2720, i64 noundef %2725)
  br label %2726

2726:                                             ; preds = %2718, %2671
  %2727 = load ptr, ptr %20, align 8, !tbaa !5
  %2728 = getelementptr inbounds %struct.ImGuiContext, ptr %2727, i32 0, i32 52
  %2729 = load i32, ptr %2728, align 4, !tbaa !120
  %2730 = load i32, ptr %25, align 4, !tbaa !9
  %2731 = icmp eq i32 %2729, %2730
  br i1 %2731, label %2732, label %2736

2732:                                             ; preds = %2726
  %2733 = load i8, ptr %52, align 1, !tbaa !44, !range !42, !noundef !43
  %2734 = trunc i8 %2733 to i1
  br i1 %2734, label %2735, label %2736

2735:                                             ; preds = %2732
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %2746

2736:                                             ; preds = %2732, %2726
  %2737 = load ptr, ptr %20, align 8, !tbaa !5
  %2738 = getelementptr inbounds %struct.ImGuiContext, ptr %2737, i32 0, i32 52
  %2739 = load i32, ptr %2738, align 4, !tbaa !120
  %2740 = load i32, ptr %25, align 4, !tbaa !9
  %2741 = icmp eq i32 %2739, %2740
  br i1 %2741, label %2742, label %2745

2742:                                             ; preds = %2736
  %2743 = load ptr, ptr %20, align 8, !tbaa !5
  %2744 = getelementptr inbounds %struct.ImGuiContext, ptr %2743, i32 0, i32 286
  store i32 1, ptr %2744, align 4, !tbaa !209
  br label %2745

2745:                                             ; preds = %2742, %2736
  br label %2746

2746:                                             ; preds = %2745, %2735
  %2747 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2748 = trunc i8 %2747 to i1
  br i1 %2748, label %2759, label %2749

2749:                                             ; preds = %2746
  %2750 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %30, i32 noundef %2750, i32 noundef 1)
  %2751 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %126, ptr align 4 %2751, i64 8, i1 false), !tbaa.struct !45
  %2752 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %127, ptr align 4 %2752, i64 8, i1 false), !tbaa.struct !45
  %2753 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %2754 = load ptr, ptr %22, align 8, !tbaa !5
  %2755 = getelementptr inbounds %struct.ImGuiStyle, ptr %2754, i32 0, i32 13
  %2756 = load float, ptr %2755, align 4, !tbaa !121
  %2757 = load <2 x float>, ptr %126, align 4
  %2758 = load <2 x float>, ptr %127, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %2757, <2 x float> %2758, i32 noundef %2753, i1 noundef zeroext true, float noundef %2756)
  br label %2759

2759:                                             ; preds = %2749, %2746
  call void @llvm.lifetime.start.p0(i64 16, ptr %128) #14
  %2760 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2761 = getelementptr inbounds %struct.ImVec2, ptr %2760, i32 0, i32 0
  %2762 = load float, ptr %2761, align 4, !tbaa !162
  %2763 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2764 = getelementptr inbounds %struct.ImVec2, ptr %2763, i32 0, i32 1
  %2765 = load float, ptr %2764, align 4, !tbaa !210
  %2766 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2767 = getelementptr inbounds %struct.ImVec2, ptr %2766, i32 0, i32 0
  %2768 = load float, ptr %2767, align 4, !tbaa !162
  %2769 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %2770 = load float, ptr %2769, align 4, !tbaa !115
  %2771 = fadd float %2768, %2770
  %2772 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2773 = getelementptr inbounds %struct.ImVec2, ptr %2772, i32 0, i32 1
  %2774 = load float, ptr %2773, align 4, !tbaa !210
  %2775 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %2776 = load float, ptr %2775, align 4, !tbaa !113
  %2777 = fadd float %2774, %2776
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %128, float noundef %2762, float noundef %2765, float noundef %2771, float noundef %2777)
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #14
  %2778 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2779 = trunc i8 %2778 to i1
  br i1 %2779, label %2780, label %2784

2780:                                             ; preds = %2759
  %2781 = load ptr, ptr %34, align 8, !tbaa !5
  %2782 = getelementptr inbounds %struct.ImGuiWindow, ptr %2781, i32 0, i32 70
  %2783 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2782, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %129, ptr align 8 %2783, i64 8, i1 false), !tbaa.struct !45
  br label %2789

2784:                                             ; preds = %2759
  %2785 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2786 = load ptr, ptr %22, align 8, !tbaa !5
  %2787 = getelementptr inbounds %struct.ImGuiStyle, ptr %2786, i32 0, i32 12
  %2788 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2785, ptr noundef nonnull align 4 dereferenceable(8) %2787)
  store <2 x float> %2788, ptr %129, align 4
  br label %2789

2789:                                             ; preds = %2784, %2780
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %130, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #14
  store i32 2097152, ptr %131, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #14
  %2790 = load i8, ptr %67, align 1, !tbaa !44, !range !42, !noundef !43
  %2791 = trunc i8 %2790 to i1
  br i1 %2791, label %2792, label %2797

2792:                                             ; preds = %2789
  %2793 = load ptr, ptr %43, align 8, !tbaa !5
  %2794 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2793, i32 0, i32 6
  %2795 = getelementptr inbounds %struct.ImVector.33, ptr %2794, i32 0, i32 2
  %2796 = load ptr, ptr %2795, align 8, !tbaa !137
  br label %2799

2797:                                             ; preds = %2789
  %2798 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2799

2799:                                             ; preds = %2797, %2792
  %2800 = phi ptr [ %2796, %2792 ], [ %2798, %2797 ]
  store ptr %2800, ptr %132, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #14
  store ptr null, ptr %133, align 8, !tbaa !5
  %2801 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %2802 = trunc i8 %2801 to i1
  br i1 %2802, label %2803, label %2809

2803:                                             ; preds = %2799
  %2804 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %2804, ptr %132, align 8, !tbaa !5
  %2805 = load ptr, ptr %11, align 8, !tbaa !5
  %2806 = load ptr, ptr %11, align 8, !tbaa !5
  %2807 = call i64 @strlen(ptr noundef %2806) #16
  %2808 = getelementptr inbounds i8, ptr %2805, i64 %2807
  store ptr %2808, ptr %133, align 8, !tbaa !5
  br label %2809

2809:                                             ; preds = %2803, %2799
  %2810 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %2811 = trunc i8 %2810 to i1
  br i1 %2811, label %2815, label %2812

2812:                                             ; preds = %2809
  %2813 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %2814 = trunc i8 %2813 to i1
  br i1 %2814, label %2815, label %3408

2815:                                             ; preds = %2812, %2809
  %2816 = load ptr, ptr %43, align 8, !tbaa !5
  %2817 = icmp ne ptr %2816, null
  br i1 %2817, label %2818, label %2819

2818:                                             ; preds = %2815
  br label %2821

2819:                                             ; preds = %2815
  call void @__assert_fail(ptr noundef @.str.64, ptr noundef @.str.4, i32 noundef 4826, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2820:                                             ; No predecessors!
  br label %2821

2821:                                             ; preds = %2820, %2818
  %2822 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %2823 = trunc i8 %2822 to i1
  br i1 %2823, label %2831, label %2824

2824:                                             ; preds = %2821
  %2825 = load ptr, ptr %132, align 8, !tbaa !5
  %2826 = load ptr, ptr %43, align 8, !tbaa !5
  %2827 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2826, i32 0, i32 3
  %2828 = load i32, ptr %2827, align 8, !tbaa !135
  %2829 = sext i32 %2828 to i64
  %2830 = getelementptr inbounds i8, ptr %2825, i64 %2829
  store ptr %2830, ptr %133, align 8, !tbaa !5
  br label %2831

2831:                                             ; preds = %2824, %2821
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #14
  %2832 = load ptr, ptr %43, align 8, !tbaa !5
  %2833 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2832, i32 0, i32 5
  %2834 = getelementptr inbounds %struct.ImVector.5, ptr %2833, i32 0, i32 2
  %2835 = load ptr, ptr %2834, align 8, !tbaa !138
  store ptr %2835, ptr %134, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %135)
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %136)
  call void @llvm.lifetime.start.p0(i64 16, ptr %137) #14
  call void @llvm.memset.p0.i64(ptr align 16 %137, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %138, ptr align 4 @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #14
  store i32 0, ptr %139, align 4, !tbaa !9
  %2836 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %2837 = trunc i8 %2836 to i1
  br i1 %2837, label %2838, label %2850

2838:                                             ; preds = %2831
  %2839 = load ptr, ptr %134, align 8, !tbaa !5
  %2840 = load ptr, ptr %43, align 8, !tbaa !5
  %2841 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2840, i32 0, i32 12
  %2842 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2841, i32 0, i32 0
  %2843 = load i32, ptr %2842, align 4, !tbaa !169
  %2844 = sext i32 %2843 to i64
  %2845 = getelementptr inbounds i16, ptr %2839, i64 %2844
  %2846 = getelementptr inbounds [2 x ptr], ptr %137, i64 0, i64 0
  store ptr %2845, ptr %2846, align 16, !tbaa !5
  %2847 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 0
  store i32 -1, ptr %2847, align 4, !tbaa !9
  %2848 = load i32, ptr %139, align 4, !tbaa !9
  %2849 = add nsw i32 %2848, 1
  store i32 %2849, ptr %139, align 4, !tbaa !9
  br label %2850

2850:                                             ; preds = %2838, %2831
  %2851 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %2852 = trunc i8 %2851 to i1
  br i1 %2852, label %2853, label %2870

2853:                                             ; preds = %2850
  %2854 = load ptr, ptr %134, align 8, !tbaa !5
  %2855 = load ptr, ptr %43, align 8, !tbaa !5
  %2856 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2855, i32 0, i32 12
  %2857 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2856, i32 0, i32 1
  %2858 = load i32, ptr %2857, align 4, !tbaa !170
  %2859 = load ptr, ptr %43, align 8, !tbaa !5
  %2860 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2859, i32 0, i32 12
  %2861 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2860, i32 0, i32 2
  %2862 = load i32, ptr %2861, align 4, !tbaa !171
  %2863 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2858, i32 noundef %2862)
  %2864 = sext i32 %2863 to i64
  %2865 = getelementptr inbounds i16, ptr %2854, i64 %2864
  %2866 = getelementptr inbounds [2 x ptr], ptr %137, i64 0, i64 1
  store ptr %2865, ptr %2866, align 8, !tbaa !5
  %2867 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 1
  store i32 -1, ptr %2867, align 4, !tbaa !9
  %2868 = load i32, ptr %139, align 4, !tbaa !9
  %2869 = add nsw i32 %2868, 1
  store i32 %2869, ptr %139, align 4, !tbaa !9
  br label %2870

2870:                                             ; preds = %2853, %2850
  %2871 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2872 = trunc i8 %2871 to i1
  %2873 = zext i1 %2872 to i64
  %2874 = select i1 %2872, i32 1, i32 0
  %2875 = load i32, ptr %139, align 4, !tbaa !9
  %2876 = add nsw i32 %2875, %2874
  store i32 %2876, ptr %139, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #14
  store i32 0, ptr %140, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #14
  %2877 = load ptr, ptr %134, align 8, !tbaa !5
  store ptr %2877, ptr %141, align 8, !tbaa !5
  br label %2878

2878:                                             ; preds = %2927, %2870
  %2879 = load ptr, ptr %141, align 8, !tbaa !5
  %2880 = load i16, ptr %2879, align 2, !tbaa !167
  %2881 = zext i16 %2880 to i32
  %2882 = icmp ne i32 %2881, 0
  br i1 %2882, label %2884, label %2883

2883:                                             ; preds = %2878
  store i32 7, ptr %19, align 4
  br label %2930

2884:                                             ; preds = %2878
  %2885 = load ptr, ptr %141, align 8, !tbaa !5
  %2886 = load i16, ptr %2885, align 2, !tbaa !167
  %2887 = zext i16 %2886 to i32
  %2888 = icmp eq i32 %2887, 10
  br i1 %2888, label %2889, label %2926

2889:                                             ; preds = %2884
  %2890 = load i32, ptr %140, align 4, !tbaa !9
  %2891 = add nsw i32 %2890, 1
  store i32 %2891, ptr %140, align 4, !tbaa !9
  %2892 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 0
  %2893 = load i32, ptr %2892, align 4, !tbaa !9
  %2894 = icmp eq i32 %2893, -1
  br i1 %2894, label %2895, label %2908

2895:                                             ; preds = %2889
  %2896 = load ptr, ptr %141, align 8, !tbaa !5
  %2897 = getelementptr inbounds [2 x ptr], ptr %137, i64 0, i64 0
  %2898 = load ptr, ptr %2897, align 16, !tbaa !5
  %2899 = icmp uge ptr %2896, %2898
  br i1 %2899, label %2900, label %2908

2900:                                             ; preds = %2895
  %2901 = load i32, ptr %140, align 4, !tbaa !9
  %2902 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 0
  store i32 %2901, ptr %2902, align 4, !tbaa !9
  %2903 = load i32, ptr %139, align 4, !tbaa !9
  %2904 = add nsw i32 %2903, -1
  store i32 %2904, ptr %139, align 4, !tbaa !9
  %2905 = icmp sle i32 %2904, 0
  br i1 %2905, label %2906, label %2907

2906:                                             ; preds = %2900
  store i32 7, ptr %19, align 4
  br label %2930

2907:                                             ; preds = %2900
  br label %2908

2908:                                             ; preds = %2907, %2895, %2889
  %2909 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 1
  %2910 = load i32, ptr %2909, align 4, !tbaa !9
  %2911 = icmp eq i32 %2910, -1
  br i1 %2911, label %2912, label %2925

2912:                                             ; preds = %2908
  %2913 = load ptr, ptr %141, align 8, !tbaa !5
  %2914 = getelementptr inbounds [2 x ptr], ptr %137, i64 0, i64 1
  %2915 = load ptr, ptr %2914, align 8, !tbaa !5
  %2916 = icmp uge ptr %2913, %2915
  br i1 %2916, label %2917, label %2925

2917:                                             ; preds = %2912
  %2918 = load i32, ptr %140, align 4, !tbaa !9
  %2919 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 1
  store i32 %2918, ptr %2919, align 4, !tbaa !9
  %2920 = load i32, ptr %139, align 4, !tbaa !9
  %2921 = add nsw i32 %2920, -1
  store i32 %2921, ptr %139, align 4, !tbaa !9
  %2922 = icmp sle i32 %2921, 0
  br i1 %2922, label %2923, label %2924

2923:                                             ; preds = %2917
  store i32 7, ptr %19, align 4
  br label %2930

2924:                                             ; preds = %2917
  br label %2925

2925:                                             ; preds = %2924, %2912, %2908
  br label %2926

2926:                                             ; preds = %2925, %2884
  br label %2927

2927:                                             ; preds = %2926
  %2928 = load ptr, ptr %141, align 8, !tbaa !5
  %2929 = getelementptr inbounds i16, ptr %2928, i32 1
  store ptr %2929, ptr %141, align 8, !tbaa !5
  br label %2878, !llvm.loop !211

2930:                                             ; preds = %2923, %2906, %2883
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #14
  br label %2931

2931:                                             ; preds = %2930
  %2932 = load i32, ptr %140, align 4, !tbaa !9
  %2933 = add nsw i32 %2932, 1
  store i32 %2933, ptr %140, align 4, !tbaa !9
  %2934 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 0
  %2935 = load i32, ptr %2934, align 4, !tbaa !9
  %2936 = icmp eq i32 %2935, -1
  br i1 %2936, label %2937, label %2940

2937:                                             ; preds = %2931
  %2938 = load i32, ptr %140, align 4, !tbaa !9
  %2939 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 0
  store i32 %2938, ptr %2939, align 4, !tbaa !9
  br label %2940

2940:                                             ; preds = %2937, %2931
  %2941 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 1
  %2942 = load i32, ptr %2941, align 4, !tbaa !9
  %2943 = icmp eq i32 %2942, -1
  br i1 %2943, label %2944, label %2947

2944:                                             ; preds = %2940
  %2945 = load i32, ptr %140, align 4, !tbaa !9
  %2946 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 1
  store i32 %2945, ptr %2946, align 4, !tbaa !9
  br label %2947

2947:                                             ; preds = %2944, %2940
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #14
  %2948 = load ptr, ptr %20, align 8, !tbaa !5
  %2949 = getelementptr inbounds [2 x ptr], ptr %137, i64 0, i64 0
  %2950 = load ptr, ptr %2949, align 16, !tbaa !5
  %2951 = load ptr, ptr %134, align 8, !tbaa !5
  %2952 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2950, ptr noundef %2951)
  %2953 = getelementptr inbounds [2 x ptr], ptr %137, i64 0, i64 0
  %2954 = load ptr, ptr %2953, align 16, !tbaa !5
  %2955 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %2948, ptr noundef %2952, ptr noundef %2954, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2955, ptr %142, align 4
  %2956 = getelementptr inbounds %struct.ImVec2, ptr %142, i32 0, i32 0
  %2957 = load float, ptr %2956, align 4, !tbaa !115
  %2958 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 0
  store float %2957, ptr %2958, align 4, !tbaa !115
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #14
  %2959 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 0
  %2960 = load i32, ptr %2959, align 4, !tbaa !9
  %2961 = sitofp i32 %2960 to float
  %2962 = load ptr, ptr %20, align 8, !tbaa !5
  %2963 = getelementptr inbounds %struct.ImGuiContext, ptr %2962, i32 0, i32 8
  %2964 = load float, ptr %2963, align 8, !tbaa !47
  %2965 = fmul float %2961, %2964
  %2966 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 1
  store float %2965, ptr %2966, align 4, !tbaa !113
  %2967 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 1
  %2968 = load i32, ptr %2967, align 4, !tbaa !9
  %2969 = icmp sge i32 %2968, 0
  br i1 %2969, label %2970, label %2990

2970:                                             ; preds = %2947
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #14
  %2971 = load ptr, ptr %20, align 8, !tbaa !5
  %2972 = getelementptr inbounds [2 x ptr], ptr %137, i64 0, i64 1
  %2973 = load ptr, ptr %2972, align 8, !tbaa !5
  %2974 = load ptr, ptr %134, align 8, !tbaa !5
  %2975 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2973, ptr noundef %2974)
  %2976 = getelementptr inbounds [2 x ptr], ptr %137, i64 0, i64 1
  %2977 = load ptr, ptr %2976, align 8, !tbaa !5
  %2978 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %2971, ptr noundef %2975, ptr noundef %2977, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2978, ptr %143, align 4
  %2979 = getelementptr inbounds %struct.ImVec2, ptr %143, i32 0, i32 0
  %2980 = load float, ptr %2979, align 4, !tbaa !115
  %2981 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  store float %2980, ptr %2981, align 4, !tbaa !115
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #14
  %2982 = getelementptr inbounds [2 x i32], ptr %138, i64 0, i64 1
  %2983 = load i32, ptr %2982, align 4, !tbaa !9
  %2984 = sitofp i32 %2983 to float
  %2985 = load ptr, ptr %20, align 8, !tbaa !5
  %2986 = getelementptr inbounds %struct.ImGuiContext, ptr %2985, i32 0, i32 8
  %2987 = load float, ptr %2986, align 8, !tbaa !47
  %2988 = fmul float %2984, %2987
  %2989 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  store float %2988, ptr %2989, align 4, !tbaa !113
  br label %2990

2990:                                             ; preds = %2970, %2947
  %2991 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2992 = trunc i8 %2991 to i1
  br i1 %2992, label %2993, label %3002

2993:                                             ; preds = %2990
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #14
  %2994 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %2995 = load float, ptr %2994, align 4, !tbaa !115
  %2996 = load i32, ptr %140, align 4, !tbaa !9
  %2997 = sitofp i32 %2996 to float
  %2998 = load ptr, ptr %20, align 8, !tbaa !5
  %2999 = getelementptr inbounds %struct.ImGuiContext, ptr %2998, i32 0, i32 8
  %3000 = load float, ptr %2999, align 8, !tbaa !47
  %3001 = fmul float %2997, %3000
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %144, float noundef %2995, float noundef %3001)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %130, ptr align 4 %144, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #14
  br label %3002

3002:                                             ; preds = %2993, %2990
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %137) #14
  %3003 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %3004 = trunc i8 %3003 to i1
  br i1 %3004, label %3005, label %3143

3005:                                             ; preds = %3002
  %3006 = load ptr, ptr %43, align 8, !tbaa !5
  %3007 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3006, i32 0, i32 14
  %3008 = load i8, ptr %3007, align 4, !tbaa !172, !range !42, !noundef !43
  %3009 = trunc i8 %3008 to i1
  br i1 %3009, label %3010, label %3143

3010:                                             ; preds = %3005
  %3011 = load i32, ptr %15, align 4, !tbaa !9
  %3012 = and i32 %3011, 4096
  %3013 = icmp ne i32 %3012, 0
  br i1 %3013, label %3063, label %3014

3014:                                             ; preds = %3010
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #14
  %3015 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3016 = load float, ptr %3015, align 4, !tbaa !115
  %3017 = fmul float %3016, 2.500000e-01
  store float %3017, ptr %145, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #14
  %3018 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3019 = load float, ptr %3018, align 4, !tbaa !115
  %3020 = load ptr, ptr %22, align 8, !tbaa !5
  %3021 = getelementptr inbounds %struct.ImGuiStyle, ptr %3020, i32 0, i32 12
  %3022 = getelementptr inbounds %struct.ImVec2, ptr %3021, i32 0, i32 0
  %3023 = load float, ptr %3022, align 4, !tbaa !163
  %3024 = fsub float %3019, %3023
  store float %3024, ptr %146, align 4, !tbaa !46
  %3025 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 0
  %3026 = load float, ptr %3025, align 4, !tbaa !115
  %3027 = load ptr, ptr %43, align 8, !tbaa !5
  %3028 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3027, i32 0, i32 11
  %3029 = load float, ptr %3028, align 8, !tbaa !140
  %3030 = fcmp olt float %3026, %3029
  br i1 %3030, label %3031, label %3041

3031:                                             ; preds = %3014
  %3032 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 0
  %3033 = load float, ptr %3032, align 4, !tbaa !115
  %3034 = load float, ptr %145, align 4, !tbaa !46
  %3035 = fsub float %3033, %3034
  %3036 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3035)
  %3037 = fptosi float %3036 to i32
  %3038 = sitofp i32 %3037 to float
  %3039 = load ptr, ptr %43, align 8, !tbaa !5
  %3040 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3039, i32 0, i32 11
  store float %3038, ptr %3040, align 8, !tbaa !140
  br label %3062

3041:                                             ; preds = %3014
  %3042 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 0
  %3043 = load float, ptr %3042, align 4, !tbaa !115
  %3044 = load float, ptr %146, align 4, !tbaa !46
  %3045 = fsub float %3043, %3044
  %3046 = load ptr, ptr %43, align 8, !tbaa !5
  %3047 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3046, i32 0, i32 11
  %3048 = load float, ptr %3047, align 8, !tbaa !140
  %3049 = fcmp oge float %3045, %3048
  br i1 %3049, label %3050, label %3061

3050:                                             ; preds = %3041
  %3051 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 0
  %3052 = load float, ptr %3051, align 4, !tbaa !115
  %3053 = load float, ptr %146, align 4, !tbaa !46
  %3054 = fsub float %3052, %3053
  %3055 = load float, ptr %145, align 4, !tbaa !46
  %3056 = fadd float %3054, %3055
  %3057 = fptosi float %3056 to i32
  %3058 = sitofp i32 %3057 to float
  %3059 = load ptr, ptr %43, align 8, !tbaa !5
  %3060 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3059, i32 0, i32 11
  store float %3058, ptr %3060, align 8, !tbaa !140
  br label %3061

3061:                                             ; preds = %3050, %3041
  br label %3062

3062:                                             ; preds = %3061, %3031
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #14
  br label %3066

3063:                                             ; preds = %3010
  %3064 = load ptr, ptr %43, align 8, !tbaa !5
  %3065 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3064, i32 0, i32 11
  store float 0.000000e+00, ptr %3065, align 8, !tbaa !140
  br label %3066

3066:                                             ; preds = %3063, %3062
  %3067 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3068 = trunc i8 %3067 to i1
  br i1 %3068, label %3069, label %3140

3069:                                             ; preds = %3066
  %3070 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 1
  %3071 = load float, ptr %3070, align 4, !tbaa !113
  %3072 = load ptr, ptr %20, align 8, !tbaa !5
  %3073 = getelementptr inbounds %struct.ImGuiContext, ptr %3072, i32 0, i32 8
  %3074 = load float, ptr %3073, align 8, !tbaa !47
  %3075 = fsub float %3071, %3074
  %3076 = load float, ptr %54, align 4, !tbaa !46
  %3077 = fcmp olt float %3075, %3076
  br i1 %3077, label %3078, label %3086

3078:                                             ; preds = %3069
  %3079 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 1
  %3080 = load float, ptr %3079, align 4, !tbaa !113
  %3081 = load ptr, ptr %20, align 8, !tbaa !5
  %3082 = getelementptr inbounds %struct.ImGuiContext, ptr %3081, i32 0, i32 8
  %3083 = load float, ptr %3082, align 8, !tbaa !47
  %3084 = fsub float %3080, %3083
  %3085 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3084)
  store float %3085, ptr %54, align 4, !tbaa !46
  br label %3112

3086:                                             ; preds = %3069
  %3087 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 1
  %3088 = load float, ptr %3087, align 4, !tbaa !113
  %3089 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %3090 = load float, ptr %3089, align 4, !tbaa !113
  %3091 = load ptr, ptr %22, align 8, !tbaa !5
  %3092 = getelementptr inbounds %struct.ImGuiStyle, ptr %3091, i32 0, i32 12
  %3093 = getelementptr inbounds %struct.ImVec2, ptr %3092, i32 0, i32 1
  %3094 = load float, ptr %3093, align 4, !tbaa !114
  %3095 = fneg float %3094
  %3096 = call float @llvm.fmuladd.f32(float %3095, float 2.000000e+00, float %3090)
  %3097 = fsub float %3088, %3096
  %3098 = load float, ptr %54, align 4, !tbaa !46
  %3099 = fcmp oge float %3097, %3098
  br i1 %3099, label %3100, label %3111

3100:                                             ; preds = %3086
  %3101 = getelementptr inbounds %struct.ImVec2, ptr %135, i32 0, i32 1
  %3102 = load float, ptr %3101, align 4, !tbaa !113
  %3103 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %3104 = load float, ptr %3103, align 4, !tbaa !113
  %3105 = fsub float %3102, %3104
  %3106 = load ptr, ptr %22, align 8, !tbaa !5
  %3107 = getelementptr inbounds %struct.ImGuiStyle, ptr %3106, i32 0, i32 12
  %3108 = getelementptr inbounds %struct.ImVec2, ptr %3107, i32 0, i32 1
  %3109 = load float, ptr %3108, align 4, !tbaa !114
  %3110 = call float @llvm.fmuladd.f32(float %3109, float 2.000000e+00, float %3105)
  store float %3110, ptr %54, align 4, !tbaa !46
  br label %3111

3111:                                             ; preds = %3100, %3086
  br label %3112

3112:                                             ; preds = %3111, %3078
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #14
  %3113 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 1
  %3114 = load float, ptr %3113, align 4, !tbaa !113
  %3115 = load ptr, ptr %22, align 8, !tbaa !5
  %3116 = getelementptr inbounds %struct.ImGuiStyle, ptr %3115, i32 0, i32 12
  %3117 = getelementptr inbounds %struct.ImVec2, ptr %3116, i32 0, i32 1
  %3118 = load float, ptr %3117, align 4, !tbaa !114
  %3119 = call float @llvm.fmuladd.f32(float %3118, float 2.000000e+00, float %3114)
  %3120 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %3121 = load float, ptr %3120, align 4, !tbaa !113
  %3122 = fsub float %3119, %3121
  %3123 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %3122, float noundef 0.000000e+00)
  store float %3123, ptr %147, align 4, !tbaa !46
  %3124 = load float, ptr %54, align 4, !tbaa !46
  %3125 = load float, ptr %147, align 4, !tbaa !46
  %3126 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %3124, float noundef 0.000000e+00, float noundef %3125)
  store float %3126, ptr %54, align 4, !tbaa !46
  %3127 = load ptr, ptr %34, align 8, !tbaa !5
  %3128 = getelementptr inbounds %struct.ImGuiWindow, ptr %3127, i32 0, i32 30
  %3129 = getelementptr inbounds %struct.ImVec2, ptr %3128, i32 0, i32 1
  %3130 = load float, ptr %3129, align 4, !tbaa !131
  %3131 = load float, ptr %54, align 4, !tbaa !46
  %3132 = fsub float %3130, %3131
  %3133 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 1
  %3134 = load float, ptr %3133, align 4, !tbaa !113
  %3135 = fadd float %3134, %3132
  store float %3135, ptr %3133, align 4, !tbaa !113
  %3136 = load float, ptr %54, align 4, !tbaa !46
  %3137 = load ptr, ptr %34, align 8, !tbaa !5
  %3138 = getelementptr inbounds %struct.ImGuiWindow, ptr %3137, i32 0, i32 30
  %3139 = getelementptr inbounds %struct.ImVec2, ptr %3138, i32 0, i32 1
  store float %3136, ptr %3139, align 4, !tbaa !131
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #14
  br label %3140

3140:                                             ; preds = %3112, %3066
  %3141 = load ptr, ptr %43, align 8, !tbaa !5
  %3142 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3141, i32 0, i32 14
  store i8 0, ptr %3142, align 4, !tbaa !172
  br label %3143

3143:                                             ; preds = %3140, %3005, %3002
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #14
  %3144 = load ptr, ptr %43, align 8, !tbaa !5
  %3145 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3144, i32 0, i32 11
  %3146 = load float, ptr %3145, align 8, !tbaa !140
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %148, float noundef %3146, float noundef 0.000000e+00)
  %3147 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %3148 = trunc i8 %3147 to i1
  br i1 %3148, label %3149, label %3278

3149:                                             ; preds = %3143
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #14
  %3150 = load ptr, ptr %134, align 8, !tbaa !5
  %3151 = load ptr, ptr %43, align 8, !tbaa !5
  %3152 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3151, i32 0, i32 12
  %3153 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3152, i32 0, i32 1
  %3154 = load i32, ptr %3153, align 4, !tbaa !170
  %3155 = load ptr, ptr %43, align 8, !tbaa !5
  %3156 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3155, i32 0, i32 12
  %3157 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3156, i32 0, i32 2
  %3158 = load i32, ptr %3157, align 4, !tbaa !171
  %3159 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %3154, i32 noundef %3158)
  %3160 = sext i32 %3159 to i64
  %3161 = getelementptr inbounds i16, ptr %3150, i64 %3160
  store ptr %3161, ptr %149, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #14
  %3162 = load ptr, ptr %134, align 8, !tbaa !5
  %3163 = load ptr, ptr %43, align 8, !tbaa !5
  %3164 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3163, i32 0, i32 12
  %3165 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3164, i32 0, i32 1
  %3166 = load i32, ptr %3165, align 4, !tbaa !170
  %3167 = load ptr, ptr %43, align 8, !tbaa !5
  %3168 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3167, i32 0, i32 12
  %3169 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3168, i32 0, i32 2
  %3170 = load i32, ptr %3169, align 4, !tbaa !171
  %3171 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3166, i32 noundef %3170)
  %3172 = sext i32 %3171 to i64
  %3173 = getelementptr inbounds i16, ptr %3162, i64 %3172
  store ptr %3173, ptr %150, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #14
  %3174 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %3175 = trunc i8 %3174 to i1
  %3176 = zext i1 %3175 to i64
  %3177 = select i1 %3175, float 1.000000e+00, float 0x3FE3333340000000
  %3178 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 49, float noundef %3177)
  store i32 %3178, ptr %151, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #14
  %3179 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3180 = trunc i8 %3179 to i1
  %3181 = zext i1 %3180 to i64
  %3182 = select i1 %3180, float 0.000000e+00, float -1.000000e+00
  store float %3182, ptr %152, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #14
  %3183 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3184 = trunc i8 %3183 to i1
  %3185 = zext i1 %3184 to i64
  %3186 = select i1 %3184, float 0.000000e+00, float 2.000000e+00
  store float %3186, ptr %153, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #14
  %3187 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %129, ptr noundef nonnull align 4 dereferenceable(8) %136)
  store <2 x float> %3187, ptr %155, align 4
  %3188 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %155, ptr noundef nonnull align 4 dereferenceable(8) %148)
  store <2 x float> %3188, ptr %154, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #14
  %3189 = load ptr, ptr %149, align 8, !tbaa !5
  store ptr %3189, ptr %156, align 8, !tbaa !5
  br label %3190

3190:                                             ; preds = %3263, %3149
  %3191 = load ptr, ptr %156, align 8, !tbaa !5
  %3192 = load ptr, ptr %150, align 8, !tbaa !5
  %3193 = icmp ult ptr %3191, %3192
  br i1 %3193, label %3195, label %3194

3194:                                             ; preds = %3190
  store i32 10, ptr %19, align 4
  br label %3276

3195:                                             ; preds = %3190
  %3196 = getelementptr inbounds %struct.ImVec2, ptr %154, i32 0, i32 1
  %3197 = load float, ptr %3196, align 4, !tbaa !113
  %3198 = getelementptr inbounds %struct.ImVec4, ptr %128, i32 0, i32 3
  %3199 = load float, ptr %3198, align 4, !tbaa !212
  %3200 = load ptr, ptr %20, align 8, !tbaa !5
  %3201 = getelementptr inbounds %struct.ImGuiContext, ptr %3200, i32 0, i32 8
  %3202 = load float, ptr %3201, align 8, !tbaa !47
  %3203 = fadd float %3199, %3202
  %3204 = fcmp ogt float %3197, %3203
  br i1 %3204, label %3205, label %3206

3205:                                             ; preds = %3195
  store i32 10, ptr %19, align 4
  br label %3276

3206:                                             ; preds = %3195
  %3207 = getelementptr inbounds %struct.ImVec2, ptr %154, i32 0, i32 1
  %3208 = load float, ptr %3207, align 4, !tbaa !113
  %3209 = getelementptr inbounds %struct.ImVec4, ptr %128, i32 0, i32 1
  %3210 = load float, ptr %3209, align 4, !tbaa !213
  %3211 = fcmp olt float %3208, %3210
  br i1 %3211, label %3212, label %3226

3212:                                             ; preds = %3206
  br label %3213

3213:                                             ; preds = %3224, %3212
  %3214 = load ptr, ptr %156, align 8, !tbaa !5
  %3215 = load ptr, ptr %150, align 8, !tbaa !5
  %3216 = icmp ult ptr %3214, %3215
  br i1 %3216, label %3217, label %3225

3217:                                             ; preds = %3213
  %3218 = load ptr, ptr %156, align 8, !tbaa !5
  %3219 = getelementptr inbounds i16, ptr %3218, i32 1
  store ptr %3219, ptr %156, align 8, !tbaa !5
  %3220 = load i16, ptr %3218, align 2, !tbaa !167
  %3221 = zext i16 %3220 to i32
  %3222 = icmp eq i32 %3221, 10
  br i1 %3222, label %3223, label %3224

3223:                                             ; preds = %3217
  br label %3225

3224:                                             ; preds = %3217
  br label %3213, !llvm.loop !214

3225:                                             ; preds = %3223, %3213
  br label %3263

3226:                                             ; preds = %3206
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #14
  %3227 = load ptr, ptr %20, align 8, !tbaa !5
  %3228 = load ptr, ptr %156, align 8, !tbaa !5
  %3229 = load ptr, ptr %150, align 8, !tbaa !5
  %3230 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %3227, ptr noundef %3228, ptr noundef %3229, ptr noundef %156, ptr noundef null, i1 noundef zeroext true)
  store <2 x float> %3230, ptr %157, align 4
  %3231 = getelementptr inbounds %struct.ImVec2, ptr %157, i32 0, i32 0
  %3232 = load float, ptr %3231, align 4, !tbaa !115
  %3233 = fcmp ole float %3232, 0.000000e+00
  br i1 %3233, label %3234, label %3243

3234:                                             ; preds = %3226
  %3235 = load ptr, ptr %20, align 8, !tbaa !5
  %3236 = getelementptr inbounds %struct.ImGuiContext, ptr %3235, i32 0, i32 7
  %3237 = load ptr, ptr %3236, align 8, !tbaa !147
  %3238 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %3237, i16 noundef zeroext 32)
  %3239 = fmul float %3238, 5.000000e-01
  %3240 = fptosi float %3239 to i32
  %3241 = sitofp i32 %3240 to float
  %3242 = getelementptr inbounds %struct.ImVec2, ptr %157, i32 0, i32 0
  store float %3241, ptr %3242, align 4, !tbaa !115
  br label %3243

3243:                                             ; preds = %3234, %3226
  call void @llvm.lifetime.start.p0(i64 16, ptr %158) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #14
  %3244 = load float, ptr %152, align 4, !tbaa !46
  %3245 = load ptr, ptr %20, align 8, !tbaa !5
  %3246 = getelementptr inbounds %struct.ImGuiContext, ptr %3245, i32 0, i32 8
  %3247 = load float, ptr %3246, align 8, !tbaa !47
  %3248 = fsub float %3244, %3247
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %160, float noundef 0.000000e+00, float noundef %3248)
  %3249 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %154, ptr noundef nonnull align 4 dereferenceable(8) %160)
  store <2 x float> %3249, ptr %159, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #14
  %3250 = getelementptr inbounds %struct.ImVec2, ptr %157, i32 0, i32 0
  %3251 = load float, ptr %3250, align 4, !tbaa !115
  %3252 = load float, ptr %153, align 4, !tbaa !46
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %162, float noundef %3251, float noundef %3252)
  %3253 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %154, ptr noundef nonnull align 4 dereferenceable(8) %162)
  store <2 x float> %3253, ptr %161, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %158, ptr noundef nonnull align 4 dereferenceable(8) %159, ptr noundef nonnull align 4 dereferenceable(8) %161)
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %163) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %163, ptr noundef nonnull align 4 dereferenceable(16) %128)
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %158, ptr noundef nonnull align 4 dereferenceable(16) %163)
  call void @llvm.lifetime.end.p0(i64 16, ptr %163) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %164) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %164, ptr noundef nonnull align 4 dereferenceable(16) %128)
  %3254 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %158, ptr noundef nonnull align 4 dereferenceable(16) %164)
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #14
  br i1 %3254, label %3255, label %3262

3255:                                             ; preds = %3243
  %3256 = load ptr, ptr %34, align 8, !tbaa !5
  %3257 = getelementptr inbounds %struct.ImGuiWindow, ptr %3256, i32 0, i32 89
  %3258 = load ptr, ptr %3257, align 8, !tbaa !215
  %3259 = getelementptr inbounds %struct.ImRect, ptr %158, i32 0, i32 0
  %3260 = getelementptr inbounds %struct.ImRect, ptr %158, i32 0, i32 1
  %3261 = load i32, ptr %151, align 4, !tbaa !9
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %3258, ptr noundef nonnull align 4 dereferenceable(8) %3259, ptr noundef nonnull align 4 dereferenceable(8) %3260, i32 noundef %3261, float noundef 0.000000e+00, i32 noundef 0)
  br label %3262

3262:                                             ; preds = %3255, %3243
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #14
  br label %3263

3263:                                             ; preds = %3262, %3225
  %3264 = getelementptr inbounds %struct.ImVec2, ptr %129, i32 0, i32 0
  %3265 = load float, ptr %3264, align 4, !tbaa !115
  %3266 = getelementptr inbounds %struct.ImVec2, ptr %148, i32 0, i32 0
  %3267 = load float, ptr %3266, align 4, !tbaa !115
  %3268 = fsub float %3265, %3267
  %3269 = getelementptr inbounds %struct.ImVec2, ptr %154, i32 0, i32 0
  store float %3268, ptr %3269, align 4, !tbaa !115
  %3270 = load ptr, ptr %20, align 8, !tbaa !5
  %3271 = getelementptr inbounds %struct.ImGuiContext, ptr %3270, i32 0, i32 8
  %3272 = load float, ptr %3271, align 8, !tbaa !47
  %3273 = getelementptr inbounds %struct.ImVec2, ptr %154, i32 0, i32 1
  %3274 = load float, ptr %3273, align 4, !tbaa !113
  %3275 = fadd float %3274, %3272
  store float %3275, ptr %3273, align 4, !tbaa !113
  br label %3190, !llvm.loop !216

3276:                                             ; preds = %3205, %3194
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #14
  br label %3277

3277:                                             ; preds = %3276
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #14
  br label %3278

3278:                                             ; preds = %3277, %3143
  %3279 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3280 = trunc i8 %3279 to i1
  br i1 %3280, label %3288, label %3281

3281:                                             ; preds = %3278
  %3282 = load ptr, ptr %133, align 8, !tbaa !5
  %3283 = load ptr, ptr %132, align 8, !tbaa !5
  %3284 = ptrtoint ptr %3282 to i64
  %3285 = ptrtoint ptr %3283 to i64
  %3286 = sub i64 %3284, %3285
  %3287 = icmp slt i64 %3286, 2097152
  br i1 %3287, label %3288, label %3313

3288:                                             ; preds = %3281, %3278
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #14
  %3289 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %3290 = trunc i8 %3289 to i1
  %3291 = zext i1 %3290 to i64
  %3292 = select i1 %3290, i32 1, i32 0
  %3293 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3292, float noundef 1.000000e+00)
  store i32 %3293, ptr %165, align 4, !tbaa !9
  %3294 = load ptr, ptr %34, align 8, !tbaa !5
  %3295 = getelementptr inbounds %struct.ImGuiWindow, ptr %3294, i32 0, i32 89
  %3296 = load ptr, ptr %3295, align 8, !tbaa !215
  %3297 = load ptr, ptr %20, align 8, !tbaa !5
  %3298 = getelementptr inbounds %struct.ImGuiContext, ptr %3297, i32 0, i32 7
  %3299 = load ptr, ptr %3298, align 8, !tbaa !147
  %3300 = load ptr, ptr %20, align 8, !tbaa !5
  %3301 = getelementptr inbounds %struct.ImGuiContext, ptr %3300, i32 0, i32 8
  %3302 = load float, ptr %3301, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #14
  %3303 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %129, ptr noundef nonnull align 4 dereferenceable(8) %148)
  store <2 x float> %3303, ptr %166, align 4
  %3304 = load i32, ptr %165, align 4, !tbaa !9
  %3305 = load ptr, ptr %132, align 8, !tbaa !5
  %3306 = load ptr, ptr %133, align 8, !tbaa !5
  %3307 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3308 = trunc i8 %3307 to i1
  br i1 %3308, label %3309, label %3310

3309:                                             ; preds = %3288
  br label %3311

3310:                                             ; preds = %3288
  br label %3311

3311:                                             ; preds = %3310, %3309
  %3312 = phi ptr [ null, %3309 ], [ %128, %3310 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3296, ptr noundef %3299, float noundef %3302, ptr noundef nonnull align 4 dereferenceable(8) %166, i32 noundef %3304, ptr noundef %3305, ptr noundef %3306, float noundef 0.000000e+00, ptr noundef %3312)
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #14
  br label %3313

3313:                                             ; preds = %3311, %3281
  %3314 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %3315 = trunc i8 %3314 to i1
  br i1 %3315, label %3316, label %3407

3316:                                             ; preds = %3313
  %3317 = load ptr, ptr %21, align 8, !tbaa !5
  %3318 = getelementptr inbounds %struct.ImGuiIO, ptr %3317, i32 0, i32 3
  %3319 = load float, ptr %3318, align 8, !tbaa !217
  %3320 = load ptr, ptr %43, align 8, !tbaa !5
  %3321 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3320, i32 0, i32 13
  %3322 = load float, ptr %3321, align 8, !tbaa !218
  %3323 = fadd float %3322, %3319
  store float %3323, ptr %3321, align 8, !tbaa !218
  call void @llvm.lifetime.start.p0(i64 1, ptr %167) #14
  %3324 = load ptr, ptr %20, align 8, !tbaa !5
  %3325 = getelementptr inbounds %struct.ImGuiContext, ptr %3324, i32 0, i32 2
  %3326 = getelementptr inbounds %struct.ImGuiIO, ptr %3325, i32 0, i32 24
  %3327 = load i8, ptr %3326, align 1, !tbaa !219, !range !42, !noundef !43
  %3328 = trunc i8 %3327 to i1
  br i1 %3328, label %3329, label %3340

3329:                                             ; preds = %3316
  %3330 = load ptr, ptr %43, align 8, !tbaa !5
  %3331 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3330, i32 0, i32 13
  %3332 = load float, ptr %3331, align 8, !tbaa !218
  %3333 = fcmp ole float %3332, 0.000000e+00
  br i1 %3333, label %3340, label %3334

3334:                                             ; preds = %3329
  %3335 = load ptr, ptr %43, align 8, !tbaa !5
  %3336 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3335, i32 0, i32 13
  %3337 = load float, ptr %3336, align 8, !tbaa !218
  %3338 = call float @fmodf(float noundef %3337, float noundef 0x3FF3333340000000) #14
  %3339 = fcmp ole float %3338, 0x3FE99999A0000000
  br label %3340

3340:                                             ; preds = %3334, %3329, %3316
  %3341 = phi i1 [ true, %3329 ], [ true, %3316 ], [ %3339, %3334 ]
  %3342 = zext i1 %3341 to i8
  store i8 %3342, ptr %167, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #14
  %3343 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %129, ptr noundef nonnull align 4 dereferenceable(8) %135)
  store <2 x float> %3343, ptr %170, align 4
  %3344 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %170, ptr noundef nonnull align 4 dereferenceable(8) %148)
  store <2 x float> %3344, ptr %169, align 4
  %3345 = call <2 x float> @_ZL7ImTruncRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %169)
  store <2 x float> %3345, ptr %168, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %171) #14
  %3346 = getelementptr inbounds %struct.ImVec2, ptr %168, i32 0, i32 0
  %3347 = load float, ptr %3346, align 4, !tbaa !115
  %3348 = getelementptr inbounds %struct.ImVec2, ptr %168, i32 0, i32 1
  %3349 = load float, ptr %3348, align 4, !tbaa !113
  %3350 = load ptr, ptr %20, align 8, !tbaa !5
  %3351 = getelementptr inbounds %struct.ImGuiContext, ptr %3350, i32 0, i32 8
  %3352 = load float, ptr %3351, align 8, !tbaa !47
  %3353 = fsub float %3349, %3352
  %3354 = fadd float %3353, 5.000000e-01
  %3355 = getelementptr inbounds %struct.ImVec2, ptr %168, i32 0, i32 0
  %3356 = load float, ptr %3355, align 4, !tbaa !115
  %3357 = fadd float %3356, 1.000000e+00
  %3358 = getelementptr inbounds %struct.ImVec2, ptr %168, i32 0, i32 1
  %3359 = load float, ptr %3358, align 4, !tbaa !113
  %3360 = fsub float %3359, 1.500000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %171, float noundef %3347, float noundef %3354, float noundef %3357, float noundef %3360)
  %3361 = load i8, ptr %167, align 1, !tbaa !44, !range !42, !noundef !43
  %3362 = trunc i8 %3361 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %172) #14
  br i1 %3362, label %3363, label %3365

3363:                                             ; preds = %3340
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %172, ptr noundef nonnull align 4 dereferenceable(16) %128)
  %3364 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %171, ptr noundef nonnull align 4 dereferenceable(16) %172)
  br label %3365

3365:                                             ; preds = %3363, %3340
  %3366 = phi i1 [ false, %3340 ], [ %3364, %3363 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %172) #14
  br i1 %3366, label %3367, label %3374

3367:                                             ; preds = %3365
  %3368 = load ptr, ptr %34, align 8, !tbaa !5
  %3369 = getelementptr inbounds %struct.ImGuiWindow, ptr %3368, i32 0, i32 89
  %3370 = load ptr, ptr %3369, align 8, !tbaa !215
  %3371 = getelementptr inbounds %struct.ImRect, ptr %171, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #14
  %3372 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %171)
  store <2 x float> %3372, ptr %173, align 4
  %3373 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %3370, ptr noundef nonnull align 4 dereferenceable(8) %3371, ptr noundef nonnull align 4 dereferenceable(8) %173, i32 noundef %3373, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #14
  br label %3374

3374:                                             ; preds = %3367, %3365
  %3375 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %3376 = trunc i8 %3375 to i1
  br i1 %3376, label %3406, label %3377

3377:                                             ; preds = %3374
  %3378 = load ptr, ptr %20, align 8, !tbaa !5
  %3379 = getelementptr inbounds %struct.ImGuiContext, ptr %3378, i32 0, i32 236
  %3380 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3379, i32 0, i32 0
  store i8 1, ptr %3380, align 8, !tbaa !220
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #14
  %3381 = getelementptr inbounds %struct.ImVec2, ptr %168, i32 0, i32 0
  %3382 = load float, ptr %3381, align 4, !tbaa !115
  %3383 = fsub float %3382, 1.000000e+00
  %3384 = getelementptr inbounds %struct.ImVec2, ptr %168, i32 0, i32 1
  %3385 = load float, ptr %3384, align 4, !tbaa !113
  %3386 = load ptr, ptr %20, align 8, !tbaa !5
  %3387 = getelementptr inbounds %struct.ImGuiContext, ptr %3386, i32 0, i32 8
  %3388 = load float, ptr %3387, align 8, !tbaa !47
  %3389 = fsub float %3385, %3388
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %174, float noundef %3383, float noundef %3389)
  %3390 = load ptr, ptr %20, align 8, !tbaa !5
  %3391 = getelementptr inbounds %struct.ImGuiContext, ptr %3390, i32 0, i32 236
  %3392 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3391, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %3392, ptr align 4 %174, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #14
  %3393 = load ptr, ptr %20, align 8, !tbaa !5
  %3394 = getelementptr inbounds %struct.ImGuiContext, ptr %3393, i32 0, i32 8
  %3395 = load float, ptr %3394, align 8, !tbaa !47
  %3396 = load ptr, ptr %20, align 8, !tbaa !5
  %3397 = getelementptr inbounds %struct.ImGuiContext, ptr %3396, i32 0, i32 236
  %3398 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3397, i32 0, i32 2
  store float %3395, ptr %3398, align 4, !tbaa !221
  %3399 = load ptr, ptr %18, align 8, !tbaa !5
  %3400 = getelementptr inbounds %struct.ImGuiWindow, ptr %3399, i32 0, i32 7
  %3401 = load ptr, ptr %3400, align 8, !tbaa !222
  %3402 = getelementptr inbounds %struct.ImGuiViewport, ptr %3401, i32 0, i32 0
  %3403 = load i32, ptr %3402, align 8, !tbaa !223
  %3404 = load ptr, ptr %20, align 8, !tbaa !5
  %3405 = getelementptr inbounds %struct.ImGuiContext, ptr %3404, i32 0, i32 238
  store i32 %3403, ptr %3405, align 8, !tbaa !225
  br label %3406

3406:                                             ; preds = %3377, %3374
  call void @llvm.lifetime.end.p0(i64 16, ptr %171) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %167) #14
  br label %3407

3407:                                             ; preds = %3406, %3313
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #14
  br label %3482

3408:                                             ; preds = %2812
  %3409 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3410 = trunc i8 %3409 to i1
  br i1 %3410, label %3411, label %3421

3411:                                             ; preds = %3408
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #14
  %3412 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3413 = load float, ptr %3412, align 4, !tbaa !115
  %3414 = load ptr, ptr %132, align 8, !tbaa !5
  %3415 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %3414, ptr noundef %133)
  %3416 = sitofp i32 %3415 to float
  %3417 = load ptr, ptr %20, align 8, !tbaa !5
  %3418 = getelementptr inbounds %struct.ImGuiContext, ptr %3417, i32 0, i32 8
  %3419 = load float, ptr %3418, align 8, !tbaa !47
  %3420 = fmul float %3416, %3419
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %175, float noundef %3413, float noundef %3420)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %130, ptr align 4 %175, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #14
  br label %3447

3421:                                             ; preds = %3408
  %3422 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %3423 = trunc i8 %3422 to i1
  br i1 %3423, label %3437, label %3424

3424:                                             ; preds = %3421
  %3425 = load ptr, ptr %20, align 8, !tbaa !5
  %3426 = getelementptr inbounds %struct.ImGuiContext, ptr %3425, i32 0, i32 52
  %3427 = load i32, ptr %3426, align 4, !tbaa !120
  %3428 = load i32, ptr %25, align 4, !tbaa !9
  %3429 = icmp eq i32 %3427, %3428
  br i1 %3429, label %3430, label %3437

3430:                                             ; preds = %3424
  %3431 = load ptr, ptr %132, align 8, !tbaa !5
  %3432 = load ptr, ptr %43, align 8, !tbaa !5
  %3433 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3432, i32 0, i32 3
  %3434 = load i32, ptr %3433, align 8, !tbaa !135
  %3435 = sext i32 %3434 to i64
  %3436 = getelementptr inbounds i8, ptr %3431, i64 %3435
  store ptr %3436, ptr %133, align 8, !tbaa !5
  br label %3446

3437:                                             ; preds = %3424, %3421
  %3438 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %3439 = trunc i8 %3438 to i1
  br i1 %3439, label %3445, label %3440

3440:                                             ; preds = %3437
  %3441 = load ptr, ptr %132, align 8, !tbaa !5
  %3442 = load ptr, ptr %132, align 8, !tbaa !5
  %3443 = call i64 @strlen(ptr noundef %3442) #16
  %3444 = getelementptr inbounds i8, ptr %3441, i64 %3443
  store ptr %3444, ptr %133, align 8, !tbaa !5
  br label %3445

3445:                                             ; preds = %3440, %3437
  br label %3446

3446:                                             ; preds = %3445, %3430
  br label %3447

3447:                                             ; preds = %3446, %3411
  %3448 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3449 = trunc i8 %3448 to i1
  br i1 %3449, label %3457, label %3450

3450:                                             ; preds = %3447
  %3451 = load ptr, ptr %133, align 8, !tbaa !5
  %3452 = load ptr, ptr %132, align 8, !tbaa !5
  %3453 = ptrtoint ptr %3451 to i64
  %3454 = ptrtoint ptr %3452 to i64
  %3455 = sub i64 %3453, %3454
  %3456 = icmp slt i64 %3455, 2097152
  br i1 %3456, label %3457, label %3481

3457:                                             ; preds = %3450, %3447
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #14
  %3458 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %3459 = trunc i8 %3458 to i1
  %3460 = zext i1 %3459 to i64
  %3461 = select i1 %3459, i32 1, i32 0
  %3462 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3461, float noundef 1.000000e+00)
  store i32 %3462, ptr %176, align 4, !tbaa !9
  %3463 = load ptr, ptr %34, align 8, !tbaa !5
  %3464 = getelementptr inbounds %struct.ImGuiWindow, ptr %3463, i32 0, i32 89
  %3465 = load ptr, ptr %3464, align 8, !tbaa !215
  %3466 = load ptr, ptr %20, align 8, !tbaa !5
  %3467 = getelementptr inbounds %struct.ImGuiContext, ptr %3466, i32 0, i32 7
  %3468 = load ptr, ptr %3467, align 8, !tbaa !147
  %3469 = load ptr, ptr %20, align 8, !tbaa !5
  %3470 = getelementptr inbounds %struct.ImGuiContext, ptr %3469, i32 0, i32 8
  %3471 = load float, ptr %3470, align 8, !tbaa !47
  %3472 = load i32, ptr %176, align 4, !tbaa !9
  %3473 = load ptr, ptr %132, align 8, !tbaa !5
  %3474 = load ptr, ptr %133, align 8, !tbaa !5
  %3475 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3476 = trunc i8 %3475 to i1
  br i1 %3476, label %3477, label %3478

3477:                                             ; preds = %3457
  br label %3479

3478:                                             ; preds = %3457
  br label %3479

3479:                                             ; preds = %3478, %3477
  %3480 = phi ptr [ null, %3477 ], [ %128, %3478 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3465, ptr noundef %3468, float noundef %3471, ptr noundef nonnull align 4 dereferenceable(8) %129, i32 noundef %3472, ptr noundef %3473, ptr noundef %3474, float noundef 0.000000e+00, ptr noundef %3480)
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #14
  br label %3481

3481:                                             ; preds = %3479, %3450
  br label %3482

3482:                                             ; preds = %3481, %3407
  %3483 = load i8, ptr %45, align 1, !tbaa !44, !range !42, !noundef !43
  %3484 = trunc i8 %3483 to i1
  br i1 %3484, label %3485, label %3489

3485:                                             ; preds = %3482
  %3486 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %3487 = trunc i8 %3486 to i1
  br i1 %3487, label %3489, label %3488

3488:                                             ; preds = %3485
  call void @_ZN5ImGui7PopFontEv()
  br label %3489

3489:                                             ; preds = %3488, %3485, %3482
  %3490 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3491 = trunc i8 %3490 to i1
  br i1 %3491, label %3492, label %3536

3492:                                             ; preds = %3489
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #14
  %3493 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 0
  %3494 = load float, ptr %3493, align 4, !tbaa !115
  %3495 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 1
  %3496 = load float, ptr %3495, align 4, !tbaa !113
  %3497 = load ptr, ptr %22, align 8, !tbaa !5
  %3498 = getelementptr inbounds %struct.ImGuiStyle, ptr %3497, i32 0, i32 12
  %3499 = getelementptr inbounds %struct.ImVec2, ptr %3498, i32 0, i32 1
  %3500 = load float, ptr %3499, align 4, !tbaa !114
  %3501 = fadd float %3496, %3500
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %177, float noundef %3494, float noundef %3501)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %177)
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #14
  %3502 = load ptr, ptr %20, align 8, !tbaa !5
  %3503 = getelementptr inbounds %struct.ImGuiContext, ptr %3502, i32 0, i32 86
  %3504 = getelementptr inbounds %struct.ImGuiNextItemData, ptr %3503, i32 0, i32 1
  %3505 = load i32, ptr %3504, align 4, !tbaa !226
  %3506 = or i32 %3505, 1025
  store i32 %3506, ptr %3504, align 4, !tbaa !226
  call void @_ZN5ImGui8EndChildEv()
  %3507 = load ptr, ptr %20, align 8, !tbaa !5
  %3508 = getelementptr inbounds %struct.ImGuiContext, ptr %3507, i32 0, i32 87
  %3509 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3508, i32 0, i32 2
  %3510 = load i32, ptr %3509, align 8, !tbaa !227
  %3511 = and i32 %3510, 128
  %3512 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %36, i32 0, i32 2
  %3513 = load i32, ptr %3512, align 4, !tbaa !228
  %3514 = or i32 %3513, %3511
  store i32 %3514, ptr %3512, align 4, !tbaa !228
  call void @_ZN5ImGui8EndGroupEv()
  %3515 = load ptr, ptr %20, align 8, !tbaa !5
  %3516 = getelementptr inbounds %struct.ImGuiContext, ptr %3515, i32 0, i32 87
  %3517 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3516, i32 0, i32 0
  %3518 = load i32, ptr %3517, align 8, !tbaa !229
  %3519 = icmp eq i32 %3518, 0
  br i1 %3519, label %3520, label %3535

3520:                                             ; preds = %3492
  %3521 = load i32, ptr %25, align 4, !tbaa !9
  %3522 = load ptr, ptr %20, align 8, !tbaa !5
  %3523 = getelementptr inbounds %struct.ImGuiContext, ptr %3522, i32 0, i32 87
  %3524 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3523, i32 0, i32 0
  store i32 %3521, ptr %3524, align 8, !tbaa !229
  %3525 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %36, i32 0, i32 1
  %3526 = load i32, ptr %3525, align 4, !tbaa !230
  %3527 = load ptr, ptr %20, align 8, !tbaa !5
  %3528 = getelementptr inbounds %struct.ImGuiContext, ptr %3527, i32 0, i32 87
  %3529 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3528, i32 0, i32 1
  store i32 %3526, ptr %3529, align 4, !tbaa !127
  %3530 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %36, i32 0, i32 2
  %3531 = load i32, ptr %3530, align 4, !tbaa !228
  %3532 = load ptr, ptr %20, align 8, !tbaa !5
  %3533 = getelementptr inbounds %struct.ImGuiContext, ptr %3532, i32 0, i32 87
  %3534 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3533, i32 0, i32 2
  store i32 %3531, ptr %3534, align 8, !tbaa !227
  br label %3535

3535:                                             ; preds = %3520, %3492
  br label %3536

3536:                                             ; preds = %3535, %3489
  %3537 = load ptr, ptr %20, align 8, !tbaa !5
  %3538 = getelementptr inbounds %struct.ImGuiContext, ptr %3537, i32 0, i32 251
  %3539 = load i8, ptr %3538, align 8, !tbaa !231, !range !42, !noundef !43
  %3540 = trunc i8 %3539 to i1
  br i1 %3540, label %3541, label %3550

3541:                                             ; preds = %3536
  %3542 = load i8, ptr %45, align 1, !tbaa !44, !range !42, !noundef !43
  %3543 = trunc i8 %3542 to i1
  br i1 %3543, label %3544, label %3547

3544:                                             ; preds = %3541
  %3545 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %3546 = trunc i8 %3545 to i1
  br i1 %3546, label %3547, label %3550

3547:                                             ; preds = %3544, %3541
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef @.str.25, ptr noundef @.str.26)
  %3548 = load ptr, ptr %132, align 8, !tbaa !5
  %3549 = load ptr, ptr %133, align 8, !tbaa !5
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef %129, ptr noundef %3548, ptr noundef %3549)
  br label %3550

3550:                                             ; preds = %3547, %3544, %3536
  %3551 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %3552 = load float, ptr %3551, align 4, !tbaa !115
  %3553 = fcmp ogt float %3552, 0.000000e+00
  br i1 %3553, label %3554, label %3573

3554:                                             ; preds = %3550
  %3555 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 1
  %3556 = getelementptr inbounds %struct.ImVec2, ptr %3555, i32 0, i32 0
  %3557 = load float, ptr %3556, align 4, !tbaa !232
  %3558 = load ptr, ptr %22, align 8, !tbaa !5
  %3559 = getelementptr inbounds %struct.ImGuiStyle, ptr %3558, i32 0, i32 16
  %3560 = getelementptr inbounds %struct.ImVec2, ptr %3559, i32 0, i32 0
  %3561 = load float, ptr %3560, align 4, !tbaa !116
  %3562 = fadd float %3557, %3561
  %3563 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %3564 = getelementptr inbounds %struct.ImVec2, ptr %3563, i32 0, i32 1
  %3565 = load float, ptr %3564, align 4, !tbaa !210
  %3566 = load ptr, ptr %22, align 8, !tbaa !5
  %3567 = getelementptr inbounds %struct.ImGuiStyle, ptr %3566, i32 0, i32 12
  %3568 = getelementptr inbounds %struct.ImVec2, ptr %3567, i32 0, i32 1
  %3569 = load float, ptr %3568, align 4, !tbaa !114
  %3570 = fadd float %3565, %3569
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %178, float noundef %3562, float noundef %3570)
  %3571 = load ptr, ptr %10, align 8, !tbaa !5
  %3572 = load <2 x float>, ptr %178, align 4
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %3572, ptr noundef %3571, ptr noundef null, i1 noundef zeroext true)
  br label %3573

3573:                                             ; preds = %3554, %3550
  %3574 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %3575 = trunc i8 %3574 to i1
  br i1 %3575, label %3576, label %3582

3576:                                             ; preds = %3573
  %3577 = load i32, ptr %15, align 4, !tbaa !9
  %3578 = and i32 %3577, 134217728
  %3579 = icmp ne i32 %3578, 0
  br i1 %3579, label %3582, label %3580

3580:                                             ; preds = %3576
  %3581 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %3581)
  br label %3582

3582:                                             ; preds = %3580, %3576, %3573
  %3583 = load ptr, ptr %20, align 8, !tbaa !5
  %3584 = load i32, ptr %15, align 4, !tbaa !9
  %3585 = and i32 %3584, 32
  %3586 = icmp ne i32 %3585, 0
  br i1 %3586, label %3587, label %3590

3587:                                             ; preds = %3582
  %3588 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %3589 = trunc i8 %3588 to i1
  store i1 %3589, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3593

3590:                                             ; preds = %3582
  %3591 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %3592 = trunc i8 %3591 to i1
  store i1 %3592, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3593

3593:                                             ; preds = %3590, %3587
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #14
  br label %3594

3594:                                             ; preds = %3593, %408, %394
  call void @llvm.lifetime.end.p0(i64 76, ptr %36) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #14
  br label %3595

3595:                                             ; preds = %3594, %184
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #14
  %3596 = load i1, ptr %9, align 1
  ret i1 %3596

3597:                                             ; preds = %2220
  %3598 = load ptr, ptr %113, align 8
  %3599 = load i32, ptr %114, align 4
  %3600 = insertvalue { ptr, i32 } poison, ptr %3598, 0
  %3601 = insertvalue { ptr, i32 } %3600, i32 %3599, 1
  resume { ptr, i32 } %3601

3602:                                             ; preds = %2092, %1416
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724), i32 noundef) #10 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef) #10

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(76)) unnamed_addr #10 align 2

declare void @_ZN5ImGui12PushStyleVarEif(i32 noundef, float noundef) #4

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

declare void @_ZN5ImGui8EndChildEv() #4

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strncmp(ptr noundef, ptr noundef, i64 noundef) #2

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

declare noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724)) #10 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724)) #3 align 2

declare noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118), i16 noundef zeroext) #4

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

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

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

declare void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724)) #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef, ptr noundef, float noundef, float noundef) #10

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef, i32 noundef) #10

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef, i32 noundef) #10

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef, ptr noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef, ptr noundef, float noundef, float noundef) #10

declare noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef, i32 noundef, i32 noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef) #10

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

declare noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef, i1 noundef zeroext) #4

declare void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef, float noundef) #4

declare noundef float @_ZN5ImGui13GetScrollMaxYEv() #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724)) #3 align 2

declare noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef, ptr noundef) #4

declare noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef) #4

declare noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #4

declare void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef) #4

declare void @_ZN5ImGui7MemFreeEPv(ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef, ptr noundef) #10

declare noundef ptr @_ZN5ImGui16GetClipboardTextEv() #4

declare noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #10

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #2

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

declare noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef, ptr noundef) #4

declare i32 @__gxx_personality_v0(...)

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

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

declare noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv() #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #3 align 2

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

declare noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118), i16 noundef zeroext) #10 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 uwtable
declare dso_local void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #10 align 2

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

; Function Attrs: nounwind
declare float @fmodf(float noundef, float noundef) #13

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef, ptr noundef) #3

declare void @_ZN5ImGui7PopFontEv() #4

declare void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr)

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

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


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

%struct.ImVec2 = type { float, float }
%struct.ImRect = type { %struct.ImVec2, %struct.ImVec2 }
%struct.ImGuiLastItemData = type { i32, i32, i32, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect }
%struct.ImVector.5 = type { i32, i32, ptr }
%struct.ImGuiInputTextCallbackData = type { ptr, i32, i32, ptr, i16, i32, ptr, i32, i32, i8, i32, i32, i32 }
%struct.ImVec4 = type { float, float, float, float }

@GImGui = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [1 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv = external hidden unnamed_addr constant [134 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [34 x i8], align 1
@__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no = external hidden unnamed_addr constant [2 x i32], align 4

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #2

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

declare <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef, ptr noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

declare void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float>, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #4

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

declare void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef, ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #4

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) local_unnamed_addr #4

declare noundef float @_ZN5ImGui13CalcItemWidthEv() local_unnamed_addr #4

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

declare noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef, float noundef) local_unnamed_addr #4

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

declare void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN5ImGui13ClearActiveIDEv() local_unnamed_addr #4

declare noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1152), ptr noundef, ptr noundef) local_unnamed_addr #4

declare <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float>, float noundef, float noundef) local_unnamed_addr #4

declare void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16), i32 noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float>, <2 x float>, i32 noundef, i1 noundef zeroext, float noundef) local_unnamed_addr #4

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef, i32 noundef) local_unnamed_addr #10

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

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

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

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

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

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui14MarkItemEditedEj(i32 noundef) local_unnamed_addr #4

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

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

; 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 noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #3 align 2

declare void @_ZN5ImGui10BeginGroupEv() local_unnamed_addr #4

declare void @_ZN5ImGui8EndGroupEv() local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @_Z9ImStrncpyPcPKcm(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef %3, ptr nocapture noundef nonnull readonly align 4 dereferenceable(8) %4, i32 noundef %5, ptr noundef %6, ptr noundef %7) local_unnamed_addr #9 personality ptr @__gxx_personality_v0 {
  %9 = alloca %struct.ImVec2, align 8
  %10 = alloca %struct.ImVec2, align 4
  %11 = alloca %struct.ImRect, align 8
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImRect, align 4
  %14 = alloca %struct.ImVec2, align 8
  %15 = alloca %struct.ImGuiLastItemData, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImVec2, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i16, align 2
  %25 = alloca %struct.ImVector.5, align 8
  %26 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %27 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %28 = alloca %struct.ImVec4, align 4
  %29 = alloca %struct.ImVec2, align 8
  %30 = alloca %struct.ImVec2, align 8
  %31 = alloca ptr, align 8
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImVec2, align 8
  %35 = alloca %struct.ImVec2, align 4
  %36 = alloca %struct.ImVec2, align 8
  %37 = alloca %struct.ImVec2, align 8
  %38 = alloca ptr, align 8
  %39 = alloca %struct.ImRect, align 4
  %40 = alloca %struct.ImVec2, align 8
  %41 = alloca %struct.ImVec2, align 4
  %42 = alloca %struct.ImVec2, align 8
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca %struct.ImRect, align 4
  %45 = alloca %struct.ImRect, align 4
  %46 = alloca %struct.ImVec2, align 8
  %47 = alloca %struct.ImVec2, align 8
  %48 = alloca %struct.ImVec2, align 8
  %49 = alloca %struct.ImRect, align 4
  %50 = alloca %struct.ImRect, align 4
  %51 = alloca %struct.ImVec2, align 8
  %52 = alloca %struct.ImVec2, align 8
  %53 = alloca %struct.ImVec2, align 8
  %54 = alloca %struct.ImVec2, align 4
  %55 = alloca %struct.ImVec2, align 8
  %56 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %57 = getelementptr inbounds i8, ptr %56, i64 248
  %58 = load i8, ptr %57, align 8, !tbaa !5, !range !40, !noundef !41
  %59 = trunc nuw i8 %58 to i1
  br i1 %59, label %1523, label %60

60:                                               ; preds = %8
  %61 = icmp ne ptr %2, null
  %62 = icmp sgt i32 %3, -1
  %63 = and i1 %61, %62
  br i1 %63, label %65, label %64

64:                                               ; preds = %60
  tail call void @__assert_fail(ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.4, i32 noundef 4095, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

65:                                               ; preds = %60
  %66 = and i32 %5, 67108864
  %67 = icmp ne i32 %66, 0
  %68 = and i32 %5, 67108992
  %.not1012 = icmp eq i32 %68, 67108992
  br i1 %.not1012, label %69, label %70

69:                                               ; preds = %65
  tail call void @__assert_fail(ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.4, i32 noundef 4096, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

70:                                               ; preds = %65
  %71 = and i32 %5, 1024
  %.not1013 = icmp eq i32 %71, 0
  %72 = and i32 %5, 1088
  %.not1014 = icmp eq i32 %72, 1088
  br i1 %.not1014, label %73, label %74

73:                                               ; preds = %70
  tail call void @__assert_fail(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.4, i32 noundef 4097, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

74:                                               ; preds = %70
  %75 = load ptr, ptr @GImGui, align 8, !tbaa !42
  %76 = getelementptr inbounds i8, ptr %75, i64 8
  br i1 %67, label %77, label %78

77:                                               ; preds = %74
  tail call void @_ZN5ImGui10BeginGroupEv()
  br label %78

78:                                               ; preds = %77, %74
  %79 = tail call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1152) %56, ptr noundef %0, ptr noundef null)
  %80 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %0, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %.sroa.0560.0.copyload = load <2 x float>, ptr %4, align 4
  %81 = tail call noundef float @_ZN5ImGui13CalcItemWidthEv()
  br i1 %67, label %82, label %86

82:                                               ; preds = %78
  %83 = getelementptr inbounds i8, ptr %75, i64 15992
  %84 = load float, ptr %83, align 8, !tbaa !43
  %85 = fmul float %84, 8.000000e+00
  br label %87

86:                                               ; preds = %78
  %.sroa.0561.4.vec.extract = extractelement <2 x float> %80, i64 1
  br label %87

87:                                               ; preds = %86, %82
  %88 = phi float [ %85, %82 ], [ %.sroa.0561.4.vec.extract, %86 ]
  %89 = getelementptr inbounds i8, ptr %75, i64 14900
  %90 = getelementptr inbounds i8, ptr %75, i64 14904
  %91 = load float, ptr %90, align 4, !tbaa !109
  %92 = tail call float @llvm.fmuladd.f32(float %91, float 2.000000e+00, float %88)
  %93 = tail call <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float> %.sroa.0560.0.copyload, float noundef %81, float noundef %92)
  store <2 x float> %93, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  %94 = extractelement <2 x float> %93, i64 0
  %.sroa.0561.0.vec.extract = extractelement <2 x float> %80, i64 0
  %95 = fcmp ogt float %.sroa.0561.0.vec.extract, 0.000000e+00
  %96 = extractelement <2 x float> %93, i64 1
  br i1 %95, label %97, label %101

97:                                               ; preds = %87
  %98 = getelementptr inbounds i8, ptr %75, i64 14924
  %99 = load float, ptr %98, align 4, !tbaa !110
  %100 = fadd float %.sroa.0561.0.vec.extract, %99
  br label %101

101:                                              ; preds = %87, %97
  %102 = phi float [ %100, %97 ], [ 0.000000e+00, %87 ]
  %103 = fadd float %94, %102
  %104 = getelementptr inbounds i8, ptr %9, i64 4
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %103, float noundef %96)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #14
  %105 = getelementptr inbounds i8, ptr %56, i64 320
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #14
  %106 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %105, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %106, ptr %12, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %11, ptr noundef nonnull align 4 dereferenceable(8) %105, ptr noundef nonnull align 4 dereferenceable(8) %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #14
  %107 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %10)
  store <2 x float> %107, ptr %14, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %13, ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %14)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #14
  %.sroa.0531.0.copyload = load float, ptr %9, align 8, !tbaa !111
  %.sroa.11.0.copyload = load float, ptr %104, align 4, !tbaa !111
  call void @llvm.lifetime.start.p0(i64 76, ptr nonnull %15) #14
  call void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(76) %15)
  br i1 %67, label %108, label %153

108:                                              ; preds = %101
  %109 = load i64, ptr %105, align 8
  %110 = load float, ptr %90, align 4, !tbaa !109
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %110)
  %111 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %79, ptr noundef nonnull %11, i32 noundef 1024)
  br i1 %111, label %113, label %112

112:                                              ; preds = %108
  call void @_ZN5ImGui8EndGroupEv()
  br label %.thread

113:                                              ; preds = %108
  %114 = getelementptr inbounds i8, ptr %75, i64 19176
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(76) %15, ptr noundef nonnull align 8 dereferenceable(76) %114, i64 76, i1 false), !tbaa.struct !112
  store i64 %109, ptr %105, align 8
  %115 = getelementptr inbounds i8, ptr %75, i64 19728
  %116 = load i32, ptr %115, align 8, !tbaa !114
  %117 = icmp eq i32 %116, %79
  br i1 %117, label %118, label %123

118:                                              ; preds = %113
  %119 = getelementptr inbounds i8, ptr %75, i64 19740
  %120 = load i32, ptr %119, align 4, !tbaa !115
  %121 = and i32 %120, 8
  %.not1016 = icmp eq i32 %121, 0
  %brmerge = or i1 %.not1013, %.not1016
  br i1 %brmerge, label %123, label %122

122:                                              ; preds = %118
  store i32 0, ptr %115, align 8, !tbaa !114
  br label %123

123:                                              ; preds = %118, %122, %113
  %124 = phi i32 [ %79, %118 ], [ 0, %122 ], [ %116, %113 ]
  %125 = getelementptr inbounds i8, ptr %75, i64 16804
  %126 = load i32, ptr %125, align 4, !tbaa !116
  %127 = icmp eq i32 %126, %79
  br i1 %127, label %128, label %129

128:                                              ; preds = %123
  store i32 0, ptr %115, align 8, !tbaa !114
  br label %129

129:                                              ; preds = %128, %123
  %130 = getelementptr inbounds i8, ptr %75, i64 15184
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %130)
  %131 = getelementptr inbounds i8, ptr %75, i64 14908
  %132 = load float, ptr %131, align 4, !tbaa !117
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %132)
  %133 = getelementptr inbounds i8, ptr %75, i64 14912
  %134 = load float, ptr %133, align 4, !tbaa !118
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 8, float noundef %134)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 2, ptr noundef nonnull align 4 dereferenceable(8) %16)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  %135 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  store <2 x float> %135, ptr %17, align 8
  %136 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2ii(ptr noundef %0, i32 noundef %79, ptr noundef nonnull align 4 dereferenceable(8) %17, i32 noundef 1, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  store i32 %124, ptr %115, align 8, !tbaa !114
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br i1 %136, label %138, label %137

137:                                              ; preds = %129
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8EndGroupEv()
  br label %.thread

138:                                              ; preds = %129
  %139 = getelementptr inbounds i8, ptr %75, i64 16704
  %140 = load ptr, ptr %139, align 8, !tbaa !119
  %141 = getelementptr inbounds i8, ptr %140, i64 320
  %142 = getelementptr inbounds i8, ptr %140, i64 408
  %143 = load i32, ptr %142, align 8, !tbaa !120
  %144 = shl nuw i32 1, %143
  %145 = getelementptr inbounds i8, ptr %140, i64 414
  %146 = load i16, ptr %145, align 2, !tbaa !121
  %147 = trunc i32 %144 to i16
  %148 = or i16 %146, %147
  store i16 %148, ptr %145, align 2, !tbaa !121
  %149 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZpLR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %141, ptr noundef nonnull align 4 dereferenceable(8) %89)
  %150 = getelementptr inbounds i8, ptr %140, i64 232
  %151 = load float, ptr %150, align 8, !tbaa !122
  %152 = fsub float %.sroa.0531.0.copyload, %151
  br label %158

153:                                              ; preds = %101
  %154 = load float, ptr %90, align 4, !tbaa !109
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %154)
  %155 = and i32 %5, 268435456
  %.not1015 = icmp eq i32 %155, 0
  br i1 %.not1015, label %156, label %158

156:                                              ; preds = %153
  %157 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %79, ptr noundef nonnull %11, i32 noundef 1024)
  br i1 %157, label %158, label %.thread

158:                                              ; preds = %138, %153, %156
  %.sroa.0531.2 = phi float [ %152, %138 ], [ %.sroa.0531.0.copyload, %153 ], [ %.sroa.0531.0.copyload, %156 ]
  %.2925 = phi ptr [ %140, %138 ], [ %56, %153 ], [ %56, %156 ]
  %159 = getelementptr inbounds i8, ptr %75, i64 19176
  %160 = getelementptr inbounds i8, ptr %75, i64 19180
  %161 = load i32, ptr %160, align 4, !tbaa !123
  %162 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %79, i32 noundef %161)
  br i1 %162, label %163, label %165

163:                                              ; preds = %158
  %164 = getelementptr inbounds i8, ptr %75, i64 20664
  store i32 1, ptr %164, align 8, !tbaa !124
  br label %165

165:                                              ; preds = %163, %158
  %166 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %79)
  %167 = load i32, ptr %160, align 4, !tbaa !123
  %168 = shl i32 %167, 7
  %169 = and i32 %168, 16384
  %spec.select = or i32 %169, %5
  %170 = and i32 %spec.select, 16384
  %171 = icmp ne i32 %170, 0
  %172 = and i32 %5, 32768
  %.not1018 = icmp eq i32 %172, 0
  %173 = and i32 %5, 65536
  %174 = icmp eq i32 %173, 0
  %175 = and i32 %5, 262144
  %.not1019 = icmp eq i32 %175, 0
  %176 = icmp ne ptr %6, null
  %or.cond17 = or i1 %.not1019, %176
  br i1 %or.cond17, label %178, label %177

177:                                              ; preds = %165
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.4, i32 noundef 4182, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

178:                                              ; preds = %165
  %179 = getelementptr inbounds i8, ptr %75, i64 16804
  %180 = load i32, ptr %179, align 4, !tbaa !116
  %.not1020 = icmp eq i32 %180, %79
  br i1 %.not1020, label %193, label %181

181:                                              ; preds = %178
  %182 = getelementptr inbounds i8, ptr %75, i64 19728
  %183 = load i32, ptr %182, align 8, !tbaa !114
  %184 = icmp eq i32 %183, %79
  br i1 %184, label %185, label %193

185:                                              ; preds = %181
  %186 = getelementptr inbounds i8, ptr %75, i64 19740
  %187 = load i32, ptr %186, align 4, !tbaa !115
  %188 = and i32 %187, 1
  %.not1021 = icmp eq i32 %188, 0
  br i1 %.not1021, label %189, label %193

189:                                              ; preds = %185
  %190 = getelementptr inbounds i8, ptr %75, i64 19772
  %191 = load i32, ptr %190, align 4, !tbaa !125
  %192 = icmp eq i32 %191, 2
  br label %193

193:                                              ; preds = %181, %189, %185, %178
  %194 = phi i1 [ false, %178 ], [ false, %181 ], [ true, %185 ], [ %192, %189 ]
  br i1 %162, label %195, label %199

195:                                              ; preds = %193
  %196 = getelementptr inbounds i8, ptr %75, i64 14448
  %197 = load i8, ptr %196, align 8, !tbaa !126, !range !40, !noundef !41
  %198 = trunc nuw i8 %197 to i1
  br label %199

199:                                              ; preds = %195, %193
  %200 = phi i1 [ false, %193 ], [ %198, %195 ]
  %201 = icmp ne ptr %166, null
  %or.cond = and i1 %67, %201
  br i1 %or.cond, label %202, label %212

202:                                              ; preds = %199
  %203 = icmp eq i32 %180, 0
  br i1 %203, label %204, label %.thread1182

204:                                              ; preds = %202
  %205 = getelementptr inbounds i8, ptr %75, i64 16844
  %206 = load i32, ptr %205, align 4, !tbaa !127
  %207 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.2925, i32 noundef 1)
  %208 = icmp eq i32 %206, %207
  %.pre = load i32, ptr %179, align 4, !tbaa !116
  br label %.thread1182

.thread1182:                                      ; preds = %202, %204
  %209 = phi i32 [ %.pre, %204 ], [ %180, %202 ]
  %.ph = phi i1 [ %208, %204 ], [ false, %202 ]
  %210 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.2925, i32 noundef 1)
  %211 = icmp eq i32 %209, %210
  br label %213

212:                                              ; preds = %199
  br i1 %67, label %213, label %218

213:                                              ; preds = %.thread1182, %212
  %214 = phi i1 [ %211, %.thread1182 ], [ false, %212 ]
  %215 = phi i1 [ %.ph, %.thread1182 ], [ false, %212 ]
  %216 = getelementptr inbounds i8, ptr %.2925, i64 196
  %217 = load float, ptr %216, align 4, !tbaa !128
  br label %218

218:                                              ; preds = %212, %213
  %219 = phi i1 [ %214, %213 ], [ false, %212 ]
  %220 = phi i1 [ %215, %213 ], [ false, %212 ]
  %221 = phi float [ %217, %213 ], [ 0x47EFFFFFE0000000, %212 ]
  br i1 %201, label %222, label %.thread1183

222:                                              ; preds = %218
  %223 = getelementptr inbounds i8, ptr %166, i64 107
  %224 = load i8, ptr %223, align 1, !tbaa !129
  %225 = xor i1 %67, true
  %226 = zext i1 %225 to i8
  %227 = icmp ne i8 %224, %226
  %228 = select i1 %200, i1 true, i1 %220
  %spec.select1174 = select i1 %228, i1 true, i1 %194
  %229 = select i1 %spec.select1174, i1 true, i1 %219
  br i1 %229, label %232, label %235

.thread1183:                                      ; preds = %218
  %230 = select i1 %200, i1 true, i1 %220
  %spec.select11741185 = select i1 %230, i1 true, i1 %194
  %231 = select i1 %spec.select11741185, i1 true, i1 %219
  br i1 %231, label %232, label %.thread1190.thread

232:                                              ; preds = %.thread1183, %222
  %spec.select11741189 = phi i1 [ %spec.select11741185, %.thread1183 ], [ %spec.select1174, %222 ]
  %233 = phi i1 [ false, %.thread1183 ], [ %227, %222 ]
  %234 = load i32, ptr %179, align 4, !tbaa !116
  %.not1022 = icmp ne i32 %234, %79
  %brmerge1068 = select i1 %.not1022, i1 true, i1 %233
  br i1 %brmerge1068, label %236, label %.thread1190

235:                                              ; preds = %222
  br i1 %227, label %236, label %.thread1190.thread

236:                                              ; preds = %232, %235
  %237 = phi i8 [ 1, %232 ], [ 0, %235 ]
  %spec.select11741187 = phi i1 [ %spec.select11741189, %232 ], [ false, %235 ]
  %238 = phi i1 [ %233, %232 ], [ true, %235 ]
  %239 = getelementptr inbounds i8, ptr %75, i64 20680
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %239)
  %240 = getelementptr inbounds i8, ptr %75, i64 20688
  %241 = load i32, ptr %240, align 8, !tbaa !130
  call void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef %241)
  %242 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #15
  %243 = trunc i64 %242 to i32
  %244 = getelementptr inbounds i8, ptr %75, i64 20736
  %245 = add nsw i32 %243, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %244, i32 noundef %245)
  %246 = getelementptr inbounds i8, ptr %75, i64 20744
  %247 = load ptr, ptr %246, align 8, !tbaa !131
  %248 = sext i32 %245 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %247, ptr nonnull align 1 %2, i64 %248, i1 false)
  %249 = load i32, ptr %240, align 8, !tbaa !130
  %250 = icmp ne i32 %249, %79
  %.not1226 = select i1 %250, i1 true, i1 %238
  br i1 %.not1226, label %264, label %251

251:                                              ; preds = %236
  %252 = getelementptr inbounds i8, ptr %75, i64 20696
  %253 = load i32, ptr %252, align 8, !tbaa !132
  %.not1023 = icmp eq i32 %253, %243
  br i1 %.not1023, label %254, label %263

254:                                              ; preds = %251
  %255 = getelementptr inbounds i8, ptr %75, i64 20752
  %256 = load i8, ptr %255, align 8, !tbaa !133, !range !40, !noundef !41
  %257 = trunc nuw i8 %256 to i1
  br i1 %257, label %258, label %264

258:                                              ; preds = %254
  %259 = getelementptr inbounds i8, ptr %75, i64 20728
  %260 = load ptr, ptr %259, align 8, !tbaa !134
  %sext = shl i64 %242, 32
  %261 = ashr exact i64 %sext, 32
  %262 = call i32 @strncmp(ptr noundef %260, ptr noundef nonnull %2, i64 noundef %261) #15
  %.not1024 = icmp eq i32 %262, 0
  br i1 %.not1024, label %264, label %263

263:                                              ; preds = %258, %251
  br label %264

264:                                              ; preds = %263, %258, %254, %236
  %.0938.shrunk = phi i1 [ false, %263 ], [ true, %258 ], [ true, %254 ], [ false, %236 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #14
  store ptr null, ptr %18, align 8, !tbaa !42
  store i32 %79, ptr %240, align 8, !tbaa !130
  %265 = getelementptr inbounds i8, ptr %75, i64 20704
  %266 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %265, i32 noundef %266)
  %267 = getelementptr inbounds i8, ptr %75, i64 20720
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %267, i32 noundef 0)
  %268 = getelementptr inbounds i8, ptr %75, i64 20752
  store i8 0, ptr %268, align 8, !tbaa !133
  %269 = getelementptr inbounds i8, ptr %75, i64 20712
  %270 = load ptr, ptr %269, align 8, !tbaa !135
  %271 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %270, i32 noundef %3, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %18)
  %272 = getelementptr inbounds i8, ptr %75, i64 20692
  store i32 %271, ptr %272, align 4, !tbaa !136
  %273 = load ptr, ptr %18, align 8, !tbaa !42
  %274 = ptrtoint ptr %273 to i64
  %275 = ptrtoint ptr %2 to i64
  %276 = sub i64 %274, %275
  %277 = trunc i64 %276 to i32
  %278 = getelementptr inbounds i8, ptr %75, i64 20696
  store i32 %277, ptr %278, align 8, !tbaa !132
  br i1 %.0938.shrunk, label %279, label %280

279:                                              ; preds = %264
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %239)
  br label %285

280:                                              ; preds = %264
  %281 = getelementptr inbounds i8, ptr %75, i64 20760
  store float 0.000000e+00, ptr %281, align 8, !tbaa !137
  %282 = getelementptr inbounds i8, ptr %75, i64 20764
  %283 = xor i1 %67, true
  %284 = zext i1 %283 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef nonnull %282, i32 noundef %284)
  br label %285

285:                                              ; preds = %280, %279
  br i1 %67, label %300, label %286

286:                                              ; preds = %285
  %287 = trunc i32 %5 to i8
  %288 = lshr i8 %287, 4
  br i1 %194, label %289, label %295

289:                                              ; preds = %286
  br i1 %.0938.shrunk, label %290, label %294

290:                                              ; preds = %289
  %291 = getelementptr inbounds i8, ptr %75, i64 19740
  %292 = load i32, ptr %291, align 4, !tbaa !115
  %293 = and i32 %292, 4
  %.not1026 = icmp eq i32 %293, 0
  br i1 %.not1026, label %294, label %295

294:                                              ; preds = %290, %289
  br label %295

295:                                              ; preds = %294, %290, %286
  %.1932 = phi i8 [ %288, %290 ], [ 1, %294 ], [ %288, %286 ]
  br i1 %200, label %296, label %300

296:                                              ; preds = %295
  %297 = getelementptr inbounds i8, ptr %75, i64 3688
  %298 = load i8, ptr %297, align 8, !tbaa !138, !range !40, !noundef !41
  %299 = trunc nuw i8 %298 to i1
  %spec.select1070 = select i1 %299, i8 1, i8 %.1932
  br label %300

300:                                              ; preds = %296, %295, %285
  %.2933 = phi i8 [ 0, %285 ], [ %.1932, %295 ], [ %spec.select1070, %296 ]
  %301 = and i32 %5, 8192
  %.not1027 = icmp eq i32 %301, 0
  br i1 %.not1027, label %304, label %302

302:                                              ; preds = %300
  %303 = getelementptr inbounds i8, ptr %75, i64 20776
  store i8 1, ptr %303, align 4, !tbaa !139
  br label %304

304:                                              ; preds = %302, %300
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  br label %.thread1190

.thread1190.thread:                               ; preds = %235, %.thread1183
  %305 = getelementptr inbounds i8, ptr %75, i64 97
  %306 = load i8, ptr %305, align 1, !tbaa !140, !range !40, !noundef !41
  %307 = trunc nuw i8 %306 to i1
  br label %.sink.split

.thread1190:                                      ; preds = %232, %304
  %308 = phi i8 [ %237, %304 ], [ 1, %232 ]
  %spec.select11741186 = phi i1 [ %spec.select11741187, %304 ], [ %spec.select11741189, %232 ]
  %.3934 = phi i8 [ %.2933, %304 ], [ 0, %232 ]
  %.0926 = phi ptr [ %239, %304 ], [ %166, %232 ]
  %309 = getelementptr inbounds i8, ptr %75, i64 97
  %310 = load i8, ptr %309, align 1, !tbaa !140, !range !40, !noundef !41
  %311 = trunc nuw i8 %310 to i1
  %312 = load i32, ptr %179, align 4, !tbaa !116
  %.not1028 = icmp ne i32 %312, %79
  %brmerge1072.not = and i1 %spec.select11741186, %.not1028
  br i1 %brmerge1072.not, label %313, label %320

313:                                              ; preds = %.thread1190
  %.not1029 = icmp eq ptr %.0926, null
  br i1 %.not1029, label %.critedge, label %314

314:                                              ; preds = %313
  %315 = getelementptr inbounds i8, ptr %.0926, i64 8
  %316 = load i32, ptr %315, align 8, !tbaa !130
  %317 = icmp eq i32 %316, %79
  br i1 %317, label %318, label %.critedge

.critedge:                                        ; preds = %313, %314
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.4, i32 noundef 4256, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

318:                                              ; preds = %314
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %79, ptr noundef nonnull %56)
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %79, ptr noundef nonnull %56)
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef nonnull %56, i32 noundef 0)
  br label %.sink.split

.sink.split:                                      ; preds = %318, %.thread1190.thread
  %.ph1301 = phi i1 [ %307, %.thread1190.thread ], [ %311, %318 ]
  %.09261270.ph = phi ptr [ %166, %.thread1190.thread ], [ %.0926, %318 ]
  %.39341269.ph = phi i8 [ 0, %.thread1190.thread ], [ %.3934, %318 ]
  %.ph1302 = phi i8 [ 0, %.thread1190.thread ], [ %308, %318 ]
  %319 = load i32, ptr %179, align 4, !tbaa !116
  br label %320

320:                                              ; preds = %.sink.split, %.thread1190
  %321 = phi i1 [ %311, %.thread1190 ], [ %.ph1301, %.sink.split ]
  %.09261270 = phi ptr [ %.0926, %.thread1190 ], [ %.09261270.ph, %.sink.split ]
  %.39341269 = phi i8 [ %.3934, %.thread1190 ], [ %.39341269.ph, %.sink.split ]
  %322 = phi i8 [ %308, %.thread1190 ], [ %.ph1302, %.sink.split ]
  %323 = phi i32 [ %312, %.thread1190 ], [ %319, %.sink.split ]
  %324 = icmp eq i32 %323, %79
  br i1 %324, label %325, label %333

325:                                              ; preds = %320
  br i1 %200, label %326, label %327

326:                                              ; preds = %325
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 655, i32 noundef %79, i32 noundef 0)
  br label %327

327:                                              ; preds = %326, %325
  %328 = getelementptr inbounds i8, ptr %75, i64 19112
  %329 = load i32, ptr %328, align 8, !tbaa !141
  %or.cond1074.not.not = icmp eq i32 %68, 0
  %spec.select1231.v = select i1 %or.cond1074.not.not, i32 3, i32 15
  %spec.select1231 = or i32 %329, %spec.select1231.v
  store i32 %spec.select1231, ptr %328, align 8, !tbaa !141
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 525, i32 noundef %79, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 627, i32 noundef %79, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 519, i32 noundef %79, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 520, i32 noundef %79, i32 noundef 0)
  br i1 %67, label %330, label %331

330:                                              ; preds = %327
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 517, i32 noundef %79, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 518, i32 noundef %79, i32 noundef 0)
  br label %331

331:                                              ; preds = %330, %327
  br i1 %321, label %332, label %333

332:                                              ; preds = %331
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 16384, i32 noundef %79, i32 noundef 0)
  br label %333

333:                                              ; preds = %331, %332, %320
  %334 = load i32, ptr %179, align 4, !tbaa !116
  %335 = icmp eq i32 %334, %79
  %336 = icmp eq ptr %.09261270, null
  %or.cond5 = and i1 %336, %335
  br i1 %or.cond5, label %337, label %338

337:                                              ; preds = %333
  call void @_ZN5ImGui13ClearActiveIDEv()
  %.pre1244 = load i32, ptr %179, align 4, !tbaa !116
  br label %338

338:                                              ; preds = %337, %333
  %339 = phi i32 [ %.pre1244, %337 ], [ %334, %333 ]
  %340 = icmp eq i32 %339, %79
  br i1 %340, label %.thread1192, label %343

.thread1192:                                      ; preds = %338
  %341 = getelementptr inbounds i8, ptr %75, i64 14448
  %342 = load i8, ptr %341, align 8, !tbaa !126, !range !40, !noundef !41
  %.not1229 = xor i8 %322, 1
  %not.brmerge1076 = and i8 %342, %.not1229
  br label %346

343:                                              ; preds = %338
  %344 = icmp ne ptr %.09261270, null
  %345 = select i1 %344, i1 %219, i1 false
  br label %346

346:                                              ; preds = %.thread1192, %343
  %.09271194 = phi i8 [ 0, %343 ], [ %not.brmerge1076, %.thread1192 ]
  %347 = phi i1 [ %345, %343 ], [ true, %.thread1192 ]
  %348 = zext i1 %347 to i8
  %349 = icmp ne ptr %.09261270, null
  br i1 %349, label %350, label %.thread1195

350:                                              ; preds = %346
  %351 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br i1 %351, label %354, label %352

352:                                              ; preds = %350
  %353 = trunc i8 %.39341269 to i1
  br i1 %353, label %354, label %355

354:                                              ; preds = %352, %350
  br label %355

355:                                              ; preds = %354, %352
  %356 = phi i1 [ false, %352 ], [ %347, %354 ]
  %brmerge1077 = or i1 %347, %356
  %or.cond1172 = select i1 %171, i1 %brmerge1077, i1 false
  br i1 %or.cond1172, label %357, label %.thread1195

357:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  store ptr null, ptr %19, align 8, !tbaa !42
  %358 = getelementptr inbounds i8, ptr %.09261270, i64 24
  %359 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %358, i32 noundef %359)
  %360 = getelementptr inbounds i8, ptr %.09261270, i64 32
  %361 = load ptr, ptr %360, align 8, !tbaa !135
  %362 = load i32, ptr %358, align 8, !tbaa !142
  %363 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %361, i32 noundef %362, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %19)
  %364 = getelementptr inbounds i8, ptr %.09261270, i64 12
  store i32 %363, ptr %364, align 4, !tbaa !136
  %365 = load ptr, ptr %19, align 8, !tbaa !42
  %366 = ptrtoint ptr %365 to i64
  %367 = ptrtoint ptr %2 to i64
  %368 = sub i64 %366, %367
  %369 = trunc i64 %368 to i32
  %370 = getelementptr inbounds i8, ptr %.09261270, i64 16
  store i32 %369, ptr %370, align 8, !tbaa !132
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  %371 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  %372 = and i1 %356, %371
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  br label %.thread1195

.thread1195:                                      ; preds = %346, %357, %355
  %.0941.in = phi i1 [ %372, %357 ], [ %356, %355 ], [ false, %346 ]
  %.0941 = zext i1 %.0941.in to i8
  %brmerge1078 = select i1 %347, i1 true, i1 %.0941.in
  br i1 %brmerge1078, label %377, label %373

373:                                              ; preds = %.thread1195
  %374 = load i32, ptr %179, align 4, !tbaa !116
  %375 = icmp eq i32 %374, %79
  %.not = xor i1 %171, true
  %376 = and i1 %375, %.not
  %or.cond1079 = and i1 %349, %376
  br i1 %or.cond1079, label %378, label %382

377:                                              ; preds = %.thread1195
  %.not.old = xor i1 %171, true
  %or.cond9.old = and i1 %349, %.not.old
  br i1 %or.cond9.old, label %378, label %382

378:                                              ; preds = %373, %377
  %379 = getelementptr inbounds i8, ptr %.09261270, i64 72
  %380 = load i8, ptr %379, align 8, !tbaa !133, !range !40, !noundef !41
  %381 = trunc nuw i8 %380 to i1
  br label %382

382:                                              ; preds = %378, %377, %373
  %383 = phi i1 [ false, %377 ], [ false, %373 ], [ %381, %378 ]
  %.not1031 = icmp eq ptr %1, null
  br i1 %.not1031, label %392, label %384

384:                                              ; preds = %382
  br i1 %383, label %385, label %388

385:                                              ; preds = %384
  %386 = getelementptr inbounds i8, ptr %.09261270, i64 48
  %387 = load ptr, ptr %386, align 8, !tbaa !134
  br label %388

388:                                              ; preds = %384, %385
  %389 = phi ptr [ %387, %385 ], [ %2, %384 ]
  %390 = load i8, ptr %389, align 1, !tbaa !143
  %391 = icmp eq i8 %390, 0
  br label %392

392:                                              ; preds = %388, %382
  %393 = phi i1 [ false, %382 ], [ %391, %388 ]
  %brmerge1080 = select i1 %.not1018, i1 true, i1 %393
  br i1 %brmerge1080, label %424, label %394

394:                                              ; preds = %392
  %395 = getelementptr inbounds i8, ptr %75, i64 15984
  %396 = load ptr, ptr %395, align 8, !tbaa !144
  %397 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118) %396, i16 noundef zeroext 42)
  %398 = getelementptr inbounds i8, ptr %75, i64 24432
  %399 = load ptr, ptr %395, align 8, !tbaa !144
  %400 = getelementptr inbounds i8, ptr %399, i64 20
  %401 = load float, ptr %400, align 4, !tbaa !145
  %402 = getelementptr inbounds i8, ptr %75, i64 24452
  store float %401, ptr %402, align 4, !tbaa !145
  %403 = getelementptr inbounds i8, ptr %399, i64 100
  %404 = getelementptr inbounds i8, ptr %75, i64 24532
  %405 = load <2 x float>, ptr %403, align 4, !tbaa !111
  store <2 x float> %405, ptr %404, align 4, !tbaa !111
  %406 = getelementptr inbounds i8, ptr %399, i64 108
  %407 = load float, ptr %406, align 4, !tbaa !146
  %408 = getelementptr inbounds i8, ptr %75, i64 24540
  store float %407, ptr %408, align 4, !tbaa !146
  %409 = getelementptr inbounds i8, ptr %399, i64 64
  %410 = load ptr, ptr %409, align 8, !tbaa !147
  %411 = getelementptr inbounds i8, ptr %75, i64 24496
  store ptr %410, ptr %411, align 8, !tbaa !147
  %412 = getelementptr inbounds i8, ptr %75, i64 24488
  store ptr %397, ptr %412, align 8, !tbaa !148
  %413 = getelementptr inbounds i8, ptr %397, i64 4
  %414 = load float, ptr %413, align 4, !tbaa !149
  %415 = getelementptr inbounds i8, ptr %75, i64 24448
  store float %414, ptr %415, align 8, !tbaa !151
  %416 = getelementptr inbounds i8, ptr %75, i64 24472
  %417 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %416)
  br i1 %417, label %418, label %.critedge11

418:                                              ; preds = %394
  %419 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %398)
  br i1 %419, label %420, label %.critedge11

420:                                              ; preds = %418
  %421 = getelementptr inbounds i8, ptr %75, i64 24456
  %422 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %421)
  br i1 %422, label %423, label %.critedge11

.critedge11:                                      ; preds = %418, %394, %420
  call void @__assert_fail(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.4, i32 noundef 4324, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

423:                                              ; preds = %420
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef nonnull %398)
  br label %424

424:                                              ; preds = %392, %423
  %425 = load i32, ptr %179, align 4, !tbaa !116
  %426 = icmp eq i32 %425, %79
  br i1 %426, label %427, label %587

427:                                              ; preds = %424
  br i1 %349, label %429, label %428

428:                                              ; preds = %427
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4332, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

429:                                              ; preds = %427
  %430 = getelementptr inbounds i8, ptr %.09261270, i64 16
  %431 = load i32, ptr %430, align 8, !tbaa !132
  %432 = getelementptr inbounds i8, ptr %.09261270, i64 3718
  store i8 0, ptr %432, align 2, !tbaa !152
  %433 = getelementptr inbounds i8, ptr %.09261270, i64 76
  store i32 %3, ptr %433, align 4, !tbaa !153
  %434 = getelementptr inbounds i8, ptr %.09261270, i64 3720
  store i32 %spec.select, ptr %434, align 8, !tbaa !154
  %435 = getelementptr inbounds i8, ptr %75, i64 3664
  %436 = load i8, ptr %435, align 8, !tbaa !126, !range !40, !noundef !41
  %437 = xor i8 %436, 1
  %438 = getelementptr inbounds i8, ptr %75, i64 16817
  store i8 %437, ptr %438, align 1, !tbaa !155
  %439 = getelementptr inbounds i8, ptr %75, i64 3656
  %440 = load float, ptr %439, align 8, !tbaa !156
  %441 = load float, ptr %11, align 8, !tbaa !157
  %442 = fsub float %440, %441
  %443 = load float, ptr %89, align 4, !tbaa !158
  %444 = fsub float %442, %443
  %445 = getelementptr inbounds i8, ptr %.09261270, i64 80
  %446 = load float, ptr %445, align 8, !tbaa !137
  %447 = fadd float %444, %446
  br i1 %67, label %448, label %454

448:                                              ; preds = %429
  %449 = getelementptr inbounds i8, ptr %75, i64 3660
  %450 = load float, ptr %449, align 4, !tbaa !159
  %451 = getelementptr inbounds i8, ptr %.2925, i64 324
  %452 = load float, ptr %451, align 4, !tbaa !160
  %453 = fsub float %450, %452
  br label %458

454:                                              ; preds = %429
  %455 = getelementptr inbounds i8, ptr %75, i64 15992
  %456 = load float, ptr %455, align 8, !tbaa !43
  %457 = fmul float %456, 5.000000e-01
  br label %458

458:                                              ; preds = %454, %448
  %459 = phi float [ %453, %448 ], [ %457, %454 ]
  %460 = trunc i8 %.39341269 to i1
  br i1 %460, label %461, label %463

461:                                              ; preds = %458
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  %462 = getelementptr inbounds i8, ptr %.09261270, i64 3717
  store i8 1, ptr %462, align 1, !tbaa !161
  br label %538

463:                                              ; preds = %458
  br i1 %162, label %464, label %504

464:                                              ; preds = %463
  %465 = getelementptr inbounds i8, ptr %75, i64 14458
  %466 = load i16, ptr %465, align 2, !tbaa !162
  %467 = icmp ugt i16 %466, 1
  br i1 %467, label %468, label %504

468:                                              ; preds = %464
  %469 = getelementptr inbounds i8, ptr %75, i64 3689
  %470 = load i8, ptr %469, align 1, !tbaa !163, !range !40, !noundef !41
  %471 = trunc nuw i8 %470 to i1
  br i1 %471, label %504, label %472

472:                                              ; preds = %468
  %473 = getelementptr inbounds i8, ptr %.09261270, i64 84
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09261270, ptr noundef nonnull %473, float noundef %447, float noundef %459)
  %474 = load i16, ptr %465, align 2, !tbaa !162
  %475 = and i16 %474, 1
  %476 = icmp eq i16 %475, 0
  %477 = load i32, ptr %473, align 4, !tbaa !164
  br i1 %476, label %478, label %494

478:                                              ; preds = %472
  %479 = icmp eq i32 %477, 0
  br i1 %479, label %484, label %480

480:                                              ; preds = %478
  %481 = add nsw i32 %477, -1
  %482 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef nonnull %.09261270, i32 noundef %481)
  %483 = icmp eq i16 %482, 10
  br label %484

484:                                              ; preds = %480, %478
  %485 = phi i1 [ true, %478 ], [ %483, %480 ]
  %486 = getelementptr inbounds i8, ptr %.09261270, i64 88
  %487 = load i32, ptr %486, align 4, !tbaa !165
  %488 = getelementptr inbounds i8, ptr %.09261270, i64 92
  %489 = load i32, ptr %488, align 4, !tbaa !166
  %.not1032 = icmp eq i32 %487, %489
  %brmerge1082.not = and i1 %485, %.not1032
  br i1 %brmerge1082.not, label %.thread1277, label %490

490:                                              ; preds = %484
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef 2097164)
  %.pre1245 = load i32, ptr %486, align 4, !tbaa !165
  %.pre1246 = load i32, ptr %488, align 4, !tbaa !166
  %.not1033 = icmp eq i32 %.pre1245, %.pre1246
  br i1 %.not1033, label %.thread1277, label %491

.thread1277:                                      ; preds = %484, %490
  call void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef nonnull %473)
  br label %491

491:                                              ; preds = %.thread1277, %490
  %492 = load i32, ptr %473, align 4, !tbaa !164
  %493 = call noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef nonnull %.09261270, i32 noundef %492)
  store i32 %493, ptr %473, align 4, !tbaa !164
  store i32 %493, ptr %488, align 4, !tbaa !166
  call void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.09261270, ptr noundef nonnull %473)
  br label %503

494:                                              ; preds = %472
  %495 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef nonnull %.09261270, i32 noundef %477)
  %496 = icmp ne i16 %495, 10
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef 2097156)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef 6291461)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef 6291457)
  %brmerge1084.not = and i1 %67, %496
  br i1 %brmerge1084.not, label %497, label %501

497:                                              ; preds = %494
  %498 = getelementptr inbounds i8, ptr %.09261270, i64 88
  %499 = getelementptr inbounds i8, ptr %.09261270, i64 92
  call void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4) %498, ptr noundef nonnull align 4 dereferenceable(4) %499)
  %500 = load i32, ptr %499, align 4, !tbaa !166
  store i32 %500, ptr %473, align 4, !tbaa !164
  br label %501

501:                                              ; preds = %494, %497
  %502 = getelementptr inbounds i8, ptr %.09261270, i64 3716
  store i8 0, ptr %502, align 4, !tbaa !167
  br label %503

503:                                              ; preds = %501, %491
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br label %538

504:                                              ; preds = %468, %464, %463
  %505 = getelementptr inbounds i8, ptr %75, i64 14448
  %506 = load i8, ptr %505, align 8, !tbaa !126, !range !40, !noundef !41
  %507 = trunc nuw i8 %506 to i1
  br i1 %507, label %508, label %521

508:                                              ; preds = %504
  %509 = getelementptr inbounds i8, ptr %.09261270, i64 3717
  %510 = load i8, ptr %509, align 1, !tbaa !161, !range !40, !noundef !41
  %511 = trunc nuw i8 %510 to i1
  br i1 %511, label %521, label %512

512:                                              ; preds = %508
  br i1 %162, label %513, label %538

513:                                              ; preds = %512
  %514 = getelementptr inbounds i8, ptr %75, i64 3689
  %515 = load i8, ptr %514, align 1, !tbaa !163, !range !40, !noundef !41
  %516 = trunc nuw i8 %515 to i1
  %517 = getelementptr inbounds i8, ptr %.09261270, i64 84
  br i1 %516, label %518, label %519

518:                                              ; preds = %513
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09261270, ptr noundef nonnull %517, float noundef %447, float noundef %459)
  br label %520

519:                                              ; preds = %513
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09261270, ptr noundef nonnull %517, float noundef %447, float noundef %459)
  br label %520

520:                                              ; preds = %519, %518
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br label %538

521:                                              ; preds = %508, %504
  %522 = trunc nuw i8 %436 to i1
  br i1 %522, label %523, label %538

523:                                              ; preds = %521
  %524 = getelementptr inbounds i8, ptr %.09261270, i64 3717
  %525 = load i8, ptr %524, align 1, !tbaa !161, !range !40, !noundef !41
  %526 = trunc nuw i8 %525 to i1
  br i1 %526, label %538, label %527

527:                                              ; preds = %523
  %528 = getelementptr inbounds i8, ptr %75, i64 240
  %529 = load float, ptr %528, align 8, !tbaa !168
  %530 = fcmp une float %529, 0.000000e+00
  br i1 %530, label %535, label %531

531:                                              ; preds = %527
  %532 = getelementptr inbounds i8, ptr %75, i64 244
  %533 = load float, ptr %532, align 4, !tbaa !169
  %534 = fcmp une float %533, 0.000000e+00
  br i1 %534, label %535, label %538

535:                                              ; preds = %531, %527
  %536 = getelementptr inbounds i8, ptr %.09261270, i64 84
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09261270, ptr noundef nonnull %536, float noundef %447, float noundef %459)
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  %537 = getelementptr inbounds i8, ptr %.09261270, i64 3716
  store i8 1, ptr %537, align 4, !tbaa !167
  br label %538

538:                                              ; preds = %503, %521, %523, %531, %535, %512, %520, %461
  %539 = getelementptr inbounds i8, ptr %.09261270, i64 3717
  %540 = load i8, ptr %539, align 1, !tbaa !161, !range !40, !noundef !41
  %541 = trunc nuw i8 %540 to i1
  br i1 %541, label %542, label %546

542:                                              ; preds = %538
  %543 = load i8, ptr %435, align 8, !tbaa !126, !range !40, !noundef !41
  %544 = trunc nuw i8 %543 to i1
  br i1 %544, label %546, label %545

545:                                              ; preds = %542
  store i8 0, ptr %539, align 1, !tbaa !161
  br label %546

546:                                              ; preds = %545, %542, %538
  %brmerge1085 = or i1 %.not1013, %171
  br i1 %brmerge1085, label %554, label %547

547:                                              ; preds = %546
  %548 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %79, i32 noundef 1)
  br i1 %548, label %549, label %554

549:                                              ; preds = %547
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #14
  store i32 9, ptr %20, align 4, !tbaa !113
  %550 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %75, ptr noundef nonnull %20, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %550, label %551, label %553

551:                                              ; preds = %549
  %552 = load i32, ptr %20, align 4, !tbaa !113
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %552)
  br label %553

553:                                              ; preds = %551, %549
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #14
  br label %554

554:                                              ; preds = %546, %547, %553
  %555 = getelementptr inbounds i8, ptr %75, i64 3688
  %556 = load i8, ptr %555, align 8, !tbaa !138, !range !40, !noundef !41
  %557 = trunc nuw i8 %556 to i1
  br i1 %557, label %558, label %563

558:                                              ; preds = %554
  %559 = getelementptr inbounds i8, ptr %75, i64 3690
  %560 = load i8, ptr %559, align 2, !tbaa !170, !range !40, !noundef !41
  %561 = trunc nuw i8 %560 to i1
  %.not1086 = xor i1 %561, true
  %562 = select i1 %561, i1 %321, i1 false
  br i1 %562, label %564, label %568

563:                                              ; preds = %554
  br i1 %321, label %564, label %568

564:                                              ; preds = %558, %563
  %565 = getelementptr inbounds i8, ptr %75, i64 3691
  %566 = load i8, ptr %565, align 1, !tbaa !171, !range !40, !noundef !41
  %567 = trunc nuw i8 %566 to i1
  br label %568

568:                                              ; preds = %558, %563, %564
  %569 = phi i1 [ %321, %558 ], [ false, %563 ], [ %321, %564 ]
  %570 = phi i1 [ %.not1086, %558 ], [ false, %563 ], [ %567, %564 ]
  %571 = getelementptr inbounds i8, ptr %75, i64 14608
  %572 = load i32, ptr %571, align 8, !tbaa !172
  %573 = icmp sgt i32 %572, 0
  br i1 %573, label %574, label %587

574:                                              ; preds = %568
  %brmerge1089 = or i1 %171, %570
  %brmerge1090 = select i1 %brmerge1089, i1 true, i1 %194
  br i1 %brmerge1090, label %.loopexit1233, label %.lr.ph

.lr.ph:                                           ; preds = %574, %583
  %.09631234 = phi i32 [ %584, %583 ], [ 0, %574 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #14
  %575 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %571, i32 noundef %.09631234)
  %576 = load i16, ptr %575, align 2, !tbaa !162
  %577 = zext i16 %576 to i32
  store i32 %577, ptr %21, align 4, !tbaa !113
  %578 = icmp eq i16 %576, 9
  br i1 %578, label %583, label %579

579:                                              ; preds = %.lr.ph
  %580 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %75, ptr noundef nonnull %21, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %580, label %581, label %583

581:                                              ; preds = %579
  %582 = load i32, ptr %21, align 4, !tbaa !113
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %582)
  br label %583

583:                                              ; preds = %579, %581, %.lr.ph
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #14
  %584 = add nuw nsw i32 %.09631234, 1
  %585 = load i32, ptr %571, align 8, !tbaa !172
  %586 = icmp slt i32 %584, %585
  br i1 %586, label %.lr.ph, label %.loopexit1233, !llvm.loop !173

.loopexit1233:                                    ; preds = %583, %574
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %571, i32 noundef 0)
  br label %587

587:                                              ; preds = %568, %.loopexit1233, %424
  %588 = phi i1 [ %321, %424 ], [ %569, %.loopexit1233 ], [ %569, %568 ]
  %.0962 = phi i32 [ 0, %424 ], [ %431, %.loopexit1233 ], [ %431, %568 ]
  %589 = load i32, ptr %179, align 4, !tbaa !116
  %590 = icmp eq i32 %589, %79
  br i1 %590, label %591, label %886

591:                                              ; preds = %587
  %592 = getelementptr inbounds i8, ptr %75, i64 16816
  %593 = load i8, ptr %592, align 8, !tbaa !175, !range !40, !noundef !41
  %594 = trunc nuw i8 %593 to i1
  br i1 %594, label %.thread1280, label %595

595:                                              ; preds = %591
  %596 = trunc nuw i8 %.09271194 to i1
  br i1 %596, label %.thread1280, label %597

597:                                              ; preds = %595
  br i1 %349, label %599, label %598

598:                                              ; preds = %597
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4449, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

599:                                              ; preds = %597
  %600 = load float, ptr %90, align 4, !tbaa !109
  %601 = fsub float %.sroa.11.0.copyload, %600
  %602 = getelementptr inbounds i8, ptr %75, i64 15992
  %603 = load float, ptr %602, align 8, !tbaa !43
  %604 = fdiv float %601, %603
  %605 = fptosi float %604 to i32
  %606 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %605, i32 noundef 1)
  %607 = getelementptr inbounds i8, ptr %.09261270, i64 84
  %608 = getelementptr inbounds i8, ptr %.09261270, i64 100
  store i32 %606, ptr %608, align 4, !tbaa !176
  %609 = getelementptr inbounds i8, ptr %75, i64 3689
  %610 = load i8, ptr %609, align 1, !tbaa !163, !range !40, !noundef !41
  %611 = trunc nuw i8 %610 to i1
  %612 = select i1 %611, i32 4194304, i32 0
  %613 = getelementptr inbounds i8, ptr %75, i64 3690
  %614 = getelementptr inbounds i8, ptr %75, i64 3688
  %.in.in = select i1 %588, ptr %613, ptr %614
  %.in = load i8, ptr %.in.in, align 2, !tbaa !126, !range !40, !noundef !41
  %615 = trunc nuw i8 %.in to i1
  br i1 %588, label %616, label %627

616:                                              ; preds = %599
  %617 = getelementptr inbounds i8, ptr %75, i64 3691
  %618 = load i8, ptr %617, align 1, !tbaa !171, !range !40, !noundef !41
  %619 = trunc nuw i8 %618 to i1
  br i1 %619, label %620, label %627

620:                                              ; preds = %616
  %621 = load i8, ptr %614, align 8, !tbaa !138, !range !40, !noundef !41
  %622 = trunc nuw i8 %621 to i1
  br i1 %622, label %627, label %623

623:                                              ; preds = %620
  %624 = load i8, ptr %613, align 2, !tbaa !170, !range !40, !noundef !41
  %625 = trunc nuw i8 %624 to i1
  %626 = xor i1 %625, true
  br label %627

627:                                              ; preds = %623, %620, %616, %599
  %628 = phi i1 [ false, %620 ], [ false, %616 ], [ false, %599 ], [ %626, %623 ]
  %629 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2617, i32 noundef %79, i32 noundef 1)
  br i1 %629, label %634, label %630

630:                                              ; preds = %627
  %631 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8714, i32 noundef %79, i32 noundef 1)
  %632 = and i1 %.not1018, %631
  %633 = xor i1 %632, true
  %brmerge1093 = or i1 %171, %633
  %.not1099 = xor i1 %67, true
  %brmerge1100 = or i1 %brmerge1093, %.not1099
  %not.brmerge1093 = xor i1 %brmerge1093, true
  br i1 %brmerge1100, label %637, label %635

634:                                              ; preds = %627
  %.not1018.not1094 = xor i1 %.not1018, true
  %brmerge1095 = or i1 %171, %.not1018.not1094
  %.not1096 = xor i1 %67, true
  %brmerge1097 = or i1 %brmerge1095, %.not1096
  %not.brmerge1095 = xor i1 %brmerge1095, true
  br i1 %brmerge1097, label %637, label %635

635:                                              ; preds = %630, %634
  %636 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br label %637

637:                                              ; preds = %630, %634, %635
  %638 = phi i1 [ %not.brmerge1095, %634 ], [ %not.brmerge1093, %630 ], [ %636, %635 ]
  %639 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2596, i32 noundef %79, i32 noundef 0)
  br i1 %639, label %642, label %640

640:                                              ; preds = %637
  %641 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 4617, i32 noundef %79, i32 noundef 0)
  %brmerge1104.demorgan = and i1 %.not1018, %641
  %brmerge1106.not = and i1 %67, %brmerge1104.demorgan
  br i1 %brmerge1106.not, label %644, label %646

642:                                              ; preds = %637
  %643 = and i32 %5, 67141632
  %brmerge1110.not = icmp eq i32 %643, 67108864
  br i1 %brmerge1110.not, label %644, label %646

644:                                              ; preds = %642, %640
  %645 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br label %646

646:                                              ; preds = %642, %640, %644
  %647 = phi i1 [ %.not1018, %642 ], [ %brmerge1104.demorgan, %640 ], [ %645, %644 ]
  %648 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2615, i32 noundef %79, i32 noundef 1)
  br i1 %648, label %651, label %649

649:                                              ; preds = %646
  %650 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8713, i32 noundef %79, i32 noundef 1)
  br i1 %650, label %651, label %._crit_edge1258

._crit_edge1258:                                  ; preds = %649
  %.pre1259 = xor i1 %171, true
  br label %653

651:                                              ; preds = %649, %646
  %652 = xor i1 %171, true
  br label %653

653:                                              ; preds = %._crit_edge1258, %651
  %not..pre-phi = phi i1 [ %.pre1259, %._crit_edge1258 ], [ %652, %651 ]
  %654 = phi i1 [ false, %._crit_edge1258 ], [ %652, %651 ]
  %655 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2619, i32 noundef %79, i32 noundef 1)
  %spec.select1112 = and i1 %174, %not..pre-phi
  %spec.select1175 = select i1 %655, i1 %spec.select1112, i1 false
  %656 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2618, i32 noundef %79, i32 noundef 1)
  br i1 %656, label %660, label %657

657:                                              ; preds = %653
  br i1 %588, label %658, label %661

658:                                              ; preds = %657
  %659 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 10811, i32 noundef %79, i32 noundef 1)
  br i1 %659, label %660, label %661

660:                                              ; preds = %658, %653
  br label %661

661:                                              ; preds = %660, %658, %657
  %662 = phi i1 [ false, %658 ], [ false, %657 ], [ %spec.select1112, %660 ]
  %663 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2594, i32 noundef %79, i32 noundef 0)
  %664 = load i32, ptr %76, align 8, !tbaa !177
  %665 = and i32 %664, 2
  %.not1035 = icmp eq i32 %665, 0
  br i1 %.not1035, label %671, label %666

666:                                              ; preds = %661
  %667 = getelementptr inbounds i8, ptr %75, i64 12
  %668 = load i32, ptr %667, align 4, !tbaa !178
  %669 = and i32 %668, 1
  %670 = icmp ne i32 %669, 0
  br label %671

671:                                              ; preds = %666, %661
  %672 = phi i1 [ false, %661 ], [ %670, %666 ]
  %673 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 525, i1 noundef zeroext true)
  br i1 %673, label %676, label %674

674:                                              ; preds = %671
  %675 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 627, i1 noundef zeroext true)
  br label %676

676:                                              ; preds = %674, %671
  %677 = phi i1 [ true, %671 ], [ %675, %674 ]
  br i1 %672, label %678, label %.sink.split1304

678:                                              ; preds = %676
  %679 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 636, i1 noundef zeroext false)
  br i1 %679, label %682, label %680

680:                                              ; preds = %678
  %681 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 635, i1 noundef zeroext false)
  br label %682

682:                                              ; preds = %678, %680
  %683 = phi i1 [ true, %678 ], [ %681, %680 ]
  %684 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 526, i32 noundef %79, i32 noundef 1)
  br i1 %684, label %686, label %.sink.split1304

.sink.split1304:                                  ; preds = %682, %676
  %.sink = phi i32 [ 526, %676 ], [ 634, %682 ]
  %.ph1305 = phi i1 [ false, %676 ], [ %683, %682 ]
  %685 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef %.sink, i32 noundef %79, i32 noundef 1)
  br label %686

686:                                              ; preds = %.sink.split1304, %682
  %687 = phi i1 [ %683, %682 ], [ %.ph1305, %.sink.split1304 ]
  %688 = phi i1 [ true, %682 ], [ %685, %.sink.split1304 ]
  %689 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %689, label %690, label %693

690:                                              ; preds = %686
  %691 = select i1 %615, i32 2097164, i32 2097152
  %spec.select1117 = select i1 %628, i32 2097156, i32 %691
  %692 = or disjoint i32 %spec.select1117, %612
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %692)
  br label %.thread1203

693:                                              ; preds = %686
  %694 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %694, label %695, label %698

695:                                              ; preds = %693
  %696 = select i1 %615, i32 2097165, i32 2097153
  %spec.select1118 = select i1 %628, i32 2097157, i32 %696
  %697 = or disjoint i32 %spec.select1118, %612
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %697)
  br label %.thread1203

698:                                              ; preds = %693
  %699 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  %.not1120 = xor i1 %67, true
  %brmerge1121.not = and i1 %67, %699
  br i1 %brmerge1121.not, label %700, label %712

700:                                              ; preds = %698
  %701 = load i8, ptr %614, align 8, !tbaa !138, !range !40, !noundef !41
  %702 = trunc nuw i8 %701 to i1
  br i1 %702, label %703, label %709

703:                                              ; preds = %700
  %704 = getelementptr inbounds i8, ptr %.2925, i64 196
  %705 = load float, ptr %704, align 4, !tbaa !128
  %706 = load float, ptr %602, align 8, !tbaa !43
  %707 = fsub float %705, %706
  %708 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %707, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2925, float noundef %708)
  br label %.thread1203

709:                                              ; preds = %700
  %710 = select i1 %628, i32 2097158, i32 2097154
  %711 = or disjoint i32 %710, %612
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %711)
  br label %.thread1203

712:                                              ; preds = %698
  %713 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  %brmerge1124.not = and i1 %67, %713
  br i1 %brmerge1124.not, label %714, label %727

714:                                              ; preds = %712
  %715 = load i8, ptr %614, align 8, !tbaa !138, !range !40, !noundef !41
  %716 = trunc nuw i8 %715 to i1
  br i1 %716, label %717, label %724

717:                                              ; preds = %714
  %718 = getelementptr inbounds i8, ptr %.2925, i64 196
  %719 = load float, ptr %718, align 4, !tbaa !128
  %720 = load float, ptr %602, align 8, !tbaa !43
  %721 = fadd float %719, %720
  %722 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %723 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %721, float noundef %722)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2925, float noundef %723)
  br label %.thread1203

724:                                              ; preds = %714
  %725 = select i1 %628, i32 2097159, i32 2097155
  %726 = or disjoint i32 %725, %612
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %726)
  br label %.thread1203

727:                                              ; preds = %712
  %728 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  %brmerge1127.not = and i1 %67, %728
  br i1 %brmerge1127.not, label %729, label %735

729:                                              ; preds = %727
  %730 = or disjoint i32 %612, 2097166
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %730)
  %731 = sitofp i32 %606 to float
  %732 = load float, ptr %602, align 8, !tbaa !43
  %733 = fneg float %731
  %734 = call float @llvm.fmuladd.f32(float %733, float %732, float %221)
  br label %.thread1203

735:                                              ; preds = %727
  %736 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  %brmerge1130.not = and i1 %67, %736
  br i1 %brmerge1130.not, label %737, label %742

737:                                              ; preds = %735
  %738 = or disjoint i32 %612, 2097167
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %738)
  %739 = sitofp i32 %606 to float
  %740 = load float, ptr %602, align 8, !tbaa !43
  %741 = call float @llvm.fmuladd.f32(float %739, float %740, float %221)
  br label %.thread1203

742:                                              ; preds = %735
  %743 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %743, label %744, label %748

744:                                              ; preds = %742
  %745 = load i8, ptr %614, align 8, !tbaa !138, !range !40, !noundef !41
  %746 = trunc nuw i8 %745 to i1
  %.v1043 = select i1 %746, i32 2097158, i32 2097156
  %747 = or disjoint i32 %.v1043, %612
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %747)
  br label %.thread1203

748:                                              ; preds = %742
  %749 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %749, label %750, label %754

750:                                              ; preds = %748
  %751 = load i8, ptr %614, align 8, !tbaa !138, !range !40, !noundef !41
  %752 = trunc nuw i8 %751 to i1
  %.v = select i1 %752, i32 2097159, i32 2097157
  %753 = or disjoint i32 %.v, %612
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %753)
  br label %.thread1203

754:                                              ; preds = %748
  %755 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  %.not1131 = xor i1 %755, true
  %brmerge1132 = or i1 %171, %.not1131
  %brmerge1133 = or i1 %638, %brmerge1132
  br i1 %brmerge1133, label %761, label %756

756:                                              ; preds = %754
  %757 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  %.not1134 = xor i1 %615, true
  %brmerge1135 = select i1 %757, i1 true, i1 %.not1134
  br i1 %brmerge1135, label %759, label %758

758:                                              ; preds = %756
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef 6291469)
  br label %759

759:                                              ; preds = %756, %758
  %760 = or disjoint i32 %612, 2097160
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %760)
  br label %.thread1203

761:                                              ; preds = %754
  %762 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  %.not1136 = xor i1 %762, true
  %brmerge1137 = or i1 %171, %.not1136
  br i1 %brmerge1137, label %779, label %763

763:                                              ; preds = %761
  %764 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br i1 %764, label %777, label %765

765:                                              ; preds = %763
  br i1 %615, label %.sink.split1307, label %766

766:                                              ; preds = %765
  br i1 %588, label %767, label %777

767:                                              ; preds = %766
  %768 = getelementptr inbounds i8, ptr %75, i64 3691
  %769 = load i8, ptr %768, align 1, !tbaa !171, !range !40, !noundef !41
  %770 = trunc nuw i8 %769 to i1
  br i1 %770, label %771, label %777

771:                                              ; preds = %767
  %772 = load i8, ptr %613, align 2, !tbaa !170, !range !40, !noundef !41
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %777, label %774

774:                                              ; preds = %771
  %775 = load i8, ptr %614, align 8, !tbaa !138, !range !40, !noundef !41
  %776 = trunc nuw i8 %775 to i1
  br i1 %776, label %777, label %.sink.split1307

.sink.split1307:                                  ; preds = %774, %765
  %.sink1308 = phi i32 [ 6291468, %765 ], [ 6291460, %774 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %.sink1308)
  br label %777

777:                                              ; preds = %.sink.split1307, %774, %771, %767, %766, %763
  %778 = or disjoint i32 %612, 2097161
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %778)
  br label %.thread1203

779:                                              ; preds = %761
  %brmerge1138 = or i1 %677, %687
  br i1 %brmerge1138, label %780, label %797

780:                                              ; preds = %779
  %brmerge1140 = or i1 %687, %.not1120
  br i1 %brmerge1140, label %786, label %781

781:                                              ; preds = %780
  %782 = and i32 %5, 2048
  %.not1042 = icmp eq i32 %782, 0
  %783 = load i8, ptr %614, align 8, !tbaa !138, !range !40, !noundef !41
  %784 = trunc nuw i8 %783 to i1
  br i1 %.not1042, label %.critedge1142, label %785

785:                                              ; preds = %781
  br i1 %784, label %791, label %.thread1203

.critedge1142:                                    ; preds = %781
  br i1 %784, label %.thread1203, label %791

786:                                              ; preds = %780
  %787 = getelementptr inbounds i8, ptr %75, i64 100
  %788 = load i8, ptr %787, align 4, !tbaa !179, !range !40, !noundef !41
  %789 = trunc nuw i8 %788 to i1
  %.not1143 = xor i1 %789, true
  %brmerge1144 = or i1 %67, %.not1143
  br i1 %brmerge1144, label %.thread1203, label %790

790:                                              ; preds = %786
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br label %.thread1203

791:                                              ; preds = %785, %.critedge1142
  br i1 %171, label %.thread1203, label %792

792:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #14
  store i32 10, ptr %22, align 4, !tbaa !113
  %793 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %75, ptr noundef nonnull %22, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %793, label %794, label %796

794:                                              ; preds = %792
  %795 = load i32, ptr %22, align 4, !tbaa !113
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %795)
  br label %796

796:                                              ; preds = %794, %792
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #14
  br label %.thread1203

797:                                              ; preds = %779
  br i1 %688, label %798, label %802

798:                                              ; preds = %797
  %799 = and i32 %5, 1048576
  %.not1040 = icmp eq i32 %799, 0
  br i1 %.not1040, label %.thread1203, label %800

800:                                              ; preds = %798
  %801 = load i8, ptr %2, align 1, !tbaa !143
  %.not1041 = icmp ne i8 %801, 0
  %..0941.in = select i1 %.not1041, i1 %.0941.in, i1 false
  %.1146 = select i1 %.not1041, i8 %348, i8 0
  %..0927 = select i1 %.not1041, i8 %.09271194, i8 1
  br label %.thread1203

802:                                              ; preds = %797
  %brmerge1147 = or i1 %spec.select1175, %662
  br i1 %brmerge1147, label %803, label %804

803:                                              ; preds = %802
  %.mux1148 = select i1 %spec.select1175, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270, i32 noundef %.mux1148)
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br label %.thread1203

804:                                              ; preds = %802
  br i1 %663, label %805, label %807

805:                                              ; preds = %804
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  %806 = getelementptr inbounds i8, ptr %.09261270, i64 3716
  store i8 1, ptr %806, align 4, !tbaa !167
  br label %.thread1203

807:                                              ; preds = %804
  %brmerge1149 = or i1 %638, %647
  br i1 %brmerge1149, label %808, label %854

808:                                              ; preds = %807
  %809 = getelementptr inbounds i8, ptr %75, i64 184
  %810 = load ptr, ptr %809, align 8, !tbaa !180
  %.not1039 = icmp eq ptr %810, null
  br i1 %.not1039, label %847, label %811

811:                                              ; preds = %808
  %812 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br i1 %812, label %813, label %819

813:                                              ; preds = %811
  %814 = getelementptr inbounds i8, ptr %.09261270, i64 88
  %815 = load i32, ptr %814, align 4, !tbaa !165
  %816 = getelementptr inbounds i8, ptr %.09261270, i64 92
  %817 = load i32, ptr %816, align 4, !tbaa !166
  %818 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %815, i32 noundef %817)
  br label %819

819:                                              ; preds = %811, %813
  %820 = phi i32 [ %818, %813 ], [ 0, %811 ]
  %821 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br i1 %821, label %822, label %828

822:                                              ; preds = %819
  %823 = getelementptr inbounds i8, ptr %.09261270, i64 88
  %824 = load i32, ptr %823, align 4, !tbaa !165
  %825 = getelementptr inbounds i8, ptr %.09261270, i64 92
  %826 = load i32, ptr %825, align 4, !tbaa !166
  %827 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %824, i32 noundef %826)
  br label %831

828:                                              ; preds = %819
  %829 = getelementptr inbounds i8, ptr %.09261270, i64 12
  %830 = load i32, ptr %829, align 4, !tbaa !136
  br label %831

831:                                              ; preds = %828, %822
  %832 = phi i32 [ %827, %822 ], [ %830, %828 ]
  %833 = getelementptr inbounds i8, ptr %.09261270, i64 32
  %834 = load ptr, ptr %833, align 8, !tbaa !135
  %835 = sext i32 %820 to i64
  %836 = getelementptr inbounds i16, ptr %834, i64 %835
  %837 = sext i32 %832 to i64
  %838 = getelementptr inbounds i16, ptr %834, i64 %837
  %839 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %836, ptr noundef %838)
  %840 = add nsw i32 %839, 1
  %841 = sext i32 %840 to i64
  %842 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %841)
  %843 = load ptr, ptr %833, align 8, !tbaa !135
  %844 = getelementptr inbounds i16, ptr %843, i64 %835
  %845 = getelementptr inbounds i16, ptr %843, i64 %837
  %846 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %842, i32 noundef %840, ptr noundef %844, ptr noundef %845)
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %842)
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %842)
  br label %847

847:                                              ; preds = %831, %808
  br i1 %638, label %848, label %.thread1203

848:                                              ; preds = %847
  %849 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br i1 %849, label %851, label %850

850:                                              ; preds = %848
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br label %851

851:                                              ; preds = %850, %848
  %852 = getelementptr inbounds i8, ptr %.09261270, i64 3716
  store i8 1, ptr %852, align 4, !tbaa !167
  %853 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.09261270, ptr noundef nonnull %607)
  br label %.thread1203

854:                                              ; preds = %807
  br i1 %654, label %855, label %.thread1203

855:                                              ; preds = %854
  %856 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  %.not1036 = icmp eq ptr %856, null
  br i1 %.not1036, label %.thread1203, label %857

857:                                              ; preds = %855
  %858 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %856) #15
  %859 = shl i64 %858, 32
  %sext1037 = add i64 %859, 4294967296
  %860 = ashr exact i64 %sext1037, 31
  %861 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %860)
  %862 = load i8, ptr %856, align 1, !tbaa !143
  %.not10381235 = icmp eq i8 %862, 0
  br i1 %.not10381235, label %._crit_edge.thread, label %.lr.ph1238

._crit_edge.thread:                               ; preds = %857
  store i16 0, ptr %861, align 2, !tbaa !162
  br label %881

._crit_edge:                                      ; preds = %876
  %863 = sext i32 %.1967 to i64
  %864 = getelementptr inbounds i16, ptr %861, i64 %863
  store i16 0, ptr %864, align 2, !tbaa !162
  %865 = icmp sgt i32 %.1967, 0
  br i1 %865, label %878, label %881

.lr.ph1238:                                       ; preds = %857, %876
  %.09661237 = phi i32 [ %.1967, %876 ], [ 0, %857 ]
  %.09681236 = phi ptr [ %868, %876 ], [ %856, %857 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #14
  %866 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef nonnull %23, ptr noundef nonnull %.09681236, ptr noundef null)
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds i8, ptr %.09681236, i64 %867
  %869 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %75, ptr noundef nonnull %23, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i32 noundef 4)
  br i1 %869, label %870, label %876, !llvm.loop !181

870:                                              ; preds = %.lr.ph1238
  %871 = load i32, ptr %23, align 4, !tbaa !113
  %872 = trunc i32 %871 to i16
  %873 = add nsw i32 %.09661237, 1
  %874 = sext i32 %.09661237 to i64
  %875 = getelementptr inbounds i16, ptr %861, i64 %874
  store i16 %872, ptr %875, align 2, !tbaa !162
  br label %876

876:                                              ; preds = %.lr.ph1238, %870
  %.1967 = phi i32 [ %873, %870 ], [ %.09661237, %.lr.ph1238 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #14
  %877 = load i8, ptr %868, align 1, !tbaa !143
  %.not1038 = icmp eq i8 %877, 0
  br i1 %.not1038, label %._crit_edge, label %.lr.ph1238

878:                                              ; preds = %._crit_edge
  %879 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %.09261270, ptr noundef nonnull %607, ptr noundef nonnull %861, i32 noundef %.1967)
  %880 = getelementptr inbounds i8, ptr %.09261270, i64 3716
  store i8 1, ptr %880, align 4, !tbaa !167
  br label %881

881:                                              ; preds = %._crit_edge.thread, %878, %._crit_edge
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %861)
  br label %.thread1203

.thread1203:                                      ; preds = %785, %.critedge1142, %855, %881, %798, %800, %790, %796, %791, %786, %695, %724, %717, %737, %750, %777, %805, %854, %847, %851, %803, %759, %744, %729, %703, %709, %690
  %.0964 = phi i1 [ false, %690 ], [ false, %695 ], [ false, %703 ], [ false, %709 ], [ false, %717 ], [ false, %724 ], [ false, %729 ], [ false, %737 ], [ false, %744 ], [ false, %750 ], [ false, %803 ], [ false, %805 ], [ false, %851 ], [ false, %847 ], [ false, %854 ], [ false, %777 ], [ false, %759 ], [ false, %786 ], [ false, %791 ], [ false, %796 ], [ false, %790 ], [ %.not1041, %800 ], [ true, %798 ], [ false, %881 ], [ false, %855 ], [ false, %.critedge1142 ], [ false, %785 ]
  %.1960 = phi i8 [ 0, %690 ], [ 0, %695 ], [ 0, %703 ], [ 0, %709 ], [ 0, %717 ], [ 0, %724 ], [ 0, %729 ], [ 0, %737 ], [ 0, %744 ], [ 0, %750 ], [ 0, %803 ], [ 0, %805 ], [ 0, %851 ], [ 0, %847 ], [ 0, %854 ], [ 0, %777 ], [ 0, %759 ], [ 1, %786 ], [ 0, %791 ], [ 0, %796 ], [ 1, %790 ], [ 0, %800 ], [ 0, %798 ], [ 0, %881 ], [ 0, %855 ], [ 1, %.critedge1142 ], [ 1, %785 ]
  %.1942 = phi i1 [ %.0941.in, %690 ], [ %.0941.in, %695 ], [ %.0941.in, %703 ], [ %.0941.in, %709 ], [ %.0941.in, %717 ], [ %.0941.in, %724 ], [ %.0941.in, %729 ], [ %.0941.in, %737 ], [ %.0941.in, %744 ], [ %.0941.in, %750 ], [ %.0941.in, %803 ], [ %.0941.in, %805 ], [ %.0941.in, %851 ], [ %.0941.in, %847 ], [ %.0941.in, %854 ], [ %.0941.in, %777 ], [ %.0941.in, %759 ], [ %.0941.in, %786 ], [ %.0941.in, %791 ], [ %.0941.in, %796 ], [ %.0941.in, %790 ], [ %..0941.in, %800 ], [ false, %798 ], [ %.0941.in, %881 ], [ %.0941.in, %855 ], [ %.0941.in, %.critedge1142 ], [ %.0941.in, %785 ]
  %.0939 = phi i8 [ %348, %690 ], [ %348, %695 ], [ %348, %703 ], [ %348, %709 ], [ %348, %717 ], [ %348, %724 ], [ %348, %729 ], [ %348, %737 ], [ %348, %744 ], [ %348, %750 ], [ %348, %803 ], [ %348, %805 ], [ %348, %851 ], [ %348, %847 ], [ %348, %854 ], [ %348, %777 ], [ %348, %759 ], [ %348, %786 ], [ %348, %791 ], [ %348, %796 ], [ %348, %790 ], [ %.1146, %800 ], [ 0, %798 ], [ %348, %881 ], [ %348, %855 ], [ %348, %.critedge1142 ], [ %348, %785 ]
  %.0935 = phi float [ %221, %690 ], [ %221, %695 ], [ %221, %703 ], [ %221, %709 ], [ %221, %717 ], [ %221, %724 ], [ %734, %729 ], [ %741, %737 ], [ %221, %744 ], [ %221, %750 ], [ %221, %803 ], [ %221, %805 ], [ %221, %851 ], [ %221, %847 ], [ %221, %854 ], [ %221, %777 ], [ %221, %759 ], [ %221, %786 ], [ %221, %791 ], [ %221, %796 ], [ %221, %790 ], [ %221, %800 ], [ %221, %798 ], [ %221, %881 ], [ %221, %855 ], [ %221, %.critedge1142 ], [ %221, %785 ]
  %.2929 = phi i8 [ %.09271194, %690 ], [ %.09271194, %695 ], [ %.09271194, %703 ], [ %.09271194, %709 ], [ %.09271194, %717 ], [ %.09271194, %724 ], [ %.09271194, %729 ], [ %.09271194, %737 ], [ %.09271194, %744 ], [ %.09271194, %750 ], [ %.09271194, %803 ], [ %.09271194, %805 ], [ %.09271194, %851 ], [ %.09271194, %847 ], [ %.09271194, %854 ], [ %.09271194, %777 ], [ %.09271194, %759 ], [ 1, %786 ], [ %.09271194, %791 ], [ %.09271194, %796 ], [ %.09271194, %790 ], [ %..0927, %800 ], [ 1, %798 ], [ %.09271194, %881 ], [ %.09271194, %855 ], [ 1, %.critedge1142 ], [ 1, %785 ]
  %882 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  %883 = select i1 %882, i8 %.0939, i8 0
  %884 = zext i1 %.1942 to i8
  %885 = or i8 %883, %884
  %.pre1247 = load i32, ptr %179, align 4, !tbaa !116
  br label %886

886:                                              ; preds = %.thread1203, %587
  %887 = phi i32 [ %.pre1247, %.thread1203 ], [ %589, %587 ]
  %.1965 = phi i1 [ %.0964, %.thread1203 ], [ false, %587 ]
  %.2961 = phi i8 [ %.1960, %.thread1203 ], [ 0, %587 ]
  %.2943 = phi i8 [ %885, %.thread1203 ], [ %.0941, %587 ]
  %.1940 = phi i8 [ %.0939, %.thread1203 ], [ %348, %587 ]
  %.1936 = phi float [ %.0935, %.thread1203 ], [ %221, %587 ]
  %.3930 = phi i8 [ %.2929, %.thread1203 ], [ %.09271194, %587 ]
  %888 = icmp eq i32 %887, %79
  br i1 %888, label %.thread1280, label %1093

.thread1280:                                      ; preds = %595, %591, %886
  %.39301299 = phi i8 [ %.3930, %886 ], [ %.09271194, %591 ], [ %.09271194, %595 ]
  %.19361297 = phi float [ %.1936, %886 ], [ %221, %591 ], [ %221, %595 ]
  %.19401295 = phi i8 [ %.1940, %886 ], [ %348, %591 ], [ %348, %595 ]
  %.29431293 = phi i8 [ %.2943, %886 ], [ %.0941, %591 ], [ %.0941, %595 ]
  %.29611290 = phi i8 [ %.2961, %886 ], [ 0, %591 ], [ 0, %595 ]
  %.19651289 = phi i1 [ %.1965, %886 ], [ false, %591 ], [ false, %595 ]
  br i1 %349, label %890, label %889

889:                                              ; preds = %.thread1280
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4609, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

890:                                              ; preds = %.thread1280
  %.1965.not = xor i1 %.19651289, true
  %brmerge1150 = or i1 %171, %.1965.not
  br i1 %brmerge1150, label %928, label %891

891:                                              ; preds = %890
  %892 = and i32 %5, 1048576
  %.not1044 = icmp eq i32 %892, 0
  br i1 %.not1044, label %898, label %893

893:                                              ; preds = %891
  %894 = load i8, ptr %2, align 1, !tbaa !143
  %.not1046 = icmp eq i8 %894, 0
  br i1 %.not1046, label %895, label %896

895:                                              ; preds = %893
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.4, i32 noundef 4615, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

896:                                              ; preds = %893
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %24) #14
  %897 = getelementptr inbounds i8, ptr %.09261270, i64 84
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.09261270, ptr noundef nonnull %897, ptr noundef nonnull %24, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %24) #14
  br label %.thread1207

898:                                              ; preds = %891
  %899 = getelementptr inbounds i8, ptr %.09261270, i64 64
  %900 = load ptr, ptr %899, align 8, !tbaa !131
  %901 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) %900) #15
  %.not1045 = icmp eq i32 %901, 0
  br i1 %.not1045, label %.thread1207, label %902

902:                                              ; preds = %898
  %903 = getelementptr inbounds i8, ptr %.09261270, i64 56
  %904 = load i32, ptr %903, align 8, !tbaa !182
  %905 = add nsw i32 %904, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25)
  %906 = icmp sgt i32 %904, 1
  br i1 %906, label %907, label %920

907:                                              ; preds = %902
  %908 = zext nneg i32 %905 to i64
  %909 = getelementptr inbounds i8, ptr %900, i64 %908
  %910 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %900, ptr noundef %909)
          to label %911 unwind label %918

911:                                              ; preds = %907
  %912 = add nsw i32 %910, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %25, i32 noundef %912)
          to label %913 unwind label %918

913:                                              ; preds = %911
  %914 = getelementptr inbounds i8, ptr %25, i64 8
  %915 = load ptr, ptr %914, align 8, !tbaa !183
  %916 = load i32, ptr %25, align 8, !tbaa !184
  %917 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %915, i32 noundef %916, ptr noundef %900, ptr noundef %909, ptr noundef null)
          to label %920 unwind label %918

918:                                              ; preds = %920, %913, %911, %907
  %919 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 76, ptr nonnull %15) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  resume { ptr, i32 } %919

920:                                              ; preds = %913, %902
  %921 = getelementptr inbounds i8, ptr %.09261270, i64 84
  %922 = getelementptr inbounds i8, ptr %25, i64 8
  %923 = load ptr, ptr %922, align 8, !tbaa !183
  %924 = load i32, ptr %25, align 8
  %925 = add nsw i32 %924, -1
  %926 = select i1 %906, i32 %925, i32 0
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.09261270, ptr noundef nonnull %921, ptr noundef %923, i32 noundef %926)
          to label %927 unwind label %918

927:                                              ; preds = %920
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #14
  br label %.thread1207

928:                                              ; preds = %890
  br i1 %171, label %941, label %.thread1207

.thread1207:                                      ; preds = %898, %927, %896, %928
  %.09531215 = phi i1 [ false, %928 ], [ false, %898 ], [ true, %927 ], [ true, %896 ]
  %.09691213 = phi ptr [ null, %928 ], [ null, %898 ], [ %900, %927 ], [ @.str, %896 ]
  %.09741211 = phi i32 [ 0, %928 ], [ 0, %898 ], [ %905, %927 ], [ 0, %896 ]
  %929 = getelementptr inbounds i8, ptr %.09261270, i64 72
  store i8 1, ptr %929, align 8, !tbaa !133
  %930 = getelementptr inbounds i8, ptr %.09261270, i64 40
  %931 = getelementptr inbounds i8, ptr %.09261270, i64 24
  %932 = load i32, ptr %931, align 8, !tbaa !142
  %933 = shl nsw i32 %932, 2
  %934 = or disjoint i32 %933, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %930, i32 noundef %934)
  %935 = getelementptr inbounds i8, ptr %.09261270, i64 48
  %936 = load ptr, ptr %935, align 8, !tbaa !134
  %937 = load i32, ptr %930, align 8, !tbaa !185
  %938 = getelementptr inbounds i8, ptr %.09261270, i64 32
  %939 = load ptr, ptr %938, align 8, !tbaa !135
  %940 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %936, i32 noundef %937, ptr noundef %939, ptr noundef null)
  br label %941

941:                                              ; preds = %.thread1207, %928
  %.09531216 = phi i1 [ %.09531215, %.thread1207 ], [ false, %928 ]
  %.09691214 = phi ptr [ %.09691213, %.thread1207 ], [ null, %928 ]
  %.09741212 = phi i32 [ %.09741211, %.thread1207 ], [ 0, %928 ]
  br i1 %.19651289, label %942, label %.critedge1152

942:                                              ; preds = %941
  %943 = trunc nuw i8 %.29611290 to i1
  %944 = and i32 %5, 32
  %945 = icmp ne i32 %944, 0
  %946 = and i1 %945, %943
  br i1 %946, label %.critedge1152, label %1093

.critedge1152:                                    ; preds = %941, %942
  %947 = and i32 %5, 524736
  %.not1047 = icmp eq i32 %947, 0
  br i1 %.not1047, label %1085, label %948

948:                                              ; preds = %.critedge1152
  br i1 %176, label %950, label %949

949:                                              ; preds = %948
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.4, i32 noundef 4664, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

950:                                              ; preds = %948
  %951 = and i32 %5, 64
  %.not1048 = icmp eq i32 %951, 0
  br i1 %.not1048, label %954, label %952

952:                                              ; preds = %950
  %953 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %79, i32 noundef 0)
  br i1 %953, label %.thread1218, label %954

954:                                              ; preds = %952, %950
  %955 = and i32 %5, 128
  %.not1049 = icmp eq i32 %955, 0
  br i1 %.not1049, label %.critedge1154, label %956

956:                                              ; preds = %954
  %957 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %957, label %.thread1218, label %958

958:                                              ; preds = %956
  %959 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %959, label %.thread1218, label %.critedge1154

.critedge1154:                                    ; preds = %954, %958
  %960 = and i32 %5, 524288
  %.not1050 = icmp eq i32 %960, 0
  br i1 %.not1050, label %965, label %961

961:                                              ; preds = %.critedge1154
  %962 = getelementptr inbounds i8, ptr %.09261270, i64 3718
  %963 = load i8, ptr %962, align 2, !tbaa !152, !range !40, !noundef !41
  %964 = trunc nuw i8 %963 to i1
  br i1 %964, label %.thread1218, label %965

965:                                              ; preds = %.critedge1154, %961
  %966 = and i32 %5, 256
  %.not1051 = icmp eq i32 %966, 0
  br i1 %.not1051, label %1085, label %.thread1218

.thread1218:                                      ; preds = %961, %958, %956, %952, %965
  %.09791223 = phi i32 [ 0, %965 ], [ 0, %961 ], [ 516, %958 ], [ 515, %956 ], [ 512, %952 ]
  %.09801222 = phi i32 [ 256, %965 ], [ 524288, %961 ], [ 128, %958 ], [ 128, %956 ], [ 64, %952 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %26) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %26)
  store ptr %75, ptr %26, align 8, !tbaa !186
  %967 = getelementptr inbounds i8, ptr %26, i64 8
  store i32 %.09801222, ptr %967, align 8, !tbaa !189
  %968 = getelementptr inbounds i8, ptr %26, i64 12
  store i32 %spec.select, ptr %968, align 4, !tbaa !190
  %969 = getelementptr inbounds i8, ptr %26, i64 16
  store ptr %7, ptr %969, align 8, !tbaa !191
  br i1 %171, label %973, label %970

970:                                              ; preds = %.thread1218
  %971 = getelementptr inbounds i8, ptr %.09261270, i64 48
  %972 = load ptr, ptr %971, align 8, !tbaa !134
  br label %973

973:                                              ; preds = %.thread1218, %970
  %974 = phi ptr [ %972, %970 ], [ %2, %.thread1218 ]
  %975 = getelementptr inbounds i8, ptr %26, i64 28
  store i32 %.09791223, ptr %975, align 4, !tbaa !192
  %976 = getelementptr inbounds i8, ptr %26, i64 32
  store ptr %974, ptr %976, align 8, !tbaa !193
  %977 = getelementptr inbounds i8, ptr %.09261270, i64 16
  %978 = load i32, ptr %977, align 8, !tbaa !132
  %979 = getelementptr inbounds i8, ptr %26, i64 40
  store i32 %978, ptr %979, align 8, !tbaa !194
  %980 = getelementptr inbounds i8, ptr %.09261270, i64 76
  %981 = load i32, ptr %980, align 4, !tbaa !153
  %982 = getelementptr inbounds i8, ptr %26, i64 44
  store i32 %981, ptr %982, align 4, !tbaa !195
  %983 = getelementptr inbounds i8, ptr %26, i64 48
  store i8 0, ptr %983, align 8, !tbaa !196
  %984 = getelementptr inbounds i8, ptr %.09261270, i64 24
  %985 = getelementptr inbounds i8, ptr %.09261270, i64 32
  %986 = load ptr, ptr %985, align 8, !tbaa !135
  %987 = getelementptr inbounds i8, ptr %.09261270, i64 84
  %988 = load i32, ptr %987, align 4, !tbaa !164
  %989 = sext i32 %988 to i64
  %990 = getelementptr inbounds i16, ptr %986, i64 %989
  %991 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %986, ptr noundef %990)
  %992 = getelementptr inbounds i8, ptr %26, i64 52
  store i32 %991, ptr %992, align 4, !tbaa !197
  %993 = getelementptr inbounds i8, ptr %.09261270, i64 88
  %994 = load i32, ptr %993, align 4, !tbaa !165
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds i16, ptr %986, i64 %995
  %997 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %986, ptr noundef %996)
  %998 = getelementptr inbounds i8, ptr %26, i64 56
  store i32 %997, ptr %998, align 8, !tbaa !198
  %999 = getelementptr inbounds i8, ptr %.09261270, i64 92
  %1000 = load i32, ptr %999, align 4, !tbaa !166
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds i16, ptr %986, i64 %1001
  %1003 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %986, ptr noundef %1002)
  %1004 = getelementptr inbounds i8, ptr %26, i64 60
  store i32 %1003, ptr %1004, align 4, !tbaa !199
  %1005 = call noundef i32 %6(ptr noundef nonnull %26)
  br i1 %171, label %1009, label %1006

1006:                                             ; preds = %973
  %1007 = getelementptr inbounds i8, ptr %.09261270, i64 48
  %1008 = load ptr, ptr %1007, align 8, !tbaa !134
  br label %1009

1009:                                             ; preds = %973, %1006
  %1010 = phi ptr [ %1008, %1006 ], [ %2, %973 ]
  %1011 = load ptr, ptr %976, align 8, !tbaa !193
  %1012 = icmp eq ptr %1011, %1010
  br i1 %1012, label %1014, label %1013

1013:                                             ; preds = %1009
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.4, i32 noundef 4719, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1014:                                             ; preds = %1009
  %1015 = load i32, ptr %982, align 4, !tbaa !195
  %1016 = load i32, ptr %980, align 4, !tbaa !153
  %1017 = icmp eq i32 %1015, %1016
  br i1 %1017, label %1019, label %1018

1018:                                             ; preds = %1014
  call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.4, i32 noundef 4720, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1019:                                             ; preds = %1014
  %1020 = load i32, ptr %968, align 4, !tbaa !190
  %1021 = icmp eq i32 %1020, %spec.select
  br i1 %1021, label %1023, label %1022

1022:                                             ; preds = %1019
  call void @__assert_fail(ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.4, i32 noundef 4721, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1023:                                             ; preds = %1019
  %1024 = load i8, ptr %983, align 8, !tbaa !196, !range !40, !noundef !41
  %1025 = trunc nuw i8 %1024 to i1
  %1026 = load i32, ptr %992, align 4, !tbaa !197
  %.not1053 = icmp ne i32 %1026, %991
  %brmerge1157 = select i1 %.not1053, i1 true, i1 %1025
  br i1 %brmerge1157, label %1027, label %1032

1027:                                             ; preds = %1023
  %1028 = sext i32 %1026 to i64
  %1029 = getelementptr inbounds i8, ptr %1011, i64 %1028
  %1030 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1011, ptr noundef %1029)
  store i32 %1030, ptr %987, align 4, !tbaa !164
  %1031 = getelementptr inbounds i8, ptr %.09261270, i64 3716
  store i8 1, ptr %1031, align 4, !tbaa !167
  br label %1032

1032:                                             ; preds = %1023, %1027
  %1033 = load i32, ptr %998, align 8, !tbaa !198
  %.not1054 = icmp ne i32 %1033, %997
  %brmerge1158 = select i1 %.not1054, i1 true, i1 %1025
  br i1 %brmerge1158, label %1034, label %1046

1034:                                             ; preds = %1032
  %1035 = load i32, ptr %992, align 4, !tbaa !197
  %1036 = icmp eq i32 %1033, %1035
  br i1 %1036, label %1037, label %1039

1037:                                             ; preds = %1034
  %1038 = load i32, ptr %987, align 4, !tbaa !164
  br label %1044

1039:                                             ; preds = %1034
  %1040 = load ptr, ptr %976, align 8, !tbaa !193
  %1041 = sext i32 %1033 to i64
  %1042 = getelementptr inbounds i8, ptr %1040, i64 %1041
  %1043 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1040, ptr noundef %1042)
  br label %1044

1044:                                             ; preds = %1039, %1037
  %1045 = phi i32 [ %1038, %1037 ], [ %1043, %1039 ]
  store i32 %1045, ptr %993, align 4, !tbaa !165
  br label %1046

1046:                                             ; preds = %1032, %1044
  %1047 = load i32, ptr %1004, align 4, !tbaa !199
  %.not1055 = icmp ne i32 %1047, %1003
  %brmerge1159 = select i1 %.not1055, i1 true, i1 %1025
  br i1 %brmerge1159, label %1048, label %1060

1048:                                             ; preds = %1046
  %1049 = load i32, ptr %998, align 8, !tbaa !198
  %1050 = icmp eq i32 %1047, %1049
  br i1 %1050, label %1051, label %1053

1051:                                             ; preds = %1048
  %1052 = load i32, ptr %993, align 4, !tbaa !165
  br label %1058

1053:                                             ; preds = %1048
  %1054 = load ptr, ptr %976, align 8, !tbaa !193
  %1055 = sext i32 %1047 to i64
  %1056 = getelementptr inbounds i8, ptr %1054, i64 %1055
  %1057 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1054, ptr noundef %1056)
  br label %1058

1058:                                             ; preds = %1053, %1051
  %1059 = phi i32 [ %1052, %1051 ], [ %1057, %1053 ]
  store i32 %1059, ptr %999, align 4, !tbaa !166
  br label %1060

1060:                                             ; preds = %1046, %1058
  br i1 %1025, label %1061, label %1084

1061:                                             ; preds = %1060
  br i1 %171, label %1062, label %1063

1062:                                             ; preds = %1061
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.4, i32 noundef 4728, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1063:                                             ; preds = %1061
  %1064 = load i32, ptr %979, align 8, !tbaa !194
  %1065 = load ptr, ptr %976, align 8, !tbaa !193
  %1066 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1065) #15
  %1067 = trunc i64 %1066 to i32
  %1068 = icmp eq i32 %1064, %1067
  br i1 %1068, label %1070, label %1069

1069:                                             ; preds = %1063
  call void @__assert_fail(ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.4, i32 noundef 4729, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1070:                                             ; preds = %1063
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef nonnull %.09261270, ptr noundef %1065, i32 noundef %1064)
  %1071 = load i32, ptr %979, align 8, !tbaa !194
  %1072 = icmp sle i32 %1071, %.0962
  %brmerge1161 = or i1 %.not1019, %1072
  br i1 %brmerge1161, label %1077, label %1073

1073:                                             ; preds = %1070
  %1074 = load i32, ptr %984, align 8, !tbaa !142
  %1075 = sub i32 %1071, %.0962
  %1076 = add nsw i32 %1075, %1074
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %984, i32 noundef %1076)
  br label %1077

1077:                                             ; preds = %1070, %1073
  %1078 = load ptr, ptr %985, align 8, !tbaa !135
  %1079 = load i32, ptr %984, align 8, !tbaa !142
  %1080 = load ptr, ptr %976, align 8, !tbaa !193
  %1081 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %1078, i32 noundef %1079, ptr noundef %1080, ptr noundef null, ptr noundef null)
  %1082 = getelementptr inbounds i8, ptr %.09261270, i64 12
  store i32 %1081, ptr %1082, align 4, !tbaa !136
  %1083 = load i32, ptr %979, align 8, !tbaa !194
  store i32 %1083, ptr %977, align 8, !tbaa !132
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09261270)
  br label %1084

1084:                                             ; preds = %1077, %1060
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %26) #14
  br label %1085

1085:                                             ; preds = %965, %1084, %.critedge1152
  br i1 %171, label %1093, label %1086

1086:                                             ; preds = %1085
  %1087 = getelementptr inbounds i8, ptr %.09261270, i64 48
  %1088 = load ptr, ptr %1087, align 8, !tbaa !134
  %1089 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1088, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1056 = icmp eq i32 %1089, 0
  br i1 %.not1056, label %1093, label %1090

1090:                                             ; preds = %1086
  %1091 = getelementptr inbounds i8, ptr %.09261270, i64 16
  %1092 = load i32, ptr %1091, align 8, !tbaa !132
  br label %1093

1093:                                             ; preds = %942, %1090, %1086, %1085, %886
  %.39301298 = phi i8 [ %.3930, %886 ], [ %.39301299, %1085 ], [ %.39301299, %1090 ], [ %.39301299, %1086 ], [ %.39301299, %942 ]
  %.19361296 = phi float [ %.1936, %886 ], [ %.19361297, %1085 ], [ %.19361297, %1090 ], [ %.19361297, %1086 ], [ %.19361297, %942 ]
  %.19401294 = phi i8 [ %.1940, %886 ], [ %.19401295, %1085 ], [ %.19401295, %1090 ], [ %.19401295, %1086 ], [ %.19401295, %942 ]
  %.29431292 = phi i8 [ %.2943, %886 ], [ %.29431293, %1085 ], [ %.29431293, %1090 ], [ %.29431293, %1086 ], [ %.29431293, %942 ]
  %.29611291 = phi i8 [ %.2961, %886 ], [ %.29611290, %1085 ], [ %.29611290, %1090 ], [ %.29611290, %1086 ], [ %.29611290, %942 ]
  %.2976 = phi i32 [ 0, %886 ], [ %.09741212, %1085 ], [ %1092, %1090 ], [ %.09741212, %1086 ], [ %.09741212, %942 ]
  %.2971 = phi ptr [ null, %886 ], [ %.09691214, %1085 ], [ %1088, %1090 ], [ %.09691214, %1086 ], [ %.09691214, %942 ]
  %.2955 = phi i1 [ false, %886 ], [ %.09531216, %1085 ], [ true, %1090 ], [ %.09531216, %1086 ], [ %.09531216, %942 ]
  %1094 = getelementptr inbounds i8, ptr %75, i64 24408
  %1095 = load i32, ptr %1094, align 8, !tbaa !200
  %1096 = icmp eq i32 %1095, %79
  br i1 %1096, label %1097, label %1110

1097:                                             ; preds = %1093
  %1098 = load i32, ptr %179, align 4, !tbaa !116
  %.not1057 = icmp eq i32 %1098, %79
  br i1 %.not1057, label %1109, label %1099

1099:                                             ; preds = %1097
  %1100 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  %.not1162 = xor i1 %1100, true
  %brmerge1163 = or i1 %171, %.not1162
  br i1 %brmerge1163, label %1109, label %1101

1101:                                             ; preds = %1099
  %1102 = getelementptr inbounds i8, ptr %75, i64 24424
  %1103 = load ptr, ptr %1102, align 8, !tbaa !201
  %1104 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1103, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1058 = icmp eq i32 %1104, 0
  br i1 %.not1058, label %1109, label %1105

1105:                                             ; preds = %1101
  %1106 = getelementptr inbounds i8, ptr %75, i64 24416
  %1107 = load i32, ptr %1106, align 8, !tbaa !202
  %1108 = add nsw i32 %1107, -1
  br label %1109

1109:                                             ; preds = %1099, %1105, %1101, %1097
  %.3977 = phi i32 [ %1108, %1105 ], [ %.2976, %1101 ], [ %.2976, %1099 ], [ %.2976, %1097 ]
  %.3972 = phi ptr [ %1103, %1105 ], [ %.2971, %1101 ], [ %.2971, %1099 ], [ %.2971, %1097 ]
  %.3956 = phi i1 [ true, %1105 ], [ %.2955, %1101 ], [ %.2955, %1099 ], [ %.2955, %1097 ]
  store i32 0, ptr %1094, align 8, !tbaa !200
  br label %1110

1110:                                             ; preds = %1109, %1093
  %.4978 = phi i32 [ %.3977, %1109 ], [ %.2976, %1093 ]
  %.4973 = phi ptr [ %.3972, %1109 ], [ %.2971, %1093 ]
  %.4957 = phi i1 [ %.3956, %1109 ], [ %.2955, %1093 ]
  %.not1059 = icmp eq ptr %.4973, null
  br i1 %.not1059, label %1136, label %1111

1111:                                             ; preds = %1110
  %1112 = icmp sgt i32 %.4978, -1
  br i1 %1112, label %1114, label %1113

1113:                                             ; preds = %1111
  call void @__assert_fail(ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.4, i32 noundef 4769, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1114:                                             ; preds = %1111
  br i1 %.not1019, label %1132, label %1115

1115:                                             ; preds = %1114
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %27) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %27)
  store ptr %75, ptr %27, align 8, !tbaa !186
  %1116 = getelementptr inbounds i8, ptr %27, i64 8
  store i32 262144, ptr %1116, align 8, !tbaa !189
  %1117 = getelementptr inbounds i8, ptr %27, i64 12
  store i32 %spec.select, ptr %1117, align 4, !tbaa !190
  %1118 = getelementptr inbounds i8, ptr %27, i64 32
  store ptr %2, ptr %1118, align 8, !tbaa !193
  %1119 = getelementptr inbounds i8, ptr %27, i64 40
  store i32 %.4978, ptr %1119, align 8, !tbaa !194
  %1120 = add nuw nsw i32 %.4978, 1
  %1121 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3, i32 noundef %1120)
  %1122 = getelementptr inbounds i8, ptr %27, i64 44
  store i32 %1121, ptr %1122, align 4, !tbaa !195
  %1123 = getelementptr inbounds i8, ptr %27, i64 16
  store ptr %7, ptr %1123, align 8, !tbaa !191
  %1124 = call noundef i32 %6(ptr noundef nonnull %27)
  %1125 = load ptr, ptr %1118, align 8, !tbaa !193
  %1126 = load i32, ptr %1122, align 4, !tbaa !195
  %1127 = load i32, ptr %1119, align 8, !tbaa !194
  %1128 = add nsw i32 %1126, -1
  %1129 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1127, i32 noundef %1128)
  %.not1060 = icmp sgt i32 %1129, %1126
  br i1 %.not1060, label %1130, label %1131

1130:                                             ; preds = %1115
  call void @__assert_fail(ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.4, i32 noundef 4784, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1131:                                             ; preds = %1115
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #14
  br label %1132

1132:                                             ; preds = %1131, %1114
  %.5 = phi i32 [ %1129, %1131 ], [ %.4978, %1114 ]
  %.0919 = phi i32 [ %1126, %1131 ], [ %3, %1114 ]
  %.0917 = phi ptr [ %1125, %1131 ], [ %2, %1114 ]
  %1133 = add nsw i32 %.5, 1
  %1134 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1133, i32 noundef %.0919)
  %1135 = sext i32 %1134 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %.0917, ptr noundef nonnull %.4973, i64 noundef %1135)
  br label %1136

1136:                                             ; preds = %1132, %1110
  %.1918 = phi ptr [ %.0917, %1132 ], [ %2, %1110 ]
  %1137 = load i32, ptr %179, align 4, !tbaa !116
  %1138 = icmp eq i32 %1137, %79
  br i1 %1138, label %1139, label %1144

1139:                                             ; preds = %1136
  %1140 = trunc nuw i8 %.39301298 to i1
  br i1 %1140, label %1141, label %1142

1141:                                             ; preds = %1139
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %1144

1142:                                             ; preds = %1139
  %1143 = getelementptr inbounds i8, ptr %75, i64 25676
  store i32 1, ptr %1143, align 4, !tbaa !203
  br label %1144

1144:                                             ; preds = %1136, %1142, %1141
  br i1 %67, label %1150, label %1145

1145:                                             ; preds = %1144
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %79, i32 noundef 1)
  %.sroa.091.0.copyload = load <2 x float>, ptr %11, align 8
  %1146 = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.090.0.copyload = load <2 x float>, ptr %1146, align 8
  %1147 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %1148 = getelementptr inbounds i8, ptr %75, i64 14908
  %1149 = load float, ptr %1148, align 4, !tbaa !117
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.091.0.copyload, <2 x float> %.sroa.090.0.copyload, i32 noundef %1147, i1 noundef zeroext true, float noundef %1149)
  br label %1150

1150:                                             ; preds = %1145, %1144
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #14
  %1151 = load float, ptr %11, align 8, !tbaa !157
  %1152 = getelementptr inbounds i8, ptr %11, i64 4
  %1153 = load float, ptr %1152, align 4, !tbaa !204
  %1154 = fadd float %.sroa.0531.2, %1151
  %1155 = fadd float %.sroa.11.0.copyload, %1153
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %28, float noundef %1151, float noundef %1153, float noundef %1154, float noundef %1155)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  br i1 %67, label %1156, label %1159

1156:                                             ; preds = %1150
  %1157 = getelementptr inbounds i8, ptr %.2925, i64 320
  %1158 = load i64, ptr %1157, align 8
  br label %1162

1159:                                             ; preds = %1150
  %1160 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %89)
  %1161 = bitcast <2 x float> %1160 to i64
  br label %1162

1162:                                             ; preds = %1159, %1156
  %storemerge = phi i64 [ %1158, %1156 ], [ %1161, %1159 ]
  store i64 %storemerge, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %30, float noundef 0.000000e+00, float noundef 0.000000e+00)
  br i1 %383, label %1163, label %1166

1163:                                             ; preds = %1162
  %1164 = getelementptr inbounds i8, ptr %.09261270, i64 48
  %1165 = load ptr, ptr %1164, align 8, !tbaa !134
  br label %1166

1166:                                             ; preds = %1162, %1163
  %1167 = phi ptr [ %1165, %1163 ], [ %.1918, %1162 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  store ptr null, ptr %31, align 8, !tbaa !42
  br i1 %393, label %1168, label %1171

1168:                                             ; preds = %1166
  %1169 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #15
  %1170 = getelementptr inbounds i8, ptr %1, i64 %1169
  store ptr %1170, ptr %31, align 8, !tbaa !42
  br label %1171

1171:                                             ; preds = %1168, %1166
  %1172 = phi ptr [ %1170, %1168 ], [ null, %1166 ]
  %.0958 = phi ptr [ %1, %1168 ], [ %1167, %1166 ]
  %1173 = trunc nuw i8 %.19401294 to i1
  br i1 %1173, label %1176, label %1174

1174:                                             ; preds = %1171
  %1175 = trunc nuw i8 %.29431292 to i1
  br i1 %1175, label %1176, label %1442

1176:                                             ; preds = %1174, %1171
  br i1 %349, label %1178, label %1177

1177:                                             ; preds = %1176
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4826, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1178:                                             ; preds = %1176
  br i1 %393, label %1184, label %1179

1179:                                             ; preds = %1178
  %1180 = getelementptr inbounds i8, ptr %.09261270, i64 16
  %1181 = load i32, ptr %1180, align 8, !tbaa !132
  %1182 = sext i32 %1181 to i64
  %1183 = getelementptr inbounds i8, ptr %.0958, i64 %1182
  store ptr %1183, ptr %31, align 8, !tbaa !42
  br label %1184

1184:                                             ; preds = %1179, %1178
  %.pre12531255 = phi ptr [ %1183, %1179 ], [ %1172, %1178 ]
  %1185 = getelementptr inbounds i8, ptr %.09261270, i64 32
  %1186 = load ptr, ptr %1185, align 8, !tbaa !135
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %32)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %33)
  %.sroa.062.0.copyload = load i32, ptr @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, align 4
  %.sroa.9.0.copyload = load i32, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, i64 4), align 4
  br i1 %1173, label %1187, label %1192

1187:                                             ; preds = %1184
  %1188 = getelementptr inbounds i8, ptr %.09261270, i64 84
  %1189 = load i32, ptr %1188, align 4, !tbaa !164
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds i16, ptr %1186, i64 %1190
  br label %1192

1192:                                             ; preds = %1187, %1184
  %.sroa.068.0 = phi ptr [ %1191, %1187 ], [ null, %1184 ]
  %.sroa.062.0 = phi i32 [ -1, %1187 ], [ %.sroa.062.0.copyload, %1184 ]
  %.0948 = phi i32 [ 1, %1187 ], [ 0, %1184 ]
  %1193 = trunc nuw i8 %.29431292 to i1
  br i1 %1193, label %1194, label %1203

1194:                                             ; preds = %1192
  %1195 = getelementptr inbounds i8, ptr %.09261270, i64 88
  %1196 = load i32, ptr %1195, align 4, !tbaa !165
  %1197 = getelementptr inbounds i8, ptr %.09261270, i64 92
  %1198 = load i32, ptr %1197, align 4, !tbaa !166
  %1199 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1196, i32 noundef %1198)
  %1200 = sext i32 %1199 to i64
  %1201 = getelementptr inbounds i16, ptr %1186, i64 %1200
  %1202 = add nuw nsw i32 %.0948, 1
  br label %1203

1203:                                             ; preds = %1194, %1192
  %.sroa.7.0 = phi ptr [ %1201, %1194 ], [ null, %1192 ]
  %.sroa.9.0 = phi i32 [ -1, %1194 ], [ %.sroa.9.0.copyload, %1192 ]
  %.1949 = phi i32 [ %1202, %1194 ], [ %.0948, %1192 ]
  %.lobit = lshr exact i32 %66, 26
  %1204 = add nuw nsw i32 %.1949, %.lobit
  br label %1205

1205:                                             ; preds = %1220, %1203
  %.sroa.9.1 = phi i32 [ %.sroa.9.0, %1203 ], [ %.sroa.9.2, %1220 ]
  %.sroa.062.1 = phi i32 [ %.sroa.062.0, %1203 ], [ %.sroa.062.3, %1220 ]
  %.2950 = phi i32 [ %1204, %1203 ], [ %.4952, %1220 ]
  %.0945 = phi i32 [ 0, %1203 ], [ %.1946, %1220 ]
  %.0944 = phi ptr [ %1186, %1203 ], [ %1221, %1220 ]
  %1206 = load i16, ptr %.0944, align 2, !tbaa !162
  switch i16 %1206, label %1220 [
    i16 0, label %1222
    i16 10, label %1207
  ]

1207:                                             ; preds = %1205
  %1208 = add nsw i32 %.0945, 1
  %1209 = icmp eq i32 %.sroa.062.1, -1
  br i1 %1209, label %1210, label %1214

1210:                                             ; preds = %1207
  %.not1062 = icmp ult ptr %.0944, %.sroa.068.0
  br i1 %.not1062, label %1214, label %1211

1211:                                             ; preds = %1210
  %1212 = add nsw i32 %.2950, -1
  %1213 = icmp slt i32 %.2950, 2
  br i1 %1213, label %1222, label %1214

1214:                                             ; preds = %1211, %1210, %1207
  %.sroa.062.2 = phi i32 [ %1208, %1211 ], [ -1, %1210 ], [ %.sroa.062.1, %1207 ]
  %.3951 = phi i32 [ %1212, %1211 ], [ %.2950, %1210 ], [ %.2950, %1207 ]
  %1215 = icmp eq i32 %.sroa.9.1, -1
  br i1 %1215, label %1216, label %1220

1216:                                             ; preds = %1214
  %.not1063 = icmp ult ptr %.0944, %.sroa.7.0
  br i1 %.not1063, label %1220, label %1217

1217:                                             ; preds = %1216
  %1218 = add nsw i32 %.3951, -1
  %1219 = icmp slt i32 %.3951, 2
  br i1 %1219, label %1222, label %1220

1220:                                             ; preds = %1205, %1217, %1216, %1214
  %.sroa.9.2 = phi i32 [ %1208, %1217 ], [ -1, %1216 ], [ %.sroa.9.1, %1214 ], [ %.sroa.9.1, %1205 ]
  %.sroa.062.3 = phi i32 [ %.sroa.062.2, %1217 ], [ %.sroa.062.2, %1216 ], [ %.sroa.062.2, %1214 ], [ %.sroa.062.1, %1205 ]
  %.4952 = phi i32 [ %1218, %1217 ], [ %.3951, %1216 ], [ %.3951, %1214 ], [ %.2950, %1205 ]
  %.1946 = phi i32 [ %1208, %1217 ], [ %1208, %1216 ], [ %1208, %1214 ], [ %.0945, %1205 ]
  %1221 = getelementptr inbounds i8, ptr %.0944, i64 2
  br label %1205, !llvm.loop !205

1222:                                             ; preds = %1217, %1211, %1205
  %.sroa.9.3 = phi i32 [ %.sroa.9.1, %1205 ], [ %.sroa.9.1, %1211 ], [ %1208, %1217 ]
  %.sroa.062.4 = phi i32 [ %.sroa.062.1, %1205 ], [ %1208, %1211 ], [ %.sroa.062.2, %1217 ]
  %.2947 = phi i32 [ %.0945, %1205 ], [ %1208, %1211 ], [ %1208, %1217 ]
  %1223 = add nsw i32 %.2947, 1
  %1224 = icmp eq i32 %.sroa.062.4, -1
  %spec.select1164 = select i1 %1224, i32 %1223, i32 %.sroa.062.4
  %1225 = icmp eq i32 %.sroa.9.3, -1
  %.sroa.9.4 = select i1 %1225, i32 %1223, i32 %.sroa.9.3
  %1226 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.068.0, ptr noundef %1186)
  %1227 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %75, ptr noundef %1226, ptr noundef %.sroa.068.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.044.0.vec.extract = extractelement <2 x float> %1227, i64 0
  store float %.sroa.044.0.vec.extract, ptr %32, align 4, !tbaa !206
  %1228 = sitofp i32 %spec.select1164 to float
  %1229 = getelementptr inbounds i8, ptr %75, i64 15992
  %1230 = load float, ptr %1229, align 8, !tbaa !43
  %1231 = fmul float %1230, %1228
  %1232 = getelementptr inbounds i8, ptr %32, i64 4
  store float %1231, ptr %1232, align 4, !tbaa !207
  %1233 = icmp sgt i32 %.sroa.9.4, -1
  br i1 %1233, label %1234, label %1241

1234:                                             ; preds = %1222
  %1235 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.7.0, ptr noundef %1186)
  %1236 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %75, ptr noundef %1235, ptr noundef %.sroa.7.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.043.0.vec.extract = extractelement <2 x float> %1236, i64 0
  store float %.sroa.043.0.vec.extract, ptr %33, align 4, !tbaa !206
  %1237 = uitofp nneg i32 %.sroa.9.4 to float
  %1238 = load float, ptr %1229, align 8, !tbaa !43
  %1239 = fmul float %1238, %1237
  %1240 = getelementptr inbounds i8, ptr %33, i64 4
  store float %1239, ptr %1240, align 4, !tbaa !207
  br label %1241

1241:                                             ; preds = %1234, %1222
  %1242 = phi float [ %1238, %1234 ], [ %1230, %1222 ]
  br i1 %67, label %1243, label %1247

1243:                                             ; preds = %1241
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  %1244 = sitofp i32 %1223 to float
  %1245 = fmul float %1242, %1244
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %.sroa.0531.2, float noundef %1245)
  %1246 = load i64, ptr %34, align 8
  store i64 %1246, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  br label %1247

1247:                                             ; preds = %1243, %1241
  br i1 %1173, label %1248, label %1308

1248:                                             ; preds = %1247
  %1249 = getelementptr inbounds i8, ptr %.09261270, i64 3716
  %1250 = load i8, ptr %1249, align 4, !tbaa !167, !range !40, !noundef !41
  %1251 = trunc nuw i8 %1250 to i1
  br i1 %1251, label %1252, label %1308

1252:                                             ; preds = %1248
  %1253 = and i32 %5, 4096
  %.not1064 = icmp eq i32 %1253, 0
  br i1 %.not1064, label %1254, label %1274

1254:                                             ; preds = %1252
  %1255 = fmul float %.sroa.0531.2, 2.500000e-01
  %1256 = load float, ptr %32, align 4, !tbaa !206
  %1257 = getelementptr inbounds i8, ptr %.09261270, i64 80
  %1258 = load float, ptr %1257, align 8, !tbaa !137
  %1259 = fcmp olt float %1256, %1258
  br i1 %1259, label %1260, label %1265

1260:                                             ; preds = %1254
  %1261 = fsub float %1256, %1255
  %1262 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1261)
  %1263 = fptosi float %1262 to i32
  %1264 = sitofp i32 %1263 to float
  store float %1264, ptr %1257, align 8, !tbaa !137
  br label %1276

1265:                                             ; preds = %1254
  %1266 = load float, ptr %89, align 4, !tbaa !158
  %1267 = fsub float %.sroa.0531.2, %1266
  %1268 = fsub float %1256, %1267
  %1269 = fcmp ult float %1268, %1258
  br i1 %1269, label %1276, label %1270

1270:                                             ; preds = %1265
  %1271 = fadd float %1255, %1268
  %1272 = fptosi float %1271 to i32
  %1273 = sitofp i32 %1272 to float
  store float %1273, ptr %1257, align 8, !tbaa !137
  br label %1276

1274:                                             ; preds = %1252
  %1275 = getelementptr inbounds i8, ptr %.09261270, i64 80
  store float 0.000000e+00, ptr %1275, align 8, !tbaa !137
  br label %1276

1276:                                             ; preds = %1260, %1270, %1265, %1274
  br i1 %67, label %1277, label %1307

1277:                                             ; preds = %1276
  %1278 = load float, ptr %1232, align 4, !tbaa !207
  %1279 = load float, ptr %1229, align 8, !tbaa !43
  %1280 = fsub float %1278, %1279
  %1281 = fcmp olt float %1280, %.19361296
  br i1 %1281, label %1282, label %1284

1282:                                             ; preds = %1277
  %1283 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1280)
  %.pre1248 = load float, ptr %90, align 4, !tbaa !109
  br label %1293

1284:                                             ; preds = %1277
  %1285 = load float, ptr %90, align 4, !tbaa !109
  %1286 = fneg float %1285
  %1287 = call float @llvm.fmuladd.f32(float %1286, float 2.000000e+00, float %.sroa.11.0.copyload)
  %1288 = fsub float %1278, %1287
  %1289 = fcmp ult float %1288, %.19361296
  br i1 %1289, label %1293, label %1290

1290:                                             ; preds = %1284
  %1291 = fsub float %1278, %.sroa.11.0.copyload
  %1292 = call float @llvm.fmuladd.f32(float %1285, float 2.000000e+00, float %1291)
  br label %1293

1293:                                             ; preds = %1284, %1290, %1282
  %1294 = phi float [ %.pre1248, %1282 ], [ %1285, %1290 ], [ %1285, %1284 ]
  %.2937 = phi float [ %1283, %1282 ], [ %1292, %1290 ], [ %.19361296, %1284 ]
  %1295 = getelementptr inbounds i8, ptr %30, i64 4
  %1296 = load float, ptr %1295, align 4, !tbaa !207
  %1297 = call float @llvm.fmuladd.f32(float %1294, float 2.000000e+00, float %1296)
  %1298 = fsub float %1297, %.sroa.11.0.copyload
  %1299 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1298, float noundef 0.000000e+00)
  %1300 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %.2937, float noundef 0.000000e+00, float noundef %1299)
  %1301 = getelementptr inbounds i8, ptr %.2925, i64 196
  %1302 = load float, ptr %1301, align 4, !tbaa !128
  %1303 = fsub float %1302, %1300
  %1304 = getelementptr inbounds i8, ptr %29, i64 4
  %1305 = load float, ptr %1304, align 4, !tbaa !207
  %1306 = fadd float %1305, %1303
  store float %1306, ptr %1304, align 4, !tbaa !207
  store float %1300, ptr %1301, align 4, !tbaa !128
  br label %1307

1307:                                             ; preds = %1293, %1276
  store i8 0, ptr %1249, align 4, !tbaa !167
  br label %1308

1308:                                             ; preds = %1307, %1248, %1247
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  %1309 = getelementptr inbounds i8, ptr %.09261270, i64 80
  %1310 = load float, ptr %1309, align 8, !tbaa !137
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %1310, float noundef 0.000000e+00)
  br i1 %1193, label %1311, label %1380

1311:                                             ; preds = %1308
  %1312 = getelementptr inbounds i8, ptr %.09261270, i64 88
  %1313 = load i32, ptr %1312, align 4, !tbaa !165
  %1314 = getelementptr inbounds i8, ptr %.09261270, i64 92
  %1315 = load i32, ptr %1314, align 4, !tbaa !166
  %1316 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1313, i32 noundef %1315)
  %1317 = sext i32 %1316 to i64
  %1318 = getelementptr inbounds i16, ptr %1186, i64 %1317
  %1319 = load i32, ptr %1312, align 4, !tbaa !165
  %1320 = load i32, ptr %1314, align 4, !tbaa !166
  %1321 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1319, i32 noundef %1320)
  %1322 = sext i32 %1321 to i64
  %1323 = getelementptr inbounds i16, ptr %1186, i64 %1322
  %1324 = select i1 %1173, float 1.000000e+00, float 0x3FE3333340000000
  %1325 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 49, float noundef %1324)
  %1326 = select i1 %67, float 0.000000e+00, float -1.000000e+00
  %1327 = select i1 %67, float 0.000000e+00, float 2.000000e+00
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #14
  %1328 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %1328, ptr %37, align 8
  %1329 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %37, ptr noundef nonnull align 4 dereferenceable(8) %35)
  store <2 x float> %1329, ptr %36, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #14
  store ptr %1318, ptr %38, align 8, !tbaa !42
  %1330 = getelementptr inbounds i8, ptr %36, i64 4
  %1331 = icmp slt i32 %1316, %1321
  br i1 %1331, label %.lr.ph1240, label %._crit_edge1241

.lr.ph1240:                                       ; preds = %1311
  %1332 = extractelement <2 x float> %1329, i64 1
  %1333 = getelementptr inbounds i8, ptr %28, i64 12
  %1334 = getelementptr inbounds i8, ptr %28, i64 4
  %1335 = getelementptr inbounds i8, ptr %75, i64 15984
  %1336 = getelementptr inbounds i8, ptr %.2925, i64 736
  %1337 = getelementptr inbounds i8, ptr %39, i64 8
  %.pre1249 = load float, ptr %1229, align 8, !tbaa !43
  br label %1338

1338:                                             ; preds = %.lr.ph1240, %.loopexit
  %1339 = phi ptr [ %1318, %.lr.ph1240 ], [ %1372, %.loopexit ]
  %1340 = phi float [ %1332, %.lr.ph1240 ], [ %1378, %.loopexit ]
  %1341 = phi float [ %.pre1249, %.lr.ph1240 ], [ %1374, %.loopexit ]
  %1342 = load float, ptr %1333, align 4, !tbaa !208
  %1343 = fadd float %1342, %1341
  %1344 = fcmp ogt float %1340, %1343
  br i1 %1344, label %._crit_edge1241.loopexit, label %1345

1345:                                             ; preds = %1338
  %1346 = load float, ptr %1334, align 4, !tbaa !209
  %1347 = fcmp olt float %1340, %1346
  br i1 %1347, label %.preheader, label %1354

.preheader:                                       ; preds = %1345, %1350
  %1348 = phi ptr [ %1351, %1350 ], [ %1339, %1345 ]
  %1349 = icmp ult ptr %1348, %1323
  br i1 %1349, label %1350, label %.loopexit

1350:                                             ; preds = %.preheader
  %1351 = getelementptr inbounds i8, ptr %1348, i64 2
  store ptr %1351, ptr %38, align 8, !tbaa !42
  %1352 = load i16, ptr %1348, align 2, !tbaa !162
  %1353 = icmp eq i16 %1352, 10
  br i1 %1353, label %.loopexit, label %.preheader, !llvm.loop !210

1354:                                             ; preds = %1345
  %1355 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %75, ptr noundef %1339, ptr noundef nonnull %1323, ptr noundef nonnull %38, ptr noundef null, i1 noundef zeroext true)
  %.sroa.028.0.vec.extract = extractelement <2 x float> %1355, i64 0
  %1356 = fcmp ugt float %.sroa.028.0.vec.extract, 0.000000e+00
  br i1 %1356, label %1363, label %1357

1357:                                             ; preds = %1354
  %1358 = load ptr, ptr %1335, align 8, !tbaa !144
  %1359 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %1358, i16 noundef zeroext 32)
  %1360 = fmul float %1359, 5.000000e-01
  %1361 = fptosi float %1360 to i32
  %1362 = sitofp i32 %1361 to float
  br label %1363

1363:                                             ; preds = %1357, %1354
  %.sroa.028.0.vec.extract31.pre-phi = phi float [ %1362, %1357 ], [ %.sroa.028.0.vec.extract, %1354 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #14
  %1364 = load float, ptr %1229, align 8, !tbaa !43
  %1365 = fsub float %1326, %1364
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef 0.000000e+00, float noundef %1365)
  %1366 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %36, ptr noundef nonnull align 4 dereferenceable(8) %41)
  store <2 x float> %1366, ptr %40, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef %.sroa.028.0.vec.extract31.pre-phi, float noundef %1327)
  %1367 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %36, ptr noundef nonnull align 4 dereferenceable(8) %43)
  store <2 x float> %1367, ptr %42, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(8) %42)
  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
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %44) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %44, ptr noundef nonnull align 4 dereferenceable(16) %28)
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(16) %44)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %45, ptr noundef nonnull align 4 dereferenceable(16) %28)
  %1368 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %39, ptr noundef nonnull align 4 dereferenceable(16) %45)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #14
  br i1 %1368, label %1369, label %1371

1369:                                             ; preds = %1363
  %1370 = load ptr, ptr %1336, align 8, !tbaa !211
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1370, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %1337, i32 noundef %1325, float noundef 0.000000e+00, i32 noundef 0)
  br label %1371

1371:                                             ; preds = %1369, %1363
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #14
  %.pre1250 = load float, ptr %1229, align 8, !tbaa !43
  %.pre1251 = load float, ptr %1330, align 4, !tbaa !207
  %.pre1252 = load ptr, ptr %38, align 8, !tbaa !42
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader, %1350, %1371
  %1372 = phi ptr [ %.pre1252, %1371 ], [ %1348, %.preheader ], [ %1351, %1350 ]
  %1373 = phi float [ %.pre1251, %1371 ], [ %1340, %1350 ], [ %1340, %.preheader ]
  %1374 = phi float [ %.pre1250, %1371 ], [ %1341, %1350 ], [ %1341, %.preheader ]
  %1375 = load float, ptr %29, align 8, !tbaa !206
  %1376 = load float, ptr %35, align 4, !tbaa !206
  %1377 = fsub float %1375, %1376
  store float %1377, ptr %36, align 8, !tbaa !206
  %1378 = fadd float %1374, %1373
  store float %1378, ptr %1330, align 4, !tbaa !207
  %1379 = icmp ult ptr %1372, %1323
  br i1 %1379, label %1338, label %._crit_edge1241.loopexit, !llvm.loop !212

._crit_edge1241.loopexit:                         ; preds = %1338, %.loopexit
  %.pre1253.pre.pre = load ptr, ptr %31, align 8, !tbaa !42
  br label %._crit_edge1241

._crit_edge1241:                                  ; preds = %._crit_edge1241.loopexit, %1311
  %.pre1253.pre = phi ptr [ %.pre1253.pre.pre, %._crit_edge1241.loopexit ], [ %.pre12531255, %1311 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #14
  br label %1380

1380:                                             ; preds = %._crit_edge1241, %1308
  %.pre1253 = phi ptr [ %.pre1253.pre, %._crit_edge1241 ], [ %.pre12531255, %1308 ]
  br i1 %67, label %1386, label %1381

1381:                                             ; preds = %1380
  %1382 = ptrtoint ptr %.pre1253 to i64
  %1383 = ptrtoint ptr %.0958 to i64
  %1384 = sub i64 %1382, %1383
  %1385 = icmp slt i64 %1384, 2097152
  br i1 %1385, label %1386, label %1395

1386:                                             ; preds = %1381, %1380
  %. = phi ptr [ %28, %1381 ], [ null, %1380 ]
  %1387 = zext i1 %393 to i32
  %1388 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1387, float noundef 1.000000e+00)
  %1389 = getelementptr inbounds i8, ptr %.2925, i64 736
  %1390 = load ptr, ptr %1389, align 8, !tbaa !211
  %1391 = getelementptr inbounds i8, ptr %75, i64 15984
  %1392 = load ptr, ptr %1391, align 8, !tbaa !144
  %1393 = load float, ptr %1229, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  %1394 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %35)
  store <2 x float> %1394, ptr %46, align 8
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1390, ptr noundef %1392, float noundef %1393, ptr noundef nonnull align 4 dereferenceable(8) %46, i32 noundef %1388, ptr noundef %.0958, ptr noundef %.pre1253, float noundef 0.000000e+00, ptr noundef %.)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  br label %1395

1395:                                             ; preds = %1386, %1381
  br i1 %1173, label %1396, label %1441

1396:                                             ; preds = %1395
  %1397 = getelementptr inbounds i8, ptr %75, i64 24
  %1398 = load float, ptr %1397, align 8, !tbaa !213
  %1399 = getelementptr inbounds i8, ptr %.09261270, i64 3712
  %1400 = load float, ptr %1399, align 8, !tbaa !214
  %1401 = fadd float %1398, %1400
  store float %1401, ptr %1399, align 8, !tbaa !214
  %1402 = getelementptr inbounds i8, ptr %75, i64 99
  %1403 = load i8, ptr %1402, align 1, !tbaa !215, !range !40, !noundef !41
  %1404 = trunc nuw i8 %1403 to i1
  %1405 = fcmp ugt float %1401, 0.000000e+00
  %or.cond1165 = select i1 %1404, i1 %1405, i1 false
  br i1 %or.cond1165, label %1406, label %1409

1406:                                             ; preds = %1396
  %1407 = call float @fmodf(float noundef %1401, float noundef 0x3FF3333340000000) #14
  %1408 = fcmp ole float %1407, 0x3FE99999A0000000
  br label %1409

1409:                                             ; preds = %1406, %1396
  %1410 = phi i1 [ true, %1396 ], [ %1408, %1406 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  %1411 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %29, ptr noundef nonnull align 4 dereferenceable(8) %32)
  store <2 x float> %1411, ptr %48, align 8
  %1412 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %48, ptr noundef nonnull align 4 dereferenceable(8) %35)
  store <2 x float> %1412, ptr %47, align 8
  %1413 = call <2 x float> @_ZL7ImTruncRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %47)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #14
  %.sroa.0.0.vec.extract = extractelement <2 x float> %1413, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1413, i64 1
  %1414 = load float, ptr %1229, align 8, !tbaa !43
  %1415 = fsub float %.sroa.0.4.vec.extract, %1414
  %1416 = fadd float %1415, 5.000000e-01
  %1417 = fadd float %.sroa.0.0.vec.extract, 1.000000e+00
  %1418 = fadd float %.sroa.0.4.vec.extract, -1.500000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %49, float noundef %.sroa.0.0.vec.extract, float noundef %1416, float noundef %1417, float noundef %1418)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #14
  br i1 %1410, label %1419, label %.critedge13

1419:                                             ; preds = %1409
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %50, ptr noundef nonnull align 4 dereferenceable(16) %28)
  %1420 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %49, ptr noundef nonnull align 4 dereferenceable(16) %50)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #14
  br i1 %1420, label %1421, label %1426

1421:                                             ; preds = %1419
  %1422 = getelementptr inbounds i8, ptr %.2925, i64 736
  %1423 = load ptr, ptr %1422, align 8, !tbaa !211
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  %1424 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %49)
  store <2 x float> %1424, ptr %51, align 8
  %1425 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1423, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %51, i32 noundef %1425, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  br label %1426

.critedge13:                                      ; preds = %1409
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #14
  br label %1426

1426:                                             ; preds = %.critedge13, %1421, %1419
  br i1 %171, label %1440, label %1427

1427:                                             ; preds = %1426
  %1428 = getelementptr inbounds i8, ptr %75, i64 24840
  store i8 1, ptr %1428, align 8, !tbaa !216
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  %1429 = fadd float %.sroa.0.0.vec.extract, -1.000000e+00
  %1430 = load float, ptr %1229, align 8, !tbaa !43
  %1431 = fsub float %.sroa.0.4.vec.extract, %1430
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef %1429, float noundef %1431)
  %1432 = getelementptr inbounds i8, ptr %75, i64 24844
  %1433 = load i64, ptr %52, align 8
  store i64 %1433, ptr %1432, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  %1434 = load float, ptr %1229, align 8, !tbaa !43
  %1435 = getelementptr inbounds i8, ptr %75, i64 24852
  store float %1434, ptr %1435, align 4, !tbaa !217
  %1436 = getelementptr inbounds i8, ptr %56, i64 64
  %1437 = load ptr, ptr %1436, align 8, !tbaa !218
  %1438 = load i32, ptr %1437, align 8, !tbaa !219
  %1439 = getelementptr inbounds i8, ptr %75, i64 24872
  store i32 %1438, ptr %1439, align 8, !tbaa !221
  br label %1440

1440:                                             ; preds = %1427, %1426
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #14
  br label %1441

1441:                                             ; preds = %1440, %1395
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #14
  br label %1477

1442:                                             ; preds = %1174
  br i1 %67, label %.critedge1167, label %1443

1443:                                             ; preds = %1442
  br i1 %393, label %1461, label %1444

1444:                                             ; preds = %1443
  %1445 = load i32, ptr %179, align 4, !tbaa !116
  %1446 = icmp eq i32 %1445, %79
  br i1 %1446, label %1447, label %1452

1447:                                             ; preds = %1444
  %1448 = getelementptr inbounds i8, ptr %.09261270, i64 16
  %1449 = load i32, ptr %1448, align 8, !tbaa !132
  %1450 = sext i32 %1449 to i64
  %1451 = getelementptr inbounds i8, ptr %.0958, i64 %1450
  store ptr %1451, ptr %31, align 8, !tbaa !42
  br label %1461

1452:                                             ; preds = %1444
  %1453 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.0958) #15
  %1454 = getelementptr inbounds i8, ptr %.0958, i64 %1453
  store ptr %1454, ptr %31, align 8, !tbaa !42
  br label %1461

.critedge1167:                                    ; preds = %1442
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  %1455 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %.0958, ptr noundef nonnull %31)
  %1456 = sitofp i32 %1455 to float
  %1457 = getelementptr inbounds i8, ptr %75, i64 15992
  %1458 = load float, ptr %1457, align 8, !tbaa !43
  %1459 = fmul float %1458, %1456
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef %.sroa.0531.2, float noundef %1459)
  %1460 = load i64, ptr %53, align 8
  store i64 %1460, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  br label %1467

1461:                                             ; preds = %1443, %1447, %1452
  %1462 = phi ptr [ %1172, %1443 ], [ %1451, %1447 ], [ %1454, %1452 ]
  %1463 = ptrtoint ptr %1462 to i64
  %1464 = ptrtoint ptr %.0958 to i64
  %1465 = sub i64 %1463, %1464
  %1466 = icmp slt i64 %1465, 2097152
  br i1 %1466, label %1467, label %1477

1467:                                             ; preds = %.critedge1167, %1461
  %.14 = phi ptr [ %28, %1461 ], [ null, %.critedge1167 ]
  %1468 = zext i1 %393 to i32
  %1469 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1468, float noundef 1.000000e+00)
  %1470 = getelementptr inbounds i8, ptr %.2925, i64 736
  %1471 = load ptr, ptr %1470, align 8, !tbaa !211
  %1472 = getelementptr inbounds i8, ptr %75, i64 15984
  %1473 = load ptr, ptr %1472, align 8, !tbaa !144
  %1474 = getelementptr inbounds i8, ptr %75, i64 15992
  %1475 = load float, ptr %1474, align 8, !tbaa !43
  %1476 = load ptr, ptr %31, align 8, !tbaa !42
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1471, ptr noundef %1473, float noundef %1475, ptr noundef nonnull align 4 dereferenceable(8) %29, i32 noundef %1469, ptr noundef %.0958, ptr noundef %1476, float noundef 0.000000e+00, ptr noundef %.14)
  br label %1477

1477:                                             ; preds = %1461, %1467, %1441
  br i1 %brmerge1080, label %1479, label %1478

1478:                                             ; preds = %1477
  call void @_ZN5ImGui7PopFontEv()
  br label %1479

1479:                                             ; preds = %1477, %1478
  br i1 %67, label %1480, label %1500

1480:                                             ; preds = %1479
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  %1481 = load float, ptr %30, align 8, !tbaa !206
  %1482 = getelementptr inbounds i8, ptr %30, i64 4
  %1483 = load float, ptr %1482, align 4, !tbaa !207
  %1484 = load float, ptr %90, align 4, !tbaa !109
  %1485 = fadd float %1483, %1484
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %54, float noundef %1481, float noundef %1485)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #14
  %1486 = getelementptr inbounds i8, ptr %75, i64 19148
  %1487 = load i32, ptr %1486, align 4, !tbaa !222
  %1488 = or i32 %1487, 1025
  store i32 %1488, ptr %1486, align 4, !tbaa !222
  call void @_ZN5ImGui8EndChildEv()
  %1489 = getelementptr inbounds i8, ptr %75, i64 19184
  %1490 = load i32, ptr %1489, align 8, !tbaa !223
  %1491 = and i32 %1490, 128
  %1492 = getelementptr inbounds i8, ptr %15, i64 8
  %1493 = load i32, ptr %1492, align 4, !tbaa !224
  %1494 = or i32 %1493, %1491
  store i32 %1494, ptr %1492, align 4, !tbaa !224
  call void @_ZN5ImGui8EndGroupEv()
  %1495 = load i32, ptr %159, align 8, !tbaa !225
  %1496 = icmp eq i32 %1495, 0
  br i1 %1496, label %1497, label %1500

1497:                                             ; preds = %1480
  store i32 %79, ptr %159, align 8, !tbaa !225
  %1498 = getelementptr inbounds i8, ptr %15, i64 4
  %1499 = load <2 x i32>, ptr %1498, align 4, !tbaa !113
  store <2 x i32> %1499, ptr %160, align 4, !tbaa !113
  br label %1500

1500:                                             ; preds = %1480, %1497, %1479
  %1501 = getelementptr inbounds i8, ptr %75, i64 25128
  %1502 = load i8, ptr %1501, align 8, !tbaa !226, !range !40, !noundef !41
  %1503 = trunc nuw i8 %1502 to i1
  %or.cond1173 = and i1 %brmerge1080, %1503
  br i1 %or.cond1173, label %1504, label %1506

1504:                                             ; preds = %1500
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.26)
  %1505 = load ptr, ptr %31, align 8, !tbaa !42
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef nonnull %29, ptr noundef %.0958, ptr noundef %1505)
  br label %1506

1506:                                             ; preds = %1504, %1500
  br i1 %95, label %1507, label %1517

1507:                                             ; preds = %1506
  %1508 = getelementptr inbounds i8, ptr %11, i64 8
  %1509 = load float, ptr %1508, align 8, !tbaa !227
  %1510 = getelementptr inbounds i8, ptr %75, i64 14924
  %1511 = load float, ptr %1510, align 4, !tbaa !110
  %1512 = fadd float %1509, %1511
  %1513 = load float, ptr %1152, align 4, !tbaa !204
  %1514 = load float, ptr %90, align 4, !tbaa !109
  %1515 = fadd float %1513, %1514
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef %1512, float noundef %1515)
  %1516 = load <2 x float>, ptr %55, align 8
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %1516, ptr noundef %0, ptr noundef null, i1 noundef zeroext true)
  br label %1517

1517:                                             ; preds = %1507, %1506
  %1518 = and i32 %5, 134217728
  %.not1065 = icmp eq i32 %1518, 0
  %or.cond1170 = and i1 %.not1065, %.4957
  br i1 %or.cond1170, label %1519, label %1520

1519:                                             ; preds = %1517
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %79)
  br label %1520

1520:                                             ; preds = %1519, %1517
  %1521 = and i32 %5, 32
  %.not1066 = icmp eq i32 %1521, 0
  %1522 = trunc nuw i8 %.29611291 to i1
  %.2 = select i1 %.not1066, i1 %.4957, i1 %1522
  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
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #14
  br label %.thread

.thread:                                          ; preds = %137, %112, %156, %1520
  %.3 = phi i1 [ %.2, %1520 ], [ false, %156 ], [ false, %112 ], [ false, %137 ]
  call void @llvm.lifetime.end.p0(i64 76, ptr nonnull %15) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  br label %1523

1523:                                             ; preds = %8, %.thread
  %.4 = phi i1 [ %.3, %.thread ], [ false, %8 ]
  ret i1 %.4
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724), i32 noundef) local_unnamed_addr #10 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef) local_unnamed_addr #10

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(76)) unnamed_addr #10 align 2

declare void @_ZN5ImGui12PushStyleVarEif(i32 noundef, float noundef) local_unnamed_addr #4

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

declare void @_ZN5ImGui8EndChildEv() local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strncmp(ptr nocapture noundef, ptr nocapture noundef, i64 noundef) local_unnamed_addr #2

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

declare noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724)) local_unnamed_addr #10 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724)) local_unnamed_addr #3 align 2

declare noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118), i16 noundef zeroext) local_unnamed_addr #4

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

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

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

declare void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef, ptr noundef, float noundef, float noundef) local_unnamed_addr #10

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef, i32 noundef) local_unnamed_addr #10

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef, i32 noundef) local_unnamed_addr #10

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef, ptr noundef, float noundef, float noundef) local_unnamed_addr #10

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #10

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

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

declare void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef, float noundef) local_unnamed_addr #4

declare noundef float @_ZN5ImGui13GetScrollMaxYEv() local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724)) local_unnamed_addr #3 align 2

declare noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef, ptr noundef) local_unnamed_addr #4

declare noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef) local_unnamed_addr #4

declare noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef) local_unnamed_addr #4

declare void @_ZN5ImGui7MemFreeEPv(ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef, ptr noundef) local_unnamed_addr #10

declare noundef ptr @_ZN5ImGui16GetClipboardTextEv() local_unnamed_addr #4

declare noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #10

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #2

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

declare noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef, ptr noundef) local_unnamed_addr #4

declare i32 @__gxx_personality_v0(...)

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

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

declare noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv() local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8)) unnamed_addr #3 align 2

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

declare noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118), i16 noundef zeroext) local_unnamed_addr #10 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 uwtable
declare dso_local void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(16)) unnamed_addr #10 align 2

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @fmodf(float noundef, float noundef) local_unnamed_addr #12

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN5ImGui7PopFontEv() local_unnamed_addr #4

declare void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr) local_unnamed_addr

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

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


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