; LLVM IR from JawherBenjeddou/GraphicsRenderer :: Graphics/vendor/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.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, %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, i16, i16, i16, i16, i16, i32, i8, 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, [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, 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, ptr, ptr, ptr, ptr, ptr, %struct.ImVec2, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, i8, i8, float, float, i32, i32, float, i8, i8, i8, i8, i8, i8, %struct.ImVec2, ptr, i32, i32, i32, i8, i8, ptr, i32, float, [140 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, %struct.ImVector.16, %struct.ImVector.17, %struct.ImVector.18, %struct.ImVector, %struct.ImVector.19, %struct.ImVector.20, %struct.ImVector.21, %struct.ImVector.21, i32, %struct.ImVector.22, float, ptr, ptr, ptr, i32, %struct.ImGuiPlatformMonitor, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, 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, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.23, [16 x i8], i32, %struct.ImVector.24, ptr, i32, %struct.ImVector.25, %struct.ImPool, %struct.ImVector.1, %struct.ImVector.10, ptr, %struct.ImPool.27, %struct.ImVector.29, %struct.ImVector.30, 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, float, float, i8, i8, float, float, float, float, i16, i16, %struct.ImVector.31, %struct.ImVector, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i32, i8, [3 x i8], %struct.ImGuiDockContext, ptr, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.35, %struct.ImChunkStream, %struct.ImChunkStream.36, %struct.ImVector.37, i32, [9 x ptr], i8, i32, ptr, %struct.ImGuiTextBuffer, ptr, ptr, float, i8, i32, i32, i32, i32, %struct.ImGuiTextBuffer, %struct.ImGuiTextIndex, i8, i8, i8, i8, i8, i32, %struct.ImGuiMetricsConfig, %struct.ImGuiStackTool, ptr, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.31 }
%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, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, i32, %struct.ImVec2, [652 x i32], [652 x i8], [16 x float], ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, i8, i8, i8, i8, i32, [652 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], 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, 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.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [140 x i16], %struct.ImVector.15, %struct.ImVector.15 }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, float, i32, i32, i8, [3 x i8] }>
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, %struct.ImRect, ptr, ptr, float, i32, i32, %struct.ImGuiWindowClass, %struct.ImVec2 }
%struct.ImVector.16 = type { i32, i32, ptr }
%struct.ImVector.17 = type { i32, i32, ptr }
%struct.ImVector.18 = type { i32, i32, ptr }
%struct.ImVector.19 = 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.ImGuiPlatformMonitor = type { %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, ptr }
%struct.ImGuiNavItemData = type { ptr, i32, i32, %struct.ImRect, i32, float, float, float }
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.23 = type { i32, i32, ptr }
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.26, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImPool.27 = type { %struct.ImVector.28, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.28 = type { i32, i32, ptr }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector.5, %struct.ImVector.31, %struct.ImVector.31, 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.31 }
%struct.ImFont = type <{ %struct.ImVector.1, float, float, %struct.ImVector.5, %struct.ImVector.32, 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.32 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImGuiDockContext = type <{ %struct.ImGuiStorage, %struct.ImVector.33, %struct.ImVector.34, i8, [7 x i8] }>
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.31 }
%struct.ImChunkStream.36 = type { %struct.ImVector.31 }
%struct.ImVector.37 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.31 }
%struct.ImGuiTextIndex = type <{ %struct.ImVector.19, i32, [4 x i8] }>
%struct.ImGuiMetricsConfig = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32 }
%struct.ImGuiStackTool = type { i32, i32, i32, %struct.ImVector.38, i8, float }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImVector.31 = 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 [106 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.59 = 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.60 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.73 = 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(1136), 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> @_ZL7ImFloorRK6ImVec2(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 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 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 i8, align 1
  %26 = alloca i8, align 1
  %27 = alloca i8, align 1
  %28 = alloca i8, align 1
  %29 = alloca i32, align 4
  %30 = alloca %struct.ImVec2, align 4
  %31 = alloca %struct.ImVec2, align 4
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImRect, align 4
  %35 = alloca %struct.ImVec2, align 4
  %36 = alloca %struct.ImRect, align 4
  %37 = alloca %struct.ImVec2, align 4
  %38 = alloca ptr, align 8
  %39 = alloca %struct.ImVec2, align 4
  %40 = alloca i32, align 4
  %41 = alloca %struct.ImGuiLastItemData, align 4
  %42 = alloca %struct.ImVec2, align 4
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca i8, align 1
  %45 = alloca %struct.ImVec2, align 4
  %46 = alloca i8, align 1
  %47 = alloca ptr, align 8
  %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 i8, align 1
  %55 = alloca float, align 4
  %56 = alloca i8, align 1
  %57 = alloca i8, align 1
  %58 = alloca i8, align 1
  %59 = alloca i32, align 4
  %60 = alloca i8, align 1
  %61 = alloca ptr, align 8
  %62 = alloca i8, align 1
  %63 = alloca i8, align 1
  %64 = alloca i8, align 1
  %65 = alloca i8, align 1
  %66 = alloca i8, align 1
  %67 = alloca ptr, align 8
  %68 = alloca i8, align 1
  %69 = alloca i8, align 1
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca float, align 4
  %74 = alloca float, align 4
  %75 = alloca i32, align 4
  %76 = alloca i8, align 1
  %77 = alloca i8, align 1
  %78 = alloca i32, align 4
  %79 = alloca i8, align 1
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i8, align 1
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i8, align 1
  %86 = alloca i8, align 1
  %87 = alloca i32, align 4
  %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 i8, align 1
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca ptr, align 8
  %104 = alloca ptr, align 8
  %105 = alloca i32, align 4
  %106 = alloca ptr, align 8
  %107 = alloca i32, align 4
  %108 = alloca ptr, align 8
  %109 = alloca i32, align 4
  %110 = alloca ptr, align 8
  %111 = alloca i32, align 4
  %112 = alloca i16, align 2
  %113 = alloca %struct.ImVector.5, align 8
  %114 = alloca ptr, align 8
  %115 = alloca i32, align 4
  %116 = alloca i8, align 1
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %120 = alloca ptr, align 8
  %121 = alloca ptr, align 8
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i8, align 1
  %126 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %127 = alloca %struct.ImVec2, align 4
  %128 = alloca %struct.ImVec2, align 4
  %129 = alloca %struct.ImVec4, align 4
  %130 = alloca %struct.ImVec2, align 4
  %131 = alloca %struct.ImVec2, align 4
  %132 = alloca i32, align 4
  %133 = alloca ptr, align 8
  %134 = alloca ptr, align 8
  %135 = alloca ptr, align 8
  %136 = alloca %struct.ImVec2, align 4
  %137 = alloca %struct.ImVec2, align 4
  %138 = alloca [2 x ptr], align 16
  %139 = alloca [2 x i32], align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca ptr, align 8
  %143 = alloca %struct.ImVec2, align 4
  %144 = alloca %struct.ImVec2, align 4
  %145 = alloca %struct.ImVec2, align 4
  %146 = alloca float, align 4
  %147 = alloca float, align 4
  %148 = alloca float, align 4
  %149 = alloca %struct.ImVec2, align 4
  %150 = alloca ptr, align 8
  %151 = alloca ptr, align 8
  %152 = alloca i32, align 4
  %153 = alloca float, align 4
  %154 = alloca float, align 4
  %155 = alloca %struct.ImVec2, align 4
  %156 = alloca %struct.ImVec2, align 4
  %157 = alloca ptr, align 8
  %158 = alloca %struct.ImVec2, align 4
  %159 = alloca %struct.ImRect, align 4
  %160 = alloca %struct.ImVec2, align 4
  %161 = alloca %struct.ImVec2, align 4
  %162 = alloca %struct.ImVec2, align 4
  %163 = alloca %struct.ImVec2, align 4
  %164 = alloca %struct.ImRect, align 4
  %165 = alloca %struct.ImRect, align 4
  %166 = alloca i32, align 4
  %167 = alloca %struct.ImVec2, align 4
  %168 = alloca i8, align 1
  %169 = alloca %struct.ImVec2, align 4
  %170 = alloca %struct.ImVec2, align 4
  %171 = alloca %struct.ImVec2, align 4
  %172 = alloca %struct.ImRect, align 4
  %173 = alloca %struct.ImRect, align 4
  %174 = alloca %struct.ImVec2, align 4
  %175 = alloca %struct.ImVec2, align 4
  %176 = alloca %struct.ImVec2, align 4
  %177 = alloca i32, align 4
  %178 = alloca %struct.ImVec2, align 4
  %179 = 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
  %180 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  store ptr %180, ptr %18, align 8, !tbaa !5
  %181 = load ptr, ptr %18, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.ImGuiWindow, ptr %181, i32 0, i32 43
  %183 = load i8, ptr %182, align 8, !tbaa !11, !range !42, !noundef !43
  %184 = trunc i8 %183 to i1
  br i1 %184, label %185, label %186

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

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

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

192:                                              ; preds = %189, %186
  %193 = phi i1 [ false, %186 ], [ %191, %189 ]
  br i1 %193, label %194, label %195

194:                                              ; preds = %192
  br label %197

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

196:                                              ; No predecessors!
  br label %197

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

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

205:                                              ; preds = %201, %197
  %206 = phi i1 [ false, %197 ], [ %204, %201 ]
  %207 = xor i1 %206, true
  br i1 %207, label %208, label %209

208:                                              ; preds = %205
  br label %211

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

210:                                              ; No predecessors!
  br label %211

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

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

219:                                              ; preds = %215, %211
  %220 = phi i1 [ false, %211 ], [ %218, %215 ]
  %221 = xor i1 %220, true
  br i1 %221, label %222, label %223

222:                                              ; preds = %219
  br label %225

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

224:                                              ; No predecessors!
  br label %225

225:                                              ; preds = %224, %222
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #14
  %226 = load ptr, ptr @GImGui, align 8, !tbaa !5
  store ptr %226, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #14
  %227 = load ptr, ptr %20, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.ImGuiContext, ptr %227, i32 0, i32 2
  store ptr %228, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #14
  %229 = load ptr, ptr %20, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.ImGuiContext, ptr %229, i32 0, i32 4
  store ptr %230, 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
  %231 = load i32, ptr %15, align 4, !tbaa !9
  %232 = and i32 %231, 67108864
  %233 = icmp ne i32 %232, 0
  %234 = zext i1 %233 to i8
  store i8 %234, ptr %24, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #14
  %235 = load i32, ptr %15, align 4, !tbaa !9
  %236 = and i32 %235, 16384
  %237 = icmp ne i32 %236, 0
  %238 = zext i1 %237 to i8
  store i8 %238, ptr %25, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #14
  %239 = load i32, ptr %15, align 4, !tbaa !9
  %240 = and i32 %239, 32768
  %241 = icmp ne i32 %240, 0
  %242 = zext i1 %241 to i8
  store i8 %242, ptr %26, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #14
  %243 = load i32, ptr %15, align 4, !tbaa !9
  %244 = and i32 %243, 65536
  %245 = icmp eq i32 %244, 0
  %246 = zext i1 %245 to i8
  store i8 %246, ptr %27, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #14
  %247 = load i32, ptr %15, align 4, !tbaa !9
  %248 = and i32 %247, 262144
  %249 = icmp ne i32 %248, 0
  %250 = zext i1 %249 to i8
  store i8 %250, ptr %28, align 1, !tbaa !44
  %251 = load i8, ptr %28, align 1, !tbaa !44, !range !42, !noundef !43
  %252 = trunc i8 %251 to i1
  br i1 %252, label %253, label %260

253:                                              ; preds = %225
  %254 = load ptr, ptr %16, align 8, !tbaa !5
  %255 = icmp ne ptr %254, null
  br i1 %255, label %256, label %257

256:                                              ; preds = %253
  br label %259

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

258:                                              ; No predecessors!
  br label %259

259:                                              ; preds = %258, %256
  br label %260

260:                                              ; preds = %259, %225
  %261 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %262 = trunc i8 %261 to i1
  br i1 %262, label %263, label %264

263:                                              ; preds = %260
  call void @_ZN5ImGui10BeginGroupEv()
  br label %264

264:                                              ; preds = %263, %260
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #14
  %265 = load ptr, ptr %18, align 8, !tbaa !5
  %266 = load ptr, ptr %10, align 8, !tbaa !5
  %267 = call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1136) %265, ptr noundef %266, ptr noundef null)
  store i32 %267, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #14
  %268 = load ptr, ptr %10, align 8, !tbaa !5
  %269 = call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %268, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  store <2 x float> %269, ptr %30, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #14
  %270 = load ptr, ptr %14, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %32, ptr align 4 %270, i64 8, i1 false), !tbaa.struct !45
  %271 = call noundef float @_ZN5ImGui13CalcItemWidthEv()
  %272 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %273 = trunc i8 %272 to i1
  br i1 %273, label %274, label %279

274:                                              ; preds = %264
  %275 = load ptr, ptr %20, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.ImGuiContext, ptr %275, i32 0, i32 8
  %277 = load float, ptr %276, align 8, !tbaa !47
  %278 = fmul float %277, 8.000000e+00
  br label %282

279:                                              ; preds = %264
  %280 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 1
  %281 = load float, ptr %280, align 4, !tbaa !106
  br label %282

282:                                              ; preds = %279, %274
  %283 = phi float [ %278, %274 ], [ %281, %279 ]
  %284 = load ptr, ptr %22, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.ImGuiStyle, ptr %284, i32 0, i32 12
  %286 = getelementptr inbounds %struct.ImVec2, ptr %285, i32 0, i32 1
  %287 = load float, ptr %286, align 4, !tbaa !107
  %288 = call float @llvm.fmuladd.f32(float %287, float 2.000000e+00, float %283)
  %289 = load <2 x float>, ptr %32, align 4
  %290 = call <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float> %289, float noundef %271, float noundef %288)
  store <2 x float> %290, ptr %31, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #14
  %291 = getelementptr inbounds %struct.ImVec2, ptr %31, i32 0, i32 0
  %292 = load float, ptr %291, align 4, !tbaa !108
  %293 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %294 = load float, ptr %293, align 4, !tbaa !108
  %295 = fcmp ogt float %294, 0.000000e+00
  br i1 %295, label %296, label %304

296:                                              ; preds = %282
  %297 = load ptr, ptr %22, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.ImGuiStyle, ptr %297, i32 0, i32 16
  %299 = getelementptr inbounds %struct.ImVec2, ptr %298, i32 0, i32 0
  %300 = load float, ptr %299, align 4, !tbaa !109
  %301 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %302 = load float, ptr %301, align 4, !tbaa !108
  %303 = fadd float %300, %302
  br label %305

304:                                              ; preds = %282
  br label %305

305:                                              ; preds = %304, %296
  %306 = phi float [ %303, %296 ], [ 0.000000e+00, %304 ]
  %307 = fadd float %292, %306
  %308 = getelementptr inbounds %struct.ImVec2, ptr %31, i32 0, i32 1
  %309 = load float, ptr %308, align 4, !tbaa !106
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %307, float noundef %309)
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #14
  %310 = load ptr, ptr %18, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.ImGuiWindow, ptr %310, i32 0, i32 69
  %312 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %311, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #14
  %313 = load ptr, ptr %18, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.ImGuiWindow, ptr %313, i32 0, i32 69
  %315 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %314, i32 0, i32 0
  %316 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %315, ptr noundef nonnull align 4 dereferenceable(8) %31)
  store <2 x float> %316, ptr %35, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %34, ptr noundef nonnull align 4 dereferenceable(8) %312, ptr noundef nonnull align 4 dereferenceable(8) %35)
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #14
  %317 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #14
  %318 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %319 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %318, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %319, ptr %37, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %36, ptr noundef nonnull align 4 dereferenceable(8) %317, ptr noundef nonnull align 4 dereferenceable(8) %37)
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #14
  %320 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %320, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %39, ptr align 4 %31, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #14
  store i32 0, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 60, ptr %41) #14
  call void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(60) %41)
  %321 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %322 = trunc i8 %321 to i1
  br i1 %322, label %323, label %394

323:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #14
  %324 = load ptr, ptr %18, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.ImGuiWindow, ptr %324, i32 0, i32 69
  %326 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %325, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %42, ptr align 8 %326, i64 8, i1 false), !tbaa.struct !45
  %327 = load ptr, ptr %22, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.ImGuiStyle, ptr %327, i32 0, i32 12
  %329 = getelementptr inbounds %struct.ImVec2, ptr %328, i32 0, i32 1
  %330 = load float, ptr %329, align 4, !tbaa !107
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %330)
  %331 = load i32, ptr %29, align 4, !tbaa !9
  %332 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef %331, ptr noundef %34, i32 noundef 1024)
  br i1 %332, label %334, label %333

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

334:                                              ; preds = %323
  %335 = load ptr, ptr %20, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.ImGuiContext, ptr %335, i32 0, i32 78
  %337 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %336, i32 0, i32 2
  %338 = load i32, ptr %337, align 8, !tbaa !110
  store i32 %338, ptr %40, align 4, !tbaa !9
  %339 = load ptr, ptr %20, align 8, !tbaa !5
  %340 = getelementptr inbounds %struct.ImGuiContext, ptr %339, i32 0, i32 78
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %41, ptr align 8 %340, i64 60, i1 false), !tbaa.struct !111
  %341 = load ptr, ptr %18, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.ImGuiWindow, ptr %341, i32 0, i32 69
  %343 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %342, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %343, ptr align 4 %42, i64 8, i1 false), !tbaa.struct !45
  %344 = load ptr, ptr %22, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.ImGuiStyle, ptr %344, i32 0, i32 44
  %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 !112
  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 !113
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 8, float noundef %352)
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %43, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 2, ptr noundef nonnull align 4 dereferenceable(8) %43)
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #14
  %353 = load ptr, ptr %10, align 8, !tbaa !5
  %354 = load i32, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #14
  %355 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %34)
  store <2 x float> %355, ptr %45, align 4
  %356 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2bi(ptr noundef %353, i32 noundef %354, ptr noundef nonnull align 4 dereferenceable(8) %45, i1 noundef zeroext true, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #14
  %357 = zext i1 %356 to i8
  store i8 %357, ptr %44, align 1, !tbaa !44
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  %358 = load i8, ptr %44, align 1, !tbaa !44, !range !42, !noundef !43
  %359 = trunc i8 %358 to i1
  br i1 %359, label %361, label %360

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

361:                                              ; preds = %334
  %362 = load ptr, ptr %20, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.ImGuiContext, ptr %362, i32 0, i32 33
  %364 = load ptr, ptr %363, align 8, !tbaa !114
  store ptr %364, ptr %38, align 8, !tbaa !5
  %365 = load ptr, ptr %38, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.ImGuiWindow, ptr %365, i32 0, i32 69
  %367 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %366, i32 0, i32 15
  %368 = load i32, ptr %367, align 8, !tbaa !115
  %369 = shl i32 1, %368
  %370 = load ptr, ptr %38, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.ImGuiWindow, ptr %370, i32 0, i32 69
  %372 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %371, i32 0, i32 17
  %373 = load i16, ptr %372, align 2, !tbaa !116
  %374 = sext i16 %373 to i32
  %375 = or i32 %374, %369
  %376 = trunc i32 %375 to i16
  store i16 %376, ptr %372, align 2, !tbaa !116
  %377 = load ptr, ptr %22, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.ImGuiStyle, ptr %377, i32 0, i32 12
  %379 = load ptr, ptr %38, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.ImGuiWindow, ptr %379, i32 0, i32 69
  %381 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %380, i32 0, i32 0
  %382 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZpLR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %381, ptr noundef nonnull align 4 dereferenceable(8) %378)
  %383 = load ptr, ptr %38, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.ImGuiWindow, ptr %383, i32 0, i32 34
  %385 = getelementptr inbounds %struct.ImVec2, ptr %384, i32 0, i32 0
  %386 = load float, ptr %385, align 8, !tbaa !117
  %387 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %388 = load float, ptr %387, align 4, !tbaa !108
  %389 = fsub float %388, %386
  store float %389, ptr %387, align 4, !tbaa !108
  store i32 0, ptr %19, align 4
  br label %390

390:                                              ; preds = %361, %360
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #14
  br label %391

391:                                              ; preds = %390, %333
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #14
  %392 = load i32, ptr %19, align 4
  switch i32 %392, label %3569 [
    i32 0, label %393
  ]

393:                                              ; preds = %391
  br label %412

394:                                              ; preds = %305
  %395 = load ptr, ptr %22, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.ImGuiStyle, ptr %395, i32 0, i32 12
  %397 = getelementptr inbounds %struct.ImVec2, ptr %396, i32 0, i32 1
  %398 = load float, ptr %397, align 4, !tbaa !107
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %398)
  %399 = load i32, ptr %15, align 4, !tbaa !9
  %400 = and i32 %399, 268435456
  %401 = icmp ne i32 %400, 0
  br i1 %401, label %407, label %402

402:                                              ; preds = %394
  %403 = load i32, ptr %29, align 4, !tbaa !9
  %404 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef %403, ptr noundef %34, i32 noundef 1024)
  br i1 %404, label %406, label %405

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

406:                                              ; preds = %402
  br label %407

407:                                              ; preds = %406, %394
  %408 = load ptr, ptr %20, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.ImGuiContext, ptr %408, i32 0, i32 78
  %410 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %409, i32 0, i32 2
  %411 = load i32, ptr %410, align 8, !tbaa !110
  store i32 %411, ptr %40, align 4, !tbaa !9
  br label %412

412:                                              ; preds = %407, %393
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #14
  %413 = load i32, ptr %29, align 4, !tbaa !9
  %414 = load ptr, ptr %20, align 8, !tbaa !5
  %415 = getelementptr inbounds %struct.ImGuiContext, ptr %414, i32 0, i32 78
  %416 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %415, i32 0, i32 1
  %417 = load i32, ptr %416, align 4, !tbaa !118
  %418 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef %413, i32 noundef %417)
  %419 = zext i1 %418 to i8
  store i8 %419, ptr %46, align 1, !tbaa !44
  %420 = load i8, ptr %46, align 1, !tbaa !44, !range !42, !noundef !43
  %421 = trunc i8 %420 to i1
  br i1 %421, label %422, label %425

422:                                              ; preds = %412
  %423 = load ptr, ptr %20, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.ImGuiContext, ptr %423, i32 0, i32 185
  store i32 1, ptr %424, align 8, !tbaa !119
  br label %425

425:                                              ; preds = %422, %412
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #14
  %426 = load i32, ptr %29, align 4, !tbaa !9
  %427 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %426)
  store ptr %427, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #14
  %428 = load i32, ptr %40, align 4, !tbaa !9
  %429 = and i32 %428, 256
  %430 = icmp ne i32 %429, 0
  %431 = zext i1 %430 to i8
  store i8 %431, ptr %48, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #14
  %432 = load ptr, ptr %20, align 8, !tbaa !5
  %433 = getelementptr inbounds %struct.ImGuiContext, ptr %432, i32 0, i32 50
  %434 = load i32, ptr %433, align 8, !tbaa !120
  %435 = load i32, ptr %29, align 4, !tbaa !9
  %436 = icmp ne i32 %434, %435
  br i1 %436, label %437, label %458

437:                                              ; preds = %425
  %438 = load ptr, ptr %20, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.ImGuiContext, ptr %438, i32 0, i32 102
  %440 = load i32, ptr %439, align 8, !tbaa !121
  %441 = load i32, ptr %29, align 4, !tbaa !9
  %442 = icmp eq i32 %440, %441
  br i1 %442, label %443, label %456

443:                                              ; preds = %437
  %444 = load ptr, ptr %20, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.ImGuiContext, ptr %444, i32 0, i32 105
  %446 = load i32, ptr %445, align 4, !tbaa !122
  %447 = and i32 %446, 1
  %448 = icmp ne i32 %447, 0
  br i1 %448, label %454, label %449

449:                                              ; preds = %443
  %450 = load ptr, ptr %20, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.ImGuiContext, ptr %450, i32 0, i32 111
  %452 = load i32, ptr %451, align 4, !tbaa !123
  %453 = icmp eq i32 %452, 2
  br label %454

454:                                              ; preds = %449, %443
  %455 = phi i1 [ true, %443 ], [ %453, %449 ]
  br label %456

456:                                              ; preds = %454, %437
  %457 = phi i1 [ false, %437 ], [ %455, %454 ]
  br label %458

458:                                              ; preds = %456, %425
  %459 = phi i1 [ false, %425 ], [ %457, %456 ]
  %460 = zext i1 %459 to i8
  store i8 %460, ptr %49, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #14
  %461 = load i8, ptr %46, align 1, !tbaa !44, !range !42, !noundef !43
  %462 = trunc i8 %461 to i1
  br i1 %462, label %463, label %469

463:                                              ; preds = %458
  %464 = load ptr, ptr %21, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.ImGuiIO, ptr %464, i32 0, i32 83
  %466 = getelementptr inbounds [5 x i8], ptr %465, i64 0, i64 0
  %467 = load i8, ptr %466, align 8, !tbaa !44, !range !42, !noundef !43
  %468 = trunc i8 %467 to i1
  br label %469

469:                                              ; preds = %463, %458
  %470 = phi i1 [ false, %458 ], [ %468, %463 ]
  %471 = zext i1 %470 to i8
  store i8 %471, ptr %50, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #14
  %472 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %473 = trunc i8 %472 to i1
  br i1 %473, label %474, label %489

474:                                              ; preds = %469
  %475 = load ptr, ptr %47, align 8, !tbaa !5
  %476 = icmp ne ptr %475, null
  br i1 %476, label %477, label %489

477:                                              ; preds = %474
  %478 = load ptr, ptr %20, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.ImGuiContext, ptr %478, i32 0, i32 50
  %480 = load i32, ptr %479, align 8, !tbaa !120
  %481 = icmp eq i32 %480, 0
  br i1 %481, label %482, label %489

482:                                              ; preds = %477
  %483 = load ptr, ptr %20, align 8, !tbaa !5
  %484 = getelementptr inbounds %struct.ImGuiContext, ptr %483, i32 0, i32 63
  %485 = load i32, ptr %484, align 8, !tbaa !124
  %486 = load ptr, ptr %38, align 8, !tbaa !5
  %487 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef %486, i32 noundef 1)
  %488 = icmp eq i32 %485, %487
  br label %489

489:                                              ; preds = %482, %477, %474, %469
  %490 = phi i1 [ false, %477 ], [ false, %474 ], [ false, %469 ], [ %488, %482 ]
  %491 = zext i1 %490 to i8
  store i8 %491, ptr %51, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #14
  %492 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %493 = trunc i8 %492 to i1
  br i1 %493, label %494, label %504

494:                                              ; preds = %489
  %495 = load ptr, ptr %47, align 8, !tbaa !5
  %496 = icmp ne ptr %495, null
  br i1 %496, label %497, label %504

497:                                              ; preds = %494
  %498 = load ptr, ptr %20, align 8, !tbaa !5
  %499 = getelementptr inbounds %struct.ImGuiContext, ptr %498, i32 0, i32 50
  %500 = load i32, ptr %499, align 8, !tbaa !120
  %501 = load ptr, ptr %38, align 8, !tbaa !5
  %502 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef %501, i32 noundef 1)
  %503 = icmp eq i32 %500, %502
  br label %504

504:                                              ; preds = %497, %494, %489
  %505 = phi i1 [ false, %494 ], [ false, %489 ], [ %503, %497 ]
  %506 = zext i1 %505 to i8
  store i8 %506, 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 1, ptr %54) #14
  store i8 0, ptr %54, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #14
  %507 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %508 = trunc i8 %507 to i1
  br i1 %508, label %509, label %514

509:                                              ; preds = %504
  %510 = load ptr, ptr %38, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.ImGuiWindow, ptr %510, i32 0, i32 29
  %512 = getelementptr inbounds %struct.ImVec2, ptr %511, i32 0, i32 1
  %513 = load float, ptr %512, align 4, !tbaa !125
  br label %515

514:                                              ; preds = %504
  br label %515

515:                                              ; preds = %514, %509
  %516 = phi float [ %513, %509 ], [ 0x47EFFFFFE0000000, %514 ]
  store float %516, ptr %55, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #14
  %517 = load ptr, ptr %47, align 8, !tbaa !5
  %518 = icmp ne ptr %517, null
  br i1 %518, label %519, label %530

519:                                              ; preds = %515
  %520 = load ptr, ptr %47, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %520, i32 0, i32 12
  %522 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %521, i32 0, i32 8
  %523 = load i8, ptr %522, align 1, !tbaa !126
  %524 = zext i8 %523 to i32
  %525 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %526 = trunc i8 %525 to i1
  %527 = xor i1 %526, true
  %528 = zext i1 %527 to i32
  %529 = icmp ne i32 %524, %528
  br label %530

530:                                              ; preds = %519, %515
  %531 = phi i1 [ false, %515 ], [ %529, %519 ]
  %532 = zext i1 %531 to i8
  store i8 %532, ptr %56, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #14
  %533 = load i8, ptr %50, align 1, !tbaa !44, !range !42, !noundef !43
  %534 = trunc i8 %533 to i1
  br i1 %534, label %544, label %535

535:                                              ; preds = %530
  %536 = load i8, ptr %51, align 1, !tbaa !44, !range !42, !noundef !43
  %537 = trunc i8 %536 to i1
  br i1 %537, label %544, label %538

538:                                              ; preds = %535
  %539 = load i8, ptr %49, align 1, !tbaa !44, !range !42, !noundef !43
  %540 = trunc i8 %539 to i1
  br i1 %540, label %544, label %541

541:                                              ; preds = %538
  %542 = load i8, ptr %48, align 1, !tbaa !44, !range !42, !noundef !43
  %543 = trunc i8 %542 to i1
  br label %544

544:                                              ; preds = %541, %538, %535, %530
  %545 = phi i1 [ true, %538 ], [ true, %535 ], [ true, %530 ], [ %543, %541 ]
  %546 = zext i1 %545 to i8
  store i8 %546, ptr %57, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #14
  %547 = load i8, ptr %57, align 1, !tbaa !44, !range !42, !noundef !43
  %548 = trunc i8 %547 to i1
  br i1 %548, label %552, label %549

549:                                              ; preds = %544
  %550 = load i8, ptr %52, align 1, !tbaa !44, !range !42, !noundef !43
  %551 = trunc i8 %550 to i1
  br label %552

552:                                              ; preds = %549, %544
  %553 = phi i1 [ true, %544 ], [ %551, %549 ]
  %554 = zext i1 %553 to i8
  store i8 %554, ptr %58, align 1, !tbaa !44
  %555 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %556 = trunc i8 %555 to i1
  br i1 %556, label %557, label %563

557:                                              ; preds = %552
  %558 = load ptr, ptr %20, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.ImGuiContext, ptr %558, i32 0, i32 50
  %560 = load i32, ptr %559, align 8, !tbaa !120
  %561 = load i32, ptr %29, align 4, !tbaa !9
  %562 = icmp ne i32 %560, %561
  br i1 %562, label %566, label %563

563:                                              ; preds = %557, %552
  %564 = load i8, ptr %56, align 1, !tbaa !44, !range !42, !noundef !43
  %565 = trunc i8 %564 to i1
  br i1 %565, label %566, label %709

566:                                              ; preds = %563, %557
  %567 = load ptr, ptr %20, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.ImGuiContext, ptr %567, i32 0, i32 188
  store ptr %568, ptr %47, align 8, !tbaa !5
  %569 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %569)
  %570 = load ptr, ptr %47, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %570, i32 0, i32 1
  %572 = load i32, ptr %571, align 8, !tbaa !127
  call void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef %572)
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #14
  %573 = load ptr, ptr %12, align 8, !tbaa !5
  %574 = call i64 @strlen(ptr noundef %573) #16
  %575 = trunc i64 %574 to i32
  store i32 %575, ptr %59, align 4, !tbaa !9
  %576 = load ptr, ptr %47, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %576, i32 0, i32 7
  %578 = load i32, ptr %59, align 4, !tbaa !9
  %579 = add nsw i32 %578, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %577, i32 noundef %579)
  %580 = load ptr, ptr %47, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %580, i32 0, i32 7
  %582 = getelementptr inbounds %struct.ImVector.31, ptr %581, i32 0, i32 2
  %583 = load ptr, ptr %582, align 8, !tbaa !128
  %584 = load ptr, ptr %12, align 8, !tbaa !5
  %585 = load i32, ptr %59, align 4, !tbaa !9
  %586 = add nsw i32 %585, 1
  %587 = sext i32 %586 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %583, ptr align 1 %584, i64 %587, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #14
  %588 = load ptr, ptr %47, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %588, i32 0, i32 1
  %590 = load i32, ptr %589, align 8, !tbaa !127
  %591 = load i32, ptr %29, align 4, !tbaa !9
  %592 = icmp eq i32 %590, %591
  br i1 %592, label %593, label %597

593:                                              ; preds = %566
  %594 = load i8, ptr %56, align 1, !tbaa !44, !range !42, !noundef !43
  %595 = trunc i8 %594 to i1
  %596 = xor i1 %595, true
  br label %597

597:                                              ; preds = %593, %566
  %598 = phi i1 [ false, %566 ], [ %596, %593 ]
  %599 = zext i1 %598 to i8
  store i8 %599, ptr %60, align 1, !tbaa !44
  %600 = load i8, ptr %60, align 1, !tbaa !44, !range !42, !noundef !43
  %601 = trunc i8 %600 to i1
  br i1 %601, label %602, label %624

602:                                              ; preds = %597
  %603 = load ptr, ptr %47, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %603, i32 0, i32 3
  %605 = load i32, ptr %604, align 8, !tbaa !129
  %606 = load i32, ptr %59, align 4, !tbaa !9
  %607 = icmp ne i32 %605, %606
  br i1 %607, label %623, label %608

608:                                              ; preds = %602
  %609 = load ptr, ptr %47, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %609, i32 0, i32 8
  %611 = load i8, ptr %610, align 8, !tbaa !130, !range !42, !noundef !43
  %612 = trunc i8 %611 to i1
  br i1 %612, label %613, label %624

613:                                              ; preds = %608
  %614 = load ptr, ptr %47, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %614, i32 0, i32 6
  %616 = getelementptr inbounds %struct.ImVector.31, ptr %615, i32 0, i32 2
  %617 = load ptr, ptr %616, align 8, !tbaa !131
  %618 = load ptr, ptr %12, align 8, !tbaa !5
  %619 = load i32, ptr %59, align 4, !tbaa !9
  %620 = sext i32 %619 to i64
  %621 = call i32 @strncmp(ptr noundef %617, ptr noundef %618, i64 noundef %620) #16
  %622 = icmp ne i32 %621, 0
  br i1 %622, label %623, label %624

623:                                              ; preds = %613, %602
  store i8 0, ptr %60, align 1, !tbaa !44
  br label %624

624:                                              ; preds = %623, %613, %608, %597
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #14
  store ptr null, ptr %61, align 8, !tbaa !5
  %625 = load i32, ptr %29, align 4, !tbaa !9
  %626 = load ptr, ptr %47, align 8, !tbaa !5
  %627 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %626, i32 0, i32 1
  store i32 %625, ptr %627, align 8, !tbaa !127
  %628 = load ptr, ptr %47, align 8, !tbaa !5
  %629 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %628, i32 0, i32 5
  %630 = load i32, ptr %13, align 4, !tbaa !9
  %631 = add nsw i32 %630, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %629, i32 noundef %631)
  %632 = load ptr, ptr %47, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %632, i32 0, i32 6
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %633, i32 noundef 0)
  %634 = load ptr, ptr %47, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %634, i32 0, i32 8
  store i8 0, ptr %635, align 8, !tbaa !130
  %636 = load ptr, ptr %47, align 8, !tbaa !5
  %637 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %636, i32 0, i32 5
  %638 = getelementptr inbounds %struct.ImVector.5, ptr %637, i32 0, i32 2
  %639 = load ptr, ptr %638, align 8, !tbaa !132
  %640 = load i32, ptr %13, align 4, !tbaa !9
  %641 = load ptr, ptr %12, align 8, !tbaa !5
  %642 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %639, i32 noundef %640, ptr noundef %641, ptr noundef null, ptr noundef %61)
  %643 = load ptr, ptr %47, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %643, i32 0, i32 2
  store i32 %642, ptr %644, align 4, !tbaa !133
  %645 = load ptr, ptr %61, align 8, !tbaa !5
  %646 = load ptr, ptr %12, align 8, !tbaa !5
  %647 = ptrtoint ptr %645 to i64
  %648 = ptrtoint ptr %646 to i64
  %649 = sub i64 %647, %648
  %650 = trunc i64 %649 to i32
  %651 = load ptr, ptr %47, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %651, i32 0, i32 3
  store i32 %650, ptr %652, align 8, !tbaa !129
  %653 = load i8, ptr %60, align 1, !tbaa !44, !range !42, !noundef !43
  %654 = trunc i8 %653 to i1
  br i1 %654, label %655, label %657

655:                                              ; preds = %624
  %656 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %656)
  br label %666

657:                                              ; preds = %624
  %658 = load ptr, ptr %47, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %658, i32 0, i32 11
  store float 0.000000e+00, ptr %659, align 8, !tbaa !134
  %660 = load ptr, ptr %47, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %660, i32 0, i32 12
  %662 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %663 = trunc i8 %662 to i1
  %664 = xor i1 %663, true
  %665 = zext i1 %664 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef %661, i32 noundef %665)
  br label %666

666:                                              ; preds = %657, %655
  %667 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %668 = trunc i8 %667 to i1
  br i1 %668, label %700, label %669

669:                                              ; preds = %666
  %670 = load i32, ptr %15, align 4, !tbaa !9
  %671 = and i32 %670, 16
  %672 = icmp ne i32 %671, 0
  br i1 %672, label %673, label %674

673:                                              ; preds = %669
  store i8 1, ptr %54, align 1, !tbaa !44
  br label %674

674:                                              ; preds = %673, %669
  %675 = load i8, ptr %49, align 1, !tbaa !44, !range !42, !noundef !43
  %676 = trunc i8 %675 to i1
  br i1 %676, label %677, label %687

677:                                              ; preds = %674
  %678 = load i8, ptr %60, align 1, !tbaa !44, !range !42, !noundef !43
  %679 = trunc i8 %678 to i1
  br i1 %679, label %680, label %686

680:                                              ; preds = %677
  %681 = load ptr, ptr %20, align 8, !tbaa !5
  %682 = getelementptr inbounds %struct.ImGuiContext, ptr %681, i32 0, i32 105
  %683 = load i32, ptr %682, align 4, !tbaa !122
  %684 = and i32 %683, 4
  %685 = icmp ne i32 %684, 0
  br i1 %685, label %687, label %686

686:                                              ; preds = %680, %677
  store i8 1, ptr %54, align 1, !tbaa !44
  br label %687

687:                                              ; preds = %686, %680, %674
  %688 = load i8, ptr %48, align 1, !tbaa !44, !range !42, !noundef !43
  %689 = trunc i8 %688 to i1
  br i1 %689, label %698, label %690

690:                                              ; preds = %687
  %691 = load i8, ptr %50, align 1, !tbaa !44, !range !42, !noundef !43
  %692 = trunc i8 %691 to i1
  br i1 %692, label %693, label %699

693:                                              ; preds = %690
  %694 = load ptr, ptr %21, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiIO, ptr %694, i32 0, i32 73
  %696 = load i8, ptr %695, align 8, !tbaa !135, !range !42, !noundef !43
  %697 = trunc i8 %696 to i1
  br i1 %697, label %698, label %699

698:                                              ; preds = %693, %687
  store i8 1, ptr %54, align 1, !tbaa !44
  br label %699

699:                                              ; preds = %698, %693, %690
  br label %700

700:                                              ; preds = %699, %666
  %701 = load i32, ptr %15, align 4, !tbaa !9
  %702 = and i32 %701, 8192
  %703 = icmp ne i32 %702, 0
  br i1 %703, label %704, label %708

704:                                              ; preds = %700
  %705 = load ptr, ptr %47, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %705, i32 0, i32 12
  %707 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %706, i32 0, i32 3
  store i8 1, ptr %707, align 4, !tbaa !136
  br label %708

708:                                              ; preds = %704, %700
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #14
  br label %709

709:                                              ; preds = %708, %563
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #14
  %710 = load ptr, ptr %21, align 8, !tbaa !5
  %711 = getelementptr inbounds %struct.ImGuiIO, ptr %710, i32 0, i32 22
  %712 = load i8, ptr %711, align 1, !tbaa !137, !range !42, !noundef !43
  %713 = trunc i8 %712 to i1
  %714 = zext i1 %713 to i8
  store i8 %714, ptr %62, align 1, !tbaa !44
  %715 = load ptr, ptr %20, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.ImGuiContext, ptr %715, i32 0, i32 50
  %717 = load i32, ptr %716, align 8, !tbaa !120
  %718 = load i32, ptr %29, align 4, !tbaa !9
  %719 = icmp ne i32 %717, %718
  br i1 %719, label %720, label %743

720:                                              ; preds = %709
  %721 = load i8, ptr %57, align 1, !tbaa !44, !range !42, !noundef !43
  %722 = trunc i8 %721 to i1
  br i1 %722, label %723, label %743

723:                                              ; preds = %720
  %724 = load ptr, ptr %47, align 8, !tbaa !5
  %725 = icmp ne ptr %724, null
  br i1 %725, label %726, label %732

726:                                              ; preds = %723
  %727 = load ptr, ptr %47, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %727, i32 0, i32 1
  %729 = load i32, ptr %728, align 8, !tbaa !127
  %730 = load i32, ptr %29, align 4, !tbaa !9
  %731 = icmp eq i32 %729, %730
  br label %732

732:                                              ; preds = %726, %723
  %733 = phi i1 [ false, %723 ], [ %731, %726 ]
  br i1 %733, label %734, label %735

734:                                              ; preds = %732
  br label %737

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

736:                                              ; No predecessors!
  br label %737

737:                                              ; preds = %736, %734
  %738 = load i32, ptr %29, align 4, !tbaa !9
  %739 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %738, ptr noundef %739)
  %740 = load i32, ptr %29, align 4, !tbaa !9
  %741 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %740, ptr noundef %741)
  %742 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef %742, i32 noundef 0)
  br label %743

743:                                              ; preds = %737, %720, %709
  %744 = load ptr, ptr %20, align 8, !tbaa !5
  %745 = getelementptr inbounds %struct.ImGuiContext, ptr %744, i32 0, i32 50
  %746 = load i32, ptr %745, align 8, !tbaa !120
  %747 = load i32, ptr %29, align 4, !tbaa !9
  %748 = icmp eq i32 %746, %747
  br i1 %748, label %749, label %791

749:                                              ; preds = %743
  %750 = load i8, ptr %50, align 1, !tbaa !44, !range !42, !noundef !43
  %751 = trunc i8 %750 to i1
  br i1 %751, label %752, label %754

752:                                              ; preds = %749
  %753 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 641, i32 noundef %753, i32 noundef 0)
  br label %754

754:                                              ; preds = %752, %749
  %755 = load ptr, ptr %20, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.ImGuiContext, ptr %755, i32 0, i32 71
  %757 = load i32, ptr %756, align 8, !tbaa !138
  %758 = or i32 %757, 3
  store i32 %758, ptr %756, align 8, !tbaa !138
  %759 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %760 = trunc i8 %759 to i1
  br i1 %760, label %765, label %761

761:                                              ; preds = %754
  %762 = load i32, ptr %15, align 4, !tbaa !9
  %763 = and i32 %762, 128
  %764 = icmp ne i32 %763, 0
  br i1 %764, label %765, label %770

765:                                              ; preds = %761, %754
  %766 = load ptr, ptr %20, align 8, !tbaa !5
  %767 = getelementptr inbounds %struct.ImGuiContext, ptr %766, i32 0, i32 71
  %768 = load i32, ptr %767, align 8, !tbaa !138
  %769 = or i32 %768, 12
  store i32 %769, ptr %767, align 8, !tbaa !138
  br label %770

770:                                              ; preds = %765, %761
  %771 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 519, i32 noundef %771, i32 noundef 0)
  %772 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 520, i32 noundef %772, i32 noundef 0)
  %773 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %774 = trunc i8 %773 to i1
  br i1 %774, label %775, label %778

775:                                              ; preds = %770
  %776 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 517, i32 noundef %776, i32 noundef 0)
  %777 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 518, i32 noundef %777, i32 noundef 0)
  br label %778

778:                                              ; preds = %775, %770
  %779 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %780 = trunc i8 %779 to i1
  br i1 %780, label %781, label %783

781:                                              ; preds = %778
  %782 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 16384, i32 noundef %782, i32 noundef 0)
  br label %783

783:                                              ; preds = %781, %778
  %784 = load i32, ptr %15, align 4, !tbaa !9
  %785 = and i32 %784, 1088
  %786 = icmp ne i32 %785, 0
  br i1 %786, label %787, label %790

787:                                              ; preds = %783
  %788 = load i32, ptr %29, align 4, !tbaa !9
  %789 = call noundef zeroext i1 @_ZN5ImGui18SetShortcutRoutingEiji(i32 noundef 512, i32 noundef %788, i32 noundef 0)
  br label %790

790:                                              ; preds = %787, %783
  br label %791

791:                                              ; preds = %790, %743
  %792 = load ptr, ptr %20, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.ImGuiContext, ptr %792, i32 0, i32 50
  %794 = load i32, ptr %793, align 8, !tbaa !120
  %795 = load i32, ptr %29, align 4, !tbaa !9
  %796 = icmp eq i32 %794, %795
  br i1 %796, label %797, label %801

797:                                              ; preds = %791
  %798 = load ptr, ptr %47, align 8, !tbaa !5
  %799 = icmp eq ptr %798, null
  br i1 %799, label %800, label %801

800:                                              ; preds = %797
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %801

801:                                              ; preds = %800, %797, %791
  %802 = load ptr, ptr %20, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.ImGuiContext, ptr %802, i32 0, i32 50
  %804 = load i32, ptr %803, align 8, !tbaa !120
  %805 = load i32, ptr %29, align 4, !tbaa !9
  %806 = icmp eq i32 %804, %805
  br i1 %806, label %807, label %820

807:                                              ; preds = %801
  %808 = load ptr, ptr %21, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.ImGuiIO, ptr %808, i32 0, i32 83
  %810 = getelementptr inbounds [5 x i8], ptr %809, i64 0, i64 0
  %811 = load i8, ptr %810, align 8, !tbaa !44, !range !42, !noundef !43
  %812 = trunc i8 %811 to i1
  br i1 %812, label %813, label %820

813:                                              ; preds = %807
  %814 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %815 = trunc i8 %814 to i1
  br i1 %815, label %820, label %816

816:                                              ; preds = %813
  %817 = load i8, ptr %57, align 1, !tbaa !44, !range !42, !noundef !43
  %818 = trunc i8 %817 to i1
  br i1 %818, label %820, label %819

819:                                              ; preds = %816
  store i8 1, ptr %53, align 1, !tbaa !44
  br label %820

820:                                              ; preds = %819, %816, %813, %807, %801
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #14
  %821 = load ptr, ptr %20, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.ImGuiContext, ptr %821, i32 0, i32 50
  %823 = load i32, ptr %822, align 8, !tbaa !120
  %824 = load i32, ptr %29, align 4, !tbaa !9
  %825 = icmp eq i32 %823, %824
  br i1 %825, label %834, label %826

826:                                              ; preds = %820
  %827 = load ptr, ptr %47, align 8, !tbaa !5
  %828 = icmp ne ptr %827, null
  br i1 %828, label %829, label %832

829:                                              ; preds = %826
  %830 = load i8, ptr %52, align 1, !tbaa !44, !range !42, !noundef !43
  %831 = trunc i8 %830 to i1
  br label %832

832:                                              ; preds = %829, %826
  %833 = phi i1 [ false, %826 ], [ %831, %829 ]
  br label %834

834:                                              ; preds = %832, %820
  %835 = phi i1 [ true, %820 ], [ %833, %832 ]
  %836 = zext i1 %835 to i8
  store i8 %836, ptr %63, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #14
  %837 = load ptr, ptr %47, align 8, !tbaa !5
  %838 = icmp ne ptr %837, null
  br i1 %838, label %839, label %848

839:                                              ; preds = %834
  %840 = load ptr, ptr %47, align 8, !tbaa !5
  %841 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %840)
  br i1 %841, label %845, label %842

842:                                              ; preds = %839
  %843 = load i8, ptr %54, align 1, !tbaa !44, !range !42, !noundef !43
  %844 = trunc i8 %843 to i1
  br i1 %844, label %845, label %848

845:                                              ; preds = %842, %839
  %846 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %847 = trunc i8 %846 to i1
  br label %848

848:                                              ; preds = %845, %842, %834
  %849 = phi i1 [ false, %842 ], [ false, %834 ], [ %847, %845 ]
  %850 = zext i1 %849 to i8
  store i8 %850, 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
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #14
  store i8 0, ptr %66, align 1, !tbaa !44
  %851 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %852 = trunc i8 %851 to i1
  br i1 %852, label %853, label %897

853:                                              ; preds = %848
  %854 = load ptr, ptr %47, align 8, !tbaa !5
  %855 = icmp ne ptr %854, null
  br i1 %855, label %856, label %897

856:                                              ; preds = %853
  %857 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %858 = trunc i8 %857 to i1
  br i1 %858, label %862, label %859

859:                                              ; preds = %856
  %860 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %861 = trunc i8 %860 to i1
  br i1 %861, label %862, label %897

862:                                              ; preds = %859, %856
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #14
  store ptr null, ptr %67, align 8, !tbaa !5
  %863 = load ptr, ptr %47, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %863, i32 0, i32 5
  %865 = load i32, ptr %13, align 4, !tbaa !9
  %866 = add nsw i32 %865, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %864, i32 noundef %866)
  %867 = load ptr, ptr %47, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %867, i32 0, i32 5
  %869 = getelementptr inbounds %struct.ImVector.5, ptr %868, i32 0, i32 2
  %870 = load ptr, ptr %869, align 8, !tbaa !132
  %871 = load ptr, ptr %47, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %871, i32 0, i32 5
  %873 = getelementptr inbounds %struct.ImVector.5, ptr %872, i32 0, i32 0
  %874 = load i32, ptr %873, align 8, !tbaa !139
  %875 = load ptr, ptr %12, align 8, !tbaa !5
  %876 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %870, i32 noundef %874, ptr noundef %875, ptr noundef null, ptr noundef %67)
  %877 = load ptr, ptr %47, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %877, i32 0, i32 2
  store i32 %876, ptr %878, align 4, !tbaa !133
  %879 = load ptr, ptr %67, align 8, !tbaa !5
  %880 = load ptr, ptr %12, align 8, !tbaa !5
  %881 = ptrtoint ptr %879 to i64
  %882 = ptrtoint ptr %880 to i64
  %883 = sub i64 %881, %882
  %884 = trunc i64 %883 to i32
  %885 = load ptr, ptr %47, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %885, i32 0, i32 3
  store i32 %884, ptr %886, align 8, !tbaa !129
  %887 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %887)
  %888 = load ptr, ptr %47, align 8, !tbaa !5
  %889 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %888)
  %890 = zext i1 %889 to i32
  %891 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %892 = trunc i8 %891 to i1
  %893 = zext i1 %892 to i32
  %894 = and i32 %893, %890
  %895 = icmp ne i32 %894, 0
  %896 = zext i1 %895 to i8
  store i8 %896, ptr %64, align 1, !tbaa !44
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #14
  br label %897

897:                                              ; preds = %862, %859, %853, %848
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #14
  %898 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %899 = trunc i8 %898 to i1
  br i1 %899, label %909, label %900

900:                                              ; preds = %897
  %901 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %902 = trunc i8 %901 to i1
  br i1 %902, label %909, label %903

903:                                              ; preds = %900
  %904 = load ptr, ptr %20, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.ImGuiContext, ptr %904, i32 0, i32 50
  %906 = load i32, ptr %905, align 8, !tbaa !120
  %907 = load i32, ptr %29, align 4, !tbaa !9
  %908 = icmp eq i32 %906, %907
  br i1 %908, label %909, label %920

909:                                              ; preds = %903, %900, %897
  %910 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %911 = trunc i8 %910 to i1
  br i1 %911, label %920, label %912

912:                                              ; preds = %909
  %913 = load ptr, ptr %47, align 8, !tbaa !5
  %914 = icmp ne ptr %913, null
  br i1 %914, label %915, label %920

915:                                              ; preds = %912
  %916 = load ptr, ptr %47, align 8, !tbaa !5
  %917 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %916, i32 0, i32 8
  %918 = load i8, ptr %917, align 8, !tbaa !130, !range !42, !noundef !43
  %919 = trunc i8 %918 to i1
  br label %920

920:                                              ; preds = %915, %912, %909, %903
  %921 = phi i1 [ false, %912 ], [ false, %909 ], [ false, %903 ], [ %919, %915 ]
  %922 = zext i1 %921 to i8
  store i8 %922, ptr %68, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #14
  %923 = load ptr, ptr %11, align 8, !tbaa !5
  %924 = icmp ne ptr %923, null
  br i1 %924, label %925, label %941

925:                                              ; preds = %920
  %926 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %927 = trunc i8 %926 to i1
  br i1 %927, label %928, label %933

928:                                              ; preds = %925
  %929 = load ptr, ptr %47, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %929, i32 0, i32 6
  %931 = getelementptr inbounds %struct.ImVector.31, ptr %930, i32 0, i32 2
  %932 = load ptr, ptr %931, align 8, !tbaa !131
  br label %935

933:                                              ; preds = %925
  %934 = load ptr, ptr %12, align 8, !tbaa !5
  br label %935

935:                                              ; preds = %933, %928
  %936 = phi ptr [ %932, %928 ], [ %934, %933 ]
  %937 = getelementptr inbounds i8, ptr %936, i64 0
  %938 = load i8, ptr %937, align 1, !tbaa !140
  %939 = sext i8 %938 to i32
  %940 = icmp eq i32 %939, 0
  br label %941

941:                                              ; preds = %935, %920
  %942 = phi i1 [ false, %920 ], [ %940, %935 ]
  %943 = zext i1 %942 to i8
  store i8 %943, ptr %69, align 1, !tbaa !44
  %944 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %945 = trunc i8 %944 to i1
  br i1 %945, label %946, label %1017

946:                                              ; preds = %941
  %947 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %948 = trunc i8 %947 to i1
  br i1 %948, label %1017, label %949

949:                                              ; preds = %946
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #14
  %950 = load ptr, ptr %20, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.ImGuiContext, ptr %950, i32 0, i32 7
  %952 = load ptr, ptr %951, align 8, !tbaa !141
  %953 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118) %952, i16 noundef zeroext 42)
  store ptr %953, ptr %70, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #14
  %954 = load ptr, ptr %20, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.ImGuiContext, ptr %954, i32 0, i32 190
  store ptr %955, ptr %71, align 8, !tbaa !5
  %956 = load ptr, ptr %20, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.ImGuiContext, ptr %956, i32 0, i32 7
  %958 = load ptr, ptr %957, align 8, !tbaa !141
  %959 = getelementptr inbounds %struct.ImFont, ptr %958, i32 0, i32 2
  %960 = load float, ptr %959, align 4, !tbaa !142
  %961 = load ptr, ptr %71, align 8, !tbaa !5
  %962 = getelementptr inbounds %struct.ImFont, ptr %961, i32 0, i32 2
  store float %960, ptr %962, align 4, !tbaa !142
  %963 = load ptr, ptr %20, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.ImGuiContext, ptr %963, i32 0, i32 7
  %965 = load ptr, ptr %964, align 8, !tbaa !141
  %966 = getelementptr inbounds %struct.ImFont, ptr %965, i32 0, i32 16
  %967 = load float, ptr %966, align 4, !tbaa !143
  %968 = load ptr, ptr %71, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.ImFont, ptr %968, i32 0, i32 16
  store float %967, ptr %969, align 4, !tbaa !143
  %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 !141
  %973 = getelementptr inbounds %struct.ImFont, ptr %972, i32 0, i32 17
  %974 = load float, ptr %973, align 8, !tbaa !144
  %975 = load ptr, ptr %71, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.ImFont, ptr %975, i32 0, i32 17
  store float %974, ptr %976, align 8, !tbaa !144
  %977 = load ptr, ptr %20, align 8, !tbaa !5
  %978 = getelementptr inbounds %struct.ImGuiContext, ptr %977, i32 0, i32 7
  %979 = load ptr, ptr %978, align 8, !tbaa !141
  %980 = getelementptr inbounds %struct.ImFont, ptr %979, i32 0, i32 18
  %981 = load float, ptr %980, align 4, !tbaa !145
  %982 = load ptr, ptr %71, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.ImFont, ptr %982, i32 0, i32 18
  store float %981, ptr %983, align 4, !tbaa !145
  %984 = load ptr, ptr %20, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.ImGuiContext, ptr %984, i32 0, i32 7
  %986 = load ptr, ptr %985, align 8, !tbaa !141
  %987 = getelementptr inbounds %struct.ImFont, ptr %986, i32 0, i32 6
  %988 = load ptr, ptr %987, align 8, !tbaa !146
  %989 = load ptr, ptr %71, align 8, !tbaa !5
  %990 = getelementptr inbounds %struct.ImFont, ptr %989, i32 0, i32 6
  store ptr %988, ptr %990, align 8, !tbaa !146
  %991 = load ptr, ptr %70, align 8, !tbaa !5
  %992 = load ptr, ptr %71, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.ImFont, ptr %992, i32 0, i32 5
  store ptr %991, ptr %993, align 8, !tbaa !147
  %994 = load ptr, ptr %70, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.ImFontGlyph, ptr %994, i32 0, i32 1
  %996 = load float, ptr %995, align 4, !tbaa !148
  %997 = load ptr, ptr %71, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.ImFont, ptr %997, i32 0, i32 1
  store float %996, ptr %998, align 8, !tbaa !150
  %999 = load ptr, ptr %71, align 8, !tbaa !5
  %1000 = getelementptr inbounds %struct.ImFont, ptr %999, i32 0, i32 4
  %1001 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1000)
  br i1 %1001, label %1002, label %1010

1002:                                             ; preds = %949
  %1003 = load ptr, ptr %71, align 8, !tbaa !5
  %1004 = getelementptr inbounds %struct.ImFont, ptr %1003, i32 0, i32 0
  %1005 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1004)
  br i1 %1005, label %1006, label %1010

1006:                                             ; preds = %1002
  %1007 = load ptr, ptr %71, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.ImFont, ptr %1007, i32 0, i32 3
  %1009 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1008)
  br label %1010

1010:                                             ; preds = %1006, %1002, %949
  %1011 = phi i1 [ false, %1002 ], [ false, %949 ], [ %1009, %1006 ]
  br i1 %1011, label %1012, label %1013

1012:                                             ; preds = %1010
  br label %1015

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

1014:                                             ; No predecessors!
  br label %1015

1015:                                             ; preds = %1014, %1012
  %1016 = load ptr, ptr %71, align 8, !tbaa !5
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef %1016)
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #14
  br label %1017

1017:                                             ; preds = %1015, %946, %941
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #14
  store i32 0, ptr %72, align 4, !tbaa !9
  %1018 = load ptr, ptr %20, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.ImGuiContext, ptr %1018, i32 0, i32 50
  %1020 = load i32, ptr %1019, align 8, !tbaa !120
  %1021 = load i32, ptr %29, align 4, !tbaa !9
  %1022 = icmp eq i32 %1020, %1021
  br i1 %1022, label %1023, label %1404

1023:                                             ; preds = %1017
  %1024 = load ptr, ptr %47, align 8, !tbaa !5
  %1025 = icmp ne ptr %1024, null
  br i1 %1025, label %1026, label %1027

1026:                                             ; preds = %1023
  br label %1029

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

1028:                                             ; No predecessors!
  br label %1029

1029:                                             ; preds = %1028, %1026
  %1030 = load ptr, ptr %47, align 8, !tbaa !5
  %1031 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1030, i32 0, i32 3
  %1032 = load i32, ptr %1031, align 8, !tbaa !129
  store i32 %1032, ptr %72, align 4, !tbaa !9
  %1033 = load ptr, ptr %47, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1033, i32 0, i32 16
  store i8 0, ptr %1034, align 2, !tbaa !151
  %1035 = load i32, ptr %13, align 4, !tbaa !9
  %1036 = load ptr, ptr %47, align 8, !tbaa !5
  %1037 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1036, i32 0, i32 10
  store i32 %1035, ptr %1037, align 4, !tbaa !152
  %1038 = load i32, ptr %15, align 4, !tbaa !9
  %1039 = load ptr, ptr %47, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1039, i32 0, i32 18
  store i32 %1038, ptr %1040, align 8, !tbaa !153
  %1041 = load ptr, ptr %21, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.ImGuiIO, ptr %1041, i32 0, i32 68
  %1043 = getelementptr inbounds [5 x i8], ptr %1042, i64 0, i64 0
  %1044 = load i8, ptr %1043, align 8, !tbaa !44, !range !42, !noundef !43
  %1045 = trunc i8 %1044 to i1
  %1046 = xor i1 %1045, true
  %1047 = load ptr, ptr %20, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.ImGuiContext, ptr %1047, i32 0, i32 54
  %1049 = zext i1 %1046 to i8
  store i8 %1049, ptr %1048, align 1, !tbaa !154
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #14
  %1050 = load ptr, ptr %21, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.ImGuiIO, ptr %1050, i32 0, i32 67
  %1052 = getelementptr inbounds %struct.ImVec2, ptr %1051, i32 0, i32 0
  %1053 = load float, ptr %1052, align 8, !tbaa !155
  %1054 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %1055 = getelementptr inbounds %struct.ImVec2, ptr %1054, i32 0, i32 0
  %1056 = load float, ptr %1055, align 4, !tbaa !156
  %1057 = fsub float %1053, %1056
  %1058 = load ptr, ptr %22, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.ImGuiStyle, ptr %1058, i32 0, i32 12
  %1060 = getelementptr inbounds %struct.ImVec2, ptr %1059, i32 0, i32 0
  %1061 = load float, ptr %1060, align 4, !tbaa !157
  %1062 = fsub float %1057, %1061
  %1063 = load ptr, ptr %47, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1063, i32 0, i32 11
  %1065 = load float, ptr %1064, align 8, !tbaa !134
  %1066 = fadd float %1062, %1065
  store float %1066, ptr %73, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #14
  %1067 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1068 = trunc i8 %1067 to i1
  br i1 %1068, label %1069, label %1080

1069:                                             ; preds = %1029
  %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 1
  %1073 = load float, ptr %1072, align 4, !tbaa !158
  %1074 = load ptr, ptr %38, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.ImGuiWindow, ptr %1074, i32 0, i32 69
  %1076 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1075, i32 0, i32 0
  %1077 = getelementptr inbounds %struct.ImVec2, ptr %1076, i32 0, i32 1
  %1078 = load float, ptr %1077, align 4, !tbaa !159
  %1079 = fsub float %1073, %1078
  br label %1085

1080:                                             ; preds = %1029
  %1081 = load ptr, ptr %20, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.ImGuiContext, ptr %1081, i32 0, i32 8
  %1083 = load float, ptr %1082, align 8, !tbaa !47
  %1084 = fmul float %1083, 5.000000e-01
  br label %1085

1085:                                             ; preds = %1080, %1069
  %1086 = phi float [ %1079, %1069 ], [ %1084, %1080 ]
  store float %1086, ptr %74, align 4, !tbaa !46
  %1087 = load i8, ptr %54, align 1, !tbaa !44, !range !42, !noundef !43
  %1088 = trunc i8 %1087 to i1
  br i1 %1088, label %1089, label %1093

1089:                                             ; preds = %1085
  %1090 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %1090)
  %1091 = load ptr, ptr %47, align 8, !tbaa !5
  %1092 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1091, i32 0, i32 15
  store i8 1, ptr %1092, align 1, !tbaa !160
  br label %1295

1093:                                             ; preds = %1085
  %1094 = load i8, ptr %46, align 1, !tbaa !44, !range !42, !noundef !43
  %1095 = trunc i8 %1094 to i1
  br i1 %1095, label %1096, label %1226

1096:                                             ; preds = %1093
  %1097 = load ptr, ptr %21, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.ImGuiIO, ptr %1097, i32 0, i32 85
  %1099 = getelementptr inbounds [5 x i16], ptr %1098, i64 0, i64 0
  %1100 = load i16, ptr %1099, align 2, !tbaa !161
  %1101 = zext i16 %1100 to i32
  %1102 = icmp sge i32 %1101, 2
  br i1 %1102, label %1103, label %1226

1103:                                             ; preds = %1096
  %1104 = load ptr, ptr %21, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.ImGuiIO, ptr %1104, i32 0, i32 74
  %1106 = load i8, ptr %1105, align 1, !tbaa !162, !range !42, !noundef !43
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1226, label %1108

1108:                                             ; preds = %1103
  %1109 = load ptr, ptr %47, align 8, !tbaa !5
  %1110 = load ptr, ptr %47, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1110, i32 0, i32 12
  %1112 = load float, ptr %73, align 4, !tbaa !46
  %1113 = load float, ptr %74, align 4, !tbaa !46
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1109, ptr noundef %1111, float noundef %1112, float noundef %1113)
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #14
  %1114 = load ptr, ptr %21, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.ImGuiIO, ptr %1114, i32 0, i32 85
  %1116 = getelementptr inbounds [5 x i16], ptr %1115, i64 0, i64 0
  %1117 = load i16, ptr %1116, align 2, !tbaa !161
  %1118 = zext i16 %1117 to i32
  %1119 = sub nsw i32 %1118, 2
  store i32 %1119, ptr %75, align 4, !tbaa !9
  %1120 = load i32, ptr %75, align 4, !tbaa !9
  %1121 = srem i32 %1120, 2
  %1122 = icmp eq i32 %1121, 0
  br i1 %1122, label %1123, label %1189

1123:                                             ; preds = %1108
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #14
  %1124 = load ptr, ptr %47, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1124, i32 0, i32 12
  %1126 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1125, i32 0, i32 0
  %1127 = load i32, ptr %1126, align 4, !tbaa !163
  %1128 = icmp eq i32 %1127, 0
  br i1 %1128, label %1139, label %1129

1129:                                             ; preds = %1123
  %1130 = load ptr, ptr %47, align 8, !tbaa !5
  %1131 = load ptr, ptr %47, align 8, !tbaa !5
  %1132 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1131, i32 0, i32 12
  %1133 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1132, i32 0, i32 0
  %1134 = load i32, ptr %1133, align 4, !tbaa !163
  %1135 = sub nsw i32 %1134, 1
  %1136 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef %1130, i32 noundef %1135)
  %1137 = zext i16 %1136 to i32
  %1138 = icmp eq i32 %1137, 10
  br label %1139

1139:                                             ; preds = %1129, %1123
  %1140 = phi i1 [ true, %1123 ], [ %1138, %1129 ]
  %1141 = zext i1 %1140 to i8
  store i8 %1141, ptr %76, align 1, !tbaa !44
  %1142 = load ptr, ptr %47, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1142, i32 0, i32 12
  %1144 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1143, i32 0, i32 1
  %1145 = load i32, ptr %1144, align 4, !tbaa !164
  %1146 = load ptr, ptr %47, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1146, i32 0, i32 12
  %1148 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1147, i32 0, i32 2
  %1149 = load i32, ptr %1148, align 4, !tbaa !165
  %1150 = icmp ne i32 %1145, %1149
  br i1 %1150, label %1154, label %1151

1151:                                             ; preds = %1139
  %1152 = load i8, ptr %76, align 1, !tbaa !44, !range !42, !noundef !43
  %1153 = trunc i8 %1152 to i1
  br i1 %1153, label %1156, label %1154

1154:                                             ; preds = %1151, %1139
  %1155 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1155, i32 noundef 2097164)
  br label %1156

1156:                                             ; preds = %1154, %1151
  %1157 = load ptr, ptr %47, align 8, !tbaa !5
  %1158 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1157, i32 0, i32 12
  %1159 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1158, i32 0, i32 1
  %1160 = load i32, ptr %1159, align 4, !tbaa !164
  %1161 = load ptr, ptr %47, align 8, !tbaa !5
  %1162 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1161, i32 0, i32 12
  %1163 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1162, i32 0, i32 2
  %1164 = load i32, ptr %1163, align 4, !tbaa !165
  %1165 = icmp ne i32 %1160, %1164
  br i1 %1165, label %1169, label %1166

1166:                                             ; preds = %1156
  %1167 = load ptr, ptr %47, align 8, !tbaa !5
  %1168 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1167, i32 0, i32 12
  call void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef %1168)
  br label %1169

1169:                                             ; preds = %1166, %1156
  %1170 = load ptr, ptr %47, align 8, !tbaa !5
  %1171 = load ptr, ptr %47, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1171, i32 0, i32 12
  %1173 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1172, i32 0, i32 0
  %1174 = load i32, ptr %1173, align 4, !tbaa !163
  %1175 = call noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef %1170, i32 noundef %1174)
  %1176 = load ptr, ptr %47, align 8, !tbaa !5
  %1177 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1176, i32 0, i32 12
  %1178 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1177, i32 0, i32 0
  store i32 %1175, ptr %1178, align 4, !tbaa !163
  %1179 = load ptr, ptr %47, align 8, !tbaa !5
  %1180 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1179, i32 0, i32 12
  %1181 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1180, i32 0, i32 0
  %1182 = load i32, ptr %1181, align 4, !tbaa !163
  %1183 = load ptr, ptr %47, align 8, !tbaa !5
  %1184 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1183, i32 0, i32 12
  %1185 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1184, i32 0, i32 2
  store i32 %1182, ptr %1185, align 4, !tbaa !165
  %1186 = load ptr, ptr %47, align 8, !tbaa !5
  %1187 = load ptr, ptr %47, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1187, i32 0, i32 12
  call void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %1186, ptr noundef %1188)
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #14
  br label %1224

1189:                                             ; preds = %1108
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #14
  %1190 = load ptr, ptr %47, align 8, !tbaa !5
  %1191 = load ptr, ptr %47, 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 !163
  %1195 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef %1190, i32 noundef %1194)
  %1196 = zext i16 %1195 to i32
  %1197 = icmp eq i32 %1196, 10
  %1198 = zext i1 %1197 to i8
  store i8 %1198, ptr %77, align 1, !tbaa !44
  %1199 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1199, i32 noundef 2097156)
  %1200 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1200, i32 noundef 6291461)
  %1201 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1201, i32 noundef 6291457)
  %1202 = load i8, ptr %77, align 1, !tbaa !44, !range !42, !noundef !43
  %1203 = trunc i8 %1202 to i1
  br i1 %1203, label %1221, label %1204

1204:                                             ; preds = %1189
  %1205 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1206 = trunc i8 %1205 to i1
  br i1 %1206, label %1207, label %1221

1207:                                             ; preds = %1204
  %1208 = load ptr, ptr %47, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1208, i32 0, i32 12
  %1210 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1209, i32 0, i32 1
  %1211 = load ptr, ptr %47, 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 2
  call void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4) %1210, ptr noundef nonnull align 4 dereferenceable(4) %1213)
  %1214 = load ptr, ptr %47, align 8, !tbaa !5
  %1215 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1214, i32 0, i32 12
  %1216 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1215, i32 0, i32 2
  %1217 = load i32, ptr %1216, align 4, !tbaa !165
  %1218 = load ptr, ptr %47, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1218, i32 0, i32 12
  %1220 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1219, i32 0, i32 0
  store i32 %1217, ptr %1220, align 4, !tbaa !163
  br label %1221

1221:                                             ; preds = %1207, %1204, %1189
  %1222 = load ptr, ptr %47, align 8, !tbaa !5
  %1223 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1222, i32 0, i32 14
  store i8 0, ptr %1223, align 4, !tbaa !166
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #14
  br label %1224

1224:                                             ; preds = %1221, %1169
  %1225 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %1225)
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #14
  br label %1294

1226:                                             ; preds = %1103, %1096, %1093
  %1227 = load ptr, ptr %21, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.ImGuiIO, ptr %1227, i32 0, i32 83
  %1229 = getelementptr inbounds [5 x i8], ptr %1228, i64 0, i64 0
  %1230 = load i8, ptr %1229, align 8, !tbaa !44, !range !42, !noundef !43
  %1231 = trunc i8 %1230 to i1
  br i1 %1231, label %1232, label %1260

1232:                                             ; preds = %1226
  %1233 = load ptr, ptr %47, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1233, i32 0, i32 15
  %1235 = load i8, ptr %1234, align 1, !tbaa !160, !range !42, !noundef !43
  %1236 = trunc i8 %1235 to i1
  br i1 %1236, label %1260, label %1237

1237:                                             ; preds = %1232
  %1238 = load i8, ptr %46, align 1, !tbaa !44, !range !42, !noundef !43
  %1239 = trunc i8 %1238 to i1
  br i1 %1239, label %1240, label %1259

1240:                                             ; preds = %1237
  %1241 = load ptr, ptr %21, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.ImGuiIO, ptr %1241, i32 0, i32 74
  %1243 = load i8, ptr %1242, align 1, !tbaa !162, !range !42, !noundef !43
  %1244 = trunc i8 %1243 to i1
  br i1 %1244, label %1245, label %1251

1245:                                             ; preds = %1240
  %1246 = load ptr, ptr %47, align 8, !tbaa !5
  %1247 = load ptr, ptr %47, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1247, i32 0, i32 12
  %1249 = load float, ptr %73, align 4, !tbaa !46
  %1250 = load float, ptr %74, align 4, !tbaa !46
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1246, ptr noundef %1248, float noundef %1249, float noundef %1250)
  br label %1257

1251:                                             ; preds = %1240
  %1252 = load ptr, ptr %47, align 8, !tbaa !5
  %1253 = load ptr, ptr %47, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1253, i32 0, i32 12
  %1255 = load float, ptr %73, align 4, !tbaa !46
  %1256 = load float, ptr %74, align 4, !tbaa !46
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1252, ptr noundef %1254, float noundef %1255, float noundef %1256)
  br label %1257

1257:                                             ; preds = %1251, %1245
  %1258 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %1258)
  br label %1259

1259:                                             ; preds = %1257, %1237
  br label %1293

1260:                                             ; preds = %1232, %1226
  %1261 = load ptr, ptr %21, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.ImGuiIO, ptr %1261, i32 0, i32 68
  %1263 = getelementptr inbounds [5 x i8], ptr %1262, i64 0, i64 0
  %1264 = load i8, ptr %1263, align 8, !tbaa !44, !range !42, !noundef !43
  %1265 = trunc i8 %1264 to i1
  br i1 %1265, label %1266, label %1292

1266:                                             ; preds = %1260
  %1267 = load ptr, ptr %47, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1267, i32 0, i32 15
  %1269 = load i8, ptr %1268, align 1, !tbaa !160, !range !42, !noundef !43
  %1270 = trunc i8 %1269 to i1
  br i1 %1270, label %1292, label %1271

1271:                                             ; preds = %1266
  %1272 = load ptr, ptr %21, align 8, !tbaa !5
  %1273 = getelementptr inbounds %struct.ImGuiIO, ptr %1272, i32 0, i32 62
  %1274 = getelementptr inbounds %struct.ImVec2, ptr %1273, i32 0, i32 0
  %1275 = load float, ptr %1274, align 8, !tbaa !167
  %1276 = fcmp une float %1275, 0.000000e+00
  br i1 %1276, label %1283, label %1277

1277:                                             ; preds = %1271
  %1278 = load ptr, ptr %21, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.ImGuiIO, ptr %1278, i32 0, i32 62
  %1280 = getelementptr inbounds %struct.ImVec2, ptr %1279, i32 0, i32 1
  %1281 = load float, ptr %1280, align 4, !tbaa !168
  %1282 = fcmp une float %1281, 0.000000e+00
  br i1 %1282, label %1283, label %1292

1283:                                             ; preds = %1277, %1271
  %1284 = load ptr, ptr %47, align 8, !tbaa !5
  %1285 = load ptr, ptr %47, align 8, !tbaa !5
  %1286 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1285, i32 0, i32 12
  %1287 = load float, ptr %73, align 4, !tbaa !46
  %1288 = load float, ptr %74, align 4, !tbaa !46
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1284, ptr noundef %1286, float noundef %1287, float noundef %1288)
  %1289 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %1289)
  %1290 = load ptr, ptr %47, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1290, i32 0, i32 14
  store i8 1, ptr %1291, align 4, !tbaa !166
  br label %1292

1292:                                             ; preds = %1283, %1277, %1266, %1260
  br label %1293

1293:                                             ; preds = %1292, %1259
  br label %1294

1294:                                             ; preds = %1293, %1224
  br label %1295

1295:                                             ; preds = %1294, %1089
  %1296 = load ptr, ptr %47, align 8, !tbaa !5
  %1297 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1296, i32 0, i32 15
  %1298 = load i8, ptr %1297, align 1, !tbaa !160, !range !42, !noundef !43
  %1299 = trunc i8 %1298 to i1
  br i1 %1299, label %1300, label %1309

1300:                                             ; preds = %1295
  %1301 = load ptr, ptr %21, align 8, !tbaa !5
  %1302 = getelementptr inbounds %struct.ImGuiIO, ptr %1301, i32 0, i32 68
  %1303 = getelementptr inbounds [5 x i8], ptr %1302, i64 0, i64 0
  %1304 = load i8, ptr %1303, align 8, !tbaa !44, !range !42, !noundef !43
  %1305 = trunc i8 %1304 to i1
  br i1 %1305, label %1309, label %1306

1306:                                             ; preds = %1300
  %1307 = load ptr, ptr %47, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1307, i32 0, i32 15
  store i8 0, ptr %1308, align 1, !tbaa !160
  br label %1309

1309:                                             ; preds = %1306, %1300, %1295
  %1310 = load i32, ptr %15, align 4, !tbaa !9
  %1311 = and i32 %1310, 1024
  %1312 = icmp ne i32 %1311, 0
  br i1 %1312, label %1313, label %1328

1313:                                             ; preds = %1309
  %1314 = load i32, ptr %29, align 4, !tbaa !9
  %1315 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %1314, i32 noundef 0)
  br i1 %1315, label %1316, label %1328

1316:                                             ; preds = %1313
  %1317 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1318 = trunc i8 %1317 to i1
  br i1 %1318, label %1328, label %1319

1319:                                             ; preds = %1316
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #14
  store i32 9, ptr %78, align 4, !tbaa !9
  %1320 = load i32, ptr %15, align 4, !tbaa !9
  %1321 = load ptr, ptr %16, align 8, !tbaa !5
  %1322 = load ptr, ptr %17, align 8, !tbaa !5
  %1323 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %78, i32 noundef %1320, ptr noundef %1321, ptr noundef %1322, i32 noundef 2)
  br i1 %1323, label %1324, label %1327

1324:                                             ; preds = %1319
  %1325 = load ptr, ptr %47, align 8, !tbaa !5
  %1326 = load i32, ptr %78, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1325, i32 noundef %1326)
  br label %1327

1327:                                             ; preds = %1324, %1319
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #14
  br label %1328

1328:                                             ; preds = %1327, %1316, %1313, %1309
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #14
  %1329 = load ptr, ptr %21, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.ImGuiIO, ptr %1329, i32 0, i32 73
  %1331 = load i8, ptr %1330, align 8, !tbaa !135, !range !42, !noundef !43
  %1332 = trunc i8 %1331 to i1
  br i1 %1332, label %1333, label %1338

1333:                                             ; preds = %1328
  %1334 = load ptr, ptr %21, align 8, !tbaa !5
  %1335 = getelementptr inbounds %struct.ImGuiIO, ptr %1334, i32 0, i32 75
  %1336 = load i8, ptr %1335, align 2, !tbaa !169, !range !42, !noundef !43
  %1337 = trunc i8 %1336 to i1
  br i1 %1337, label %1338, label %1348

1338:                                             ; preds = %1333, %1328
  %1339 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %1340 = trunc i8 %1339 to i1
  br i1 %1340, label %1341, label %1346

1341:                                             ; preds = %1338
  %1342 = load ptr, ptr %21, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.ImGuiIO, ptr %1342, i32 0, i32 76
  %1344 = load i8, ptr %1343, align 1, !tbaa !170, !range !42, !noundef !43
  %1345 = trunc i8 %1344 to i1
  br label %1346

1346:                                             ; preds = %1341, %1338
  %1347 = phi i1 [ false, %1338 ], [ %1345, %1341 ]
  br label %1348

1348:                                             ; preds = %1346, %1333
  %1349 = phi i1 [ true, %1333 ], [ %1347, %1346 ]
  %1350 = zext i1 %1349 to i8
  store i8 %1350, ptr %79, align 1, !tbaa !44
  %1351 = load ptr, ptr %21, align 8, !tbaa !5
  %1352 = getelementptr inbounds %struct.ImGuiIO, ptr %1351, i32 0, i32 101
  %1353 = getelementptr inbounds %struct.ImVector.5, ptr %1352, i32 0, i32 0
  %1354 = load i32, ptr %1353, align 8, !tbaa !171
  %1355 = icmp sgt i32 %1354, 0
  br i1 %1355, label %1356, label %1403

1356:                                             ; preds = %1348
  %1357 = load i8, ptr %79, align 1, !tbaa !44, !range !42, !noundef !43
  %1358 = trunc i8 %1357 to i1
  br i1 %1358, label %1400, label %1359

1359:                                             ; preds = %1356
  %1360 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1361 = trunc i8 %1360 to i1
  br i1 %1361, label %1400, label %1362

1362:                                             ; preds = %1359
  %1363 = load i8, ptr %49, align 1, !tbaa !44, !range !42, !noundef !43
  %1364 = trunc i8 %1363 to i1
  br i1 %1364, label %1400, label %1365

1365:                                             ; preds = %1362
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #14
  store i32 0, ptr %80, align 4, !tbaa !9
  br label %1366

1366:                                             ; preds = %1396, %1365
  %1367 = load i32, ptr %80, align 4, !tbaa !9
  %1368 = load ptr, ptr %21, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.ImGuiIO, ptr %1368, i32 0, i32 101
  %1370 = getelementptr inbounds %struct.ImVector.5, ptr %1369, i32 0, i32 0
  %1371 = load i32, ptr %1370, align 8, !tbaa !171
  %1372 = icmp slt i32 %1367, %1371
  br i1 %1372, label %1374, label %1373

1373:                                             ; preds = %1366
  store i32 2, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #14
  br label %1399

1374:                                             ; preds = %1366
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #14
  %1375 = load ptr, ptr %21, align 8, !tbaa !5
  %1376 = getelementptr inbounds %struct.ImGuiIO, ptr %1375, i32 0, i32 101
  %1377 = load i32, ptr %80, align 4, !tbaa !9
  %1378 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1376, i32 noundef %1377)
  %1379 = load i16, ptr %1378, align 2, !tbaa !161
  %1380 = zext i16 %1379 to i32
  store i32 %1380, ptr %81, align 4, !tbaa !9
  %1381 = load i32, ptr %81, align 4, !tbaa !9
  %1382 = icmp eq i32 %1381, 9
  br i1 %1382, label %1383, label %1384

1383:                                             ; preds = %1374
  store i32 4, ptr %19, align 4
  br label %1393

1384:                                             ; preds = %1374
  %1385 = load i32, ptr %15, align 4, !tbaa !9
  %1386 = load ptr, ptr %16, align 8, !tbaa !5
  %1387 = load ptr, ptr %17, align 8, !tbaa !5
  %1388 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %81, i32 noundef %1385, ptr noundef %1386, ptr noundef %1387, i32 noundef 2)
  br i1 %1388, label %1389, label %1392

1389:                                             ; preds = %1384
  %1390 = load ptr, ptr %47, align 8, !tbaa !5
  %1391 = load i32, ptr %81, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1390, i32 noundef %1391)
  br label %1392

1392:                                             ; preds = %1389, %1384
  store i32 0, ptr %19, align 4
  br label %1393

1393:                                             ; preds = %1392, %1383
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #14
  %1394 = load i32, ptr %19, align 4
  switch i32 %1394, label %3577 [
    i32 0, label %1395
    i32 4, label %1396
  ]

1395:                                             ; preds = %1393
  br label %1396

1396:                                             ; preds = %1395, %1393
  %1397 = load i32, ptr %80, align 4, !tbaa !9
  %1398 = add nsw i32 %1397, 1
  store i32 %1398, ptr %80, align 4, !tbaa !9
  br label %1366, !llvm.loop !172

1399:                                             ; preds = %1373
  br label %1400

1400:                                             ; preds = %1399, %1362, %1359, %1356
  %1401 = load ptr, ptr %21, align 8, !tbaa !5
  %1402 = getelementptr inbounds %struct.ImGuiIO, ptr %1401, i32 0, i32 101
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1402, i32 noundef 0)
  br label %1403

1403:                                             ; preds = %1400, %1348
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #14
  br label %1404

1404:                                             ; preds = %1403, %1017
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #14
  store i8 0, ptr %82, align 1, !tbaa !44
  %1405 = load ptr, ptr %20, align 8, !tbaa !5
  %1406 = getelementptr inbounds %struct.ImGuiContext, ptr %1405, i32 0, i32 50
  %1407 = load i32, ptr %1406, align 8, !tbaa !120
  %1408 = load i32, ptr %29, align 4, !tbaa !9
  %1409 = icmp eq i32 %1407, %1408
  br i1 %1409, label %1410, label %2119

1410:                                             ; preds = %1404
  %1411 = load ptr, ptr %20, align 8, !tbaa !5
  %1412 = getelementptr inbounds %struct.ImGuiContext, ptr %1411, i32 0, i32 53
  %1413 = load i8, ptr %1412, align 4, !tbaa !174, !range !42, !noundef !43
  %1414 = trunc i8 %1413 to i1
  br i1 %1414, label %2119, label %1415

1415:                                             ; preds = %1410
  %1416 = load i8, ptr %53, align 1, !tbaa !44, !range !42, !noundef !43
  %1417 = trunc i8 %1416 to i1
  br i1 %1417, label %2119, label %1418

1418:                                             ; preds = %1415
  %1419 = load ptr, ptr %47, align 8, !tbaa !5
  %1420 = icmp ne ptr %1419, null
  br i1 %1420, label %1421, label %1422

1421:                                             ; preds = %1418
  br label %1424

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

1423:                                             ; No predecessors!
  br label %1424

1424:                                             ; preds = %1423, %1421
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #14
  %1425 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %1426 = load float, ptr %1425, align 4, !tbaa !106
  %1427 = load ptr, ptr %22, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.ImGuiStyle, ptr %1427, i32 0, i32 12
  %1429 = getelementptr inbounds %struct.ImVec2, ptr %1428, i32 0, i32 1
  %1430 = load float, ptr %1429, align 4, !tbaa !107
  %1431 = fsub float %1426, %1430
  %1432 = load ptr, ptr %20, align 8, !tbaa !5
  %1433 = getelementptr inbounds %struct.ImGuiContext, ptr %1432, i32 0, i32 8
  %1434 = load float, ptr %1433, align 8, !tbaa !47
  %1435 = fdiv float %1431, %1434
  %1436 = fptosi float %1435 to i32
  %1437 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1436, i32 noundef 1)
  store i32 %1437, ptr %83, align 4, !tbaa !9
  %1438 = load i32, ptr %83, align 4, !tbaa !9
  %1439 = load ptr, ptr %47, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1439, i32 0, i32 12
  %1441 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1440, i32 0, i32 4
  store i32 %1438, ptr %1441, align 4, !tbaa !175
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #14
  %1442 = load ptr, ptr %21, align 8, !tbaa !5
  %1443 = getelementptr inbounds %struct.ImGuiIO, ptr %1442, i32 0, i32 74
  %1444 = load i8, ptr %1443, align 1, !tbaa !162, !range !42, !noundef !43
  %1445 = trunc i8 %1444 to i1
  %1446 = zext i1 %1445 to i64
  %1447 = select i1 %1445, i32 4194304, i32 0
  store i32 %1447, ptr %84, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #14
  %1448 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %1449 = trunc i8 %1448 to i1
  br i1 %1449, label %1450, label %1455

1450:                                             ; preds = %1424
  %1451 = load ptr, ptr %21, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.ImGuiIO, ptr %1451, i32 0, i32 75
  %1453 = load i8, ptr %1452, align 2, !tbaa !169, !range !42, !noundef !43
  %1454 = trunc i8 %1453 to i1
  br label %1460

1455:                                             ; preds = %1424
  %1456 = load ptr, ptr %21, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.ImGuiIO, ptr %1456, i32 0, i32 73
  %1458 = load i8, ptr %1457, align 8, !tbaa !135, !range !42, !noundef !43
  %1459 = trunc i8 %1458 to i1
  br label %1460

1460:                                             ; preds = %1455, %1450
  %1461 = phi i1 [ %1454, %1450 ], [ %1459, %1455 ]
  %1462 = zext i1 %1461 to i8
  store i8 %1462, ptr %85, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #14
  %1463 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %1464 = trunc i8 %1463 to i1
  br i1 %1464, label %1465, label %1481

1465:                                             ; preds = %1460
  %1466 = load ptr, ptr %21, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.ImGuiIO, ptr %1466, i32 0, i32 76
  %1468 = load i8, ptr %1467, align 1, !tbaa !170, !range !42, !noundef !43
  %1469 = trunc i8 %1468 to i1
  br i1 %1469, label %1470, label %1481

1470:                                             ; preds = %1465
  %1471 = load ptr, ptr %21, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.ImGuiIO, ptr %1471, i32 0, i32 73
  %1473 = load i8, ptr %1472, align 8, !tbaa !135, !range !42, !noundef !43
  %1474 = trunc i8 %1473 to i1
  br i1 %1474, label %1481, label %1475

1475:                                             ; preds = %1470
  %1476 = load ptr, ptr %21, align 8, !tbaa !5
  %1477 = getelementptr inbounds %struct.ImGuiIO, ptr %1476, i32 0, i32 75
  %1478 = load i8, ptr %1477, align 2, !tbaa !169, !range !42, !noundef !43
  %1479 = trunc i8 %1478 to i1
  %1480 = xor i1 %1479, true
  br label %1481

1481:                                             ; preds = %1475, %1470, %1465, %1460
  %1482 = phi i1 [ false, %1470 ], [ false, %1465 ], [ false, %1460 ], [ %1480, %1475 ]
  %1483 = zext i1 %1482 to i8
  store i8 %1483, ptr %86, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #14
  store i32 1, ptr %87, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #14
  %1484 = load i32, ptr %29, align 4, !tbaa !9
  %1485 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2617, i32 noundef %1484, i32 noundef 1)
  br i1 %1485, label %1489, label %1486

1486:                                             ; preds = %1481
  %1487 = load i32, ptr %29, align 4, !tbaa !9
  %1488 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8714, i32 noundef %1487, i32 noundef 1)
  br i1 %1488, label %1489, label %1503

1489:                                             ; preds = %1486, %1481
  %1490 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1491 = trunc i8 %1490 to i1
  br i1 %1491, label %1503, label %1492

1492:                                             ; preds = %1489
  %1493 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %1494 = trunc i8 %1493 to i1
  br i1 %1494, label %1503, label %1495

1495:                                             ; preds = %1492
  %1496 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1497 = trunc i8 %1496 to i1
  br i1 %1497, label %1498, label %1501

1498:                                             ; preds = %1495
  %1499 = load ptr, ptr %47, align 8, !tbaa !5
  %1500 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1499)
  br label %1501

1501:                                             ; preds = %1498, %1495
  %1502 = phi i1 [ true, %1495 ], [ %1500, %1498 ]
  br label %1503

1503:                                             ; preds = %1501, %1492, %1489, %1486
  %1504 = phi i1 [ false, %1492 ], [ false, %1489 ], [ false, %1486 ], [ %1502, %1501 ]
  %1505 = zext i1 %1504 to i8
  store i8 %1505, ptr %88, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #14
  %1506 = load i32, ptr %29, align 4, !tbaa !9
  %1507 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2596, i32 noundef %1506, i32 noundef 0)
  br i1 %1507, label %1511, label %1508

1508:                                             ; preds = %1503
  %1509 = load i32, ptr %29, align 4, !tbaa !9
  %1510 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 4617, i32 noundef %1509, i32 noundef 0)
  br i1 %1510, label %1511, label %1522

1511:                                             ; preds = %1508, %1503
  %1512 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %1513 = trunc i8 %1512 to i1
  br i1 %1513, label %1522, label %1514

1514:                                             ; preds = %1511
  %1515 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1516 = trunc i8 %1515 to i1
  br i1 %1516, label %1517, label %1520

1517:                                             ; preds = %1514
  %1518 = load ptr, ptr %47, align 8, !tbaa !5
  %1519 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1518)
  br label %1520

1520:                                             ; preds = %1517, %1514
  %1521 = phi i1 [ true, %1514 ], [ %1519, %1517 ]
  br label %1522

1522:                                             ; preds = %1520, %1511, %1508
  %1523 = phi i1 [ false, %1511 ], [ false, %1508 ], [ %1521, %1520 ]
  %1524 = zext i1 %1523 to i8
  store i8 %1524, ptr %89, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #14
  %1525 = load i32, ptr %29, align 4, !tbaa !9
  %1526 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2615, i32 noundef %1525, i32 noundef 1)
  br i1 %1526, label %1530, label %1527

1527:                                             ; preds = %1522
  %1528 = load i32, ptr %29, align 4, !tbaa !9
  %1529 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8713, i32 noundef %1528, i32 noundef 1)
  br i1 %1529, label %1530, label %1534

1530:                                             ; preds = %1527, %1522
  %1531 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1532 = trunc i8 %1531 to i1
  %1533 = xor i1 %1532, true
  br label %1534

1534:                                             ; preds = %1530, %1527
  %1535 = phi i1 [ false, %1527 ], [ %1533, %1530 ]
  %1536 = zext i1 %1535 to i8
  store i8 %1536, ptr %90, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #14
  %1537 = load i32, ptr %29, align 4, !tbaa !9
  %1538 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2619, i32 noundef %1537, i32 noundef 1)
  br i1 %1538, label %1539, label %1545

1539:                                             ; preds = %1534
  %1540 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1541 = trunc i8 %1540 to i1
  br i1 %1541, label %1545, label %1542

1542:                                             ; preds = %1539
  %1543 = load i8, ptr %27, align 1, !tbaa !44, !range !42, !noundef !43
  %1544 = trunc i8 %1543 to i1
  br label %1545

1545:                                             ; preds = %1542, %1539, %1534
  %1546 = phi i1 [ false, %1539 ], [ false, %1534 ], [ %1544, %1542 ]
  %1547 = zext i1 %1546 to i8
  store i8 %1547, ptr %91, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #14
  %1548 = load i32, ptr %29, align 4, !tbaa !9
  %1549 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2618, i32 noundef %1548, i32 noundef 1)
  br i1 %1549, label %1556, label %1550

1550:                                             ; preds = %1545
  %1551 = load i8, ptr %62, align 1, !tbaa !44, !range !42, !noundef !43
  %1552 = trunc i8 %1551 to i1
  br i1 %1552, label %1553, label %1562

1553:                                             ; preds = %1550
  %1554 = load i32, ptr %29, align 4, !tbaa !9
  %1555 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 10811, i32 noundef %1554, i32 noundef 1)
  br i1 %1555, label %1556, label %1562

1556:                                             ; preds = %1553, %1545
  %1557 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1558 = trunc i8 %1557 to i1
  br i1 %1558, label %1562, label %1559

1559:                                             ; preds = %1556
  %1560 = load i8, ptr %27, align 1, !tbaa !44, !range !42, !noundef !43
  %1561 = trunc i8 %1560 to i1
  br label %1562

1562:                                             ; preds = %1559, %1556, %1553, %1550
  %1563 = phi i1 [ false, %1556 ], [ false, %1553 ], [ false, %1550 ], [ %1561, %1559 ]
  %1564 = zext i1 %1563 to i8
  store i8 %1564, ptr %92, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #14
  %1565 = load i32, ptr %29, align 4, !tbaa !9
  %1566 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2594, i32 noundef %1565, i32 noundef 0)
  %1567 = zext i1 %1566 to i8
  store i8 %1567, ptr %93, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #14
  %1568 = load ptr, ptr %21, align 8, !tbaa !5
  %1569 = getelementptr inbounds %struct.ImGuiIO, ptr %1568, i32 0, i32 0
  %1570 = load i32, ptr %1569, align 8, !tbaa !176
  %1571 = and i32 %1570, 2
  %1572 = icmp ne i32 %1571, 0
  br i1 %1572, label %1573, label %1579

1573:                                             ; preds = %1562
  %1574 = load ptr, ptr %21, align 8, !tbaa !5
  %1575 = getelementptr inbounds %struct.ImGuiIO, ptr %1574, i32 0, i32 1
  %1576 = load i32, ptr %1575, align 4, !tbaa !177
  %1577 = and i32 %1576, 1
  %1578 = icmp ne i32 %1577, 0
  br label %1579

1579:                                             ; preds = %1573, %1562
  %1580 = phi i1 [ false, %1562 ], [ %1578, %1573 ]
  %1581 = zext i1 %1580 to i8
  store i8 %1581, ptr %94, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #14
  %1582 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 525, i1 noundef zeroext true)
  br i1 %1582, label %1585, label %1583

1583:                                             ; preds = %1579
  %1584 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 615, i1 noundef zeroext true)
  br label %1585

1585:                                             ; preds = %1583, %1579
  %1586 = phi i1 [ true, %1579 ], [ %1584, %1583 ]
  %1587 = zext i1 %1586 to i8
  store i8 %1587, ptr %95, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #14
  %1588 = load i8, ptr %94, align 1, !tbaa !44, !range !42, !noundef !43
  %1589 = trunc i8 %1588 to i1
  br i1 %1589, label %1590, label %1596

1590:                                             ; preds = %1585
  %1591 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 622, i1 noundef zeroext false)
  br i1 %1591, label %1594, label %1592

1592:                                             ; preds = %1590
  %1593 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 621, i1 noundef zeroext false)
  br label %1594

1594:                                             ; preds = %1592, %1590
  %1595 = phi i1 [ true, %1590 ], [ %1593, %1592 ]
  br label %1596

1596:                                             ; preds = %1594, %1585
  %1597 = phi i1 [ false, %1585 ], [ %1595, %1594 ]
  %1598 = zext i1 %1597 to i8
  store i8 %1598, ptr %96, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #14
  %1599 = load i32, ptr %29, align 4, !tbaa !9
  %1600 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 526, i32 noundef %1599, i32 noundef 1)
  br i1 %1600, label %1609, label %1601

1601:                                             ; preds = %1596
  %1602 = load i8, ptr %94, align 1, !tbaa !44, !range !42, !noundef !43
  %1603 = trunc i8 %1602 to i1
  br i1 %1603, label %1604, label %1607

1604:                                             ; preds = %1601
  %1605 = load i32, ptr %29, align 4, !tbaa !9
  %1606 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 620, i32 noundef %1605, i32 noundef 1)
  br label %1607

1607:                                             ; preds = %1604, %1601
  %1608 = phi i1 [ false, %1601 ], [ %1606, %1604 ]
  br label %1609

1609:                                             ; preds = %1607, %1596
  %1610 = phi i1 [ true, %1596 ], [ %1608, %1607 ]
  %1611 = zext i1 %1610 to i8
  store i8 %1611, ptr %97, align 1, !tbaa !44
  %1612 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %1612, label %1613, label %1627

1613:                                             ; preds = %1609
  %1614 = load ptr, ptr %47, align 8, !tbaa !5
  %1615 = load i8, ptr %86, align 1, !tbaa !44, !range !42, !noundef !43
  %1616 = trunc i8 %1615 to i1
  br i1 %1616, label %1617, label %1618

1617:                                             ; preds = %1613
  br label %1623

1618:                                             ; preds = %1613
  %1619 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1620 = trunc i8 %1619 to i1
  %1621 = zext i1 %1620 to i64
  %1622 = select i1 %1620, i32 2097164, i32 2097152
  br label %1623

1623:                                             ; preds = %1618, %1617
  %1624 = phi i32 [ 2097156, %1617 ], [ %1622, %1618 ]
  %1625 = load i32, ptr %84, align 4, !tbaa !9
  %1626 = or i32 %1624, %1625
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1614, i32 noundef %1626)
  br label %2104

1627:                                             ; preds = %1609
  %1628 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %1628, label %1629, label %1643

1629:                                             ; preds = %1627
  %1630 = load ptr, ptr %47, align 8, !tbaa !5
  %1631 = load i8, ptr %86, align 1, !tbaa !44, !range !42, !noundef !43
  %1632 = trunc i8 %1631 to i1
  br i1 %1632, label %1633, label %1634

1633:                                             ; preds = %1629
  br label %1639

1634:                                             ; preds = %1629
  %1635 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1636 = trunc i8 %1635 to i1
  %1637 = zext i1 %1636 to i64
  %1638 = select i1 %1636, i32 2097165, i32 2097153
  br label %1639

1639:                                             ; preds = %1634, %1633
  %1640 = phi i32 [ 2097157, %1633 ], [ %1638, %1634 ]
  %1641 = load i32, ptr %84, align 4, !tbaa !9
  %1642 = or i32 %1640, %1641
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1630, i32 noundef %1642)
  br label %2103

1643:                                             ; preds = %1627
  %1644 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %1644, label %1645, label %1673

1645:                                             ; preds = %1643
  %1646 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1647 = trunc i8 %1646 to i1
  br i1 %1647, label %1648, label %1673

1648:                                             ; preds = %1645
  %1649 = load ptr, ptr %21, align 8, !tbaa !5
  %1650 = getelementptr inbounds %struct.ImGuiIO, ptr %1649, i32 0, i32 73
  %1651 = load i8, ptr %1650, align 8, !tbaa !135, !range !42, !noundef !43
  %1652 = trunc i8 %1651 to i1
  br i1 %1652, label %1653, label %1664

1653:                                             ; preds = %1648
  %1654 = load ptr, ptr %38, align 8, !tbaa !5
  %1655 = load ptr, ptr %38, align 8, !tbaa !5
  %1656 = getelementptr inbounds %struct.ImGuiWindow, ptr %1655, i32 0, i32 29
  %1657 = getelementptr inbounds %struct.ImVec2, ptr %1656, i32 0, i32 1
  %1658 = load float, ptr %1657, align 4, !tbaa !125
  %1659 = load ptr, ptr %20, align 8, !tbaa !5
  %1660 = getelementptr inbounds %struct.ImGuiContext, ptr %1659, i32 0, i32 8
  %1661 = load float, ptr %1660, align 8, !tbaa !47
  %1662 = fsub float %1658, %1661
  %1663 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1662, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1654, float noundef %1663)
  br label %1672

1664:                                             ; preds = %1648
  %1665 = load ptr, ptr %47, align 8, !tbaa !5
  %1666 = load i8, ptr %86, align 1, !tbaa !44, !range !42, !noundef !43
  %1667 = trunc i8 %1666 to i1
  %1668 = zext i1 %1667 to i64
  %1669 = select i1 %1667, i32 2097158, i32 2097154
  %1670 = load i32, ptr %84, align 4, !tbaa !9
  %1671 = or i32 %1669, %1670
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1665, i32 noundef %1671)
  br label %1672

1672:                                             ; preds = %1664, %1653
  br label %2102

1673:                                             ; preds = %1645, %1643
  %1674 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %1674, label %1675, label %1704

1675:                                             ; preds = %1673
  %1676 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1677 = trunc i8 %1676 to i1
  br i1 %1677, label %1678, label %1704

1678:                                             ; preds = %1675
  %1679 = load ptr, ptr %21, align 8, !tbaa !5
  %1680 = getelementptr inbounds %struct.ImGuiIO, ptr %1679, i32 0, i32 73
  %1681 = load i8, ptr %1680, align 8, !tbaa !135, !range !42, !noundef !43
  %1682 = trunc i8 %1681 to i1
  br i1 %1682, label %1683, label %1695

1683:                                             ; preds = %1678
  %1684 = load ptr, ptr %38, align 8, !tbaa !5
  %1685 = load ptr, ptr %38, align 8, !tbaa !5
  %1686 = getelementptr inbounds %struct.ImGuiWindow, ptr %1685, i32 0, i32 29
  %1687 = getelementptr inbounds %struct.ImVec2, ptr %1686, i32 0, i32 1
  %1688 = load float, ptr %1687, align 4, !tbaa !125
  %1689 = load ptr, ptr %20, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.ImGuiContext, ptr %1689, i32 0, i32 8
  %1691 = load float, ptr %1690, align 8, !tbaa !47
  %1692 = fadd float %1688, %1691
  %1693 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %1694 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1692, float noundef %1693)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1684, float noundef %1694)
  br label %1703

1695:                                             ; preds = %1678
  %1696 = load ptr, ptr %47, align 8, !tbaa !5
  %1697 = load i8, ptr %86, align 1, !tbaa !44, !range !42, !noundef !43
  %1698 = trunc i8 %1697 to i1
  %1699 = zext i1 %1698 to i64
  %1700 = select i1 %1698, i32 2097159, i32 2097155
  %1701 = load i32, ptr %84, align 4, !tbaa !9
  %1702 = or i32 %1700, %1701
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1696, i32 noundef %1702)
  br label %1703

1703:                                             ; preds = %1695, %1683
  br label %2101

1704:                                             ; preds = %1675, %1673
  %1705 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  br i1 %1705, label %1706, label %1721

1706:                                             ; preds = %1704
  %1707 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1708 = trunc i8 %1707 to i1
  br i1 %1708, label %1709, label %1721

1709:                                             ; preds = %1706
  %1710 = load ptr, ptr %47, align 8, !tbaa !5
  %1711 = load i32, ptr %84, align 4, !tbaa !9
  %1712 = or i32 2097166, %1711
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1710, i32 noundef %1712)
  %1713 = load i32, ptr %83, align 4, !tbaa !9
  %1714 = sitofp i32 %1713 to float
  %1715 = load ptr, ptr %20, align 8, !tbaa !5
  %1716 = getelementptr inbounds %struct.ImGuiContext, ptr %1715, i32 0, i32 8
  %1717 = load float, ptr %1716, align 8, !tbaa !47
  %1718 = load float, ptr %55, align 4, !tbaa !46
  %1719 = fneg float %1714
  %1720 = call float @llvm.fmuladd.f32(float %1719, float %1717, float %1718)
  store float %1720, ptr %55, align 4, !tbaa !46
  br label %2100

1721:                                             ; preds = %1706, %1704
  %1722 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  br i1 %1722, label %1723, label %1737

1723:                                             ; preds = %1721
  %1724 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1725 = trunc i8 %1724 to i1
  br i1 %1725, label %1726, label %1737

1726:                                             ; preds = %1723
  %1727 = load ptr, ptr %47, align 8, !tbaa !5
  %1728 = load i32, ptr %84, align 4, !tbaa !9
  %1729 = or i32 2097167, %1728
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1727, i32 noundef %1729)
  %1730 = load i32, ptr %83, align 4, !tbaa !9
  %1731 = sitofp i32 %1730 to float
  %1732 = load ptr, ptr %20, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.ImGuiContext, ptr %1732, i32 0, i32 8
  %1734 = load float, ptr %1733, align 8, !tbaa !47
  %1735 = load float, ptr %55, align 4, !tbaa !46
  %1736 = call float @llvm.fmuladd.f32(float %1731, float %1734, float %1735)
  store float %1736, ptr %55, align 4, !tbaa !46
  br label %2099

1737:                                             ; preds = %1723, %1721
  %1738 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %1738, label %1739, label %1753

1739:                                             ; preds = %1737
  %1740 = load ptr, ptr %47, align 8, !tbaa !5
  %1741 = load ptr, ptr %21, align 8, !tbaa !5
  %1742 = getelementptr inbounds %struct.ImGuiIO, ptr %1741, i32 0, i32 73
  %1743 = load i8, ptr %1742, align 8, !tbaa !135, !range !42, !noundef !43
  %1744 = trunc i8 %1743 to i1
  br i1 %1744, label %1745, label %1748

1745:                                             ; preds = %1739
  %1746 = load i32, ptr %84, align 4, !tbaa !9
  %1747 = or i32 2097158, %1746
  br label %1751

1748:                                             ; preds = %1739
  %1749 = load i32, ptr %84, align 4, !tbaa !9
  %1750 = or i32 2097156, %1749
  br label %1751

1751:                                             ; preds = %1748, %1745
  %1752 = phi i32 [ %1747, %1745 ], [ %1750, %1748 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1740, i32 noundef %1752)
  br label %2098

1753:                                             ; preds = %1737
  %1754 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %1754, label %1755, label %1769

1755:                                             ; preds = %1753
  %1756 = load ptr, ptr %47, align 8, !tbaa !5
  %1757 = load ptr, ptr %21, align 8, !tbaa !5
  %1758 = getelementptr inbounds %struct.ImGuiIO, ptr %1757, i32 0, i32 73
  %1759 = load i8, ptr %1758, align 8, !tbaa !135, !range !42, !noundef !43
  %1760 = trunc i8 %1759 to i1
  br i1 %1760, label %1761, label %1764

1761:                                             ; preds = %1755
  %1762 = load i32, ptr %84, align 4, !tbaa !9
  %1763 = or i32 2097159, %1762
  br label %1767

1764:                                             ; preds = %1755
  %1765 = load i32, ptr %84, align 4, !tbaa !9
  %1766 = or i32 2097157, %1765
  br label %1767

1767:                                             ; preds = %1764, %1761
  %1768 = phi i32 [ %1763, %1761 ], [ %1766, %1764 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1756, i32 noundef %1768)
  br label %2097

1769:                                             ; preds = %1753
  %1770 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  br i1 %1770, label %1771, label %1790

1771:                                             ; preds = %1769
  %1772 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1773 = trunc i8 %1772 to i1
  br i1 %1773, label %1790, label %1774

1774:                                             ; preds = %1771
  %1775 = load i8, ptr %88, align 1, !tbaa !44, !range !42, !noundef !43
  %1776 = trunc i8 %1775 to i1
  br i1 %1776, label %1790, label %1777

1777:                                             ; preds = %1774
  %1778 = load ptr, ptr %47, align 8, !tbaa !5
  %1779 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1778)
  br i1 %1779, label %1786, label %1780

1780:                                             ; preds = %1777
  %1781 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1782 = trunc i8 %1781 to i1
  br i1 %1782, label %1783, label %1785

1783:                                             ; preds = %1780
  %1784 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1784, i32 noundef 6291469)
  br label %1785

1785:                                             ; preds = %1783, %1780
  br label %1786

1786:                                             ; preds = %1785, %1777
  %1787 = load ptr, ptr %47, align 8, !tbaa !5
  %1788 = load i32, ptr %84, align 4, !tbaa !9
  %1789 = or i32 2097160, %1788
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1787, i32 noundef %1789)
  br label %2096

1790:                                             ; preds = %1774, %1771, %1769
  %1791 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  br i1 %1791, label %1792, label %1829

1792:                                             ; preds = %1790
  %1793 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1794 = trunc i8 %1793 to i1
  br i1 %1794, label %1829, label %1795

1795:                                             ; preds = %1792
  %1796 = load ptr, ptr %47, align 8, !tbaa !5
  %1797 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1796)
  br i1 %1797, label %1825, label %1798

1798:                                             ; preds = %1795
  %1799 = load i8, ptr %85, align 1, !tbaa !44, !range !42, !noundef !43
  %1800 = trunc i8 %1799 to i1
  br i1 %1800, label %1801, label %1803

1801:                                             ; preds = %1798
  %1802 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1802, i32 noundef 6291468)
  br label %1824

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

1806:                                             ; preds = %1803
  %1807 = load ptr, ptr %21, align 8, !tbaa !5
  %1808 = getelementptr inbounds %struct.ImGuiIO, ptr %1807, i32 0, i32 76
  %1809 = load i8, ptr %1808, align 1, !tbaa !170, !range !42, !noundef !43
  %1810 = trunc i8 %1809 to i1
  br i1 %1810, label %1811, label %1823

1811:                                             ; preds = %1806
  %1812 = load ptr, ptr %21, align 8, !tbaa !5
  %1813 = getelementptr inbounds %struct.ImGuiIO, ptr %1812, i32 0, i32 75
  %1814 = load i8, ptr %1813, align 2, !tbaa !169, !range !42, !noundef !43
  %1815 = trunc i8 %1814 to i1
  br i1 %1815, label %1823, label %1816

1816:                                             ; preds = %1811
  %1817 = load ptr, ptr %21, align 8, !tbaa !5
  %1818 = getelementptr inbounds %struct.ImGuiIO, ptr %1817, i32 0, i32 73
  %1819 = load i8, ptr %1818, align 8, !tbaa !135, !range !42, !noundef !43
  %1820 = trunc i8 %1819 to i1
  br i1 %1820, label %1823, label %1821

1821:                                             ; preds = %1816
  %1822 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1822, i32 noundef 6291460)
  br label %1823

1823:                                             ; preds = %1821, %1816, %1811, %1806, %1803
  br label %1824

1824:                                             ; preds = %1823, %1801
  br label %1825

1825:                                             ; preds = %1824, %1795
  %1826 = load ptr, ptr %47, align 8, !tbaa !5
  %1827 = load i32, ptr %84, align 4, !tbaa !9
  %1828 = or i32 2097161, %1827
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1826, i32 noundef %1828)
  br label %2095

1829:                                             ; preds = %1792, %1790
  %1830 = load i8, ptr %95, align 1, !tbaa !44, !range !42, !noundef !43
  %1831 = trunc i8 %1830 to i1
  br i1 %1831, label %1835, label %1832

1832:                                             ; preds = %1829
  %1833 = load i8, ptr %96, align 1, !tbaa !44, !range !42, !noundef !43
  %1834 = trunc i8 %1833 to i1
  br i1 %1834, label %1835, label %1887

1835:                                             ; preds = %1832, %1829
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #14
  %1836 = load i32, ptr %15, align 4, !tbaa !9
  %1837 = and i32 %1836, 2048
  %1838 = icmp ne i32 %1837, 0
  %1839 = zext i1 %1838 to i8
  store i8 %1839, ptr %98, align 1, !tbaa !44
  %1840 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1841 = trunc i8 %1840 to i1
  br i1 %1841, label %1842, label %1861

1842:                                             ; preds = %1835
  %1843 = load i8, ptr %96, align 1, !tbaa !44, !range !42, !noundef !43
  %1844 = trunc i8 %1843 to i1
  br i1 %1844, label %1861, label %1845

1845:                                             ; preds = %1842
  %1846 = load i8, ptr %98, align 1, !tbaa !44, !range !42, !noundef !43
  %1847 = trunc i8 %1846 to i1
  br i1 %1847, label %1848, label %1853

1848:                                             ; preds = %1845
  %1849 = load ptr, ptr %21, align 8, !tbaa !5
  %1850 = getelementptr inbounds %struct.ImGuiIO, ptr %1849, i32 0, i32 73
  %1851 = load i8, ptr %1850, align 8, !tbaa !135, !range !42, !noundef !43
  %1852 = trunc i8 %1851 to i1
  br i1 %1852, label %1853, label %1861

1853:                                             ; preds = %1848, %1845
  %1854 = load i8, ptr %98, align 1, !tbaa !44, !range !42, !noundef !43
  %1855 = trunc i8 %1854 to i1
  br i1 %1855, label %1873, label %1856

1856:                                             ; preds = %1853
  %1857 = load ptr, ptr %21, align 8, !tbaa !5
  %1858 = getelementptr inbounds %struct.ImGuiIO, ptr %1857, i32 0, i32 73
  %1859 = load i8, ptr %1858, align 8, !tbaa !135, !range !42, !noundef !43
  %1860 = trunc i8 %1859 to i1
  br i1 %1860, label %1861, label %1873

1861:                                             ; preds = %1856, %1848, %1842, %1835
  store i8 1, ptr %66, align 1, !tbaa !44
  %1862 = load ptr, ptr %21, align 8, !tbaa !5
  %1863 = getelementptr inbounds %struct.ImGuiIO, ptr %1862, i32 0, i32 25
  %1864 = load i8, ptr %1863, align 4, !tbaa !178, !range !42, !noundef !43
  %1865 = trunc i8 %1864 to i1
  br i1 %1865, label %1866, label %1871

1866:                                             ; preds = %1861
  %1867 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1868 = trunc i8 %1867 to i1
  br i1 %1868, label %1871, label %1869

1869:                                             ; preds = %1866
  %1870 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %1870)
  br label %1872

1871:                                             ; preds = %1866, %1861
  store i8 1, ptr %53, align 1, !tbaa !44
  br label %1872

1872:                                             ; preds = %1871, %1869
  br label %1886

1873:                                             ; preds = %1856, %1853
  %1874 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1875 = trunc i8 %1874 to i1
  br i1 %1875, label %1885, label %1876

1876:                                             ; preds = %1873
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #14
  store i32 10, ptr %99, align 4, !tbaa !9
  %1877 = load i32, ptr %15, align 4, !tbaa !9
  %1878 = load ptr, ptr %16, align 8, !tbaa !5
  %1879 = load ptr, ptr %17, align 8, !tbaa !5
  %1880 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %99, i32 noundef %1877, ptr noundef %1878, ptr noundef %1879, i32 noundef 2)
  br i1 %1880, label %1881, label %1884

1881:                                             ; preds = %1876
  %1882 = load ptr, ptr %47, align 8, !tbaa !5
  %1883 = load i32, ptr %99, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1882, i32 noundef %1883)
  br label %1884

1884:                                             ; preds = %1881, %1876
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #14
  br label %1885

1885:                                             ; preds = %1884, %1873
  br label %1886

1886:                                             ; preds = %1885, %1872
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #14
  br label %2094

1887:                                             ; preds = %1832
  %1888 = load i8, ptr %97, align 1, !tbaa !44, !range !42, !noundef !43
  %1889 = trunc i8 %1888 to i1
  br i1 %1889, label %1890, label %1905

1890:                                             ; preds = %1887
  %1891 = load i32, ptr %15, align 4, !tbaa !9
  %1892 = and i32 %1891, 1048576
  %1893 = icmp ne i32 %1892, 0
  br i1 %1893, label %1894, label %1903

1894:                                             ; preds = %1890
  %1895 = load ptr, ptr %12, align 8, !tbaa !5
  %1896 = getelementptr inbounds i8, ptr %1895, i64 0
  %1897 = load i8, ptr %1896, align 1, !tbaa !140
  %1898 = sext i8 %1897 to i32
  %1899 = icmp ne i32 %1898, 0
  br i1 %1899, label %1900, label %1901

1900:                                             ; preds = %1894
  store i8 1, ptr %82, align 1, !tbaa !44
  br label %1902

1901:                                             ; preds = %1894
  store i8 0, ptr %64, align 1, !tbaa !44
  store i8 0, ptr %63, align 1, !tbaa !44
  store i8 1, ptr %53, align 1, !tbaa !44
  br label %1902

1902:                                             ; preds = %1901, %1900
  br label %1904

1903:                                             ; preds = %1890
  store i8 1, ptr %82, align 1, !tbaa !44
  store i8 1, ptr %53, align 1, !tbaa !44
  store i8 0, ptr %64, align 1, !tbaa !44
  store i8 0, ptr %63, align 1, !tbaa !44
  br label %1904

1904:                                             ; preds = %1903, %1902
  br label %2093

1905:                                             ; preds = %1887
  %1906 = load i8, ptr %91, align 1, !tbaa !44, !range !42, !noundef !43
  %1907 = trunc i8 %1906 to i1
  br i1 %1907, label %1911, label %1908

1908:                                             ; preds = %1905
  %1909 = load i8, ptr %92, align 1, !tbaa !44, !range !42, !noundef !43
  %1910 = trunc i8 %1909 to i1
  br i1 %1910, label %1911, label %1918

1911:                                             ; preds = %1908, %1905
  %1912 = load ptr, ptr %47, align 8, !tbaa !5
  %1913 = load i8, ptr %91, align 1, !tbaa !44, !range !42, !noundef !43
  %1914 = trunc i8 %1913 to i1
  %1915 = zext i1 %1914 to i64
  %1916 = select i1 %1914, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1912, i32 noundef %1916)
  %1917 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1917)
  br label %2092

1918:                                             ; preds = %1908
  %1919 = load i8, ptr %93, align 1, !tbaa !44, !range !42, !noundef !43
  %1920 = trunc i8 %1919 to i1
  br i1 %1920, label %1921, label %1925

1921:                                             ; preds = %1918
  %1922 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %1922)
  %1923 = load ptr, ptr %47, align 8, !tbaa !5
  %1924 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1923, i32 0, i32 14
  store i8 1, ptr %1924, align 4, !tbaa !166
  br label %2091

1925:                                             ; preds = %1918
  %1926 = load i8, ptr %88, align 1, !tbaa !44, !range !42, !noundef !43
  %1927 = trunc i8 %1926 to i1
  br i1 %1927, label %1931, label %1928

1928:                                             ; preds = %1925
  %1929 = load i8, ptr %89, align 1, !tbaa !44, !range !42, !noundef !43
  %1930 = trunc i8 %1929 to i1
  br i1 %1930, label %1931, label %2025

1931:                                             ; preds = %1928, %1925
  %1932 = load ptr, ptr %21, align 8, !tbaa !5
  %1933 = getelementptr inbounds %struct.ImGuiIO, ptr %1932, i32 0, i32 45
  %1934 = load ptr, ptr %1933, align 8, !tbaa !179
  %1935 = icmp ne ptr %1934, null
  br i1 %1935, label %1936, label %2009

1936:                                             ; preds = %1931
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #14
  %1937 = load ptr, ptr %47, align 8, !tbaa !5
  %1938 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1937)
  br i1 %1938, label %1939, label %1949

1939:                                             ; preds = %1936
  %1940 = load ptr, ptr %47, align 8, !tbaa !5
  %1941 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1940, i32 0, i32 12
  %1942 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1941, i32 0, i32 1
  %1943 = load i32, ptr %1942, align 4, !tbaa !164
  %1944 = load ptr, ptr %47, align 8, !tbaa !5
  %1945 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1944, i32 0, i32 12
  %1946 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1945, i32 0, i32 2
  %1947 = load i32, ptr %1946, align 4, !tbaa !165
  %1948 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1943, i32 noundef %1947)
  br label %1950

1949:                                             ; preds = %1936
  br label %1950

1950:                                             ; preds = %1949, %1939
  %1951 = phi i32 [ %1948, %1939 ], [ 0, %1949 ]
  store i32 %1951, ptr %100, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #14
  %1952 = load ptr, ptr %47, align 8, !tbaa !5
  %1953 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1952)
  br i1 %1953, label %1954, label %1964

1954:                                             ; preds = %1950
  %1955 = load ptr, ptr %47, align 8, !tbaa !5
  %1956 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1955, i32 0, i32 12
  %1957 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1956, i32 0, i32 1
  %1958 = load i32, ptr %1957, align 4, !tbaa !164
  %1959 = load ptr, ptr %47, align 8, !tbaa !5
  %1960 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1959, i32 0, i32 12
  %1961 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1960, i32 0, i32 2
  %1962 = load i32, ptr %1961, align 4, !tbaa !165
  %1963 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1958, i32 noundef %1962)
  br label %1968

1964:                                             ; preds = %1950
  %1965 = load ptr, ptr %47, align 8, !tbaa !5
  %1966 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1965, i32 0, i32 2
  %1967 = load i32, ptr %1966, align 4, !tbaa !133
  br label %1968

1968:                                             ; preds = %1964, %1954
  %1969 = phi i32 [ %1963, %1954 ], [ %1967, %1964 ]
  store i32 %1969, ptr %101, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #14
  %1970 = load ptr, ptr %47, align 8, !tbaa !5
  %1971 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1970, i32 0, i32 5
  %1972 = getelementptr inbounds %struct.ImVector.5, ptr %1971, i32 0, i32 2
  %1973 = load ptr, ptr %1972, align 8, !tbaa !132
  %1974 = load i32, ptr %100, align 4, !tbaa !9
  %1975 = sext i32 %1974 to i64
  %1976 = getelementptr inbounds i16, ptr %1973, i64 %1975
  %1977 = load ptr, ptr %47, align 8, !tbaa !5
  %1978 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1977, i32 0, i32 5
  %1979 = getelementptr inbounds %struct.ImVector.5, ptr %1978, i32 0, i32 2
  %1980 = load ptr, ptr %1979, align 8, !tbaa !132
  %1981 = load i32, ptr %101, align 4, !tbaa !9
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds i16, ptr %1980, i64 %1982
  %1984 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %1976, ptr noundef %1983)
  %1985 = add nsw i32 %1984, 1
  store i32 %1985, ptr %102, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #14
  %1986 = load i32, ptr %102, align 4, !tbaa !9
  %1987 = sext i32 %1986 to i64
  %1988 = mul i64 %1987, 1
  %1989 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %1988)
  store ptr %1989, ptr %103, align 8, !tbaa !5
  %1990 = load ptr, ptr %103, align 8, !tbaa !5
  %1991 = load i32, ptr %102, align 4, !tbaa !9
  %1992 = load ptr, ptr %47, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1992, i32 0, i32 5
  %1994 = getelementptr inbounds %struct.ImVector.5, ptr %1993, i32 0, i32 2
  %1995 = load ptr, ptr %1994, align 8, !tbaa !132
  %1996 = load i32, ptr %100, align 4, !tbaa !9
  %1997 = sext i32 %1996 to i64
  %1998 = getelementptr inbounds i16, ptr %1995, i64 %1997
  %1999 = load ptr, ptr %47, align 8, !tbaa !5
  %2000 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1999, i32 0, i32 5
  %2001 = getelementptr inbounds %struct.ImVector.5, ptr %2000, i32 0, i32 2
  %2002 = load ptr, ptr %2001, align 8, !tbaa !132
  %2003 = load i32, ptr %101, align 4, !tbaa !9
  %2004 = sext i32 %2003 to i64
  %2005 = getelementptr inbounds i16, ptr %2002, i64 %2004
  %2006 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %1990, i32 noundef %1991, ptr noundef %1998, ptr noundef %2005)
  %2007 = load ptr, ptr %103, align 8, !tbaa !5
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %2007)
  %2008 = load ptr, ptr %103, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2008)
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #14
  call void @llvm.lifetime.end.p0(i64 4, 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
  br label %2009

2009:                                             ; preds = %1968, %1931
  %2010 = load i8, ptr %88, align 1, !tbaa !44, !range !42, !noundef !43
  %2011 = trunc i8 %2010 to i1
  br i1 %2011, label %2012, label %2024

2012:                                             ; preds = %2009
  %2013 = load ptr, ptr %47, align 8, !tbaa !5
  %2014 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %2013)
  br i1 %2014, label %2017, label %2015

2015:                                             ; preds = %2012
  %2016 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %2016)
  br label %2017

2017:                                             ; preds = %2015, %2012
  %2018 = load ptr, ptr %47, align 8, !tbaa !5
  %2019 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2018, i32 0, i32 14
  store i8 1, ptr %2019, align 4, !tbaa !166
  %2020 = load ptr, ptr %47, align 8, !tbaa !5
  %2021 = load ptr, ptr %47, align 8, !tbaa !5
  %2022 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2021, i32 0, i32 12
  %2023 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %2020, ptr noundef %2022)
  br label %2024

2024:                                             ; preds = %2017, %2009
  br label %2090

2025:                                             ; preds = %1928
  %2026 = load i8, ptr %90, align 1, !tbaa !44, !range !42, !noundef !43
  %2027 = trunc i8 %2026 to i1
  br i1 %2027, label %2028, label %2089

2028:                                             ; preds = %2025
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #14
  %2029 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  store ptr %2029, ptr %104, align 8, !tbaa !5
  %2030 = load ptr, ptr %104, align 8, !tbaa !5
  %2031 = icmp ne ptr %2030, null
  br i1 %2031, label %2032, label %2088

2032:                                             ; preds = %2028
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #14
  %2033 = load ptr, ptr %104, align 8, !tbaa !5
  %2034 = call i64 @strlen(ptr noundef %2033) #16
  %2035 = trunc i64 %2034 to i32
  store i32 %2035, ptr %105, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #14
  %2036 = load i32, ptr %105, align 4, !tbaa !9
  %2037 = add nsw i32 %2036, 1
  %2038 = sext i32 %2037 to i64
  %2039 = mul i64 %2038, 2
  %2040 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %2039)
  store ptr %2040, ptr %106, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #14
  store i32 0, ptr %107, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #14
  %2041 = load ptr, ptr %104, align 8, !tbaa !5
  store ptr %2041, ptr %108, align 8, !tbaa !5
  br label %2042

2042:                                             ; preds = %2069, %2067, %2032
  %2043 = load ptr, ptr %108, align 8, !tbaa !5
  %2044 = load i8, ptr %2043, align 1, !tbaa !140
  %2045 = sext i8 %2044 to i32
  %2046 = icmp ne i32 %2045, 0
  br i1 %2046, label %2048, label %2047

2047:                                             ; preds = %2042
  store i32 5, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #14
  br label %2070

2048:                                             ; preds = %2042
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #14
  %2049 = load ptr, ptr %108, align 8, !tbaa !5
  %2050 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef %109, ptr noundef %2049, ptr noundef null)
  %2051 = load ptr, ptr %108, align 8, !tbaa !5
  %2052 = sext i32 %2050 to i64
  %2053 = getelementptr inbounds i8, ptr %2051, i64 %2052
  store ptr %2053, ptr %108, align 8, !tbaa !5
  %2054 = load i32, ptr %15, align 4, !tbaa !9
  %2055 = load ptr, ptr %16, align 8, !tbaa !5
  %2056 = load ptr, ptr %17, align 8, !tbaa !5
  %2057 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %109, i32 noundef %2054, ptr noundef %2055, ptr noundef %2056, i32 noundef 4)
  br i1 %2057, label %2059, label %2058

2058:                                             ; preds = %2048
  store i32 6, ptr %19, align 4
  br label %2067, !llvm.loop !180

2059:                                             ; preds = %2048
  %2060 = load i32, ptr %109, align 4, !tbaa !9
  %2061 = trunc i32 %2060 to i16
  %2062 = load ptr, ptr %106, align 8, !tbaa !5
  %2063 = load i32, ptr %107, align 4, !tbaa !9
  %2064 = add nsw i32 %2063, 1
  store i32 %2064, ptr %107, align 4, !tbaa !9
  %2065 = sext i32 %2063 to i64
  %2066 = getelementptr inbounds i16, ptr %2062, i64 %2065
  store i16 %2061, ptr %2066, align 2, !tbaa !161
  store i32 0, ptr %19, align 4
  br label %2067

2067:                                             ; preds = %2059, %2058
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #14
  %2068 = load i32, ptr %19, align 4
  switch i32 %2068, label %3577 [
    i32 0, label %2069
    i32 6, label %2042
  ]

2069:                                             ; preds = %2067
  br label %2042, !llvm.loop !180

2070:                                             ; preds = %2047
  %2071 = load ptr, ptr %106, align 8, !tbaa !5
  %2072 = load i32, ptr %107, align 4, !tbaa !9
  %2073 = sext i32 %2072 to i64
  %2074 = getelementptr inbounds i16, ptr %2071, i64 %2073
  store i16 0, ptr %2074, align 2, !tbaa !161
  %2075 = load i32, ptr %107, align 4, !tbaa !9
  %2076 = icmp sgt i32 %2075, 0
  br i1 %2076, label %2077, label %2086

2077:                                             ; preds = %2070
  %2078 = load ptr, ptr %47, align 8, !tbaa !5
  %2079 = load ptr, ptr %47, align 8, !tbaa !5
  %2080 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2079, i32 0, i32 12
  %2081 = load ptr, ptr %106, align 8, !tbaa !5
  %2082 = load i32, ptr %107, align 4, !tbaa !9
  %2083 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2078, ptr noundef %2080, ptr noundef %2081, i32 noundef %2082)
  %2084 = load ptr, ptr %47, align 8, !tbaa !5
  %2085 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2084, i32 0, i32 14
  store i8 1, ptr %2085, align 4, !tbaa !166
  br label %2086

2086:                                             ; preds = %2077, %2070
  %2087 = load ptr, ptr %106, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2087)
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #14
  br label %2088

2088:                                             ; preds = %2086, %2028
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #14
  br label %2089

2089:                                             ; preds = %2088, %2025
  br label %2090

2090:                                             ; preds = %2089, %2024
  br label %2091

2091:                                             ; preds = %2090, %1921
  br label %2092

2092:                                             ; preds = %2091, %1911
  br label %2093

2093:                                             ; preds = %2092, %1904
  br label %2094

2094:                                             ; preds = %2093, %1886
  br label %2095

2095:                                             ; preds = %2094, %1825
  br label %2096

2096:                                             ; preds = %2095, %1786
  br label %2097

2097:                                             ; preds = %2096, %1767
  br label %2098

2098:                                             ; preds = %2097, %1751
  br label %2099

2099:                                             ; preds = %2098, %1726
  br label %2100

2100:                                             ; preds = %2099, %1709
  br label %2101

2101:                                             ; preds = %2100, %1703
  br label %2102

2102:                                             ; preds = %2101, %1672
  br label %2103

2103:                                             ; preds = %2102, %1639
  br label %2104

2104:                                             ; preds = %2103, %1623
  %2105 = load ptr, ptr %47, align 8, !tbaa !5
  %2106 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %2105)
  br i1 %2106, label %2107, label %2110

2107:                                             ; preds = %2104
  %2108 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %2109 = trunc i8 %2108 to i1
  br label %2110

2110:                                             ; preds = %2107, %2104
  %2111 = phi i1 [ false, %2104 ], [ %2109, %2107 ]
  %2112 = zext i1 %2111 to i32
  %2113 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2114 = trunc i8 %2113 to i1
  %2115 = zext i1 %2114 to i32
  %2116 = or i32 %2115, %2112
  %2117 = icmp ne i32 %2116, 0
  %2118 = zext i1 %2117 to i8
  store i8 %2118, ptr %64, align 1, !tbaa !44
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #14
  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 4, ptr %87) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #14
  br label %2119

2119:                                             ; preds = %2110, %1415, %1410, %1404
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #14
  store ptr null, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #14
  store i32 0, ptr %111, align 4, !tbaa !9
  %2120 = load ptr, ptr %20, align 8, !tbaa !5
  %2121 = getelementptr inbounds %struct.ImGuiContext, ptr %2120, i32 0, i32 50
  %2122 = load i32, ptr %2121, align 8, !tbaa !120
  %2123 = load i32, ptr %29, align 4, !tbaa !9
  %2124 = icmp eq i32 %2122, %2123
  br i1 %2124, label %2125, label %2603

2125:                                             ; preds = %2119
  %2126 = load ptr, ptr %47, align 8, !tbaa !5
  %2127 = icmp ne ptr %2126, null
  br i1 %2127, label %2128, label %2129

2128:                                             ; preds = %2125
  br label %2131

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

2130:                                             ; No predecessors!
  br label %2131

2131:                                             ; preds = %2130, %2128
  %2132 = load i8, ptr %82, align 1, !tbaa !44, !range !42, !noundef !43
  %2133 = trunc i8 %2132 to i1
  br i1 %2133, label %2134, label %2217

2134:                                             ; preds = %2131
  %2135 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2136 = trunc i8 %2135 to i1
  br i1 %2136, label %2217, label %2137

2137:                                             ; preds = %2134
  %2138 = load i32, ptr %15, align 4, !tbaa !9
  %2139 = and i32 %2138, 1048576
  %2140 = icmp ne i32 %2139, 0
  br i1 %2140, label %2141, label %2154

2141:                                             ; preds = %2137
  %2142 = load ptr, ptr %12, align 8, !tbaa !5
  %2143 = getelementptr inbounds i8, ptr %2142, i64 0
  %2144 = load i8, ptr %2143, align 1, !tbaa !140
  %2145 = sext i8 %2144 to i32
  %2146 = icmp ne i32 %2145, 0
  br i1 %2146, label %2147, label %2148

2147:                                             ; preds = %2141
  br label %2150

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

2149:                                             ; No predecessors!
  br label %2150

2150:                                             ; preds = %2149, %2147
  store ptr @.str, ptr %110, align 8, !tbaa !5
  store i32 0, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 2, ptr %112) #14
  %2151 = load ptr, ptr %47, align 8, !tbaa !5
  %2152 = load ptr, ptr %47, align 8, !tbaa !5
  %2153 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2152, i32 0, i32 12
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2151, ptr noundef %2153, ptr noundef %112, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr %112) #14
  br label %2216

2154:                                             ; preds = %2137
  %2155 = load ptr, ptr %12, align 8, !tbaa !5
  %2156 = load ptr, ptr %47, align 8, !tbaa !5
  %2157 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2156, i32 0, i32 7
  %2158 = getelementptr inbounds %struct.ImVector.31, ptr %2157, i32 0, i32 2
  %2159 = load ptr, ptr %2158, align 8, !tbaa !128
  %2160 = call i32 @strcmp(ptr noundef %2155, ptr noundef %2159) #16
  %2161 = icmp ne i32 %2160, 0
  br i1 %2161, label %2162, label %2215

2162:                                             ; preds = %2154
  %2163 = load ptr, ptr %47, align 8, !tbaa !5
  %2164 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2163, i32 0, i32 7
  %2165 = getelementptr inbounds %struct.ImVector.31, ptr %2164, i32 0, i32 2
  %2166 = load ptr, ptr %2165, align 8, !tbaa !128
  store ptr %2166, ptr %110, align 8, !tbaa !5
  %2167 = load ptr, ptr %47, align 8, !tbaa !5
  %2168 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2167, i32 0, i32 7
  %2169 = getelementptr inbounds %struct.ImVector.31, ptr %2168, i32 0, i32 0
  %2170 = load i32, ptr %2169, align 8, !tbaa !181
  %2171 = sub nsw i32 %2170, 1
  store i32 %2171, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113)
  %2172 = load i32, ptr %111, align 4, !tbaa !9
  %2173 = icmp sgt i32 %2172, 0
  br i1 %2173, label %2174, label %2199

2174:                                             ; preds = %2162
  %2175 = load ptr, ptr %110, align 8, !tbaa !5
  %2176 = load ptr, ptr %110, align 8, !tbaa !5
  %2177 = load i32, ptr %111, align 4, !tbaa !9
  %2178 = sext i32 %2177 to i64
  %2179 = getelementptr inbounds i8, ptr %2176, i64 %2178
  %2180 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2175, ptr noundef %2179)
          to label %2181 unwind label %2195

2181:                                             ; preds = %2174
  %2182 = add nsw i32 %2180, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %113, i32 noundef %2182)
          to label %2183 unwind label %2195

2183:                                             ; preds = %2181
  %2184 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 2
  %2185 = load ptr, ptr %2184, align 8, !tbaa !182
  %2186 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 0
  %2187 = load i32, ptr %2186, align 8, !tbaa !183
  %2188 = load ptr, ptr %110, align 8, !tbaa !5
  %2189 = load ptr, ptr %110, align 8, !tbaa !5
  %2190 = load i32, ptr %111, align 4, !tbaa !9
  %2191 = sext i32 %2190 to i64
  %2192 = getelementptr inbounds i8, ptr %2189, i64 %2191
  %2193 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2185, i32 noundef %2187, ptr noundef %2188, ptr noundef %2192, ptr noundef null)
          to label %2194 unwind label %2195

2194:                                             ; preds = %2183
  br label %2199

2195:                                             ; preds = %2212, %2183, %2181, %2174
  %2196 = landingpad { ptr, i32 }
          cleanup
  %2197 = extractvalue { ptr, i32 } %2196, 0
  store ptr %2197, ptr %114, align 8
  %2198 = extractvalue { ptr, i32 } %2196, 1
  store i32 %2198, ptr %115, align 4
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #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 %58) #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 4, ptr %55) #14
  call void @llvm.lifetime.end.p0(i64 1, 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 8, ptr %47) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 60, ptr %41) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #14
  call void @llvm.lifetime.end.p0(i64 1, 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 %3572

2199:                                             ; preds = %2194, %2162
  %2200 = load ptr, ptr %47, align 8, !tbaa !5
  %2201 = load ptr, ptr %47, align 8, !tbaa !5
  %2202 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2201, i32 0, i32 12
  %2203 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 2
  %2204 = load ptr, ptr %2203, align 8, !tbaa !182
  %2205 = load i32, ptr %111, align 4, !tbaa !9
  %2206 = icmp sgt i32 %2205, 0
  br i1 %2206, label %2207, label %2211

2207:                                             ; preds = %2199
  %2208 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 0
  %2209 = load i32, ptr %2208, align 8, !tbaa !183
  %2210 = sub nsw i32 %2209, 1
  br label %2212

2211:                                             ; preds = %2199
  br label %2212

2212:                                             ; preds = %2211, %2207
  %2213 = phi i32 [ %2210, %2207 ], [ 0, %2211 ]
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2200, ptr noundef %2202, ptr noundef %2204, i32 noundef %2213)
          to label %2214 unwind label %2195

2214:                                             ; preds = %2212
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #14
  br label %2215

2215:                                             ; preds = %2214, %2154
  br label %2216

2216:                                             ; preds = %2215, %2150
  br label %2217

2217:                                             ; preds = %2216, %2134, %2131
  %2218 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2219 = trunc i8 %2218 to i1
  br i1 %2219, label %2244, label %2220

2220:                                             ; preds = %2217
  %2221 = load ptr, ptr %47, align 8, !tbaa !5
  %2222 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2221, i32 0, i32 8
  store i8 1, ptr %2222, align 8, !tbaa !130
  %2223 = load ptr, ptr %47, align 8, !tbaa !5
  %2224 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2223, i32 0, i32 6
  %2225 = load ptr, ptr %47, align 8, !tbaa !5
  %2226 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2225, i32 0, i32 5
  %2227 = getelementptr inbounds %struct.ImVector.5, ptr %2226, i32 0, i32 0
  %2228 = load i32, ptr %2227, align 8, !tbaa !139
  %2229 = mul nsw i32 %2228, 4
  %2230 = add nsw i32 %2229, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2224, i32 noundef %2230)
  %2231 = load ptr, ptr %47, align 8, !tbaa !5
  %2232 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2231, i32 0, i32 6
  %2233 = getelementptr inbounds %struct.ImVector.31, ptr %2232, i32 0, i32 2
  %2234 = load ptr, ptr %2233, align 8, !tbaa !131
  %2235 = load ptr, ptr %47, align 8, !tbaa !5
  %2236 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2235, i32 0, i32 6
  %2237 = getelementptr inbounds %struct.ImVector.31, ptr %2236, i32 0, i32 0
  %2238 = load i32, ptr %2237, align 8, !tbaa !184
  %2239 = load ptr, ptr %47, align 8, !tbaa !5
  %2240 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2239, i32 0, i32 5
  %2241 = getelementptr inbounds %struct.ImVector.5, ptr %2240, i32 0, i32 2
  %2242 = load ptr, ptr %2241, align 8, !tbaa !132
  %2243 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2234, i32 noundef %2238, ptr noundef %2242, ptr noundef null)
  br label %2244

2244:                                             ; preds = %2220, %2217
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #14
  %2245 = load i8, ptr %82, align 1, !tbaa !44, !range !42, !noundef !43
  %2246 = trunc i8 %2245 to i1
  br i1 %2246, label %2247, label %2256

2247:                                             ; preds = %2244
  %2248 = load i8, ptr %66, align 1, !tbaa !44, !range !42, !noundef !43
  %2249 = trunc i8 %2248 to i1
  br i1 %2249, label %2250, label %2254

2250:                                             ; preds = %2247
  %2251 = load i32, ptr %15, align 4, !tbaa !9
  %2252 = and i32 %2251, 32
  %2253 = icmp ne i32 %2252, 0
  br label %2254

2254:                                             ; preds = %2250, %2247
  %2255 = phi i1 [ false, %2247 ], [ %2253, %2250 ]
  br label %2256

2256:                                             ; preds = %2254, %2244
  %2257 = phi i1 [ true, %2244 ], [ %2255, %2254 ]
  %2258 = zext i1 %2257 to i8
  store i8 %2258, ptr %116, align 1, !tbaa !44
  %2259 = load i8, ptr %116, align 1, !tbaa !44, !range !42, !noundef !43
  %2260 = trunc i8 %2259 to i1
  br i1 %2260, label %2261, label %2602

2261:                                             ; preds = %2256
  %2262 = load i32, ptr %15, align 4, !tbaa !9
  %2263 = and i32 %2262, 524736
  %2264 = icmp ne i32 %2263, 0
  br i1 %2264, label %2265, label %2582

2265:                                             ; preds = %2261
  %2266 = load ptr, ptr %16, align 8, !tbaa !5
  %2267 = icmp ne ptr %2266, null
  br i1 %2267, label %2268, label %2269

2268:                                             ; preds = %2265
  br label %2271

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

2270:                                             ; No predecessors!
  br label %2271

2271:                                             ; preds = %2270, %2268
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #14
  store i32 0, ptr %117, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #14
  store i32 0, ptr %118, align 4, !tbaa !185
  %2272 = load i32, ptr %15, align 4, !tbaa !9
  %2273 = and i32 %2272, 64
  %2274 = icmp ne i32 %2273, 0
  br i1 %2274, label %2275, label %2279

2275:                                             ; preds = %2271
  %2276 = load i32, ptr %29, align 4, !tbaa !9
  %2277 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %2276, i32 noundef 0)
  br i1 %2277, label %2278, label %2279

2278:                                             ; preds = %2275
  store i32 64, ptr %117, align 4, !tbaa !9
  store i32 512, ptr %118, align 4, !tbaa !185
  br label %2312

2279:                                             ; preds = %2275, %2271
  %2280 = load i32, ptr %15, align 4, !tbaa !9
  %2281 = and i32 %2280, 128
  %2282 = icmp ne i32 %2281, 0
  br i1 %2282, label %2283, label %2286

2283:                                             ; preds = %2279
  %2284 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %2284, label %2285, label %2286

2285:                                             ; preds = %2283
  store i32 128, ptr %117, align 4, !tbaa !9
  store i32 515, ptr %118, align 4, !tbaa !185
  br label %2311

2286:                                             ; preds = %2283, %2279
  %2287 = load i32, ptr %15, align 4, !tbaa !9
  %2288 = and i32 %2287, 128
  %2289 = icmp ne i32 %2288, 0
  br i1 %2289, label %2290, label %2293

2290:                                             ; preds = %2286
  %2291 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %2291, label %2292, label %2293

2292:                                             ; preds = %2290
  store i32 128, ptr %117, align 4, !tbaa !9
  store i32 516, ptr %118, align 4, !tbaa !185
  br label %2310

2293:                                             ; preds = %2290, %2286
  %2294 = load i32, ptr %15, align 4, !tbaa !9
  %2295 = and i32 %2294, 524288
  %2296 = icmp ne i32 %2295, 0
  br i1 %2296, label %2297, label %2303

2297:                                             ; preds = %2293
  %2298 = load ptr, ptr %47, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2298, i32 0, i32 16
  %2300 = load i8, ptr %2299, align 2, !tbaa !151, !range !42, !noundef !43
  %2301 = trunc i8 %2300 to i1
  br i1 %2301, label %2302, label %2303

2302:                                             ; preds = %2297
  store i32 524288, ptr %117, align 4, !tbaa !9
  br label %2309

2303:                                             ; preds = %2297, %2293
  %2304 = load i32, ptr %15, align 4, !tbaa !9
  %2305 = and i32 %2304, 256
  %2306 = icmp ne i32 %2305, 0
  br i1 %2306, label %2307, label %2308

2307:                                             ; preds = %2303
  store i32 256, ptr %117, align 4, !tbaa !9
  br label %2308

2308:                                             ; preds = %2307, %2303
  br label %2309

2309:                                             ; preds = %2308, %2302
  br label %2310

2310:                                             ; preds = %2309, %2292
  br label %2311

2311:                                             ; preds = %2310, %2285
  br label %2312

2312:                                             ; preds = %2311, %2278
  %2313 = load i32, ptr %117, align 4, !tbaa !9
  %2314 = icmp ne i32 %2313, 0
  br i1 %2314, label %2315, label %2581

2315:                                             ; preds = %2312
  call void @llvm.lifetime.start.p0(i64 64, ptr %119) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %119)
  %2316 = load ptr, ptr %20, align 8, !tbaa !5
  %2317 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 0
  store ptr %2316, ptr %2317, align 8, !tbaa !187
  %2318 = load i32, ptr %117, align 4, !tbaa !9
  %2319 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 1
  store i32 %2318, ptr %2319, align 8, !tbaa !189
  %2320 = load i32, ptr %15, align 4, !tbaa !9
  %2321 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 2
  store i32 %2320, ptr %2321, align 4, !tbaa !190
  %2322 = load ptr, ptr %17, align 8, !tbaa !5
  %2323 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 3
  store ptr %2322, ptr %2323, align 8, !tbaa !191
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #14
  %2324 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2325 = trunc i8 %2324 to i1
  br i1 %2325, label %2326, label %2328

2326:                                             ; preds = %2315
  %2327 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2333

2328:                                             ; preds = %2315
  %2329 = load ptr, ptr %47, align 8, !tbaa !5
  %2330 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2329, i32 0, i32 6
  %2331 = getelementptr inbounds %struct.ImVector.31, ptr %2330, i32 0, i32 2
  %2332 = load ptr, ptr %2331, align 8, !tbaa !131
  br label %2333

2333:                                             ; preds = %2328, %2326
  %2334 = phi ptr [ %2327, %2326 ], [ %2332, %2328 ]
  store ptr %2334, ptr %120, align 8, !tbaa !5
  %2335 = load i32, ptr %118, align 4, !tbaa !185
  %2336 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 5
  store i32 %2335, ptr %2336, align 4, !tbaa !192
  %2337 = load ptr, ptr %120, align 8, !tbaa !5
  %2338 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  store ptr %2337, ptr %2338, align 8, !tbaa !193
  %2339 = load ptr, ptr %47, align 8, !tbaa !5
  %2340 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2339, i32 0, i32 3
  %2341 = load i32, ptr %2340, align 8, !tbaa !129
  %2342 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  store i32 %2341, ptr %2342, align 8, !tbaa !194
  %2343 = load ptr, ptr %47, align 8, !tbaa !5
  %2344 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2343, i32 0, i32 10
  %2345 = load i32, ptr %2344, align 4, !tbaa !152
  %2346 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 8
  store i32 %2345, ptr %2346, align 4, !tbaa !195
  %2347 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 9
  store i8 0, ptr %2347, align 8, !tbaa !196
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #14
  %2348 = load ptr, ptr %47, align 8, !tbaa !5
  %2349 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2348, i32 0, i32 5
  %2350 = getelementptr inbounds %struct.ImVector.5, ptr %2349, i32 0, i32 2
  %2351 = load ptr, ptr %2350, align 8, !tbaa !132
  store ptr %2351, ptr %121, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #14
  %2352 = load ptr, ptr %121, align 8, !tbaa !5
  %2353 = load ptr, ptr %121, align 8, !tbaa !5
  %2354 = load ptr, ptr %47, align 8, !tbaa !5
  %2355 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2354, i32 0, i32 12
  %2356 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2355, i32 0, i32 0
  %2357 = load i32, ptr %2356, align 4, !tbaa !163
  %2358 = sext i32 %2357 to i64
  %2359 = getelementptr inbounds i16, ptr %2353, i64 %2358
  %2360 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2352, ptr noundef %2359)
  %2361 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  store i32 %2360, ptr %2361, align 4, !tbaa !197
  store i32 %2360, ptr %122, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #14
  %2362 = load ptr, ptr %121, align 8, !tbaa !5
  %2363 = load ptr, ptr %121, align 8, !tbaa !5
  %2364 = load ptr, ptr %47, align 8, !tbaa !5
  %2365 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2364, i32 0, i32 12
  %2366 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2365, i32 0, i32 1
  %2367 = load i32, ptr %2366, align 4, !tbaa !164
  %2368 = sext i32 %2367 to i64
  %2369 = getelementptr inbounds i16, ptr %2363, i64 %2368
  %2370 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2362, ptr noundef %2369)
  %2371 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  store i32 %2370, ptr %2371, align 8, !tbaa !198
  store i32 %2370, ptr %123, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #14
  %2372 = load ptr, ptr %121, align 8, !tbaa !5
  %2373 = load ptr, ptr %121, align 8, !tbaa !5
  %2374 = load ptr, ptr %47, align 8, !tbaa !5
  %2375 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2374, i32 0, i32 12
  %2376 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2375, i32 0, i32 2
  %2377 = load i32, ptr %2376, align 4, !tbaa !165
  %2378 = sext i32 %2377 to i64
  %2379 = getelementptr inbounds i16, ptr %2373, i64 %2378
  %2380 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2372, ptr noundef %2379)
  %2381 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  store i32 %2380, ptr %2381, align 4, !tbaa !199
  store i32 %2380, ptr %124, align 4, !tbaa !9
  %2382 = load ptr, ptr %16, align 8, !tbaa !5
  %2383 = call noundef i32 %2382(ptr noundef %119)
  %2384 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2385 = trunc i8 %2384 to i1
  br i1 %2385, label %2386, label %2388

2386:                                             ; preds = %2333
  %2387 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2393

2388:                                             ; preds = %2333
  %2389 = load ptr, ptr %47, align 8, !tbaa !5
  %2390 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2389, i32 0, i32 6
  %2391 = getelementptr inbounds %struct.ImVector.31, ptr %2390, i32 0, i32 2
  %2392 = load ptr, ptr %2391, align 8, !tbaa !131
  br label %2393

2393:                                             ; preds = %2388, %2386
  %2394 = phi ptr [ %2387, %2386 ], [ %2392, %2388 ]
  store ptr %2394, ptr %120, align 8, !tbaa !5
  %2395 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2396 = load ptr, ptr %2395, align 8, !tbaa !193
  %2397 = load ptr, ptr %120, align 8, !tbaa !5
  %2398 = icmp eq ptr %2396, %2397
  br i1 %2398, label %2399, label %2400

2399:                                             ; preds = %2393
  br label %2402

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

2401:                                             ; No predecessors!
  br label %2402

2402:                                             ; preds = %2401, %2399
  %2403 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 8
  %2404 = load i32, ptr %2403, align 4, !tbaa !195
  %2405 = load ptr, ptr %47, align 8, !tbaa !5
  %2406 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2405, i32 0, i32 10
  %2407 = load i32, ptr %2406, align 4, !tbaa !152
  %2408 = icmp eq i32 %2404, %2407
  br i1 %2408, label %2409, label %2410

2409:                                             ; preds = %2402
  br label %2412

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

2411:                                             ; No predecessors!
  br label %2412

2412:                                             ; preds = %2411, %2409
  %2413 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 2
  %2414 = load i32, ptr %2413, align 4, !tbaa !190
  %2415 = load i32, ptr %15, align 4, !tbaa !9
  %2416 = icmp eq i32 %2414, %2415
  br i1 %2416, label %2417, label %2418

2417:                                             ; preds = %2412
  br label %2420

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

2419:                                             ; No predecessors!
  br label %2420

2420:                                             ; preds = %2419, %2417
  call void @llvm.lifetime.start.p0(i64 1, ptr %125) #14
  %2421 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 9
  %2422 = load i8, ptr %2421, align 8, !tbaa !196, !range !42, !noundef !43
  %2423 = trunc i8 %2422 to i1
  %2424 = zext i1 %2423 to i8
  store i8 %2424, ptr %125, align 1, !tbaa !44
  %2425 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  %2426 = load i32, ptr %2425, align 4, !tbaa !197
  %2427 = load i32, ptr %122, align 4, !tbaa !9
  %2428 = icmp ne i32 %2426, %2427
  br i1 %2428, label %2432, label %2429

2429:                                             ; preds = %2420
  %2430 = load i8, ptr %125, align 1, !tbaa !44, !range !42, !noundef !43
  %2431 = trunc i8 %2430 to i1
  br i1 %2431, label %2432, label %2447

2432:                                             ; preds = %2429, %2420
  %2433 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2434 = load ptr, ptr %2433, align 8, !tbaa !193
  %2435 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2436 = load ptr, ptr %2435, align 8, !tbaa !193
  %2437 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  %2438 = load i32, ptr %2437, align 4, !tbaa !197
  %2439 = sext i32 %2438 to i64
  %2440 = getelementptr inbounds i8, ptr %2436, i64 %2439
  %2441 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2434, ptr noundef %2440)
  %2442 = load ptr, ptr %47, align 8, !tbaa !5
  %2443 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2442, i32 0, i32 12
  %2444 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2443, i32 0, i32 0
  store i32 %2441, ptr %2444, align 4, !tbaa !163
  %2445 = load ptr, ptr %47, align 8, !tbaa !5
  %2446 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2445, i32 0, i32 14
  store i8 1, ptr %2446, align 4, !tbaa !166
  br label %2447

2447:                                             ; preds = %2432, %2429
  %2448 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2449 = load i32, ptr %2448, align 8, !tbaa !198
  %2450 = load i32, ptr %123, align 4, !tbaa !9
  %2451 = icmp ne i32 %2449, %2450
  br i1 %2451, label %2455, label %2452

2452:                                             ; preds = %2447
  %2453 = load i8, ptr %125, align 1, !tbaa !44, !range !42, !noundef !43
  %2454 = trunc i8 %2453 to i1
  br i1 %2454, label %2455, label %2481

2455:                                             ; preds = %2452, %2447
  %2456 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2457 = load i32, ptr %2456, align 8, !tbaa !198
  %2458 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  %2459 = load i32, ptr %2458, align 4, !tbaa !197
  %2460 = icmp eq i32 %2457, %2459
  br i1 %2460, label %2461, label %2466

2461:                                             ; preds = %2455
  %2462 = load ptr, ptr %47, align 8, !tbaa !5
  %2463 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2462, i32 0, i32 12
  %2464 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2463, i32 0, i32 0
  %2465 = load i32, ptr %2464, align 4, !tbaa !163
  br label %2476

2466:                                             ; preds = %2455
  %2467 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2468 = load ptr, ptr %2467, align 8, !tbaa !193
  %2469 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2470 = load ptr, ptr %2469, align 8, !tbaa !193
  %2471 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2472 = load i32, ptr %2471, align 8, !tbaa !198
  %2473 = sext i32 %2472 to i64
  %2474 = getelementptr inbounds i8, ptr %2470, i64 %2473
  %2475 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2468, ptr noundef %2474)
  br label %2476

2476:                                             ; preds = %2466, %2461
  %2477 = phi i32 [ %2465, %2461 ], [ %2475, %2466 ]
  %2478 = load ptr, ptr %47, align 8, !tbaa !5
  %2479 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2478, i32 0, i32 12
  %2480 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2479, i32 0, i32 1
  store i32 %2477, ptr %2480, align 4, !tbaa !164
  br label %2481

2481:                                             ; preds = %2476, %2452
  %2482 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  %2483 = load i32, ptr %2482, align 4, !tbaa !199
  %2484 = load i32, ptr %124, align 4, !tbaa !9
  %2485 = icmp ne i32 %2483, %2484
  br i1 %2485, label %2489, label %2486

2486:                                             ; preds = %2481
  %2487 = load i8, ptr %125, align 1, !tbaa !44, !range !42, !noundef !43
  %2488 = trunc i8 %2487 to i1
  br i1 %2488, label %2489, label %2515

2489:                                             ; preds = %2486, %2481
  %2490 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  %2491 = load i32, ptr %2490, align 4, !tbaa !199
  %2492 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2493 = load i32, ptr %2492, align 8, !tbaa !198
  %2494 = icmp eq i32 %2491, %2493
  br i1 %2494, label %2495, label %2500

2495:                                             ; preds = %2489
  %2496 = load ptr, ptr %47, align 8, !tbaa !5
  %2497 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2496, i32 0, i32 12
  %2498 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2497, i32 0, i32 1
  %2499 = load i32, ptr %2498, align 4, !tbaa !164
  br label %2510

2500:                                             ; preds = %2489
  %2501 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2502 = load ptr, ptr %2501, align 8, !tbaa !193
  %2503 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2504 = load ptr, ptr %2503, align 8, !tbaa !193
  %2505 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  %2506 = load i32, ptr %2505, align 4, !tbaa !199
  %2507 = sext i32 %2506 to i64
  %2508 = getelementptr inbounds i8, ptr %2504, i64 %2507
  %2509 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2502, ptr noundef %2508)
  br label %2510

2510:                                             ; preds = %2500, %2495
  %2511 = phi i32 [ %2499, %2495 ], [ %2509, %2500 ]
  %2512 = load ptr, ptr %47, align 8, !tbaa !5
  %2513 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2512, i32 0, i32 12
  %2514 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2513, i32 0, i32 2
  store i32 %2511, ptr %2514, align 4, !tbaa !165
  br label %2515

2515:                                             ; preds = %2510, %2486
  %2516 = load i8, ptr %125, align 1, !tbaa !44, !range !42, !noundef !43
  %2517 = trunc i8 %2516 to i1
  br i1 %2517, label %2518, label %2580

2518:                                             ; preds = %2515
  %2519 = load i32, ptr %15, align 4, !tbaa !9
  %2520 = and i32 %2519, 16384
  %2521 = icmp eq i32 %2520, 0
  br i1 %2521, label %2522, label %2523

2522:                                             ; preds = %2518
  br label %2525

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

2524:                                             ; No predecessors!
  br label %2525

2525:                                             ; preds = %2524, %2522
  %2526 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2527 = load i32, ptr %2526, align 8, !tbaa !194
  %2528 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2529 = load ptr, ptr %2528, align 8, !tbaa !193
  %2530 = call i64 @strlen(ptr noundef %2529) #16
  %2531 = trunc i64 %2530 to i32
  %2532 = icmp eq i32 %2527, %2531
  br i1 %2532, label %2533, label %2534

2533:                                             ; preds = %2525
  br label %2536

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

2535:                                             ; No predecessors!
  br label %2536

2536:                                             ; preds = %2535, %2533
  %2537 = load ptr, ptr %47, align 8, !tbaa !5
  %2538 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2539 = load ptr, ptr %2538, align 8, !tbaa !193
  %2540 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2541 = load i32, ptr %2540, align 8, !tbaa !194
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef %2537, ptr noundef %2539, i32 noundef %2541)
  %2542 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2543 = load i32, ptr %2542, align 8, !tbaa !194
  %2544 = load i32, ptr %72, align 4, !tbaa !9
  %2545 = icmp sgt i32 %2543, %2544
  br i1 %2545, label %2546, label %2561

2546:                                             ; preds = %2536
  %2547 = load i8, ptr %28, align 1, !tbaa !44, !range !42, !noundef !43
  %2548 = trunc i8 %2547 to i1
  br i1 %2548, label %2549, label %2561

2549:                                             ; preds = %2546
  %2550 = load ptr, ptr %47, align 8, !tbaa !5
  %2551 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2550, i32 0, i32 5
  %2552 = load ptr, ptr %47, align 8, !tbaa !5
  %2553 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2552, i32 0, i32 5
  %2554 = getelementptr inbounds %struct.ImVector.5, ptr %2553, i32 0, i32 0
  %2555 = load i32, ptr %2554, align 8, !tbaa !139
  %2556 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2557 = load i32, ptr %2556, align 8, !tbaa !194
  %2558 = load i32, ptr %72, align 4, !tbaa !9
  %2559 = sub nsw i32 %2557, %2558
  %2560 = add nsw i32 %2555, %2559
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2551, i32 noundef %2560)
  br label %2561

2561:                                             ; preds = %2549, %2546, %2536
  %2562 = load ptr, ptr %47, align 8, !tbaa !5
  %2563 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2562, i32 0, i32 5
  %2564 = getelementptr inbounds %struct.ImVector.5, ptr %2563, i32 0, i32 2
  %2565 = load ptr, ptr %2564, align 8, !tbaa !132
  %2566 = load ptr, ptr %47, align 8, !tbaa !5
  %2567 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2566, i32 0, i32 5
  %2568 = getelementptr inbounds %struct.ImVector.5, ptr %2567, i32 0, i32 0
  %2569 = load i32, ptr %2568, align 8, !tbaa !139
  %2570 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2571 = load ptr, ptr %2570, align 8, !tbaa !193
  %2572 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2565, i32 noundef %2569, ptr noundef %2571, ptr noundef null, ptr noundef null)
  %2573 = load ptr, ptr %47, align 8, !tbaa !5
  %2574 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2573, i32 0, i32 2
  store i32 %2572, ptr %2574, align 4, !tbaa !133
  %2575 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2576 = load i32, ptr %2575, align 8, !tbaa !194
  %2577 = load ptr, ptr %47, align 8, !tbaa !5
  %2578 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2577, i32 0, i32 3
  store i32 %2576, ptr %2578, align 8, !tbaa !129
  %2579 = load ptr, ptr %47, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %2579)
  br label %2580

2580:                                             ; preds = %2561, %2515
  call void @llvm.lifetime.end.p0(i64 1, ptr %125) #14
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %121) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #14
  call void @llvm.lifetime.end.p0(i64 64, ptr %119) #14
  br label %2581

2581:                                             ; preds = %2580, %2312
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #14
  br label %2582

2582:                                             ; preds = %2581, %2261
  %2583 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2584 = trunc i8 %2583 to i1
  br i1 %2584, label %2601, label %2585

2585:                                             ; preds = %2582
  %2586 = load ptr, ptr %47, align 8, !tbaa !5
  %2587 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2586, i32 0, i32 6
  %2588 = getelementptr inbounds %struct.ImVector.31, ptr %2587, i32 0, i32 2
  %2589 = load ptr, ptr %2588, align 8, !tbaa !131
  %2590 = load ptr, ptr %12, align 8, !tbaa !5
  %2591 = call i32 @strcmp(ptr noundef %2589, ptr noundef %2590) #16
  %2592 = icmp ne i32 %2591, 0
  br i1 %2592, label %2593, label %2601

2593:                                             ; preds = %2585
  %2594 = load ptr, ptr %47, align 8, !tbaa !5
  %2595 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2594, i32 0, i32 6
  %2596 = getelementptr inbounds %struct.ImVector.31, ptr %2595, i32 0, i32 2
  %2597 = load ptr, ptr %2596, align 8, !tbaa !131
  store ptr %2597, ptr %110, align 8, !tbaa !5
  %2598 = load ptr, ptr %47, align 8, !tbaa !5
  %2599 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2598, i32 0, i32 3
  %2600 = load i32, ptr %2599, align 8, !tbaa !129
  store i32 %2600, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !44
  br label %2601

2601:                                             ; preds = %2593, %2585, %2582
  br label %2602

2602:                                             ; preds = %2601, %2256
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #14
  br label %2603

2603:                                             ; preds = %2602, %2119
  %2604 = load ptr, ptr %20, align 8, !tbaa !5
  %2605 = getelementptr inbounds %struct.ImGuiContext, ptr %2604, i32 0, i32 189
  %2606 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2605, i32 0, i32 0
  %2607 = load i32, ptr %2606, align 8, !tbaa !200
  %2608 = load i32, ptr %29, align 4, !tbaa !9
  %2609 = icmp eq i32 %2607, %2608
  br i1 %2609, label %2610, label %2646

2610:                                             ; preds = %2603
  %2611 = load ptr, ptr %20, align 8, !tbaa !5
  %2612 = getelementptr inbounds %struct.ImGuiContext, ptr %2611, i32 0, i32 50
  %2613 = load i32, ptr %2612, align 8, !tbaa !120
  %2614 = load i32, ptr %29, align 4, !tbaa !9
  %2615 = icmp ne i32 %2613, %2614
  br i1 %2615, label %2616, label %2642

2616:                                             ; preds = %2610
  %2617 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  br i1 %2617, label %2618, label %2642

2618:                                             ; preds = %2616
  %2619 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2620 = trunc i8 %2619 to i1
  br i1 %2620, label %2642, label %2621

2621:                                             ; preds = %2618
  %2622 = load ptr, ptr %20, align 8, !tbaa !5
  %2623 = getelementptr inbounds %struct.ImGuiContext, ptr %2622, i32 0, i32 189
  %2624 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2623, i32 0, i32 1
  %2625 = getelementptr inbounds %struct.ImVector.31, ptr %2624, i32 0, i32 2
  %2626 = load ptr, ptr %2625, align 8, !tbaa !201
  %2627 = load ptr, ptr %12, align 8, !tbaa !5
  %2628 = call i32 @strcmp(ptr noundef %2626, ptr noundef %2627) #16
  %2629 = icmp ne i32 %2628, 0
  br i1 %2629, label %2630, label %2642

2630:                                             ; preds = %2621
  %2631 = load ptr, ptr %20, align 8, !tbaa !5
  %2632 = getelementptr inbounds %struct.ImGuiContext, ptr %2631, i32 0, i32 189
  %2633 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2632, i32 0, i32 1
  %2634 = getelementptr inbounds %struct.ImVector.31, ptr %2633, i32 0, i32 2
  %2635 = load ptr, ptr %2634, align 8, !tbaa !201
  store ptr %2635, ptr %110, align 8, !tbaa !5
  %2636 = load ptr, ptr %20, align 8, !tbaa !5
  %2637 = getelementptr inbounds %struct.ImGuiContext, ptr %2636, i32 0, i32 189
  %2638 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2637, i32 0, i32 1
  %2639 = getelementptr inbounds %struct.ImVector.31, ptr %2638, i32 0, i32 0
  %2640 = load i32, ptr %2639, align 8, !tbaa !202
  %2641 = sub nsw i32 %2640, 1
  store i32 %2641, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !44
  br label %2642

2642:                                             ; preds = %2630, %2621, %2618, %2616, %2610
  %2643 = load ptr, ptr %20, align 8, !tbaa !5
  %2644 = getelementptr inbounds %struct.ImGuiContext, ptr %2643, i32 0, i32 189
  %2645 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2644, i32 0, i32 0
  store i32 0, ptr %2645, align 8, !tbaa !200
  br label %2646

2646:                                             ; preds = %2642, %2603
  %2647 = load ptr, ptr %110, align 8, !tbaa !5
  %2648 = icmp ne ptr %2647, null
  br i1 %2648, label %2649, label %2701

2649:                                             ; preds = %2646
  %2650 = load i32, ptr %111, align 4, !tbaa !9
  %2651 = icmp sge i32 %2650, 0
  br i1 %2651, label %2652, label %2653

2652:                                             ; preds = %2649
  br label %2655

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

2654:                                             ; No predecessors!
  br label %2655

2655:                                             ; preds = %2654, %2652
  %2656 = load i8, ptr %28, align 1, !tbaa !44, !range !42, !noundef !43
  %2657 = trunc i8 %2656 to i1
  br i1 %2657, label %2658, label %2693

2658:                                             ; preds = %2655
  call void @llvm.lifetime.start.p0(i64 64, ptr %126) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %126)
  %2659 = load ptr, ptr %20, align 8, !tbaa !5
  %2660 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 0
  store ptr %2659, ptr %2660, align 8, !tbaa !187
  %2661 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 1
  store i32 262144, ptr %2661, align 8, !tbaa !189
  %2662 = load i32, ptr %15, align 4, !tbaa !9
  %2663 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 2
  store i32 %2662, ptr %2663, align 4, !tbaa !190
  %2664 = load ptr, ptr %12, align 8, !tbaa !5
  %2665 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 6
  store ptr %2664, ptr %2665, align 8, !tbaa !193
  %2666 = load i32, ptr %111, align 4, !tbaa !9
  %2667 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 7
  store i32 %2666, ptr %2667, align 8, !tbaa !194
  %2668 = load i32, ptr %13, align 4, !tbaa !9
  %2669 = load i32, ptr %111, align 4, !tbaa !9
  %2670 = add nsw i32 %2669, 1
  %2671 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2668, i32 noundef %2670)
  %2672 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 8
  store i32 %2671, ptr %2672, align 4, !tbaa !195
  %2673 = load ptr, ptr %17, align 8, !tbaa !5
  %2674 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 3
  store ptr %2673, ptr %2674, align 8, !tbaa !191
  %2675 = load ptr, ptr %16, align 8, !tbaa !5
  %2676 = call noundef i32 %2675(ptr noundef %126)
  %2677 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 6
  %2678 = load ptr, ptr %2677, align 8, !tbaa !193
  store ptr %2678, ptr %12, align 8, !tbaa !5
  %2679 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 8
  %2680 = load i32, ptr %2679, align 4, !tbaa !195
  store i32 %2680, ptr %13, align 4, !tbaa !9
  %2681 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 7
  %2682 = load i32, ptr %2681, align 8, !tbaa !194
  %2683 = load i32, ptr %13, align 4, !tbaa !9
  %2684 = sub nsw i32 %2683, 1
  %2685 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2682, i32 noundef %2684)
  store i32 %2685, ptr %111, align 4, !tbaa !9
  %2686 = load i32, ptr %111, align 4, !tbaa !9
  %2687 = load i32, ptr %13, align 4, !tbaa !9
  %2688 = icmp sle i32 %2686, %2687
  br i1 %2688, label %2689, label %2690

2689:                                             ; preds = %2658
  br label %2692

2690:                                             ; preds = %2658
  call void @__assert_fail(ptr noundef @.str.73, ptr noundef @.str.4, i32 noundef 4756, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2691:                                             ; No predecessors!
  br label %2692

2692:                                             ; preds = %2691, %2689
  call void @llvm.lifetime.end.p0(i64 64, ptr %126) #14
  br label %2693

2693:                                             ; preds = %2692, %2655
  %2694 = load ptr, ptr %12, align 8, !tbaa !5
  %2695 = load ptr, ptr %110, align 8, !tbaa !5
  %2696 = load i32, ptr %111, align 4, !tbaa !9
  %2697 = add nsw i32 %2696, 1
  %2698 = load i32, ptr %13, align 4, !tbaa !9
  %2699 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2697, i32 noundef %2698)
  %2700 = sext i32 %2699 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %2694, ptr noundef %2695, i64 noundef %2700)
  br label %2701

2701:                                             ; preds = %2693, %2646
  %2702 = load ptr, ptr %20, align 8, !tbaa !5
  %2703 = getelementptr inbounds %struct.ImGuiContext, ptr %2702, i32 0, i32 50
  %2704 = load i32, ptr %2703, align 8, !tbaa !120
  %2705 = load i32, ptr %29, align 4, !tbaa !9
  %2706 = icmp eq i32 %2704, %2705
  br i1 %2706, label %2707, label %2711

2707:                                             ; preds = %2701
  %2708 = load i8, ptr %53, align 1, !tbaa !44, !range !42, !noundef !43
  %2709 = trunc i8 %2708 to i1
  br i1 %2709, label %2710, label %2711

2710:                                             ; preds = %2707
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %2721

2711:                                             ; preds = %2707, %2701
  %2712 = load ptr, ptr %20, align 8, !tbaa !5
  %2713 = getelementptr inbounds %struct.ImGuiContext, ptr %2712, i32 0, i32 50
  %2714 = load i32, ptr %2713, align 8, !tbaa !120
  %2715 = load i32, ptr %29, align 4, !tbaa !9
  %2716 = icmp eq i32 %2714, %2715
  br i1 %2716, label %2717, label %2720

2717:                                             ; preds = %2711
  %2718 = load ptr, ptr %20, align 8, !tbaa !5
  %2719 = getelementptr inbounds %struct.ImGuiContext, ptr %2718, i32 0, i32 257
  store i32 1, ptr %2719, align 4, !tbaa !203
  br label %2720

2720:                                             ; preds = %2717, %2711
  br label %2721

2721:                                             ; preds = %2720, %2710
  %2722 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2723 = trunc i8 %2722 to i1
  br i1 %2723, label %2734, label %2724

2724:                                             ; preds = %2721
  %2725 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef %2725, i32 noundef 1)
  %2726 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %127, ptr align 4 %2726, i64 8, i1 false), !tbaa.struct !45
  %2727 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 %2727, i64 8, i1 false), !tbaa.struct !45
  %2728 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %2729 = load ptr, ptr %22, align 8, !tbaa !5
  %2730 = getelementptr inbounds %struct.ImGuiStyle, ptr %2729, i32 0, i32 13
  %2731 = load float, ptr %2730, align 4, !tbaa !112
  %2732 = load <2 x float>, ptr %127, align 4
  %2733 = load <2 x float>, ptr %128, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %2732, <2 x float> %2733, i32 noundef %2728, i1 noundef zeroext true, float noundef %2731)
  br label %2734

2734:                                             ; preds = %2724, %2721
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #14
  %2735 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2736 = getelementptr inbounds %struct.ImVec2, ptr %2735, i32 0, i32 0
  %2737 = load float, ptr %2736, align 4, !tbaa !156
  %2738 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2739 = getelementptr inbounds %struct.ImVec2, ptr %2738, i32 0, i32 1
  %2740 = load float, ptr %2739, align 4, !tbaa !204
  %2741 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2742 = getelementptr inbounds %struct.ImVec2, ptr %2741, i32 0, i32 0
  %2743 = load float, ptr %2742, align 4, !tbaa !156
  %2744 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2745 = load float, ptr %2744, align 4, !tbaa !108
  %2746 = fadd float %2743, %2745
  %2747 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2748 = getelementptr inbounds %struct.ImVec2, ptr %2747, i32 0, i32 1
  %2749 = load float, ptr %2748, align 4, !tbaa !204
  %2750 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2751 = load float, ptr %2750, align 4, !tbaa !106
  %2752 = fadd float %2749, %2751
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %129, float noundef %2737, float noundef %2740, float noundef %2746, float noundef %2752)
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #14
  %2753 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2754 = trunc i8 %2753 to i1
  br i1 %2754, label %2755, label %2759

2755:                                             ; preds = %2734
  %2756 = load ptr, ptr %38, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.ImGuiWindow, ptr %2756, i32 0, i32 69
  %2758 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2757, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %130, ptr align 8 %2758, i64 8, i1 false), !tbaa.struct !45
  br label %2764

2759:                                             ; preds = %2734
  %2760 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2761 = load ptr, ptr %22, align 8, !tbaa !5
  %2762 = getelementptr inbounds %struct.ImGuiStyle, ptr %2761, i32 0, i32 12
  %2763 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2760, ptr noundef nonnull align 4 dereferenceable(8) %2762)
  store <2 x float> %2763, ptr %130, align 4
  br label %2764

2764:                                             ; preds = %2759, %2755
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %131, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #14
  store i32 2097152, ptr %132, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #14
  %2765 = load i8, ptr %68, align 1, !tbaa !44, !range !42, !noundef !43
  %2766 = trunc i8 %2765 to i1
  br i1 %2766, label %2767, label %2772

2767:                                             ; preds = %2764
  %2768 = load ptr, ptr %47, align 8, !tbaa !5
  %2769 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2768, i32 0, i32 6
  %2770 = getelementptr inbounds %struct.ImVector.31, ptr %2769, i32 0, i32 2
  %2771 = load ptr, ptr %2770, align 8, !tbaa !131
  br label %2774

2772:                                             ; preds = %2764
  %2773 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2774

2774:                                             ; preds = %2772, %2767
  %2775 = phi ptr [ %2771, %2767 ], [ %2773, %2772 ]
  store ptr %2775, ptr %133, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #14
  store ptr null, ptr %134, align 8, !tbaa !5
  %2776 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %2777 = trunc i8 %2776 to i1
  br i1 %2777, label %2778, label %2784

2778:                                             ; preds = %2774
  %2779 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %2779, ptr %133, align 8, !tbaa !5
  %2780 = load ptr, ptr %11, align 8, !tbaa !5
  %2781 = load ptr, ptr %11, align 8, !tbaa !5
  %2782 = call i64 @strlen(ptr noundef %2781) #16
  %2783 = getelementptr inbounds i8, ptr %2780, i64 %2782
  store ptr %2783, ptr %134, align 8, !tbaa !5
  br label %2784

2784:                                             ; preds = %2778, %2774
  %2785 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %2786 = trunc i8 %2785 to i1
  br i1 %2786, label %2790, label %2787

2787:                                             ; preds = %2784
  %2788 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2789 = trunc i8 %2788 to i1
  br i1 %2789, label %2790, label %3383

2790:                                             ; preds = %2787, %2784
  %2791 = load ptr, ptr %47, align 8, !tbaa !5
  %2792 = icmp ne ptr %2791, null
  br i1 %2792, label %2793, label %2794

2793:                                             ; preds = %2790
  br label %2796

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

2795:                                             ; No predecessors!
  br label %2796

2796:                                             ; preds = %2795, %2793
  %2797 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %2798 = trunc i8 %2797 to i1
  br i1 %2798, label %2806, label %2799

2799:                                             ; preds = %2796
  %2800 = load ptr, ptr %133, align 8, !tbaa !5
  %2801 = load ptr, ptr %47, align 8, !tbaa !5
  %2802 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2801, i32 0, i32 3
  %2803 = load i32, ptr %2802, align 8, !tbaa !129
  %2804 = sext i32 %2803 to i64
  %2805 = getelementptr inbounds i8, ptr %2800, i64 %2804
  store ptr %2805, ptr %134, align 8, !tbaa !5
  br label %2806

2806:                                             ; preds = %2799, %2796
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #14
  %2807 = load ptr, ptr %47, align 8, !tbaa !5
  %2808 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2807, i32 0, i32 5
  %2809 = getelementptr inbounds %struct.ImVector.5, ptr %2808, i32 0, i32 2
  %2810 = load ptr, ptr %2809, align 8, !tbaa !132
  store ptr %2810, ptr %135, align 8, !tbaa !5
  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 8, ptr %137) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %137)
  call void @llvm.lifetime.start.p0(i64 16, ptr %138) #14
  call void @llvm.memset.p0.i64(ptr align 16 %138, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %139, ptr align 4 @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #14
  store i32 0, ptr %140, align 4, !tbaa !9
  %2811 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %2812 = trunc i8 %2811 to i1
  br i1 %2812, label %2813, label %2825

2813:                                             ; preds = %2806
  %2814 = load ptr, ptr %135, align 8, !tbaa !5
  %2815 = load ptr, ptr %47, align 8, !tbaa !5
  %2816 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2815, i32 0, i32 12
  %2817 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2816, i32 0, i32 0
  %2818 = load i32, ptr %2817, align 4, !tbaa !163
  %2819 = sext i32 %2818 to i64
  %2820 = getelementptr inbounds i16, ptr %2814, i64 %2819
  %2821 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  store ptr %2820, ptr %2821, align 16, !tbaa !5
  %2822 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  store i32 -1, ptr %2822, align 4, !tbaa !9
  %2823 = load i32, ptr %140, align 4, !tbaa !9
  %2824 = add nsw i32 %2823, 1
  store i32 %2824, ptr %140, align 4, !tbaa !9
  br label %2825

2825:                                             ; preds = %2813, %2806
  %2826 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2827 = trunc i8 %2826 to i1
  br i1 %2827, label %2828, label %2845

2828:                                             ; preds = %2825
  %2829 = load ptr, ptr %135, align 8, !tbaa !5
  %2830 = load ptr, ptr %47, align 8, !tbaa !5
  %2831 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2830, i32 0, i32 12
  %2832 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2831, i32 0, i32 1
  %2833 = load i32, ptr %2832, align 4, !tbaa !164
  %2834 = load ptr, ptr %47, align 8, !tbaa !5
  %2835 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2834, i32 0, i32 12
  %2836 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2835, i32 0, i32 2
  %2837 = load i32, ptr %2836, align 4, !tbaa !165
  %2838 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2833, i32 noundef %2837)
  %2839 = sext i32 %2838 to i64
  %2840 = getelementptr inbounds i16, ptr %2829, i64 %2839
  %2841 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  store ptr %2840, ptr %2841, align 8, !tbaa !5
  %2842 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  store i32 -1, ptr %2842, align 4, !tbaa !9
  %2843 = load i32, ptr %140, align 4, !tbaa !9
  %2844 = add nsw i32 %2843, 1
  store i32 %2844, ptr %140, align 4, !tbaa !9
  br label %2845

2845:                                             ; preds = %2828, %2825
  %2846 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2847 = trunc i8 %2846 to i1
  %2848 = zext i1 %2847 to i64
  %2849 = select i1 %2847, i32 1, i32 0
  %2850 = load i32, ptr %140, align 4, !tbaa !9
  %2851 = add nsw i32 %2850, %2849
  store i32 %2851, ptr %140, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #14
  store i32 0, ptr %141, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #14
  %2852 = load ptr, ptr %135, align 8, !tbaa !5
  store ptr %2852, ptr %142, align 8, !tbaa !5
  br label %2853

2853:                                             ; preds = %2902, %2845
  %2854 = load ptr, ptr %142, align 8, !tbaa !5
  %2855 = load i16, ptr %2854, align 2, !tbaa !161
  %2856 = zext i16 %2855 to i32
  %2857 = icmp ne i32 %2856, 0
  br i1 %2857, label %2859, label %2858

2858:                                             ; preds = %2853
  store i32 7, ptr %19, align 4
  br label %2905

2859:                                             ; preds = %2853
  %2860 = load ptr, ptr %142, align 8, !tbaa !5
  %2861 = load i16, ptr %2860, align 2, !tbaa !161
  %2862 = zext i16 %2861 to i32
  %2863 = icmp eq i32 %2862, 10
  br i1 %2863, label %2864, label %2901

2864:                                             ; preds = %2859
  %2865 = load i32, ptr %141, align 4, !tbaa !9
  %2866 = add nsw i32 %2865, 1
  store i32 %2866, ptr %141, align 4, !tbaa !9
  %2867 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  %2868 = load i32, ptr %2867, align 4, !tbaa !9
  %2869 = icmp eq i32 %2868, -1
  br i1 %2869, label %2870, label %2883

2870:                                             ; preds = %2864
  %2871 = load ptr, ptr %142, align 8, !tbaa !5
  %2872 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  %2873 = load ptr, ptr %2872, align 16, !tbaa !5
  %2874 = icmp uge ptr %2871, %2873
  br i1 %2874, label %2875, label %2883

2875:                                             ; preds = %2870
  %2876 = load i32, ptr %141, align 4, !tbaa !9
  %2877 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  store i32 %2876, ptr %2877, align 4, !tbaa !9
  %2878 = load i32, ptr %140, align 4, !tbaa !9
  %2879 = add nsw i32 %2878, -1
  store i32 %2879, ptr %140, align 4, !tbaa !9
  %2880 = icmp sle i32 %2879, 0
  br i1 %2880, label %2881, label %2882

2881:                                             ; preds = %2875
  store i32 7, ptr %19, align 4
  br label %2905

2882:                                             ; preds = %2875
  br label %2883

2883:                                             ; preds = %2882, %2870, %2864
  %2884 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %2885 = load i32, ptr %2884, align 4, !tbaa !9
  %2886 = icmp eq i32 %2885, -1
  br i1 %2886, label %2887, label %2900

2887:                                             ; preds = %2883
  %2888 = load ptr, ptr %142, align 8, !tbaa !5
  %2889 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  %2890 = load ptr, ptr %2889, align 8, !tbaa !5
  %2891 = icmp uge ptr %2888, %2890
  br i1 %2891, label %2892, label %2900

2892:                                             ; preds = %2887
  %2893 = load i32, ptr %141, align 4, !tbaa !9
  %2894 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  store i32 %2893, ptr %2894, align 4, !tbaa !9
  %2895 = load i32, ptr %140, align 4, !tbaa !9
  %2896 = add nsw i32 %2895, -1
  store i32 %2896, ptr %140, align 4, !tbaa !9
  %2897 = icmp sle i32 %2896, 0
  br i1 %2897, label %2898, label %2899

2898:                                             ; preds = %2892
  store i32 7, ptr %19, align 4
  br label %2905

2899:                                             ; preds = %2892
  br label %2900

2900:                                             ; preds = %2899, %2887, %2883
  br label %2901

2901:                                             ; preds = %2900, %2859
  br label %2902

2902:                                             ; preds = %2901
  %2903 = load ptr, ptr %142, align 8, !tbaa !5
  %2904 = getelementptr inbounds i16, ptr %2903, i32 1
  store ptr %2904, ptr %142, align 8, !tbaa !5
  br label %2853, !llvm.loop !205

2905:                                             ; preds = %2898, %2881, %2858
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #14
  br label %2906

2906:                                             ; preds = %2905
  %2907 = load i32, ptr %141, align 4, !tbaa !9
  %2908 = add nsw i32 %2907, 1
  store i32 %2908, ptr %141, align 4, !tbaa !9
  %2909 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  %2910 = load i32, ptr %2909, align 4, !tbaa !9
  %2911 = icmp eq i32 %2910, -1
  br i1 %2911, label %2912, label %2915

2912:                                             ; preds = %2906
  %2913 = load i32, ptr %141, align 4, !tbaa !9
  %2914 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  store i32 %2913, ptr %2914, align 4, !tbaa !9
  br label %2915

2915:                                             ; preds = %2912, %2906
  %2916 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %2917 = load i32, ptr %2916, align 4, !tbaa !9
  %2918 = icmp eq i32 %2917, -1
  br i1 %2918, label %2919, label %2922

2919:                                             ; preds = %2915
  %2920 = load i32, ptr %141, align 4, !tbaa !9
  %2921 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  store i32 %2920, ptr %2921, align 4, !tbaa !9
  br label %2922

2922:                                             ; preds = %2919, %2915
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #14
  %2923 = load ptr, ptr %20, align 8, !tbaa !5
  %2924 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  %2925 = load ptr, ptr %2924, align 16, !tbaa !5
  %2926 = load ptr, ptr %135, align 8, !tbaa !5
  %2927 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2925, ptr noundef %2926)
  %2928 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  %2929 = load ptr, ptr %2928, align 16, !tbaa !5
  %2930 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %2923, ptr noundef %2927, ptr noundef %2929, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2930, ptr %143, align 4
  %2931 = getelementptr inbounds %struct.ImVec2, ptr %143, i32 0, i32 0
  %2932 = load float, ptr %2931, align 4, !tbaa !108
  %2933 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  store float %2932, ptr %2933, align 4, !tbaa !108
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #14
  %2934 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  %2935 = load i32, ptr %2934, align 4, !tbaa !9
  %2936 = sitofp i32 %2935 to float
  %2937 = load ptr, ptr %20, align 8, !tbaa !5
  %2938 = getelementptr inbounds %struct.ImGuiContext, ptr %2937, i32 0, i32 8
  %2939 = load float, ptr %2938, align 8, !tbaa !47
  %2940 = fmul float %2936, %2939
  %2941 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  store float %2940, ptr %2941, align 4, !tbaa !106
  %2942 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %2943 = load i32, ptr %2942, align 4, !tbaa !9
  %2944 = icmp sge i32 %2943, 0
  br i1 %2944, label %2945, label %2965

2945:                                             ; preds = %2922
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #14
  %2946 = load ptr, ptr %20, align 8, !tbaa !5
  %2947 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  %2948 = load ptr, ptr %2947, align 8, !tbaa !5
  %2949 = load ptr, ptr %135, align 8, !tbaa !5
  %2950 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2948, ptr noundef %2949)
  %2951 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  %2952 = load ptr, ptr %2951, align 8, !tbaa !5
  %2953 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %2946, ptr noundef %2950, ptr noundef %2952, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2953, ptr %144, align 4
  %2954 = getelementptr inbounds %struct.ImVec2, ptr %144, i32 0, i32 0
  %2955 = load float, ptr %2954, align 4, !tbaa !108
  %2956 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 0
  store float %2955, ptr %2956, align 4, !tbaa !108
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #14
  %2957 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %2958 = load i32, ptr %2957, align 4, !tbaa !9
  %2959 = sitofp i32 %2958 to float
  %2960 = load ptr, ptr %20, align 8, !tbaa !5
  %2961 = getelementptr inbounds %struct.ImGuiContext, ptr %2960, i32 0, i32 8
  %2962 = load float, ptr %2961, align 8, !tbaa !47
  %2963 = fmul float %2959, %2962
  %2964 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 1
  store float %2963, ptr %2964, align 4, !tbaa !106
  br label %2965

2965:                                             ; preds = %2945, %2922
  %2966 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2967 = trunc i8 %2966 to i1
  br i1 %2967, label %2968, label %2977

2968:                                             ; preds = %2965
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #14
  %2969 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2970 = load float, ptr %2969, align 4, !tbaa !108
  %2971 = load i32, ptr %141, align 4, !tbaa !9
  %2972 = sitofp i32 %2971 to float
  %2973 = load ptr, ptr %20, align 8, !tbaa !5
  %2974 = getelementptr inbounds %struct.ImGuiContext, ptr %2973, i32 0, i32 8
  %2975 = load float, ptr %2974, align 8, !tbaa !47
  %2976 = fmul float %2972, %2975
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %145, float noundef %2970, float noundef %2976)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %131, ptr align 4 %145, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #14
  br label %2977

2977:                                             ; preds = %2968, %2965
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #14
  %2978 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %2979 = trunc i8 %2978 to i1
  br i1 %2979, label %2980, label %3118

2980:                                             ; preds = %2977
  %2981 = load ptr, ptr %47, align 8, !tbaa !5
  %2982 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2981, i32 0, i32 14
  %2983 = load i8, ptr %2982, align 4, !tbaa !166, !range !42, !noundef !43
  %2984 = trunc i8 %2983 to i1
  br i1 %2984, label %2985, label %3118

2985:                                             ; preds = %2980
  %2986 = load i32, ptr %15, align 4, !tbaa !9
  %2987 = and i32 %2986, 4096
  %2988 = icmp ne i32 %2987, 0
  br i1 %2988, label %3038, label %2989

2989:                                             ; preds = %2985
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #14
  %2990 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2991 = load float, ptr %2990, align 4, !tbaa !108
  %2992 = fmul float %2991, 2.500000e-01
  store float %2992, ptr %146, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #14
  %2993 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2994 = load float, ptr %2993, align 4, !tbaa !108
  %2995 = load ptr, ptr %22, align 8, !tbaa !5
  %2996 = getelementptr inbounds %struct.ImGuiStyle, ptr %2995, i32 0, i32 12
  %2997 = getelementptr inbounds %struct.ImVec2, ptr %2996, i32 0, i32 0
  %2998 = load float, ptr %2997, align 4, !tbaa !157
  %2999 = fsub float %2994, %2998
  store float %2999, ptr %147, align 4, !tbaa !46
  %3000 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3001 = load float, ptr %3000, align 4, !tbaa !108
  %3002 = load ptr, ptr %47, align 8, !tbaa !5
  %3003 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3002, i32 0, i32 11
  %3004 = load float, ptr %3003, align 8, !tbaa !134
  %3005 = fcmp olt float %3001, %3004
  br i1 %3005, label %3006, label %3016

3006:                                             ; preds = %2989
  %3007 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3008 = load float, ptr %3007, align 4, !tbaa !108
  %3009 = load float, ptr %146, align 4, !tbaa !46
  %3010 = fsub float %3008, %3009
  %3011 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3010)
  %3012 = fptosi float %3011 to i32
  %3013 = sitofp i32 %3012 to float
  %3014 = load ptr, ptr %47, align 8, !tbaa !5
  %3015 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3014, i32 0, i32 11
  store float %3013, ptr %3015, align 8, !tbaa !134
  br label %3037

3016:                                             ; preds = %2989
  %3017 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3018 = load float, ptr %3017, align 4, !tbaa !108
  %3019 = load float, ptr %147, align 4, !tbaa !46
  %3020 = fsub float %3018, %3019
  %3021 = load ptr, ptr %47, align 8, !tbaa !5
  %3022 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3021, i32 0, i32 11
  %3023 = load float, ptr %3022, align 8, !tbaa !134
  %3024 = fcmp oge float %3020, %3023
  br i1 %3024, label %3025, label %3036

3025:                                             ; preds = %3016
  %3026 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3027 = load float, ptr %3026, align 4, !tbaa !108
  %3028 = load float, ptr %147, align 4, !tbaa !46
  %3029 = fsub float %3027, %3028
  %3030 = load float, ptr %146, align 4, !tbaa !46
  %3031 = fadd float %3029, %3030
  %3032 = fptosi float %3031 to i32
  %3033 = sitofp i32 %3032 to float
  %3034 = load ptr, ptr %47, align 8, !tbaa !5
  %3035 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3034, i32 0, i32 11
  store float %3033, ptr %3035, align 8, !tbaa !134
  br label %3036

3036:                                             ; preds = %3025, %3016
  br label %3037

3037:                                             ; preds = %3036, %3006
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #14
  br label %3041

3038:                                             ; preds = %2985
  %3039 = load ptr, ptr %47, align 8, !tbaa !5
  %3040 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3039, i32 0, i32 11
  store float 0.000000e+00, ptr %3040, align 8, !tbaa !134
  br label %3041

3041:                                             ; preds = %3038, %3037
  %3042 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3043 = trunc i8 %3042 to i1
  br i1 %3043, label %3044, label %3115

3044:                                             ; preds = %3041
  %3045 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3046 = load float, ptr %3045, align 4, !tbaa !106
  %3047 = load ptr, ptr %20, align 8, !tbaa !5
  %3048 = getelementptr inbounds %struct.ImGuiContext, ptr %3047, i32 0, i32 8
  %3049 = load float, ptr %3048, align 8, !tbaa !47
  %3050 = fsub float %3046, %3049
  %3051 = load float, ptr %55, align 4, !tbaa !46
  %3052 = fcmp olt float %3050, %3051
  br i1 %3052, label %3053, label %3061

3053:                                             ; preds = %3044
  %3054 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3055 = load float, ptr %3054, align 4, !tbaa !106
  %3056 = load ptr, ptr %20, align 8, !tbaa !5
  %3057 = getelementptr inbounds %struct.ImGuiContext, ptr %3056, i32 0, i32 8
  %3058 = load float, ptr %3057, align 8, !tbaa !47
  %3059 = fsub float %3055, %3058
  %3060 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3059)
  store float %3060, ptr %55, align 4, !tbaa !46
  br label %3087

3061:                                             ; preds = %3044
  %3062 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3063 = load float, ptr %3062, align 4, !tbaa !106
  %3064 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %3065 = load float, ptr %3064, align 4, !tbaa !106
  %3066 = load ptr, ptr %22, align 8, !tbaa !5
  %3067 = getelementptr inbounds %struct.ImGuiStyle, ptr %3066, i32 0, i32 12
  %3068 = getelementptr inbounds %struct.ImVec2, ptr %3067, i32 0, i32 1
  %3069 = load float, ptr %3068, align 4, !tbaa !107
  %3070 = fneg float %3069
  %3071 = call float @llvm.fmuladd.f32(float %3070, float 2.000000e+00, float %3065)
  %3072 = fsub float %3063, %3071
  %3073 = load float, ptr %55, align 4, !tbaa !46
  %3074 = fcmp oge float %3072, %3073
  br i1 %3074, label %3075, label %3086

3075:                                             ; preds = %3061
  %3076 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3077 = load float, ptr %3076, align 4, !tbaa !106
  %3078 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %3079 = load float, ptr %3078, align 4, !tbaa !106
  %3080 = fsub float %3077, %3079
  %3081 = load ptr, ptr %22, align 8, !tbaa !5
  %3082 = getelementptr inbounds %struct.ImGuiStyle, ptr %3081, i32 0, i32 12
  %3083 = getelementptr inbounds %struct.ImVec2, ptr %3082, i32 0, i32 1
  %3084 = load float, ptr %3083, align 4, !tbaa !107
  %3085 = call float @llvm.fmuladd.f32(float %3084, float 2.000000e+00, float %3080)
  store float %3085, ptr %55, align 4, !tbaa !46
  br label %3086

3086:                                             ; preds = %3075, %3061
  br label %3087

3087:                                             ; preds = %3086, %3053
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #14
  %3088 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 1
  %3089 = load float, ptr %3088, align 4, !tbaa !106
  %3090 = load ptr, ptr %22, align 8, !tbaa !5
  %3091 = getelementptr inbounds %struct.ImGuiStyle, ptr %3090, i32 0, i32 12
  %3092 = getelementptr inbounds %struct.ImVec2, ptr %3091, i32 0, i32 1
  %3093 = load float, ptr %3092, align 4, !tbaa !107
  %3094 = call float @llvm.fmuladd.f32(float %3093, float 2.000000e+00, float %3089)
  %3095 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %3096 = load float, ptr %3095, align 4, !tbaa !106
  %3097 = fsub float %3094, %3096
  %3098 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %3097, float noundef 0.000000e+00)
  store float %3098, ptr %148, align 4, !tbaa !46
  %3099 = load float, ptr %55, align 4, !tbaa !46
  %3100 = load float, ptr %148, align 4, !tbaa !46
  %3101 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %3099, float noundef 0.000000e+00, float noundef %3100)
  store float %3101, ptr %55, align 4, !tbaa !46
  %3102 = load ptr, ptr %38, align 8, !tbaa !5
  %3103 = getelementptr inbounds %struct.ImGuiWindow, ptr %3102, i32 0, i32 29
  %3104 = getelementptr inbounds %struct.ImVec2, ptr %3103, i32 0, i32 1
  %3105 = load float, ptr %3104, align 4, !tbaa !125
  %3106 = load float, ptr %55, align 4, !tbaa !46
  %3107 = fsub float %3105, %3106
  %3108 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 1
  %3109 = load float, ptr %3108, align 4, !tbaa !106
  %3110 = fadd float %3109, %3107
  store float %3110, ptr %3108, align 4, !tbaa !106
  %3111 = load float, ptr %55, align 4, !tbaa !46
  %3112 = load ptr, ptr %38, align 8, !tbaa !5
  %3113 = getelementptr inbounds %struct.ImGuiWindow, ptr %3112, i32 0, i32 29
  %3114 = getelementptr inbounds %struct.ImVec2, ptr %3113, i32 0, i32 1
  store float %3111, ptr %3114, align 4, !tbaa !125
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #14
  br label %3115

3115:                                             ; preds = %3087, %3041
  %3116 = load ptr, ptr %47, align 8, !tbaa !5
  %3117 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3116, i32 0, i32 14
  store i8 0, ptr %3117, align 4, !tbaa !166
  br label %3118

3118:                                             ; preds = %3115, %2980, %2977
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #14
  %3119 = load ptr, ptr %47, align 8, !tbaa !5
  %3120 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3119, i32 0, i32 11
  %3121 = load float, ptr %3120, align 8, !tbaa !134
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %149, float noundef %3121, float noundef 0.000000e+00)
  %3122 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %3123 = trunc i8 %3122 to i1
  br i1 %3123, label %3124, label %3253

3124:                                             ; preds = %3118
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #14
  %3125 = load ptr, ptr %135, align 8, !tbaa !5
  %3126 = load ptr, ptr %47, align 8, !tbaa !5
  %3127 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3126, i32 0, i32 12
  %3128 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3127, i32 0, i32 1
  %3129 = load i32, ptr %3128, align 4, !tbaa !164
  %3130 = load ptr, ptr %47, align 8, !tbaa !5
  %3131 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3130, i32 0, i32 12
  %3132 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3131, i32 0, i32 2
  %3133 = load i32, ptr %3132, align 4, !tbaa !165
  %3134 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %3129, i32 noundef %3133)
  %3135 = sext i32 %3134 to i64
  %3136 = getelementptr inbounds i16, ptr %3125, i64 %3135
  store ptr %3136, ptr %150, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #14
  %3137 = load ptr, ptr %135, align 8, !tbaa !5
  %3138 = load ptr, ptr %47, align 8, !tbaa !5
  %3139 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3138, i32 0, i32 12
  %3140 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3139, i32 0, i32 1
  %3141 = load i32, ptr %3140, align 4, !tbaa !164
  %3142 = load ptr, ptr %47, align 8, !tbaa !5
  %3143 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3142, i32 0, i32 12
  %3144 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3143, i32 0, i32 2
  %3145 = load i32, ptr %3144, align 4, !tbaa !165
  %3146 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3141, i32 noundef %3145)
  %3147 = sext i32 %3146 to i64
  %3148 = getelementptr inbounds i16, ptr %3137, i64 %3147
  store ptr %3148, ptr %151, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #14
  %3149 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %3150 = trunc i8 %3149 to i1
  %3151 = zext i1 %3150 to i64
  %3152 = select i1 %3150, float 1.000000e+00, float 0x3FE3333340000000
  %3153 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 49, float noundef %3152)
  store i32 %3153, ptr %152, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #14
  %3154 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3155 = trunc i8 %3154 to i1
  %3156 = zext i1 %3155 to i64
  %3157 = select i1 %3155, float 0.000000e+00, float -1.000000e+00
  store float %3157, ptr %153, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #14
  %3158 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3159 = trunc i8 %3158 to i1
  %3160 = zext i1 %3159 to i64
  %3161 = select i1 %3159, float 0.000000e+00, float 2.000000e+00
  store float %3161, ptr %154, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #14
  %3162 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %130, ptr noundef nonnull align 4 dereferenceable(8) %137)
  store <2 x float> %3162, ptr %156, align 4
  %3163 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %156, ptr noundef nonnull align 4 dereferenceable(8) %149)
  store <2 x float> %3163, ptr %155, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #14
  %3164 = load ptr, ptr %150, align 8, !tbaa !5
  store ptr %3164, ptr %157, align 8, !tbaa !5
  br label %3165

3165:                                             ; preds = %3238, %3124
  %3166 = load ptr, ptr %157, align 8, !tbaa !5
  %3167 = load ptr, ptr %151, align 8, !tbaa !5
  %3168 = icmp ult ptr %3166, %3167
  br i1 %3168, label %3170, label %3169

3169:                                             ; preds = %3165
  store i32 10, ptr %19, align 4
  br label %3251

3170:                                             ; preds = %3165
  %3171 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 1
  %3172 = load float, ptr %3171, align 4, !tbaa !106
  %3173 = getelementptr inbounds %struct.ImVec4, ptr %129, i32 0, i32 3
  %3174 = load float, ptr %3173, align 4, !tbaa !206
  %3175 = load ptr, ptr %20, align 8, !tbaa !5
  %3176 = getelementptr inbounds %struct.ImGuiContext, ptr %3175, i32 0, i32 8
  %3177 = load float, ptr %3176, align 8, !tbaa !47
  %3178 = fadd float %3174, %3177
  %3179 = fcmp ogt float %3172, %3178
  br i1 %3179, label %3180, label %3181

3180:                                             ; preds = %3170
  store i32 10, ptr %19, align 4
  br label %3251

3181:                                             ; preds = %3170
  %3182 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 1
  %3183 = load float, ptr %3182, align 4, !tbaa !106
  %3184 = getelementptr inbounds %struct.ImVec4, ptr %129, i32 0, i32 1
  %3185 = load float, ptr %3184, align 4, !tbaa !207
  %3186 = fcmp olt float %3183, %3185
  br i1 %3186, label %3187, label %3201

3187:                                             ; preds = %3181
  br label %3188

3188:                                             ; preds = %3199, %3187
  %3189 = load ptr, ptr %157, align 8, !tbaa !5
  %3190 = load ptr, ptr %151, align 8, !tbaa !5
  %3191 = icmp ult ptr %3189, %3190
  br i1 %3191, label %3192, label %3200

3192:                                             ; preds = %3188
  %3193 = load ptr, ptr %157, align 8, !tbaa !5
  %3194 = getelementptr inbounds i16, ptr %3193, i32 1
  store ptr %3194, ptr %157, align 8, !tbaa !5
  %3195 = load i16, ptr %3193, align 2, !tbaa !161
  %3196 = zext i16 %3195 to i32
  %3197 = icmp eq i32 %3196, 10
  br i1 %3197, label %3198, label %3199

3198:                                             ; preds = %3192
  br label %3200

3199:                                             ; preds = %3192
  br label %3188, !llvm.loop !208

3200:                                             ; preds = %3198, %3188
  br label %3238

3201:                                             ; preds = %3181
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #14
  %3202 = load ptr, ptr %20, align 8, !tbaa !5
  %3203 = load ptr, ptr %157, align 8, !tbaa !5
  %3204 = load ptr, ptr %151, align 8, !tbaa !5
  %3205 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %3202, ptr noundef %3203, ptr noundef %3204, ptr noundef %157, ptr noundef null, i1 noundef zeroext true)
  store <2 x float> %3205, ptr %158, align 4
  %3206 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  %3207 = load float, ptr %3206, align 4, !tbaa !108
  %3208 = fcmp ole float %3207, 0.000000e+00
  br i1 %3208, label %3209, label %3218

3209:                                             ; preds = %3201
  %3210 = load ptr, ptr %20, align 8, !tbaa !5
  %3211 = getelementptr inbounds %struct.ImGuiContext, ptr %3210, i32 0, i32 7
  %3212 = load ptr, ptr %3211, align 8, !tbaa !141
  %3213 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %3212, i16 noundef zeroext 32)
  %3214 = fmul float %3213, 5.000000e-01
  %3215 = fptosi float %3214 to i32
  %3216 = sitofp i32 %3215 to float
  %3217 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  store float %3216, ptr %3217, align 4, !tbaa !108
  br label %3218

3218:                                             ; preds = %3209, %3201
  call void @llvm.lifetime.start.p0(i64 16, ptr %159) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #14
  %3219 = load float, ptr %153, align 4, !tbaa !46
  %3220 = load ptr, ptr %20, align 8, !tbaa !5
  %3221 = getelementptr inbounds %struct.ImGuiContext, ptr %3220, i32 0, i32 8
  %3222 = load float, ptr %3221, align 8, !tbaa !47
  %3223 = fsub float %3219, %3222
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %161, float noundef 0.000000e+00, float noundef %3223)
  %3224 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %155, ptr noundef nonnull align 4 dereferenceable(8) %161)
  store <2 x float> %3224, ptr %160, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #14
  %3225 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  %3226 = load float, ptr %3225, align 4, !tbaa !108
  %3227 = load float, ptr %154, align 4, !tbaa !46
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %163, float noundef %3226, float noundef %3227)
  %3228 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %155, ptr noundef nonnull align 4 dereferenceable(8) %163)
  store <2 x float> %3228, ptr %162, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %159, ptr noundef nonnull align 4 dereferenceable(8) %160, ptr noundef nonnull align 4 dereferenceable(8) %162)
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #14
  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.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) %129)
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %159, ptr noundef nonnull align 4 dereferenceable(16) %164)
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %165) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %165, ptr noundef nonnull align 4 dereferenceable(16) %129)
  %3229 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %159, ptr noundef nonnull align 4 dereferenceable(16) %165)
  call void @llvm.lifetime.end.p0(i64 16, ptr %165) #14
  br i1 %3229, label %3230, label %3237

3230:                                             ; preds = %3218
  %3231 = load ptr, ptr %38, align 8, !tbaa !5
  %3232 = getelementptr inbounds %struct.ImGuiWindow, ptr %3231, i32 0, i32 88
  %3233 = load ptr, ptr %3232, align 8, !tbaa !209
  %3234 = getelementptr inbounds %struct.ImRect, ptr %159, i32 0, i32 0
  %3235 = getelementptr inbounds %struct.ImRect, ptr %159, i32 0, i32 1
  %3236 = load i32, ptr %152, align 4, !tbaa !9
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %3233, ptr noundef nonnull align 4 dereferenceable(8) %3234, ptr noundef nonnull align 4 dereferenceable(8) %3235, i32 noundef %3236, float noundef 0.000000e+00, i32 noundef 0)
  br label %3237

3237:                                             ; preds = %3230, %3218
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #14
  br label %3238

3238:                                             ; preds = %3237, %3200
  %3239 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 0
  %3240 = load float, ptr %3239, align 4, !tbaa !108
  %3241 = getelementptr inbounds %struct.ImVec2, ptr %149, i32 0, i32 0
  %3242 = load float, ptr %3241, align 4, !tbaa !108
  %3243 = fsub float %3240, %3242
  %3244 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 0
  store float %3243, ptr %3244, align 4, !tbaa !108
  %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 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 1
  %3249 = load float, ptr %3248, align 4, !tbaa !106
  %3250 = fadd float %3249, %3247
  store float %3250, ptr %3248, align 4, !tbaa !106
  br label %3165, !llvm.loop !210

3251:                                             ; preds = %3180, %3169
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #14
  br label %3252

3252:                                             ; preds = %3251
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #14
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %151) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #14
  br label %3253

3253:                                             ; preds = %3252, %3118
  %3254 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3255 = trunc i8 %3254 to i1
  br i1 %3255, label %3263, label %3256

3256:                                             ; preds = %3253
  %3257 = load ptr, ptr %134, align 8, !tbaa !5
  %3258 = load ptr, ptr %133, align 8, !tbaa !5
  %3259 = ptrtoint ptr %3257 to i64
  %3260 = ptrtoint ptr %3258 to i64
  %3261 = sub i64 %3259, %3260
  %3262 = icmp slt i64 %3261, 2097152
  br i1 %3262, label %3263, label %3288

3263:                                             ; preds = %3256, %3253
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #14
  %3264 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %3265 = trunc i8 %3264 to i1
  %3266 = zext i1 %3265 to i64
  %3267 = select i1 %3265, i32 1, i32 0
  %3268 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3267, float noundef 1.000000e+00)
  store i32 %3268, ptr %166, align 4, !tbaa !9
  %3269 = load ptr, ptr %38, align 8, !tbaa !5
  %3270 = getelementptr inbounds %struct.ImGuiWindow, ptr %3269, i32 0, i32 88
  %3271 = load ptr, ptr %3270, align 8, !tbaa !209
  %3272 = load ptr, ptr %20, align 8, !tbaa !5
  %3273 = getelementptr inbounds %struct.ImGuiContext, ptr %3272, i32 0, i32 7
  %3274 = load ptr, ptr %3273, align 8, !tbaa !141
  %3275 = load ptr, ptr %20, align 8, !tbaa !5
  %3276 = getelementptr inbounds %struct.ImGuiContext, ptr %3275, i32 0, i32 8
  %3277 = load float, ptr %3276, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #14
  %3278 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %130, ptr noundef nonnull align 4 dereferenceable(8) %149)
  store <2 x float> %3278, ptr %167, align 4
  %3279 = load i32, ptr %166, align 4, !tbaa !9
  %3280 = load ptr, ptr %133, align 8, !tbaa !5
  %3281 = load ptr, ptr %134, align 8, !tbaa !5
  %3282 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3283 = trunc i8 %3282 to i1
  br i1 %3283, label %3284, label %3285

3284:                                             ; preds = %3263
  br label %3286

3285:                                             ; preds = %3263
  br label %3286

3286:                                             ; preds = %3285, %3284
  %3287 = phi ptr [ null, %3284 ], [ %129, %3285 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3271, ptr noundef %3274, float noundef %3277, ptr noundef nonnull align 4 dereferenceable(8) %167, i32 noundef %3279, ptr noundef %3280, ptr noundef %3281, float noundef 0.000000e+00, ptr noundef %3287)
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #14
  br label %3288

3288:                                             ; preds = %3286, %3256
  %3289 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %3290 = trunc i8 %3289 to i1
  br i1 %3290, label %3291, label %3382

3291:                                             ; preds = %3288
  %3292 = load ptr, ptr %21, align 8, !tbaa !5
  %3293 = getelementptr inbounds %struct.ImGuiIO, ptr %3292, i32 0, i32 3
  %3294 = load float, ptr %3293, align 8, !tbaa !211
  %3295 = load ptr, ptr %47, align 8, !tbaa !5
  %3296 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3295, i32 0, i32 13
  %3297 = load float, ptr %3296, align 8, !tbaa !212
  %3298 = fadd float %3297, %3294
  store float %3298, ptr %3296, align 8, !tbaa !212
  call void @llvm.lifetime.start.p0(i64 1, ptr %168) #14
  %3299 = load ptr, ptr %20, align 8, !tbaa !5
  %3300 = getelementptr inbounds %struct.ImGuiContext, ptr %3299, i32 0, i32 2
  %3301 = getelementptr inbounds %struct.ImGuiIO, ptr %3300, i32 0, i32 24
  %3302 = load i8, ptr %3301, align 1, !tbaa !213, !range !42, !noundef !43
  %3303 = trunc i8 %3302 to i1
  br i1 %3303, label %3304, label %3315

3304:                                             ; preds = %3291
  %3305 = load ptr, ptr %47, align 8, !tbaa !5
  %3306 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3305, i32 0, i32 13
  %3307 = load float, ptr %3306, align 8, !tbaa !212
  %3308 = fcmp ole float %3307, 0.000000e+00
  br i1 %3308, label %3315, label %3309

3309:                                             ; preds = %3304
  %3310 = load ptr, ptr %47, align 8, !tbaa !5
  %3311 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3310, i32 0, i32 13
  %3312 = load float, ptr %3311, align 8, !tbaa !212
  %3313 = call float @fmodf(float noundef %3312, float noundef 0x3FF3333340000000) #14
  %3314 = fcmp ole float %3313, 0x3FE99999A0000000
  br label %3315

3315:                                             ; preds = %3309, %3304, %3291
  %3316 = phi i1 [ true, %3304 ], [ true, %3291 ], [ %3314, %3309 ]
  %3317 = zext i1 %3316 to i8
  store i8 %3317, ptr %168, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #14
  %3318 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %130, ptr noundef nonnull align 4 dereferenceable(8) %136)
  store <2 x float> %3318, ptr %171, align 4
  %3319 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %171, ptr noundef nonnull align 4 dereferenceable(8) %149)
  store <2 x float> %3319, ptr %170, align 4
  %3320 = call <2 x float> @_ZL7ImFloorRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %170)
  store <2 x float> %3320, ptr %169, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %172) #14
  %3321 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 0
  %3322 = load float, ptr %3321, align 4, !tbaa !108
  %3323 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 1
  %3324 = load float, ptr %3323, align 4, !tbaa !106
  %3325 = load ptr, ptr %20, align 8, !tbaa !5
  %3326 = getelementptr inbounds %struct.ImGuiContext, ptr %3325, i32 0, i32 8
  %3327 = load float, ptr %3326, align 8, !tbaa !47
  %3328 = fsub float %3324, %3327
  %3329 = fadd float %3328, 5.000000e-01
  %3330 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 0
  %3331 = load float, ptr %3330, align 4, !tbaa !108
  %3332 = fadd float %3331, 1.000000e+00
  %3333 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 1
  %3334 = load float, ptr %3333, align 4, !tbaa !106
  %3335 = fsub float %3334, 1.500000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %172, float noundef %3322, float noundef %3329, float noundef %3332, float noundef %3335)
  %3336 = load i8, ptr %168, align 1, !tbaa !44, !range !42, !noundef !43
  %3337 = trunc i8 %3336 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %173) #14
  br i1 %3337, label %3338, label %3340

3338:                                             ; preds = %3315
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %173, ptr noundef nonnull align 4 dereferenceable(16) %129)
  %3339 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %172, ptr noundef nonnull align 4 dereferenceable(16) %173)
  br label %3340

3340:                                             ; preds = %3338, %3315
  %3341 = phi i1 [ false, %3315 ], [ %3339, %3338 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %173) #14
  br i1 %3341, label %3342, label %3349

3342:                                             ; preds = %3340
  %3343 = load ptr, ptr %38, align 8, !tbaa !5
  %3344 = getelementptr inbounds %struct.ImGuiWindow, ptr %3343, i32 0, i32 88
  %3345 = load ptr, ptr %3344, align 8, !tbaa !209
  %3346 = getelementptr inbounds %struct.ImRect, ptr %172, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #14
  %3347 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %172)
  store <2 x float> %3347, ptr %174, align 4
  %3348 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %3345, ptr noundef nonnull align 4 dereferenceable(8) %3346, ptr noundef nonnull align 4 dereferenceable(8) %174, i32 noundef %3348, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #14
  br label %3349

3349:                                             ; preds = %3342, %3340
  %3350 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %3351 = trunc i8 %3350 to i1
  br i1 %3351, label %3381, label %3352

3352:                                             ; preds = %3349
  %3353 = load ptr, ptr %20, align 8, !tbaa !5
  %3354 = getelementptr inbounds %struct.ImGuiContext, ptr %3353, i32 0, i32 212
  %3355 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3354, i32 0, i32 0
  store i8 1, ptr %3355, align 8, !tbaa !214
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #14
  %3356 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 0
  %3357 = load float, ptr %3356, align 4, !tbaa !108
  %3358 = fsub float %3357, 1.000000e+00
  %3359 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 1
  %3360 = load float, ptr %3359, align 4, !tbaa !106
  %3361 = load ptr, ptr %20, align 8, !tbaa !5
  %3362 = getelementptr inbounds %struct.ImGuiContext, ptr %3361, i32 0, i32 8
  %3363 = load float, ptr %3362, align 8, !tbaa !47
  %3364 = fsub float %3360, %3363
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %175, float noundef %3358, float noundef %3364)
  %3365 = load ptr, ptr %20, align 8, !tbaa !5
  %3366 = getelementptr inbounds %struct.ImGuiContext, ptr %3365, i32 0, i32 212
  %3367 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3366, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %3367, ptr align 4 %175, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #14
  %3368 = load ptr, ptr %20, align 8, !tbaa !5
  %3369 = getelementptr inbounds %struct.ImGuiContext, ptr %3368, i32 0, i32 8
  %3370 = load float, ptr %3369, align 8, !tbaa !47
  %3371 = load ptr, ptr %20, align 8, !tbaa !5
  %3372 = getelementptr inbounds %struct.ImGuiContext, ptr %3371, i32 0, i32 212
  %3373 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3372, i32 0, i32 2
  store float %3370, ptr %3373, align 4, !tbaa !215
  %3374 = load ptr, ptr %18, align 8, !tbaa !5
  %3375 = getelementptr inbounds %struct.ImGuiWindow, ptr %3374, i32 0, i32 6
  %3376 = load ptr, ptr %3375, align 8, !tbaa !216
  %3377 = getelementptr inbounds %struct.ImGuiViewport, ptr %3376, i32 0, i32 0
  %3378 = load i32, ptr %3377, align 8, !tbaa !217
  %3379 = load ptr, ptr %20, align 8, !tbaa !5
  %3380 = getelementptr inbounds %struct.ImGuiContext, ptr %3379, i32 0, i32 214
  store i32 %3378, ptr %3380, align 8, !tbaa !219
  br label %3381

3381:                                             ; preds = %3352, %3349
  call void @llvm.lifetime.end.p0(i64 16, ptr %172) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %168) #14
  br label %3382

3382:                                             ; preds = %3381, %3288
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #14
  br label %3457

3383:                                             ; preds = %2787
  %3384 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3385 = trunc i8 %3384 to i1
  br i1 %3385, label %3386, label %3396

3386:                                             ; preds = %3383
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #14
  %3387 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %3388 = load float, ptr %3387, align 4, !tbaa !108
  %3389 = load ptr, ptr %133, align 8, !tbaa !5
  %3390 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %3389, ptr noundef %134)
  %3391 = sitofp i32 %3390 to float
  %3392 = load ptr, ptr %20, align 8, !tbaa !5
  %3393 = getelementptr inbounds %struct.ImGuiContext, ptr %3392, i32 0, i32 8
  %3394 = load float, ptr %3393, align 8, !tbaa !47
  %3395 = fmul float %3391, %3394
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %176, float noundef %3388, float noundef %3395)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %131, ptr align 4 %176, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #14
  br label %3422

3396:                                             ; preds = %3383
  %3397 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %3398 = trunc i8 %3397 to i1
  br i1 %3398, label %3412, label %3399

3399:                                             ; preds = %3396
  %3400 = load ptr, ptr %20, align 8, !tbaa !5
  %3401 = getelementptr inbounds %struct.ImGuiContext, ptr %3400, i32 0, i32 50
  %3402 = load i32, ptr %3401, align 8, !tbaa !120
  %3403 = load i32, ptr %29, align 4, !tbaa !9
  %3404 = icmp eq i32 %3402, %3403
  br i1 %3404, label %3405, label %3412

3405:                                             ; preds = %3399
  %3406 = load ptr, ptr %133, align 8, !tbaa !5
  %3407 = load ptr, ptr %47, align 8, !tbaa !5
  %3408 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3407, i32 0, i32 3
  %3409 = load i32, ptr %3408, align 8, !tbaa !129
  %3410 = sext i32 %3409 to i64
  %3411 = getelementptr inbounds i8, ptr %3406, i64 %3410
  store ptr %3411, ptr %134, align 8, !tbaa !5
  br label %3421

3412:                                             ; preds = %3399, %3396
  %3413 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %3414 = trunc i8 %3413 to i1
  br i1 %3414, label %3420, label %3415

3415:                                             ; preds = %3412
  %3416 = load ptr, ptr %133, align 8, !tbaa !5
  %3417 = load ptr, ptr %133, align 8, !tbaa !5
  %3418 = call i64 @strlen(ptr noundef %3417) #16
  %3419 = getelementptr inbounds i8, ptr %3416, i64 %3418
  store ptr %3419, ptr %134, align 8, !tbaa !5
  br label %3420

3420:                                             ; preds = %3415, %3412
  br label %3421

3421:                                             ; preds = %3420, %3405
  br label %3422

3422:                                             ; preds = %3421, %3386
  %3423 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3424 = trunc i8 %3423 to i1
  br i1 %3424, label %3432, label %3425

3425:                                             ; preds = %3422
  %3426 = load ptr, ptr %134, align 8, !tbaa !5
  %3427 = load ptr, ptr %133, align 8, !tbaa !5
  %3428 = ptrtoint ptr %3426 to i64
  %3429 = ptrtoint ptr %3427 to i64
  %3430 = sub i64 %3428, %3429
  %3431 = icmp slt i64 %3430, 2097152
  br i1 %3431, label %3432, label %3456

3432:                                             ; preds = %3425, %3422
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #14
  %3433 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %3434 = trunc i8 %3433 to i1
  %3435 = zext i1 %3434 to i64
  %3436 = select i1 %3434, i32 1, i32 0
  %3437 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3436, float noundef 1.000000e+00)
  store i32 %3437, ptr %177, align 4, !tbaa !9
  %3438 = load ptr, ptr %38, align 8, !tbaa !5
  %3439 = getelementptr inbounds %struct.ImGuiWindow, ptr %3438, i32 0, i32 88
  %3440 = load ptr, ptr %3439, align 8, !tbaa !209
  %3441 = load ptr, ptr %20, align 8, !tbaa !5
  %3442 = getelementptr inbounds %struct.ImGuiContext, ptr %3441, i32 0, i32 7
  %3443 = load ptr, ptr %3442, align 8, !tbaa !141
  %3444 = load ptr, ptr %20, align 8, !tbaa !5
  %3445 = getelementptr inbounds %struct.ImGuiContext, ptr %3444, i32 0, i32 8
  %3446 = load float, ptr %3445, align 8, !tbaa !47
  %3447 = load i32, ptr %177, align 4, !tbaa !9
  %3448 = load ptr, ptr %133, align 8, !tbaa !5
  %3449 = load ptr, ptr %134, align 8, !tbaa !5
  %3450 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3451 = trunc i8 %3450 to i1
  br i1 %3451, label %3452, label %3453

3452:                                             ; preds = %3432
  br label %3454

3453:                                             ; preds = %3432
  br label %3454

3454:                                             ; preds = %3453, %3452
  %3455 = phi ptr [ null, %3452 ], [ %129, %3453 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3440, ptr noundef %3443, float noundef %3446, ptr noundef nonnull align 4 dereferenceable(8) %130, i32 noundef %3447, ptr noundef %3448, ptr noundef %3449, float noundef 0.000000e+00, ptr noundef %3455)
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #14
  br label %3456

3456:                                             ; preds = %3454, %3425
  br label %3457

3457:                                             ; preds = %3456, %3382
  %3458 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %3459 = trunc i8 %3458 to i1
  br i1 %3459, label %3460, label %3464

3460:                                             ; preds = %3457
  %3461 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %3462 = trunc i8 %3461 to i1
  br i1 %3462, label %3464, label %3463

3463:                                             ; preds = %3460
  call void @_ZN5ImGui7PopFontEv()
  br label %3464

3464:                                             ; preds = %3463, %3460, %3457
  %3465 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3466 = trunc i8 %3465 to i1
  br i1 %3466, label %3467, label %3511

3467:                                             ; preds = %3464
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #14
  %3468 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 0
  %3469 = load float, ptr %3468, align 4, !tbaa !108
  %3470 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 1
  %3471 = load float, ptr %3470, align 4, !tbaa !106
  %3472 = load ptr, ptr %22, align 8, !tbaa !5
  %3473 = getelementptr inbounds %struct.ImGuiStyle, ptr %3472, i32 0, i32 12
  %3474 = getelementptr inbounds %struct.ImVec2, ptr %3473, i32 0, i32 1
  %3475 = load float, ptr %3474, align 4, !tbaa !107
  %3476 = fadd float %3471, %3475
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %178, float noundef %3469, float noundef %3476)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %178)
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #14
  %3477 = load ptr, ptr %20, align 8, !tbaa !5
  %3478 = getelementptr inbounds %struct.ImGuiContext, ptr %3477, i32 0, i32 77
  %3479 = getelementptr inbounds %struct.ImGuiNextItemData, ptr %3478, i32 0, i32 1
  %3480 = load i32, ptr %3479, align 4, !tbaa !220
  %3481 = or i32 %3480, 1025
  store i32 %3481, ptr %3479, align 4, !tbaa !220
  call void @_ZN5ImGui8EndChildEv()
  %3482 = load ptr, ptr %20, align 8, !tbaa !5
  %3483 = getelementptr inbounds %struct.ImGuiContext, ptr %3482, i32 0, i32 78
  %3484 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3483, i32 0, i32 2
  %3485 = load i32, ptr %3484, align 8, !tbaa !110
  %3486 = and i32 %3485, 128
  %3487 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %41, i32 0, i32 2
  %3488 = load i32, ptr %3487, align 4, !tbaa !221
  %3489 = or i32 %3488, %3486
  store i32 %3489, ptr %3487, align 4, !tbaa !221
  call void @_ZN5ImGui8EndGroupEv()
  %3490 = load ptr, ptr %20, align 8, !tbaa !5
  %3491 = getelementptr inbounds %struct.ImGuiContext, ptr %3490, i32 0, i32 78
  %3492 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3491, i32 0, i32 0
  %3493 = load i32, ptr %3492, align 8, !tbaa !222
  %3494 = icmp eq i32 %3493, 0
  br i1 %3494, label %3495, label %3510

3495:                                             ; preds = %3467
  %3496 = load i32, ptr %29, align 4, !tbaa !9
  %3497 = load ptr, ptr %20, align 8, !tbaa !5
  %3498 = getelementptr inbounds %struct.ImGuiContext, ptr %3497, i32 0, i32 78
  %3499 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3498, i32 0, i32 0
  store i32 %3496, ptr %3499, align 8, !tbaa !222
  %3500 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %41, i32 0, i32 1
  %3501 = load i32, ptr %3500, align 4, !tbaa !223
  %3502 = load ptr, ptr %20, align 8, !tbaa !5
  %3503 = getelementptr inbounds %struct.ImGuiContext, ptr %3502, i32 0, i32 78
  %3504 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3503, i32 0, i32 1
  store i32 %3501, ptr %3504, align 4, !tbaa !118
  %3505 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %41, i32 0, i32 2
  %3506 = load i32, ptr %3505, align 4, !tbaa !221
  %3507 = load ptr, ptr %20, align 8, !tbaa !5
  %3508 = getelementptr inbounds %struct.ImGuiContext, ptr %3507, i32 0, i32 78
  %3509 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3508, i32 0, i32 2
  store i32 %3506, ptr %3509, align 8, !tbaa !110
  br label %3510

3510:                                             ; preds = %3495, %3467
  br label %3511

3511:                                             ; preds = %3510, %3464
  %3512 = load ptr, ptr %20, align 8, !tbaa !5
  %3513 = getelementptr inbounds %struct.ImGuiContext, ptr %3512, i32 0, i32 228
  %3514 = load i8, ptr %3513, align 8, !tbaa !224, !range !42, !noundef !43
  %3515 = trunc i8 %3514 to i1
  br i1 %3515, label %3516, label %3525

3516:                                             ; preds = %3511
  %3517 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %3518 = trunc i8 %3517 to i1
  br i1 %3518, label %3519, label %3522

3519:                                             ; preds = %3516
  %3520 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %3521 = trunc i8 %3520 to i1
  br i1 %3521, label %3522, label %3525

3522:                                             ; preds = %3519, %3516
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef @.str.26, ptr noundef @.str.27)
  %3523 = load ptr, ptr %133, align 8, !tbaa !5
  %3524 = load ptr, ptr %134, align 8, !tbaa !5
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef %130, ptr noundef %3523, ptr noundef %3524)
  br label %3525

3525:                                             ; preds = %3522, %3519, %3511
  %3526 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %3527 = load float, ptr %3526, align 4, !tbaa !108
  %3528 = fcmp ogt float %3527, 0.000000e+00
  br i1 %3528, label %3529, label %3548

3529:                                             ; preds = %3525
  %3530 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 1
  %3531 = getelementptr inbounds %struct.ImVec2, ptr %3530, i32 0, i32 0
  %3532 = load float, ptr %3531, align 4, !tbaa !225
  %3533 = load ptr, ptr %22, align 8, !tbaa !5
  %3534 = getelementptr inbounds %struct.ImGuiStyle, ptr %3533, i32 0, i32 16
  %3535 = getelementptr inbounds %struct.ImVec2, ptr %3534, i32 0, i32 0
  %3536 = load float, ptr %3535, align 4, !tbaa !109
  %3537 = fadd float %3532, %3536
  %3538 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %3539 = getelementptr inbounds %struct.ImVec2, ptr %3538, i32 0, i32 1
  %3540 = load float, ptr %3539, align 4, !tbaa !204
  %3541 = load ptr, ptr %22, align 8, !tbaa !5
  %3542 = getelementptr inbounds %struct.ImGuiStyle, ptr %3541, i32 0, i32 12
  %3543 = getelementptr inbounds %struct.ImVec2, ptr %3542, i32 0, i32 1
  %3544 = load float, ptr %3543, align 4, !tbaa !107
  %3545 = fadd float %3540, %3544
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %179, float noundef %3537, float noundef %3545)
  %3546 = load ptr, ptr %10, align 8, !tbaa !5
  %3547 = load <2 x float>, ptr %179, align 4
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %3547, ptr noundef %3546, ptr noundef null, i1 noundef zeroext true)
  br label %3548

3548:                                             ; preds = %3529, %3525
  %3549 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %3550 = trunc i8 %3549 to i1
  br i1 %3550, label %3551, label %3557

3551:                                             ; preds = %3548
  %3552 = load i32, ptr %15, align 4, !tbaa !9
  %3553 = and i32 %3552, 134217728
  %3554 = icmp ne i32 %3553, 0
  br i1 %3554, label %3557, label %3555

3555:                                             ; preds = %3551
  %3556 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %3556)
  br label %3557

3557:                                             ; preds = %3555, %3551, %3548
  %3558 = load ptr, ptr %20, align 8, !tbaa !5
  %3559 = load i32, ptr %15, align 4, !tbaa !9
  %3560 = and i32 %3559, 32
  %3561 = icmp ne i32 %3560, 0
  br i1 %3561, label %3562, label %3565

3562:                                             ; preds = %3557
  %3563 = load i8, ptr %66, align 1, !tbaa !44, !range !42, !noundef !43
  %3564 = trunc i8 %3563 to i1
  store i1 %3564, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3568

3565:                                             ; preds = %3557
  %3566 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %3567 = trunc i8 %3566 to i1
  store i1 %3567, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3568

3568:                                             ; preds = %3565, %3562
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #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 %58) #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 4, ptr %55) #14
  call void @llvm.lifetime.end.p0(i64 1, 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 8, ptr %47) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #14
  br label %3569

3569:                                             ; preds = %3568, %405, %391
  call void @llvm.lifetime.end.p0(i64 60, ptr %41) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #14
  call void @llvm.lifetime.end.p0(i64 1, 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 %3570

3570:                                             ; preds = %3569, %185
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #14
  %3571 = load i1, ptr %9, align 1
  ret i1 %3571

3572:                                             ; preds = %2195
  %3573 = load ptr, ptr %114, align 8
  %3574 = load i32, ptr %115, align 4
  %3575 = insertvalue { ptr, i32 } poison, ptr %3573, 0
  %3576 = insertvalue { ptr, i32 } %3575, i32 %3574, 1
  resume { ptr, i32 } %3576

3577:                                             ; preds = %2067, %1393
  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(60)) unnamed_addr #10 align 2

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

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

declare void @_ZN5ImGui8EndChildEv() #4

; 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

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

; 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 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(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 240}
!12 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !13, i64 28, !6, i64 56, !10, i64 64, !15, i64 68, !10, i64 76, !15, i64 80, !15, i64 88, !15, i64 96, !15, i64 104, !15, i64 112, !15, i64 120, !15, i64 128, !16, i64 136, !16, i64 140, !16, i64 144, !16, i64 148, !16, i64 152, !16, i64 156, !16, i64 160, !16, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !15, i64 184, !15, i64 192, !15, i64 200, !15, i64 208, !15, i64 216, !15, i64 224, !14, i64 232, !14, i64 233, !14, i64 234, !14, i64 235, !14, i64 236, !14, i64 237, !14, i64 238, !14, i64 239, !14, i64 240, !14, i64 241, !14, i64 242, !14, i64 243, !14, i64 244, !14, i64 245, !7, i64 246, !17, i64 248, !17, i64 250, !17, i64 252, !17, i64 254, !17, i64 256, !10, i64 260, !7, i64 264, !7, i64 265, !7, i64 266, !14, i64 267, !10, i64 268, !7, i64 272, !7, i64 273, !7, i64 274, !7, i64 275, !10, i64 276, !10, i64 277, !10, i64 278, !10, i64 279, !15, i64 280, !15, i64 288, !18, i64 296, !19, i64 312, !25, i64 544, !25, i64 560, !25, i64 576, !25, i64 592, !25, i64 608, !25, i64 624, !25, i64 640, !26, i64 656, !26, i64 660, !10, i64 664, !10, i64 668, !16, i64 672, !16, i64 676, !27, i64 680, !29, i64 696, !16, i64 712, !16, i64 716, !10, i64 720, !6, i64 728, !30, i64 736, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !7, i64 1000, !7, i64 1008, !7, i64 1040, !10, i64 1056, !10, i64 1060, !10, i64 1064, !14, i64 1068, !14, i64 1069, !14, i64 1069, !14, i64 1069, !14, i64 1069, !17, i64 1070, !41, i64 1072, !6, i64 1096, !6, i64 1104, !10, i64 1112, !10, i64 1116, !25, i64 1120}
!13 = !{!"_ZTS16ImGuiWindowClass", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !14, i64 24, !14, i64 25}
!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 15696}
!48 = !{!"_ZTS12ImGuiContext", !14, i64 0, !14, i64 1, !49, i64 8, !51, i64 14336, !54, i64 14552, !10, i64 15676, !10, i64 15680, !6, i64 15688, !16, i64 15696, !16, i64 15700, !55, i64 15704, !56, i64 16232, !10, i64 16240, !10, i64 16244, !10, i64 16248, !10, i64 16252, !14, i64 16256, !14, i64 16257, !14, i64 16258, !14, i64 16259, !14, i64 16260, !6, i64 16264, !57, i64 16272, !57, i64 16288, !50, i64 16304, !10, i64 16308, !23, i64 16312, !23, i64 16328, !23, i64 16344, !58, i64 16360, !27, i64 16376, !10, i64 16392, !15, i64 16396, !6, i64 16408, !6, i64 16416, !6, i64 16424, !6, i64 16432, !6, i64 16440, !15, i64 16448, !10, i64 16456, !16, i64 16460, !15, i64 16464, !15, i64 16472, !10, i64 16480, !10, i64 16484, !10, i64 16488, !14, i64 16492, !14, i64 16493, !16, i64 16496, !16, i64 16500, !10, i64 16504, !10, i64 16508, !16, i64 16512, !14, i64 16516, !14, i64 16517, !14, i64 16518, !14, i64 16519, !14, i64 16520, !14, i64 16521, !15, i64 16524, !6, i64 16536, !59, i64 16544, !10, i64 16548, !10, i64 16552, !14, i64 16556, !14, i64 16557, !6, i64 16560, !10, i64 16568, !16, i64 16572, !7, i64 16576, !60, i64 18256, !10, i64 18568, !14, i64 18572, !10, i64 18576, !10, i64 18580, !10, i64 18584, !10, i64 18588, !62, i64 18592, !63, i64 18616, !64, i64 18680, !65, i64 18824, !66, i64 18840, !67, i64 18856, !18, i64 18872, !68, i64 18888, !69, i64 18904, !70, i64 18920, !70, i64 18936, !10, i64 18952, !71, i64 18960, !16, i64 18976, !6, i64 18984, !6, i64 18992, !6, i64 19000, !10, i64 19008, !72, i64 19016, !10, i64 19064, !10, i64 19068, !10, i64 19072, !6, i64 19080, !10, i64 19088, !10, i64 19092, !10, i64 19096, !10, i64 19100, !10, i64 19104, !10, i64 19108, !10, i64 19112, !10, i64 19116, !10, i64 19120, !10, i64 19124, !10, i64 19128, !59, i64 19132, !21, i64 19136, !14, i64 19140, !14, i64 19141, !14, i64 19142, !14, i64 19143, !14, i64 19144, !14, i64 19145, !14, i64 19146, !73, i64 19152, !14, i64 19200, !14, i64 19201, !14, i64 19202, !10, i64 19204, !10, i64 19208, !10, i64 19212, !10, i64 19216, !10, i64 19220, !10, i64 19224, !25, i64 19228, !25, i64 19244, !10, i64 19260, !10, i64 19264, !10, i64 19268, !73, i64 19272, !73, i64 19320, !73, i64 19368, !73, i64 19416, !10, i64 19464, !10, i64 19468, !6, i64 19472, !6, i64 19480, !6, i64 19488, !16, i64 19496, !16, i64 19500, !14, i64 19504, !15, i64 19508, !15, i64 19516, !16, i64 19524, !14, i64 19528, !14, i64 19529, !14, i64 19530, !10, i64 19532, !10, i64 19536, !10, i64 19540, !74, i64 19544, !25, i64 19608, !10, i64 19624, !10, i64 19628, !16, i64 19632, !10, i64 19636, !10, i64 19640, !10, i64 19644, !10, i64 19648, !75, i64 19656, !7, i64 19672, !10, i64 19688, !76, i64 19696, !6, i64 19712, !10, i64 19720, !77, i64 19728, !78, i64 19744, !24, i64 19784, !40, i64 19800, !6, i64 19816, !80, i64 19824, !82, i64 19864, !83, i64 19880, !10, i64 19896, !10, i64 19900, !16, i64 19904, !16, i64 19908, !10, i64 19912, !10, i64 19916, !10, i64 19920, !16, i64 19924, !15, i64 19928, !84, i64 19936, !88, i64 23664, !89, i64 23688, !10, i64 23808, !10, i64 23812, !10, i64 23816, !10, i64 23820, !16, i64 23824, !16, i64 23828, !10, i64 23832, !38, i64 23836, !91, i64 23852, !16, i64 23900, !16, i64 23904, !14, i64 23908, !14, i64 23909, !16, i64 23912, !16, i64 23916, !16, i64 23920, !16, i64 23924, !17, i64 23928, !17, i64 23930, !85, i64 23936, !18, i64 23952, !92, i64 23968, !92, i64 23984, !10, i64 24000, !7, i64 24004, !93, i64 24008, !6, i64 24064, !14, i64 24072, !16, i64 24076, !96, i64 24080, !97, i64 24096, !98, i64 24112, !99, i64 24128, !100, i64 24144, !10, i64 24160, !7, i64 24168, !14, i64 24240, !101, i64 24244, !6, i64 24248, !96, i64 24256, !6, i64 24272, !6, i64 24280, !16, i64 24288, !14, i64 24292, !10, i64 24296, !10, i64 24300, !10, i64 24304, !10, i64 24308, !96, i64 24312, !102, i64 24328, !7, i64 24352, !7, i64 24353, !7, i64 24354, !14, i64 24355, !7, i64 24356, !10, i64 24360, !103, i64 24364, !104, i64 24384, !6, i64 24424, !7, i64 24432, !10, i64 24672, !10, i64 24676, !16, i64 24680, !10, i64 24684, !10, i64 24688, !10, i64 24692, !85, i64 24696}
!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, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !14, i64 208, !14, i64 209, !14, i64 210, !14, i64 211, !14, i64 212, !14, i64 213, !14, i64 214, !16, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !15, i64 240, !7, i64 248, !7, i64 2856, !7, i64 3508, !6, i64 3576, !15, i64 3584, !7, i64 3592, !16, i64 3600, !16, i64 3604, !50, i64 3608, !10, i64 3612, !14, i64 3616, !14, i64 3617, !14, i64 3618, !14, i64 3619, !10, i64 3620, !7, i64 3624, !14, i64 14056, !15, i64 14060, !7, i64 14068, !7, i64 14112, !7, i64 14152, !7, i64 14157, !7, i64 14162, !7, i64 14172, !7, i64 14182, !7, i64 14187, !7, i64 14192, !14, i64 14197, !7, i64 14200, !7, i64 14220, !7, i64 14240, !7, i64 14280, !16, i64 14300, !14, i64 14304, !14, i64 14305, !7, i64 14306, !14, i64 14307, !17, i64 14308, !32, i64 14312}
!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, !10, i64 148, !15, i64 152, !15, i64 160, !16, i64 168, !15, i64 172, !15, i64 180, !15, i64 188, !15, i64 196, !16, i64 204, !16, i64 208, !14, i64 212, !14, i64 213, !14, i64 214, !16, i64 216, !16, i64 220, !7, i64 224, !16, i64 1104, !16, i64 1108, !16, i64 1112, !10, i64 1116, !10, i64 1120}
!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 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !61, i64 280, !61, i64 296}
!61 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!62 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !16, i64 8, !10, i64 12, !10, i64 16, !14, i64 20}
!63 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !25, i64 12, !25, i64 28, !25, i64 44}
!64 = !{!"_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, !14, i64 60, !14, i64 61, !25, i64 64, !6, i64 80, !6, i64 88, !16, i64 96, !10, i64 100, !10, i64 104, !13, i64 108, !15, i64 136}
!65 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !6, i64 8}
!72 = !{!"_ZTS20ImGuiPlatformMonitor", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !16, i64 32, !6, i64 40}
!73 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !10, i64 8, !10, i64 12, !25, i64 16, !10, i64 32, !16, i64 36, !16, i64 40, !16, i64 44}
!74 = !{!"_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}
!75 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!78 = !{!"_ZTS6ImPoolI10ImGuiTableE", !79, i64 0, !27, i64 16, !10, i64 32, !10, i64 36}
!79 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !81, i64 0, !27, i64 16, !10, i64 32, !10, i64 36}
!81 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !6, i64 8}
!84 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !32, i64 24, !85, i64 40, !85, i64 56, !14, i64 72, !10, i64 76, !16, i64 80, !86, i64 84, !16, i64 3712, !14, i64 3716, !14, i64 3717, !14, i64 3718, !10, i64 3720}
!85 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!86 = !{!"_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, !87, i64 32}
!87 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !17, i64 3582, !17, i64 3584, !10, i64 3588, !10, i64 3592}
!88 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !85, i64 8}
!89 = !{!"_ZTS6ImFont", !24, i64 0, !16, i64 16, !16, i64 20, !32, i64 24, !90, 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}
!90 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!91 = !{!"_ZTS21ImGuiComboPreviewData", !25, i64 0, !15, i64 16, !15, i64 24, !15, i64 32, !16, i64 40, !10, i64 44}
!92 = !{!"_ZTS20ImGuiPlatformImeData", !14, i64 0, !15, i64 4, !16, i64 12}
!93 = !{!"_ZTS16ImGuiDockContext", !27, i64 0, !94, i64 16, !95, i64 32, !14, i64 48}
!94 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !10, i64 0, !10, i64 4, !6, i64 8}
!95 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !10, i64 0, !10, i64 4, !6, i64 8}
!96 = !{!"_ZTS15ImGuiTextBuffer", !85, i64 0}
!97 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!98 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !85, i64 0}
!99 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !85, i64 0}
!100 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !6, i64 8}
!101 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!102 = !{!"_ZTS14ImGuiTextIndex", !68, i64 0, !10, i64 16}
!103 = !{!"_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, !10, i64 12, !10, i64 16}
!104 = !{!"_ZTS14ImGuiStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !105, i64 16, !14, i64 32, !16, i64 36}
!105 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !6, i64 8}
!106 = !{!15, !16, i64 4}
!107 = !{!54, !16, i64 64}
!108 = !{!15, !16, i64 0}
!109 = !{!54, !16, i64 84}
!110 = !{!48, !10, i64 18624}
!111 = !{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}
!112 = !{!54, !16, i64 68}
!113 = !{!54, !16, i64 72}
!114 = !{!48, !6, i64 16408}
!115 = !{!12, !21, i64 400}
!116 = !{!12, !17, i64 406}
!117 = !{!12, !16, i64 224}
!118 = !{!48, !10, i64 18620}
!119 = !{!48, !10, i64 19920}
!120 = !{!48, !10, i64 16504}
!121 = !{!48, !10, i64 19096}
!122 = !{!48, !10, i64 19108}
!123 = !{!48, !59, i64 19132}
!124 = !{!48, !10, i64 16552}
!125 = !{!12, !16, i64 188}
!126 = !{!84, !7, i64 107}
!127 = !{!84, !10, i64 8}
!128 = !{!84, !6, i64 64}
!129 = !{!84, !10, i64 16}
!130 = !{!84, !14, i64 72}
!131 = !{!84, !6, i64 48}
!132 = !{!84, !6, i64 32}
!133 = !{!84, !10, i64 12}
!134 = !{!84, !16, i64 80}
!135 = !{!49, !14, i64 3616}
!136 = !{!84, !7, i64 96}
!137 = !{!49, !14, i64 89}
!138 = !{!48, !10, i64 18568}
!139 = !{!84, !10, i64 24}
!140 = !{!7, !7, i64 0}
!141 = !{!48, !6, i64 15688}
!142 = !{!89, !16, i64 20}
!143 = !{!89, !16, i64 100}
!144 = !{!89, !16, i64 104}
!145 = !{!89, !16, i64 108}
!146 = !{!89, !6, i64 64}
!147 = !{!89, !6, i64 56}
!148 = !{!149, !16, i64 4}
!149 = !{!"_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}
!150 = !{!89, !16, i64 16}
!151 = !{!84, !14, i64 3718}
!152 = !{!84, !10, i64 76}
!153 = !{!84, !10, i64 3720}
!154 = !{!48, !14, i64 16517}
!155 = !{!49, !16, i64 3584}
!156 = !{!25, !16, i64 0}
!157 = !{!54, !16, i64 60}
!158 = !{!49, !16, i64 3588}
!159 = !{!12, !16, i64 316}
!160 = !{!84, !14, i64 3717}
!161 = !{!17, !17, i64 0}
!162 = !{!49, !14, i64 3617}
!163 = !{!84, !10, i64 84}
!164 = !{!84, !10, i64 88}
!165 = !{!84, !10, i64 92}
!166 = !{!84, !14, i64 3716}
!167 = !{!49, !16, i64 240}
!168 = !{!49, !16, i64 244}
!169 = !{!49, !14, i64 3618}
!170 = !{!49, !14, i64 3619}
!171 = !{!49, !10, i64 14312}
!172 = distinct !{!172, !173}
!173 = !{!"llvm.loop.mustprogress"}
!174 = !{!48, !14, i64 16516}
!175 = !{!84, !10, i64 100}
!176 = !{!49, !10, i64 0}
!177 = !{!49, !10, i64 4}
!178 = !{!49, !14, i64 92}
!179 = !{!49, !6, i64 176}
!180 = distinct !{!180, !173}
!181 = !{!84, !10, i64 56}
!182 = !{!32, !6, i64 8}
!183 = !{!32, !10, i64 0}
!184 = !{!84, !10, i64 40}
!185 = !{!186, !186, i64 0}
!186 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!187 = !{!188, !6, i64 0}
!188 = !{!"_ZTS26ImGuiInputTextCallbackData", !6, i64 0, !10, i64 8, !10, i64 12, !6, i64 16, !17, i64 24, !186, i64 28, !6, i64 32, !10, i64 40, !10, i64 44, !14, i64 48, !10, i64 52, !10, i64 56, !10, i64 60}
!189 = !{!188, !10, i64 8}
!190 = !{!188, !10, i64 12}
!191 = !{!188, !6, i64 16}
!192 = !{!188, !186, i64 28}
!193 = !{!188, !6, i64 32}
!194 = !{!188, !10, i64 40}
!195 = !{!188, !10, i64 44}
!196 = !{!188, !14, i64 48}
!197 = !{!188, !10, i64 52}
!198 = !{!188, !10, i64 56}
!199 = !{!188, !10, i64 60}
!200 = !{!48, !10, i64 23664}
!201 = !{!48, !6, i64 23680}
!202 = !{!48, !10, i64 23672}
!203 = !{!48, !10, i64 24692}
!204 = !{!25, !16, i64 4}
!205 = distinct !{!205, !173}
!206 = !{!38, !16, i64 12}
!207 = !{!38, !16, i64 4}
!208 = distinct !{!208, !173}
!209 = !{!12, !6, i64 728}
!210 = distinct !{!210, !173}
!211 = !{!49, !16, i64 16}
!212 = !{!84, !16, i64 3712}
!213 = !{!48, !14, i64 99}
!214 = !{!48, !14, i64 23968}
!215 = !{!48, !16, i64 23980}
!216 = !{!12, !6, i64 56}
!217 = !{!218, !10, i64 0}
!218 = !{!"_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}
!219 = !{!48, !10, i64 24000}
!220 = !{!48, !10, i64 18596}
!221 = !{!63, !10, i64 8}
!222 = !{!48, !10, i64 18616}
!223 = !{!63, !10, i64 4}
!224 = !{!48, !14, i64 24240}
!225 = !{!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.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 [106 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.59 = 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.60 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.73 = 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(1136), 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> @_ZL7ImFloorRK6ImVec2(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 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 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 240
  %58 = load i8, ptr %57, align 8, !tbaa !5, !range !40, !noundef !41
  %59 = trunc nuw i8 %58 to i1
  br i1 %59, label %1518, 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.59, ptr noundef nonnull @.str.4, i32 noundef 4084, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

65:                                               ; preds = %60
  %66 = and i32 %5, 128
  %.not1001.not = icmp eq i32 %66, 0
  %67 = and i32 %5, 67108864
  %68 = icmp ne i32 %67, 0
  %69 = and i32 %5, 67108992
  %.not1002 = icmp eq i32 %69, 67108992
  br i1 %.not1002, label %70, label %71

70:                                               ; preds = %65
  tail call void @__assert_fail(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.4, i32 noundef 4085, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

71:                                               ; preds = %65
  %72 = and i32 %5, 64
  %.not1003 = icmp eq i32 %72, 0
  %73 = and i32 %5, 1024
  %.not1004 = icmp eq i32 %73, 0
  %74 = and i32 %5, 1088
  %.not1005 = icmp eq i32 %74, 1088
  br i1 %.not1005, label %75, label %76

75:                                               ; preds = %71
  tail call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.4, i32 noundef 4086, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

76:                                               ; preds = %71
  %77 = load ptr, ptr @GImGui, align 8, !tbaa !42
  %78 = getelementptr inbounds i8, ptr %77, i64 8
  %79 = and i32 %5, 16384
  %80 = icmp ne i32 %79, 0
  %81 = and i32 %5, 32768
  %.not1006 = icmp eq i32 %81, 0
  %82 = and i32 %5, 65536
  %83 = icmp eq i32 %82, 0
  %84 = and i32 %5, 262144
  %.not1007 = icmp eq i32 %84, 0
  %85 = icmp ne ptr %6, null
  %or.cond17 = or i1 %.not1007, %85
  br i1 %or.cond17, label %87, label %86

86:                                               ; preds = %76
  tail call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.4, i32 noundef 4099, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

87:                                               ; preds = %76
  br i1 %68, label %88, label %89

88:                                               ; preds = %87
  tail call void @_ZN5ImGui10BeginGroupEv()
  br label %89

89:                                               ; preds = %88, %87
  %90 = tail call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1136) %56, ptr noundef %0, ptr noundef null)
  %91 = 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.0533.0.copyload = load <2 x float>, ptr %4, align 4
  %92 = tail call noundef float @_ZN5ImGui13CalcItemWidthEv()
  br i1 %68, label %93, label %97

93:                                               ; preds = %89
  %94 = getelementptr inbounds i8, ptr %77, i64 15696
  %95 = load float, ptr %94, align 8, !tbaa !43
  %96 = fmul float %95, 8.000000e+00
  br label %98

97:                                               ; preds = %89
  %.sroa.0534.4.vec.extract = extractelement <2 x float> %91, i64 1
  br label %98

98:                                               ; preds = %97, %93
  %99 = phi float [ %96, %93 ], [ %.sroa.0534.4.vec.extract, %97 ]
  %100 = getelementptr inbounds i8, ptr %77, i64 14612
  %101 = getelementptr inbounds i8, ptr %77, i64 14616
  %102 = load float, ptr %101, align 4, !tbaa !102
  %103 = tail call float @llvm.fmuladd.f32(float %102, float 2.000000e+00, float %99)
  %104 = tail call <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float> %.sroa.0533.0.copyload, float noundef %92, float noundef %103)
  store <2 x float> %104, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  %105 = extractelement <2 x float> %104, i64 0
  %.sroa.0534.0.vec.extract = extractelement <2 x float> %91, i64 0
  %106 = fcmp ogt float %.sroa.0534.0.vec.extract, 0.000000e+00
  %107 = extractelement <2 x float> %104, i64 1
  br i1 %106, label %108, label %112

108:                                              ; preds = %98
  %109 = getelementptr inbounds i8, ptr %77, i64 14636
  %110 = load float, ptr %109, align 4, !tbaa !103
  %111 = fadd float %.sroa.0534.0.vec.extract, %110
  br label %112

112:                                              ; preds = %98, %108
  %113 = phi float [ %111, %108 ], [ 0.000000e+00, %98 ]
  %114 = fadd float %105, %113
  %115 = getelementptr inbounds i8, ptr %9, i64 4
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %114, float noundef %107)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #14
  %116 = getelementptr inbounds i8, ptr %56, i64 312
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #14
  %117 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %116, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %117, ptr %12, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %11, ptr noundef nonnull align 4 dereferenceable(8) %116, 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
  %118 = 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> %118, 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.0504.0.copyload = load float, ptr %9, align 8, !tbaa !104
  %.sroa.11.0.copyload = load float, ptr %115, align 4, !tbaa !104
  call void @llvm.lifetime.start.p0(i64 60, ptr nonnull %15) #14
  call void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(60) %15)
  br i1 %68, label %119, label %151

119:                                              ; preds = %112
  %120 = load i64, ptr %116, align 8
  %121 = load float, ptr %101, align 4, !tbaa !102
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %121)
  %122 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %90, ptr noundef nonnull %11, i32 noundef 1024)
  br i1 %122, label %124, label %123

123:                                              ; preds = %119
  call void @_ZN5ImGui8EndGroupEv()
  br label %.thread

124:                                              ; preds = %119
  %125 = getelementptr inbounds i8, ptr %77, i64 18616
  %126 = getelementptr inbounds i8, ptr %77, i64 18624
  %127 = load i32, ptr %126, align 8, !tbaa !105
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(60) %15, ptr noundef nonnull align 8 dereferenceable(60) %125, i64 60, i1 false), !tbaa.struct !106
  store i64 %120, ptr %116, align 8
  %128 = getelementptr inbounds i8, ptr %77, i64 14888
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %128)
  %129 = getelementptr inbounds i8, ptr %77, i64 14620
  %130 = load float, ptr %129, align 4, !tbaa !108
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %130)
  %131 = getelementptr inbounds i8, ptr %77, i64 14624
  %132 = load float, ptr %131, align 4, !tbaa !109
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 8, float noundef %132)
  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
  %133 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  store <2 x float> %133, ptr %17, align 8
  %134 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2bi(ptr noundef %0, i32 noundef %90, ptr noundef nonnull align 4 dereferenceable(8) %17, i1 noundef zeroext true, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br i1 %134, label %136, label %135

135:                                              ; preds = %124
  call void @_ZN5ImGui8EndChildEv()
  call void @_ZN5ImGui8EndGroupEv()
  br label %.thread

136:                                              ; preds = %124
  %137 = getelementptr inbounds i8, ptr %77, i64 16408
  %138 = load ptr, ptr %137, align 8, !tbaa !110
  %139 = getelementptr inbounds i8, ptr %138, i64 312
  %140 = getelementptr inbounds i8, ptr %138, i64 400
  %141 = load i32, ptr %140, align 8, !tbaa !111
  %142 = shl nuw i32 1, %141
  %143 = getelementptr inbounds i8, ptr %138, i64 406
  %144 = load i16, ptr %143, align 2, !tbaa !112
  %145 = trunc i32 %142 to i16
  %146 = or i16 %144, %145
  store i16 %146, ptr %143, align 2, !tbaa !112
  %147 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZpLR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %139, ptr noundef nonnull align 4 dereferenceable(8) %100)
  %148 = getelementptr inbounds i8, ptr %138, i64 224
  %149 = load float, ptr %148, align 8, !tbaa !113
  %150 = fsub float %.sroa.0504.0.copyload, %149
  br label %159

151:                                              ; preds = %112
  %152 = load float, ptr %101, align 4, !tbaa !102
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %152)
  %153 = and i32 %5, 268435456
  %.not1008 = icmp eq i32 %153, 0
  br i1 %.not1008, label %154, label %156

154:                                              ; preds = %151
  %155 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %90, ptr noundef nonnull %11, i32 noundef 1024)
  br i1 %155, label %156, label %.thread

156:                                              ; preds = %154, %151
  %157 = getelementptr inbounds i8, ptr %77, i64 18624
  %158 = load i32, ptr %157, align 8, !tbaa !105
  br label %159

159:                                              ; preds = %136, %156
  %.1914 = phi i32 [ %127, %136 ], [ %158, %156 ]
  %.sroa.0504.2 = phi float [ %150, %136 ], [ %.sroa.0504.0.copyload, %156 ]
  %.2912 = phi ptr [ %138, %136 ], [ %56, %156 ]
  %160 = getelementptr inbounds i8, ptr %77, i64 18616
  %161 = getelementptr inbounds i8, ptr %77, i64 18620
  %162 = load i32, ptr %161, align 4, !tbaa !114
  %163 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %90, i32 noundef %162)
  br i1 %163, label %164, label %166

164:                                              ; preds = %159
  %165 = getelementptr inbounds i8, ptr %77, i64 19920
  store i32 1, ptr %165, align 8, !tbaa !115
  br label %166

166:                                              ; preds = %164, %159
  %167 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %90)
  %168 = and i32 %.1914, 256
  %169 = icmp ne i32 %168, 0
  %170 = getelementptr inbounds i8, ptr %77, i64 16504
  %171 = load i32, ptr %170, align 8, !tbaa !116
  %.not1009 = icmp eq i32 %171, %90
  br i1 %.not1009, label %184, label %172

172:                                              ; preds = %166
  %173 = getelementptr inbounds i8, ptr %77, i64 19096
  %174 = load i32, ptr %173, align 8, !tbaa !117
  %175 = icmp eq i32 %174, %90
  br i1 %175, label %176, label %184

176:                                              ; preds = %172
  %177 = getelementptr inbounds i8, ptr %77, i64 19108
  %178 = load i32, ptr %177, align 4, !tbaa !118
  %179 = and i32 %178, 1
  %.not1010 = icmp eq i32 %179, 0
  br i1 %.not1010, label %180, label %184

180:                                              ; preds = %176
  %181 = getelementptr inbounds i8, ptr %77, i64 19132
  %182 = load i32, ptr %181, align 4, !tbaa !119
  %183 = icmp eq i32 %182, 2
  br label %184

184:                                              ; preds = %172, %180, %176, %166
  %185 = phi i1 [ false, %166 ], [ false, %172 ], [ true, %176 ], [ %183, %180 ]
  br i1 %163, label %186, label %190

186:                                              ; preds = %184
  %187 = getelementptr inbounds i8, ptr %77, i64 14160
  %188 = load i8, ptr %187, align 8, !tbaa !120, !range !40, !noundef !41
  %189 = trunc nuw i8 %188 to i1
  br label %190

190:                                              ; preds = %186, %184
  %191 = phi i1 [ false, %184 ], [ %189, %186 ]
  %192 = icmp ne ptr %167, null
  %or.cond = and i1 %68, %192
  br i1 %or.cond, label %193, label %203

193:                                              ; preds = %190
  %194 = icmp eq i32 %171, 0
  br i1 %194, label %195, label %.thread1167

195:                                              ; preds = %193
  %196 = getelementptr inbounds i8, ptr %77, i64 16552
  %197 = load i32, ptr %196, align 8, !tbaa !121
  %198 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.2912, i32 noundef 1)
  %199 = icmp eq i32 %197, %198
  %.pre = load i32, ptr %170, align 8, !tbaa !116
  br label %.thread1167

.thread1167:                                      ; preds = %193, %195
  %200 = phi i32 [ %.pre, %195 ], [ %171, %193 ]
  %.ph = phi i1 [ %199, %195 ], [ false, %193 ]
  %201 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.2912, i32 noundef 1)
  %202 = icmp eq i32 %200, %201
  br label %204

203:                                              ; preds = %190
  br i1 %68, label %204, label %209

204:                                              ; preds = %.thread1167, %203
  %205 = phi i1 [ %202, %.thread1167 ], [ false, %203 ]
  %206 = phi i1 [ %.ph, %.thread1167 ], [ false, %203 ]
  %207 = getelementptr inbounds i8, ptr %.2912, i64 188
  %208 = load float, ptr %207, align 4, !tbaa !122
  br label %209

209:                                              ; preds = %203, %204
  %210 = phi i1 [ %205, %204 ], [ false, %203 ]
  %211 = phi i1 [ %206, %204 ], [ false, %203 ]
  %212 = phi float [ %208, %204 ], [ 0x47EFFFFFE0000000, %203 ]
  br i1 %192, label %213, label %.thread1168

213:                                              ; preds = %209
  %214 = getelementptr inbounds i8, ptr %167, i64 107
  %215 = load i8, ptr %214, align 1, !tbaa !123
  %216 = xor i1 %68, true
  %217 = zext i1 %216 to i8
  %218 = icmp ne i8 %215, %217
  %brmerge = select i1 %191, i1 true, i1 %211
  %219 = select i1 %brmerge, i1 true, i1 %185
  %spec.select1158 = select i1 %219, i1 true, i1 %169
  %220 = select i1 %spec.select1158, i1 true, i1 %210
  br i1 %220, label %223, label %226

.thread1168:                                      ; preds = %209
  %brmerge1169 = select i1 %191, i1 true, i1 %211
  %221 = select i1 %brmerge1169, i1 true, i1 %185
  %spec.select11581171 = select i1 %221, i1 true, i1 %169
  %222 = select i1 %spec.select11581171, i1 true, i1 %210
  br i1 %222, label %223, label %.thread1176.thread

223:                                              ; preds = %.thread1168, %213
  %spec.select11581175 = phi i1 [ %spec.select11581171, %.thread1168 ], [ %spec.select1158, %213 ]
  %224 = phi i1 [ false, %.thread1168 ], [ %218, %213 ]
  %225 = load i32, ptr %170, align 8, !tbaa !116
  %.not1011 = icmp ne i32 %225, %90
  %brmerge1053 = select i1 %.not1011, i1 true, i1 %224
  br i1 %brmerge1053, label %227, label %.thread1176

226:                                              ; preds = %213
  br i1 %218, label %227, label %.thread1176.thread

227:                                              ; preds = %223, %226
  %228 = phi i8 [ 1, %223 ], [ 0, %226 ]
  %spec.select11581173 = phi i1 [ %spec.select11581175, %223 ], [ false, %226 ]
  %229 = phi i1 [ %224, %223 ], [ true, %226 ]
  %230 = getelementptr inbounds i8, ptr %77, i64 19936
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %230)
  %231 = getelementptr inbounds i8, ptr %77, i64 19944
  %232 = load i32, ptr %231, align 8, !tbaa !124
  call void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef %232)
  %233 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #15
  %234 = trunc i64 %233 to i32
  %235 = getelementptr inbounds i8, ptr %77, i64 19992
  %236 = add nsw i32 %234, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %235, i32 noundef %236)
  %237 = getelementptr inbounds i8, ptr %77, i64 20000
  %238 = load ptr, ptr %237, align 8, !tbaa !125
  %239 = sext i32 %236 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %238, ptr nonnull align 1 %2, i64 %239, i1 false)
  %240 = load i32, ptr %231, align 8, !tbaa !124
  %241 = icmp ne i32 %240, %90
  %.not1212 = select i1 %241, i1 true, i1 %229
  br i1 %.not1212, label %255, label %242

242:                                              ; preds = %227
  %243 = getelementptr inbounds i8, ptr %77, i64 19952
  %244 = load i32, ptr %243, align 8, !tbaa !126
  %.not1012 = icmp eq i32 %244, %234
  br i1 %.not1012, label %245, label %254

245:                                              ; preds = %242
  %246 = getelementptr inbounds i8, ptr %77, i64 20008
  %247 = load i8, ptr %246, align 8, !tbaa !127, !range !40, !noundef !41
  %248 = trunc nuw i8 %247 to i1
  br i1 %248, label %249, label %255

249:                                              ; preds = %245
  %250 = getelementptr inbounds i8, ptr %77, i64 19984
  %251 = load ptr, ptr %250, align 8, !tbaa !128
  %sext = shl i64 %233, 32
  %252 = ashr exact i64 %sext, 32
  %253 = call i32 @strncmp(ptr noundef %251, ptr noundef nonnull %2, i64 noundef %252) #15
  %.not1013 = icmp eq i32 %253, 0
  br i1 %.not1013, label %255, label %254

254:                                              ; preds = %249, %242
  br label %255

255:                                              ; preds = %254, %249, %245, %227
  %.0927.shrunk = phi i1 [ false, %254 ], [ true, %249 ], [ true, %245 ], [ false, %227 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #14
  store ptr null, ptr %18, align 8, !tbaa !42
  store i32 %90, ptr %231, align 8, !tbaa !124
  %256 = getelementptr inbounds i8, ptr %77, i64 19960
  %257 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %256, i32 noundef %257)
  %258 = getelementptr inbounds i8, ptr %77, i64 19976
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %258, i32 noundef 0)
  %259 = getelementptr inbounds i8, ptr %77, i64 20008
  store i8 0, ptr %259, align 8, !tbaa !127
  %260 = getelementptr inbounds i8, ptr %77, i64 19968
  %261 = load ptr, ptr %260, align 8, !tbaa !129
  %262 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %261, i32 noundef %3, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %18)
  %263 = getelementptr inbounds i8, ptr %77, i64 19948
  store i32 %262, ptr %263, align 4, !tbaa !130
  %264 = load ptr, ptr %18, align 8, !tbaa !42
  %265 = ptrtoint ptr %264 to i64
  %266 = ptrtoint ptr %2 to i64
  %267 = sub i64 %265, %266
  %268 = trunc i64 %267 to i32
  %269 = getelementptr inbounds i8, ptr %77, i64 19952
  store i32 %268, ptr %269, align 8, !tbaa !126
  br i1 %.0927.shrunk, label %270, label %271

270:                                              ; preds = %255
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %230)
  br label %276

271:                                              ; preds = %255
  %272 = getelementptr inbounds i8, ptr %77, i64 20016
  store float 0.000000e+00, ptr %272, align 8, !tbaa !131
  %273 = getelementptr inbounds i8, ptr %77, i64 20020
  %274 = xor i1 %68, true
  %275 = zext i1 %274 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef nonnull %273, i32 noundef %275)
  br label %276

276:                                              ; preds = %271, %270
  br i1 %68, label %293, label %277

277:                                              ; preds = %276
  %278 = trunc i32 %5 to i8
  %279 = lshr i8 %278, 4
  br i1 %185, label %280, label %286

280:                                              ; preds = %277
  br i1 %.0927.shrunk, label %281, label %285

281:                                              ; preds = %280
  %282 = getelementptr inbounds i8, ptr %77, i64 19108
  %283 = load i32, ptr %282, align 4, !tbaa !118
  %284 = and i32 %283, 4
  %.not1015 = icmp eq i32 %284, 0
  br i1 %.not1015, label %285, label %286

285:                                              ; preds = %281, %280
  br label %286

286:                                              ; preds = %285, %281, %277
  %.1921 = phi i8 [ %279, %281 ], [ 1, %285 ], [ %279, %277 ]
  br i1 %169, label %292, label %287

287:                                              ; preds = %286
  br i1 %191, label %288, label %293

288:                                              ; preds = %287
  %289 = getelementptr inbounds i8, ptr %77, i64 3624
  %290 = load i8, ptr %289, align 8, !tbaa !132, !range !40, !noundef !41
  %291 = trunc nuw i8 %290 to i1
  br i1 %291, label %292, label %293

292:                                              ; preds = %288, %286
  br label %293

293:                                              ; preds = %287, %288, %292, %276
  %.2922 = phi i8 [ 0, %276 ], [ 1, %292 ], [ %.1921, %288 ], [ %.1921, %287 ]
  %294 = and i32 %5, 8192
  %.not1016 = icmp eq i32 %294, 0
  br i1 %.not1016, label %297, label %295

295:                                              ; preds = %293
  %296 = getelementptr inbounds i8, ptr %77, i64 20032
  store i8 1, ptr %296, align 4, !tbaa !133
  br label %297

297:                                              ; preds = %295, %293
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  br label %.thread1176

.thread1176.thread:                               ; preds = %226, %.thread1168
  %298 = getelementptr inbounds i8, ptr %77, i64 97
  %299 = load i8, ptr %298, align 1, !tbaa !134, !range !40, !noundef !41
  %300 = trunc nuw i8 %299 to i1
  br label %.sink.split

.thread1176:                                      ; preds = %223, %297
  %301 = phi i8 [ %228, %297 ], [ 1, %223 ]
  %spec.select11581172 = phi i1 [ %spec.select11581173, %297 ], [ %spec.select11581175, %223 ]
  %.3923 = phi i8 [ %.2922, %297 ], [ 0, %223 ]
  %.0915 = phi ptr [ %230, %297 ], [ %167, %223 ]
  %302 = getelementptr inbounds i8, ptr %77, i64 97
  %303 = load i8, ptr %302, align 1, !tbaa !134, !range !40, !noundef !41
  %304 = trunc nuw i8 %303 to i1
  %305 = load i32, ptr %170, align 8, !tbaa !116
  %.not1017 = icmp ne i32 %305, %90
  %brmerge1056.not = and i1 %spec.select11581172, %.not1017
  br i1 %brmerge1056.not, label %306, label %313

306:                                              ; preds = %.thread1176
  %.not1018 = icmp eq ptr %.0915, null
  br i1 %.not1018, label %.critedge, label %307

307:                                              ; preds = %306
  %308 = getelementptr inbounds i8, ptr %.0915, i64 8
  %309 = load i32, ptr %308, align 8, !tbaa !124
  %310 = icmp eq i32 %309, %90
  br i1 %310, label %311, label %.critedge

.critedge:                                        ; preds = %306, %307
  call void @__assert_fail(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.4, i32 noundef 4237, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

311:                                              ; preds = %307
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %90, ptr noundef nonnull %56)
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %90, ptr noundef nonnull %56)
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef nonnull %56, i32 noundef 0)
  br label %.sink.split

.sink.split:                                      ; preds = %311, %.thread1176.thread
  %.ph1286 = phi i1 [ %300, %.thread1176.thread ], [ %304, %311 ]
  %.09151255.ph = phi ptr [ %167, %.thread1176.thread ], [ %.0915, %311 ]
  %.39231254.ph = phi i8 [ 0, %.thread1176.thread ], [ %.3923, %311 ]
  %.ph1287 = phi i8 [ 0, %.thread1176.thread ], [ %301, %311 ]
  %312 = load i32, ptr %170, align 8, !tbaa !116
  br label %313

313:                                              ; preds = %.sink.split, %.thread1176
  %314 = phi i1 [ %304, %.thread1176 ], [ %.ph1286, %.sink.split ]
  %.09151255 = phi ptr [ %.0915, %.thread1176 ], [ %.09151255.ph, %.sink.split ]
  %.39231254 = phi i8 [ %.3923, %.thread1176 ], [ %.39231254.ph, %.sink.split ]
  %315 = phi i8 [ %301, %.thread1176 ], [ %.ph1287, %.sink.split ]
  %316 = phi i32 [ %305, %.thread1176 ], [ %312, %.sink.split ]
  %317 = icmp eq i32 %316, %90
  br i1 %317, label %318, label %329

318:                                              ; preds = %313
  br i1 %191, label %319, label %320

319:                                              ; preds = %318
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 641, i32 noundef %90, i32 noundef 0)
  br label %320

320:                                              ; preds = %319, %318
  %321 = getelementptr inbounds i8, ptr %77, i64 18568
  %322 = load i32, ptr %321, align 8, !tbaa !135
  %brmerge1057.not = icmp eq i32 %69, 0
  %spec.select.v = select i1 %brmerge1057.not, i32 3, i32 15
  %spec.select = or i32 %322, %spec.select.v
  store i32 %spec.select, ptr %321, align 8, !tbaa !135
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 519, i32 noundef %90, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 520, i32 noundef %90, i32 noundef 0)
  br i1 %68, label %323, label %324

323:                                              ; preds = %320
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 517, i32 noundef %90, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 518, i32 noundef %90, i32 noundef 0)
  br label %324

324:                                              ; preds = %323, %320
  br i1 %314, label %325, label %326

325:                                              ; preds = %324
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 16384, i32 noundef %90, i32 noundef 0)
  br label %326

326:                                              ; preds = %325, %324
  %.not1019 = icmp eq i32 %74, 0
  br i1 %.not1019, label %329, label %327

327:                                              ; preds = %326
  %328 = call noundef zeroext i1 @_ZN5ImGui18SetShortcutRoutingEiji(i32 noundef 512, i32 noundef %90, i32 noundef 0)
  br label %329

329:                                              ; preds = %326, %327, %313
  %330 = load i32, ptr %170, align 8, !tbaa !116
  %331 = icmp eq i32 %330, %90
  %332 = icmp eq ptr %.09151255, null
  %or.cond5 = and i1 %332, %331
  br i1 %or.cond5, label %333, label %334

333:                                              ; preds = %329
  call void @_ZN5ImGui13ClearActiveIDEv()
  %.pre1229 = load i32, ptr %170, align 8, !tbaa !116
  br label %334

334:                                              ; preds = %333, %329
  %335 = phi i32 [ %.pre1229, %333 ], [ %330, %329 ]
  %336 = icmp eq i32 %335, %90
  br i1 %336, label %.thread1178, label %339

.thread1178:                                      ; preds = %334
  %337 = getelementptr inbounds i8, ptr %77, i64 14160
  %338 = load i8, ptr %337, align 8, !tbaa !120, !range !40, !noundef !41
  %.not1215 = xor i8 %315, 1
  %not.brmerge1059 = and i8 %338, %.not1215
  br label %342

339:                                              ; preds = %334
  %340 = icmp ne ptr %.09151255, null
  %341 = select i1 %340, i1 %210, i1 false
  br label %342

342:                                              ; preds = %.thread1178, %339
  %.09161180 = phi i8 [ 0, %339 ], [ %not.brmerge1059, %.thread1178 ]
  %343 = phi i1 [ %341, %339 ], [ true, %.thread1178 ]
  %344 = zext i1 %343 to i8
  %345 = icmp ne ptr %.09151255, null
  br i1 %345, label %346, label %.thread1181

346:                                              ; preds = %342
  %347 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br i1 %347, label %350, label %348

348:                                              ; preds = %346
  %349 = trunc i8 %.39231254 to i1
  br i1 %349, label %350, label %351

350:                                              ; preds = %348, %346
  br label %351

351:                                              ; preds = %350, %348
  %352 = phi i1 [ false, %348 ], [ %343, %350 ]
  %brmerge1060 = or i1 %343, %352
  %or.cond1156 = select i1 %80, i1 %brmerge1060, i1 false
  br i1 %or.cond1156, label %353, label %.thread1181

353:                                              ; preds = %351
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  store ptr null, ptr %19, align 8, !tbaa !42
  %354 = getelementptr inbounds i8, ptr %.09151255, i64 24
  %355 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %354, i32 noundef %355)
  %356 = getelementptr inbounds i8, ptr %.09151255, i64 32
  %357 = load ptr, ptr %356, align 8, !tbaa !129
  %358 = load i32, ptr %354, align 8, !tbaa !136
  %359 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %357, i32 noundef %358, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %19)
  %360 = getelementptr inbounds i8, ptr %.09151255, i64 12
  store i32 %359, ptr %360, align 4, !tbaa !130
  %361 = load ptr, ptr %19, align 8, !tbaa !42
  %362 = ptrtoint ptr %361 to i64
  %363 = ptrtoint ptr %2 to i64
  %364 = sub i64 %362, %363
  %365 = trunc i64 %364 to i32
  %366 = getelementptr inbounds i8, ptr %.09151255, i64 16
  store i32 %365, ptr %366, align 8, !tbaa !126
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  %367 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  %368 = and i1 %352, %367
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  br label %.thread1181

.thread1181:                                      ; preds = %342, %353, %351
  %.0930.in = phi i1 [ %368, %353 ], [ %352, %351 ], [ false, %342 ]
  %.0930 = zext i1 %.0930.in to i8
  %brmerge1061 = select i1 %343, i1 true, i1 %.0930.in
  br i1 %brmerge1061, label %373, label %369

369:                                              ; preds = %.thread1181
  %370 = load i32, ptr %170, align 8, !tbaa !116
  %371 = icmp eq i32 %370, %90
  %.not = xor i1 %80, true
  %372 = and i1 %371, %.not
  %or.cond1062 = and i1 %345, %372
  br i1 %or.cond1062, label %374, label %378

373:                                              ; preds = %.thread1181
  %.not.old = xor i1 %80, true
  %or.cond9.old = and i1 %345, %.not.old
  br i1 %or.cond9.old, label %374, label %378

374:                                              ; preds = %369, %373
  %375 = getelementptr inbounds i8, ptr %.09151255, i64 72
  %376 = load i8, ptr %375, align 8, !tbaa !127, !range !40, !noundef !41
  %377 = trunc nuw i8 %376 to i1
  br label %378

378:                                              ; preds = %374, %373, %369
  %379 = phi i1 [ false, %373 ], [ false, %369 ], [ %377, %374 ]
  %.not1020 = icmp eq ptr %1, null
  br i1 %.not1020, label %388, label %380

380:                                              ; preds = %378
  br i1 %379, label %381, label %384

381:                                              ; preds = %380
  %382 = getelementptr inbounds i8, ptr %.09151255, i64 48
  %383 = load ptr, ptr %382, align 8, !tbaa !128
  br label %384

384:                                              ; preds = %380, %381
  %385 = phi ptr [ %383, %381 ], [ %2, %380 ]
  %386 = load i8, ptr %385, align 1, !tbaa !137
  %387 = icmp eq i8 %386, 0
  br label %388

388:                                              ; preds = %384, %378
  %389 = phi i1 [ false, %378 ], [ %387, %384 ]
  %brmerge1063 = select i1 %.not1006, i1 true, i1 %389
  br i1 %brmerge1063, label %420, label %390

390:                                              ; preds = %388
  %391 = getelementptr inbounds i8, ptr %77, i64 15688
  %392 = load ptr, ptr %391, align 8, !tbaa !138
  %393 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118) %392, i16 noundef zeroext 42)
  %394 = getelementptr inbounds i8, ptr %77, i64 23688
  %395 = load ptr, ptr %391, align 8, !tbaa !138
  %396 = getelementptr inbounds i8, ptr %395, i64 20
  %397 = load float, ptr %396, align 4, !tbaa !139
  %398 = getelementptr inbounds i8, ptr %77, i64 23708
  store float %397, ptr %398, align 4, !tbaa !139
  %399 = getelementptr inbounds i8, ptr %395, i64 100
  %400 = getelementptr inbounds i8, ptr %77, i64 23788
  %401 = load <2 x float>, ptr %399, align 4, !tbaa !104
  store <2 x float> %401, ptr %400, align 4, !tbaa !104
  %402 = getelementptr inbounds i8, ptr %395, i64 108
  %403 = load float, ptr %402, align 4, !tbaa !140
  %404 = getelementptr inbounds i8, ptr %77, i64 23796
  store float %403, ptr %404, align 4, !tbaa !140
  %405 = getelementptr inbounds i8, ptr %395, i64 64
  %406 = load ptr, ptr %405, align 8, !tbaa !141
  %407 = getelementptr inbounds i8, ptr %77, i64 23752
  store ptr %406, ptr %407, align 8, !tbaa !141
  %408 = getelementptr inbounds i8, ptr %77, i64 23744
  store ptr %393, ptr %408, align 8, !tbaa !142
  %409 = getelementptr inbounds i8, ptr %393, i64 4
  %410 = load float, ptr %409, align 4, !tbaa !143
  %411 = getelementptr inbounds i8, ptr %77, i64 23704
  store float %410, ptr %411, align 8, !tbaa !145
  %412 = getelementptr inbounds i8, ptr %77, i64 23728
  %413 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %412)
  br i1 %413, label %414, label %.critedge11

414:                                              ; preds = %390
  %415 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %394)
  br i1 %415, label %416, label %.critedge11

416:                                              ; preds = %414
  %417 = getelementptr inbounds i8, ptr %77, i64 23712
  %418 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %417)
  br i1 %418, label %419, label %.critedge11

.critedge11:                                      ; preds = %414, %390, %416
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4305, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

419:                                              ; preds = %416
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef nonnull %394)
  br label %420

420:                                              ; preds = %388, %419
  %421 = load i32, ptr %170, align 8, !tbaa !116
  %422 = icmp eq i32 %421, %90
  br i1 %422, label %423, label %583

423:                                              ; preds = %420
  br i1 %345, label %425, label %424

424:                                              ; preds = %423
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.4, i32 noundef 4313, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

425:                                              ; preds = %423
  %426 = getelementptr inbounds i8, ptr %.09151255, i64 16
  %427 = load i32, ptr %426, align 8, !tbaa !126
  %428 = getelementptr inbounds i8, ptr %.09151255, i64 3718
  store i8 0, ptr %428, align 2, !tbaa !146
  %429 = getelementptr inbounds i8, ptr %.09151255, i64 76
  store i32 %3, ptr %429, align 4, !tbaa !147
  %430 = getelementptr inbounds i8, ptr %.09151255, i64 3720
  store i32 %5, ptr %430, align 8, !tbaa !148
  %431 = getelementptr inbounds i8, ptr %77, i64 3600
  %432 = load i8, ptr %431, align 8, !tbaa !120, !range !40, !noundef !41
  %433 = xor i8 %432, 1
  %434 = getelementptr inbounds i8, ptr %77, i64 16517
  store i8 %433, ptr %434, align 1, !tbaa !149
  %435 = getelementptr inbounds i8, ptr %77, i64 3592
  %436 = load float, ptr %435, align 8, !tbaa !150
  %437 = load float, ptr %11, align 8, !tbaa !151
  %438 = fsub float %436, %437
  %439 = load float, ptr %100, align 4, !tbaa !152
  %440 = fsub float %438, %439
  %441 = getelementptr inbounds i8, ptr %.09151255, i64 80
  %442 = load float, ptr %441, align 8, !tbaa !131
  %443 = fadd float %440, %442
  br i1 %68, label %444, label %450

444:                                              ; preds = %425
  %445 = getelementptr inbounds i8, ptr %77, i64 3596
  %446 = load float, ptr %445, align 4, !tbaa !153
  %447 = getelementptr inbounds i8, ptr %.2912, i64 316
  %448 = load float, ptr %447, align 4, !tbaa !154
  %449 = fsub float %446, %448
  br label %454

450:                                              ; preds = %425
  %451 = getelementptr inbounds i8, ptr %77, i64 15696
  %452 = load float, ptr %451, align 8, !tbaa !43
  %453 = fmul float %452, 5.000000e-01
  br label %454

454:                                              ; preds = %450, %444
  %455 = phi float [ %449, %444 ], [ %453, %450 ]
  %456 = trunc i8 %.39231254 to i1
  br i1 %456, label %457, label %459

457:                                              ; preds = %454
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  %458 = getelementptr inbounds i8, ptr %.09151255, i64 3717
  store i8 1, ptr %458, align 1, !tbaa !155
  br label %534

459:                                              ; preds = %454
  br i1 %163, label %460, label %500

460:                                              ; preds = %459
  %461 = getelementptr inbounds i8, ptr %77, i64 14170
  %462 = load i16, ptr %461, align 2, !tbaa !156
  %463 = icmp ugt i16 %462, 1
  br i1 %463, label %464, label %500

464:                                              ; preds = %460
  %465 = getelementptr inbounds i8, ptr %77, i64 3625
  %466 = load i8, ptr %465, align 1, !tbaa !157, !range !40, !noundef !41
  %467 = trunc nuw i8 %466 to i1
  br i1 %467, label %500, label %468

468:                                              ; preds = %464
  %469 = getelementptr inbounds i8, ptr %.09151255, i64 84
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09151255, ptr noundef nonnull %469, float noundef %443, float noundef %455)
  %470 = load i16, ptr %461, align 2, !tbaa !156
  %471 = and i16 %470, 1
  %472 = icmp eq i16 %471, 0
  %473 = load i32, ptr %469, align 4, !tbaa !158
  br i1 %472, label %474, label %490

474:                                              ; preds = %468
  %475 = icmp eq i32 %473, 0
  br i1 %475, label %480, label %476

476:                                              ; preds = %474
  %477 = add nsw i32 %473, -1
  %478 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef nonnull %.09151255, i32 noundef %477)
  %479 = icmp eq i16 %478, 10
  br label %480

480:                                              ; preds = %476, %474
  %481 = phi i1 [ true, %474 ], [ %479, %476 ]
  %482 = getelementptr inbounds i8, ptr %.09151255, i64 88
  %483 = load i32, ptr %482, align 4, !tbaa !159
  %484 = getelementptr inbounds i8, ptr %.09151255, i64 92
  %485 = load i32, ptr %484, align 4, !tbaa !160
  %.not1021 = icmp eq i32 %483, %485
  %brmerge1065.not = and i1 %481, %.not1021
  br i1 %brmerge1065.not, label %.thread1262, label %486

486:                                              ; preds = %480
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef 2097164)
  %.pre1230 = load i32, ptr %482, align 4, !tbaa !159
  %.pre1231 = load i32, ptr %484, align 4, !tbaa !160
  %.not1022 = icmp eq i32 %.pre1230, %.pre1231
  br i1 %.not1022, label %.thread1262, label %487

.thread1262:                                      ; preds = %480, %486
  call void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef nonnull %469)
  br label %487

487:                                              ; preds = %.thread1262, %486
  %488 = load i32, ptr %469, align 4, !tbaa !158
  %489 = call noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef nonnull %.09151255, i32 noundef %488)
  store i32 %489, ptr %469, align 4, !tbaa !158
  store i32 %489, ptr %484, align 4, !tbaa !160
  call void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.09151255, ptr noundef nonnull %469)
  br label %499

490:                                              ; preds = %468
  %491 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef nonnull %.09151255, i32 noundef %473)
  %492 = icmp ne i16 %491, 10
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef 2097156)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef 6291461)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef 6291457)
  %brmerge1067.not = and i1 %68, %492
  br i1 %brmerge1067.not, label %493, label %497

493:                                              ; preds = %490
  %494 = getelementptr inbounds i8, ptr %.09151255, i64 88
  %495 = getelementptr inbounds i8, ptr %.09151255, i64 92
  call void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4) %494, ptr noundef nonnull align 4 dereferenceable(4) %495)
  %496 = load i32, ptr %495, align 4, !tbaa !160
  store i32 %496, ptr %469, align 4, !tbaa !158
  br label %497

497:                                              ; preds = %490, %493
  %498 = getelementptr inbounds i8, ptr %.09151255, i64 3716
  store i8 0, ptr %498, align 4, !tbaa !161
  br label %499

499:                                              ; preds = %497, %487
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br label %534

500:                                              ; preds = %464, %460, %459
  %501 = getelementptr inbounds i8, ptr %77, i64 14160
  %502 = load i8, ptr %501, align 8, !tbaa !120, !range !40, !noundef !41
  %503 = trunc nuw i8 %502 to i1
  br i1 %503, label %504, label %517

504:                                              ; preds = %500
  %505 = getelementptr inbounds i8, ptr %.09151255, i64 3717
  %506 = load i8, ptr %505, align 1, !tbaa !155, !range !40, !noundef !41
  %507 = trunc nuw i8 %506 to i1
  br i1 %507, label %517, label %508

508:                                              ; preds = %504
  br i1 %163, label %509, label %534

509:                                              ; preds = %508
  %510 = getelementptr inbounds i8, ptr %77, i64 3625
  %511 = load i8, ptr %510, align 1, !tbaa !157, !range !40, !noundef !41
  %512 = trunc nuw i8 %511 to i1
  %513 = getelementptr inbounds i8, ptr %.09151255, i64 84
  br i1 %512, label %514, label %515

514:                                              ; preds = %509
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09151255, ptr noundef nonnull %513, float noundef %443, float noundef %455)
  br label %516

515:                                              ; preds = %509
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09151255, ptr noundef nonnull %513, float noundef %443, float noundef %455)
  br label %516

516:                                              ; preds = %515, %514
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br label %534

517:                                              ; preds = %504, %500
  %518 = trunc nuw i8 %432 to i1
  br i1 %518, label %519, label %534

519:                                              ; preds = %517
  %520 = getelementptr inbounds i8, ptr %.09151255, i64 3717
  %521 = load i8, ptr %520, align 1, !tbaa !155, !range !40, !noundef !41
  %522 = trunc nuw i8 %521 to i1
  br i1 %522, label %534, label %523

523:                                              ; preds = %519
  %524 = getelementptr inbounds i8, ptr %77, i64 248
  %525 = load float, ptr %524, align 8, !tbaa !162
  %526 = fcmp une float %525, 0.000000e+00
  br i1 %526, label %531, label %527

527:                                              ; preds = %523
  %528 = getelementptr inbounds i8, ptr %77, i64 252
  %529 = load float, ptr %528, align 4, !tbaa !163
  %530 = fcmp une float %529, 0.000000e+00
  br i1 %530, label %531, label %534

531:                                              ; preds = %527, %523
  %532 = getelementptr inbounds i8, ptr %.09151255, i64 84
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09151255, ptr noundef nonnull %532, float noundef %443, float noundef %455)
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  %533 = getelementptr inbounds i8, ptr %.09151255, i64 3716
  store i8 1, ptr %533, align 4, !tbaa !161
  br label %534

534:                                              ; preds = %499, %517, %519, %527, %531, %508, %516, %457
  %535 = getelementptr inbounds i8, ptr %.09151255, i64 3717
  %536 = load i8, ptr %535, align 1, !tbaa !155, !range !40, !noundef !41
  %537 = trunc nuw i8 %536 to i1
  br i1 %537, label %538, label %542

538:                                              ; preds = %534
  %539 = load i8, ptr %431, align 8, !tbaa !120, !range !40, !noundef !41
  %540 = trunc nuw i8 %539 to i1
  br i1 %540, label %542, label %541

541:                                              ; preds = %538
  store i8 0, ptr %535, align 1, !tbaa !155
  br label %542

542:                                              ; preds = %541, %538, %534
  br i1 %.not1004, label %550, label %543

543:                                              ; preds = %542
  %544 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %90, i32 noundef 0)
  %.not1068 = xor i1 %544, true
  %brmerge1069 = or i1 %80, %.not1068
  br i1 %brmerge1069, label %550, label %545

545:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #14
  store i32 9, ptr %20, align 4, !tbaa !107
  %546 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %20, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %546, label %547, label %549

547:                                              ; preds = %545
  %548 = load i32, ptr %20, align 4, !tbaa !107
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %548)
  br label %549

549:                                              ; preds = %547, %545
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #14
  br label %550

550:                                              ; preds = %543, %549, %542
  %551 = getelementptr inbounds i8, ptr %77, i64 3624
  %552 = load i8, ptr %551, align 8, !tbaa !132, !range !40, !noundef !41
  %553 = trunc nuw i8 %552 to i1
  br i1 %553, label %554, label %559

554:                                              ; preds = %550
  %555 = getelementptr inbounds i8, ptr %77, i64 3626
  %556 = load i8, ptr %555, align 2, !tbaa !164, !range !40, !noundef !41
  %557 = trunc nuw i8 %556 to i1
  %.not1070 = xor i1 %557, true
  %558 = select i1 %557, i1 %314, i1 false
  br i1 %558, label %560, label %564

559:                                              ; preds = %550
  br i1 %314, label %560, label %564

560:                                              ; preds = %554, %559
  %561 = getelementptr inbounds i8, ptr %77, i64 3627
  %562 = load i8, ptr %561, align 1, !tbaa !165, !range !40, !noundef !41
  %563 = trunc nuw i8 %562 to i1
  br label %564

564:                                              ; preds = %554, %559, %560
  %565 = phi i1 [ %314, %554 ], [ false, %559 ], [ %314, %560 ]
  %566 = phi i1 [ %.not1070, %554 ], [ false, %559 ], [ %563, %560 ]
  %567 = getelementptr inbounds i8, ptr %77, i64 14320
  %568 = load i32, ptr %567, align 8, !tbaa !166
  %569 = icmp sgt i32 %568, 0
  br i1 %569, label %570, label %583

570:                                              ; preds = %564
  %brmerge1073 = or i1 %80, %566
  %brmerge1074 = select i1 %brmerge1073, i1 true, i1 %185
  br i1 %brmerge1074, label %.loopexit1218, label %.lr.ph

.lr.ph:                                           ; preds = %570, %579
  %.09521219 = phi i32 [ %580, %579 ], [ 0, %570 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #14
  %571 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %567, i32 noundef %.09521219)
  %572 = load i16, ptr %571, align 2, !tbaa !156
  %573 = zext i16 %572 to i32
  store i32 %573, ptr %21, align 4, !tbaa !107
  %574 = icmp eq i16 %572, 9
  br i1 %574, label %579, label %575

575:                                              ; preds = %.lr.ph
  %576 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %21, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %576, label %577, label %579

577:                                              ; preds = %575
  %578 = load i32, ptr %21, align 4, !tbaa !107
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %578)
  br label %579

579:                                              ; preds = %575, %577, %.lr.ph
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #14
  %580 = add nuw nsw i32 %.09521219, 1
  %581 = load i32, ptr %567, align 8, !tbaa !166
  %582 = icmp slt i32 %580, %581
  br i1 %582, label %.lr.ph, label %.loopexit1218, !llvm.loop !167

.loopexit1218:                                    ; preds = %579, %570
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %567, i32 noundef 0)
  br label %583

583:                                              ; preds = %564, %.loopexit1218, %420
  %584 = phi i1 [ %314, %420 ], [ %565, %.loopexit1218 ], [ %565, %564 ]
  %.0951 = phi i32 [ 0, %420 ], [ %427, %.loopexit1218 ], [ %427, %564 ]
  %585 = load i32, ptr %170, align 8, !tbaa !116
  %586 = icmp eq i32 %585, %90
  br i1 %586, label %587, label %882

587:                                              ; preds = %583
  %588 = getelementptr inbounds i8, ptr %77, i64 16516
  %589 = load i8, ptr %588, align 4, !tbaa !169, !range !40, !noundef !41
  %590 = trunc nuw i8 %589 to i1
  br i1 %590, label %.thread1265, label %591

591:                                              ; preds = %587
  %592 = trunc nuw i8 %.09161180 to i1
  br i1 %592, label %.thread1265, label %593

593:                                              ; preds = %591
  br i1 %345, label %595, label %594

594:                                              ; preds = %593
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.4, i32 noundef 4421, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

595:                                              ; preds = %593
  %596 = load float, ptr %101, align 4, !tbaa !102
  %597 = fsub float %.sroa.11.0.copyload, %596
  %598 = getelementptr inbounds i8, ptr %77, i64 15696
  %599 = load float, ptr %598, align 8, !tbaa !43
  %600 = fdiv float %597, %599
  %601 = fptosi float %600 to i32
  %602 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %601, i32 noundef 1)
  %603 = getelementptr inbounds i8, ptr %.09151255, i64 84
  %604 = getelementptr inbounds i8, ptr %.09151255, i64 100
  store i32 %602, ptr %604, align 4, !tbaa !170
  %605 = getelementptr inbounds i8, ptr %77, i64 3625
  %606 = load i8, ptr %605, align 1, !tbaa !157, !range !40, !noundef !41
  %607 = trunc nuw i8 %606 to i1
  %608 = select i1 %607, i32 4194304, i32 0
  %609 = getelementptr inbounds i8, ptr %77, i64 3626
  %610 = getelementptr inbounds i8, ptr %77, i64 3624
  %.in.in = select i1 %584, ptr %609, ptr %610
  %.in = load i8, ptr %.in.in, align 2, !tbaa !120, !range !40, !noundef !41
  %611 = trunc nuw i8 %.in to i1
  br i1 %584, label %612, label %623

612:                                              ; preds = %595
  %613 = getelementptr inbounds i8, ptr %77, i64 3627
  %614 = load i8, ptr %613, align 1, !tbaa !165, !range !40, !noundef !41
  %615 = trunc nuw i8 %614 to i1
  br i1 %615, label %616, label %623

616:                                              ; preds = %612
  %617 = load i8, ptr %610, align 8, !tbaa !132, !range !40, !noundef !41
  %618 = trunc nuw i8 %617 to i1
  br i1 %618, label %623, label %619

619:                                              ; preds = %616
  %620 = load i8, ptr %609, align 2, !tbaa !164, !range !40, !noundef !41
  %621 = trunc nuw i8 %620 to i1
  %622 = xor i1 %621, true
  br label %623

623:                                              ; preds = %619, %616, %612, %595
  %624 = phi i1 [ false, %616 ], [ false, %612 ], [ false, %595 ], [ %622, %619 ]
  %625 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2617, i32 noundef %90, i32 noundef 1)
  br i1 %625, label %630, label %626

626:                                              ; preds = %623
  %627 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8714, i32 noundef %90, i32 noundef 1)
  %628 = and i1 %.not1006, %627
  %629 = xor i1 %628, true
  %brmerge1077 = or i1 %80, %629
  %.not1083 = xor i1 %68, true
  %brmerge1084 = or i1 %brmerge1077, %.not1083
  %not.brmerge1077 = xor i1 %brmerge1077, true
  br i1 %brmerge1084, label %633, label %631

630:                                              ; preds = %623
  %.not1006.not1078 = xor i1 %.not1006, true
  %brmerge1079 = or i1 %80, %.not1006.not1078
  %.not1080 = xor i1 %68, true
  %brmerge1081 = or i1 %brmerge1079, %.not1080
  %not.brmerge1079 = xor i1 %brmerge1079, true
  br i1 %brmerge1081, label %633, label %631

631:                                              ; preds = %626, %630
  %632 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br label %633

633:                                              ; preds = %626, %630, %631
  %634 = phi i1 [ %not.brmerge1079, %630 ], [ %not.brmerge1077, %626 ], [ %632, %631 ]
  %635 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2596, i32 noundef %90, i32 noundef 0)
  br i1 %635, label %638, label %636

636:                                              ; preds = %633
  %637 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 4617, i32 noundef %90, i32 noundef 0)
  %brmerge1088.demorgan = and i1 %.not1006, %637
  %brmerge1090.not = and i1 %68, %brmerge1088.demorgan
  br i1 %brmerge1090.not, label %640, label %642

638:                                              ; preds = %633
  %639 = and i32 %5, 67141632
  %brmerge1094.not = icmp eq i32 %639, 67108864
  br i1 %brmerge1094.not, label %640, label %642

640:                                              ; preds = %638, %636
  %641 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br label %642

642:                                              ; preds = %638, %636, %640
  %643 = phi i1 [ %.not1006, %638 ], [ %brmerge1088.demorgan, %636 ], [ %641, %640 ]
  %644 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2615, i32 noundef %90, i32 noundef 1)
  br i1 %644, label %647, label %645

645:                                              ; preds = %642
  %646 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8713, i32 noundef %90, i32 noundef 1)
  br i1 %646, label %647, label %._crit_edge1243

._crit_edge1243:                                  ; preds = %645
  %.pre1244 = xor i1 %80, true
  br label %649

647:                                              ; preds = %645, %642
  %648 = xor i1 %80, true
  br label %649

649:                                              ; preds = %._crit_edge1243, %647
  %not..pre-phi = phi i1 [ %.pre1244, %._crit_edge1243 ], [ %648, %647 ]
  %650 = phi i1 [ false, %._crit_edge1243 ], [ %648, %647 ]
  %651 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2619, i32 noundef %90, i32 noundef 1)
  %spec.select1096 = and i1 %83, %not..pre-phi
  %spec.select1159 = and i1 %spec.select1096, %651
  %652 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2618, i32 noundef %90, i32 noundef 1)
  br i1 %652, label %656, label %653

653:                                              ; preds = %649
  br i1 %584, label %654, label %657

654:                                              ; preds = %653
  %655 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 10811, i32 noundef %90, i32 noundef 1)
  br i1 %655, label %656, label %657

656:                                              ; preds = %654, %649
  br label %657

657:                                              ; preds = %656, %654, %653
  %658 = phi i1 [ false, %654 ], [ false, %653 ], [ %spec.select1096, %656 ]
  %659 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2594, i32 noundef %90, i32 noundef 0)
  %660 = load i32, ptr %78, align 8, !tbaa !171
  %661 = and i32 %660, 2
  %.not1023 = icmp eq i32 %661, 0
  br i1 %.not1023, label %667, label %662

662:                                              ; preds = %657
  %663 = getelementptr inbounds i8, ptr %77, i64 12
  %664 = load i32, ptr %663, align 4, !tbaa !172
  %665 = and i32 %664, 1
  %666 = icmp ne i32 %665, 0
  br label %667

667:                                              ; preds = %662, %657
  %668 = phi i1 [ false, %657 ], [ %666, %662 ]
  %669 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 525, i1 noundef zeroext true)
  br i1 %669, label %672, label %670

670:                                              ; preds = %667
  %671 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 615, i1 noundef zeroext true)
  br label %672

672:                                              ; preds = %670, %667
  %673 = phi i1 [ true, %667 ], [ %671, %670 ]
  br i1 %668, label %674, label %.sink.split1289

674:                                              ; preds = %672
  %675 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 622, i1 noundef zeroext false)
  br i1 %675, label %678, label %676

676:                                              ; preds = %674
  %677 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 621, i1 noundef zeroext false)
  br label %678

678:                                              ; preds = %674, %676
  %679 = phi i1 [ true, %674 ], [ %677, %676 ]
  %680 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 526, i32 noundef %90, i32 noundef 1)
  br i1 %680, label %682, label %.sink.split1289

.sink.split1289:                                  ; preds = %678, %672
  %.sink = phi i32 [ 526, %672 ], [ 620, %678 ]
  %.ph1290 = phi i1 [ false, %672 ], [ %679, %678 ]
  %681 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef %.sink, i32 noundef %90, i32 noundef 1)
  br label %682

682:                                              ; preds = %.sink.split1289, %678
  %683 = phi i1 [ %679, %678 ], [ %.ph1290, %.sink.split1289 ]
  %684 = phi i1 [ true, %678 ], [ %681, %.sink.split1289 ]
  %685 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %685, label %686, label %689

686:                                              ; preds = %682
  %687 = select i1 %611, i32 2097164, i32 2097152
  %spec.select1101 = select i1 %624, i32 2097156, i32 %687
  %688 = or disjoint i32 %spec.select1101, %608
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %688)
  br label %.thread1189

689:                                              ; preds = %682
  %690 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %690, label %691, label %694

691:                                              ; preds = %689
  %692 = select i1 %611, i32 2097165, i32 2097153
  %spec.select1102 = select i1 %624, i32 2097157, i32 %692
  %693 = or disjoint i32 %spec.select1102, %608
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %693)
  br label %.thread1189

694:                                              ; preds = %689
  %695 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  %.not1104 = xor i1 %68, true
  %brmerge1105.not = and i1 %68, %695
  br i1 %brmerge1105.not, label %696, label %708

696:                                              ; preds = %694
  %697 = load i8, ptr %610, align 8, !tbaa !132, !range !40, !noundef !41
  %698 = trunc nuw i8 %697 to i1
  br i1 %698, label %699, label %705

699:                                              ; preds = %696
  %700 = getelementptr inbounds i8, ptr %.2912, i64 188
  %701 = load float, ptr %700, align 4, !tbaa !122
  %702 = load float, ptr %598, align 8, !tbaa !43
  %703 = fsub float %701, %702
  %704 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %703, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2912, float noundef %704)
  br label %.thread1189

705:                                              ; preds = %696
  %706 = select i1 %624, i32 2097158, i32 2097154
  %707 = or disjoint i32 %706, %608
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %707)
  br label %.thread1189

708:                                              ; preds = %694
  %709 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  %brmerge1108.not = and i1 %68, %709
  br i1 %brmerge1108.not, label %710, label %723

710:                                              ; preds = %708
  %711 = load i8, ptr %610, align 8, !tbaa !132, !range !40, !noundef !41
  %712 = trunc nuw i8 %711 to i1
  br i1 %712, label %713, label %720

713:                                              ; preds = %710
  %714 = getelementptr inbounds i8, ptr %.2912, i64 188
  %715 = load float, ptr %714, align 4, !tbaa !122
  %716 = load float, ptr %598, align 8, !tbaa !43
  %717 = fadd float %715, %716
  %718 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %719 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %717, float noundef %718)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2912, float noundef %719)
  br label %.thread1189

720:                                              ; preds = %710
  %721 = select i1 %624, i32 2097159, i32 2097155
  %722 = or disjoint i32 %721, %608
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %722)
  br label %.thread1189

723:                                              ; preds = %708
  %724 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  %brmerge1111.not = and i1 %68, %724
  br i1 %brmerge1111.not, label %725, label %731

725:                                              ; preds = %723
  %726 = or disjoint i32 %608, 2097166
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %726)
  %727 = sitofp i32 %602 to float
  %728 = load float, ptr %598, align 8, !tbaa !43
  %729 = fneg float %727
  %730 = call float @llvm.fmuladd.f32(float %729, float %728, float %212)
  br label %.thread1189

731:                                              ; preds = %723
  %732 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  %brmerge1114.not = and i1 %68, %732
  br i1 %brmerge1114.not, label %733, label %738

733:                                              ; preds = %731
  %734 = or disjoint i32 %608, 2097167
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %734)
  %735 = sitofp i32 %602 to float
  %736 = load float, ptr %598, align 8, !tbaa !43
  %737 = call float @llvm.fmuladd.f32(float %735, float %736, float %212)
  br label %.thread1189

738:                                              ; preds = %731
  %739 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %739, label %740, label %744

740:                                              ; preds = %738
  %741 = load i8, ptr %610, align 8, !tbaa !132, !range !40, !noundef !41
  %742 = trunc nuw i8 %741 to i1
  %.v1031 = select i1 %742, i32 2097158, i32 2097156
  %743 = or disjoint i32 %.v1031, %608
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %743)
  br label %.thread1189

744:                                              ; preds = %738
  %745 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %745, label %746, label %750

746:                                              ; preds = %744
  %747 = load i8, ptr %610, align 8, !tbaa !132, !range !40, !noundef !41
  %748 = trunc nuw i8 %747 to i1
  %.v = select i1 %748, i32 2097159, i32 2097157
  %749 = or disjoint i32 %.v, %608
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %749)
  br label %.thread1189

750:                                              ; preds = %744
  %751 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  %.not1115 = xor i1 %751, true
  %brmerge1116 = or i1 %80, %.not1115
  %brmerge1117 = or i1 %634, %brmerge1116
  br i1 %brmerge1117, label %757, label %752

752:                                              ; preds = %750
  %753 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  %.not1118 = xor i1 %611, true
  %brmerge1119 = select i1 %753, i1 true, i1 %.not1118
  br i1 %brmerge1119, label %755, label %754

754:                                              ; preds = %752
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef 6291469)
  br label %755

755:                                              ; preds = %752, %754
  %756 = or disjoint i32 %608, 2097160
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %756)
  br label %.thread1189

757:                                              ; preds = %750
  %758 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  %.not1120 = xor i1 %758, true
  %brmerge1121 = or i1 %80, %.not1120
  br i1 %brmerge1121, label %775, label %759

759:                                              ; preds = %757
  %760 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br i1 %760, label %773, label %761

761:                                              ; preds = %759
  br i1 %611, label %.sink.split1292, label %762

762:                                              ; preds = %761
  br i1 %584, label %763, label %773

763:                                              ; preds = %762
  %764 = getelementptr inbounds i8, ptr %77, i64 3627
  %765 = load i8, ptr %764, align 1, !tbaa !165, !range !40, !noundef !41
  %766 = trunc nuw i8 %765 to i1
  br i1 %766, label %767, label %773

767:                                              ; preds = %763
  %768 = load i8, ptr %609, align 2, !tbaa !164, !range !40, !noundef !41
  %769 = trunc nuw i8 %768 to i1
  br i1 %769, label %773, label %770

770:                                              ; preds = %767
  %771 = load i8, ptr %610, align 8, !tbaa !132, !range !40, !noundef !41
  %772 = trunc nuw i8 %771 to i1
  br i1 %772, label %773, label %.sink.split1292

.sink.split1292:                                  ; preds = %770, %761
  %.sink1293 = phi i32 [ 6291468, %761 ], [ 6291460, %770 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %.sink1293)
  br label %773

773:                                              ; preds = %.sink.split1292, %770, %767, %763, %762, %759
  %774 = or disjoint i32 %608, 2097161
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %774)
  br label %.thread1189

775:                                              ; preds = %757
  %brmerge1122 = or i1 %673, %683
  br i1 %brmerge1122, label %776, label %793

776:                                              ; preds = %775
  %brmerge1124 = or i1 %683, %.not1104
  br i1 %brmerge1124, label %782, label %777

777:                                              ; preds = %776
  %778 = and i32 %5, 2048
  %.not1030 = icmp eq i32 %778, 0
  %779 = load i8, ptr %610, align 8, !tbaa !132, !range !40, !noundef !41
  %780 = trunc nuw i8 %779 to i1
  br i1 %.not1030, label %.critedge1126, label %781

781:                                              ; preds = %777
  br i1 %780, label %787, label %.thread1189

.critedge1126:                                    ; preds = %777
  br i1 %780, label %.thread1189, label %787

782:                                              ; preds = %776
  %783 = getelementptr inbounds i8, ptr %77, i64 100
  %784 = load i8, ptr %783, align 4, !tbaa !173, !range !40, !noundef !41
  %785 = trunc nuw i8 %784 to i1
  %.not1127 = xor i1 %785, true
  %brmerge1128 = or i1 %68, %.not1127
  br i1 %brmerge1128, label %.thread1189, label %786

786:                                              ; preds = %782
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br label %.thread1189

787:                                              ; preds = %781, %.critedge1126
  br i1 %80, label %.thread1189, label %788

788:                                              ; preds = %787
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #14
  store i32 10, ptr %22, align 4, !tbaa !107
  %789 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %22, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %789, label %790, label %792

790:                                              ; preds = %788
  %791 = load i32, ptr %22, align 4, !tbaa !107
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %791)
  br label %792

792:                                              ; preds = %790, %788
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #14
  br label %.thread1189

793:                                              ; preds = %775
  br i1 %684, label %794, label %798

794:                                              ; preds = %793
  %795 = and i32 %5, 1048576
  %.not1028 = icmp eq i32 %795, 0
  br i1 %.not1028, label %.thread1189, label %796

796:                                              ; preds = %794
  %797 = load i8, ptr %2, align 1, !tbaa !137
  %.not1029 = icmp ne i8 %797, 0
  %..0930.in = select i1 %.not1029, i1 %.0930.in, i1 false
  %.1130 = select i1 %.not1029, i8 %344, i8 0
  %..0916 = select i1 %.not1029, i8 %.09161180, i8 1
  br label %.thread1189

798:                                              ; preds = %793
  %brmerge1131 = or i1 %spec.select1159, %658
  br i1 %brmerge1131, label %799, label %800

799:                                              ; preds = %798
  %.mux1132 = select i1 %spec.select1159, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255, i32 noundef %.mux1132)
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br label %.thread1189

800:                                              ; preds = %798
  br i1 %659, label %801, label %803

801:                                              ; preds = %800
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  %802 = getelementptr inbounds i8, ptr %.09151255, i64 3716
  store i8 1, ptr %802, align 4, !tbaa !161
  br label %.thread1189

803:                                              ; preds = %800
  %brmerge1133 = or i1 %634, %643
  br i1 %brmerge1133, label %804, label %850

804:                                              ; preds = %803
  %805 = getelementptr inbounds i8, ptr %77, i64 184
  %806 = load ptr, ptr %805, align 8, !tbaa !174
  %.not1027 = icmp eq ptr %806, null
  br i1 %.not1027, label %843, label %807

807:                                              ; preds = %804
  %808 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br i1 %808, label %809, label %815

809:                                              ; preds = %807
  %810 = getelementptr inbounds i8, ptr %.09151255, i64 88
  %811 = load i32, ptr %810, align 4, !tbaa !159
  %812 = getelementptr inbounds i8, ptr %.09151255, i64 92
  %813 = load i32, ptr %812, align 4, !tbaa !160
  %814 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %811, i32 noundef %813)
  br label %815

815:                                              ; preds = %807, %809
  %816 = phi i32 [ %814, %809 ], [ 0, %807 ]
  %817 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br i1 %817, label %818, label %824

818:                                              ; preds = %815
  %819 = getelementptr inbounds i8, ptr %.09151255, i64 88
  %820 = load i32, ptr %819, align 4, !tbaa !159
  %821 = getelementptr inbounds i8, ptr %.09151255, i64 92
  %822 = load i32, ptr %821, align 4, !tbaa !160
  %823 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %820, i32 noundef %822)
  br label %827

824:                                              ; preds = %815
  %825 = getelementptr inbounds i8, ptr %.09151255, i64 12
  %826 = load i32, ptr %825, align 4, !tbaa !130
  br label %827

827:                                              ; preds = %824, %818
  %828 = phi i32 [ %823, %818 ], [ %826, %824 ]
  %829 = getelementptr inbounds i8, ptr %.09151255, i64 32
  %830 = load ptr, ptr %829, align 8, !tbaa !129
  %831 = sext i32 %816 to i64
  %832 = getelementptr inbounds i16, ptr %830, i64 %831
  %833 = sext i32 %828 to i64
  %834 = getelementptr inbounds i16, ptr %830, i64 %833
  %835 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %832, ptr noundef %834)
  %836 = add nsw i32 %835, 1
  %837 = sext i32 %836 to i64
  %838 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %837)
  %839 = load ptr, ptr %829, align 8, !tbaa !129
  %840 = getelementptr inbounds i16, ptr %839, i64 %831
  %841 = getelementptr inbounds i16, ptr %839, i64 %833
  %842 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %838, i32 noundef %836, ptr noundef %840, ptr noundef %841)
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %838)
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %838)
  br label %843

843:                                              ; preds = %827, %804
  br i1 %634, label %844, label %.thread1189

844:                                              ; preds = %843
  %845 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br i1 %845, label %847, label %846

846:                                              ; preds = %844
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br label %847

847:                                              ; preds = %846, %844
  %848 = getelementptr inbounds i8, ptr %.09151255, i64 3716
  store i8 1, ptr %848, align 4, !tbaa !161
  %849 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.09151255, ptr noundef nonnull %603)
  br label %.thread1189

850:                                              ; preds = %803
  br i1 %650, label %851, label %.thread1189

851:                                              ; preds = %850
  %852 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  %.not1024 = icmp eq ptr %852, null
  br i1 %.not1024, label %.thread1189, label %853

853:                                              ; preds = %851
  %854 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %852) #15
  %855 = shl i64 %854, 32
  %sext1025 = add i64 %855, 4294967296
  %856 = ashr exact i64 %sext1025, 31
  %857 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %856)
  %858 = load i8, ptr %852, align 1, !tbaa !137
  %.not10261220 = icmp eq i8 %858, 0
  br i1 %.not10261220, label %._crit_edge.thread, label %.lr.ph1223

._crit_edge.thread:                               ; preds = %853
  store i16 0, ptr %857, align 2, !tbaa !156
  br label %877

._crit_edge:                                      ; preds = %872
  %859 = sext i32 %.1956 to i64
  %860 = getelementptr inbounds i16, ptr %857, i64 %859
  store i16 0, ptr %860, align 2, !tbaa !156
  %861 = icmp sgt i32 %.1956, 0
  br i1 %861, label %874, label %877

.lr.ph1223:                                       ; preds = %853, %872
  %.09551222 = phi i32 [ %.1956, %872 ], [ 0, %853 ]
  %.09571221 = phi ptr [ %864, %872 ], [ %852, %853 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #14
  %862 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef nonnull %23, ptr noundef nonnull %.09571221, ptr noundef null)
  %863 = sext i32 %862 to i64
  %864 = getelementptr inbounds i8, ptr %.09571221, i64 %863
  %865 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %23, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 4)
  br i1 %865, label %866, label %872, !llvm.loop !175

866:                                              ; preds = %.lr.ph1223
  %867 = load i32, ptr %23, align 4, !tbaa !107
  %868 = trunc i32 %867 to i16
  %869 = add nsw i32 %.09551222, 1
  %870 = sext i32 %.09551222 to i64
  %871 = getelementptr inbounds i16, ptr %857, i64 %870
  store i16 %868, ptr %871, align 2, !tbaa !156
  br label %872

872:                                              ; preds = %.lr.ph1223, %866
  %.1956 = phi i32 [ %869, %866 ], [ %.09551222, %.lr.ph1223 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #14
  %873 = load i8, ptr %864, align 1, !tbaa !137
  %.not1026 = icmp eq i8 %873, 0
  br i1 %.not1026, label %._crit_edge, label %.lr.ph1223

874:                                              ; preds = %._crit_edge
  %875 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %.09151255, ptr noundef nonnull %603, ptr noundef nonnull %857, i32 noundef %.1956)
  %876 = getelementptr inbounds i8, ptr %.09151255, i64 3716
  store i8 1, ptr %876, align 4, !tbaa !161
  br label %877

877:                                              ; preds = %._crit_edge.thread, %874, %._crit_edge
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %857)
  br label %.thread1189

.thread1189:                                      ; preds = %781, %.critedge1126, %851, %877, %794, %796, %786, %792, %787, %782, %691, %720, %713, %733, %746, %773, %801, %850, %843, %847, %799, %755, %740, %725, %699, %705, %686
  %.0953 = phi i1 [ false, %686 ], [ false, %691 ], [ false, %699 ], [ false, %705 ], [ false, %713 ], [ false, %720 ], [ false, %725 ], [ false, %733 ], [ false, %740 ], [ false, %746 ], [ false, %799 ], [ false, %801 ], [ false, %847 ], [ false, %843 ], [ false, %850 ], [ false, %773 ], [ false, %755 ], [ false, %782 ], [ false, %787 ], [ false, %792 ], [ false, %786 ], [ %.not1029, %796 ], [ true, %794 ], [ false, %877 ], [ false, %851 ], [ false, %.critedge1126 ], [ false, %781 ]
  %.1949 = phi i8 [ 0, %686 ], [ 0, %691 ], [ 0, %699 ], [ 0, %705 ], [ 0, %713 ], [ 0, %720 ], [ 0, %725 ], [ 0, %733 ], [ 0, %740 ], [ 0, %746 ], [ 0, %799 ], [ 0, %801 ], [ 0, %847 ], [ 0, %843 ], [ 0, %850 ], [ 0, %773 ], [ 0, %755 ], [ 1, %782 ], [ 0, %787 ], [ 0, %792 ], [ 1, %786 ], [ 0, %796 ], [ 0, %794 ], [ 0, %877 ], [ 0, %851 ], [ 1, %.critedge1126 ], [ 1, %781 ]
  %.1931 = phi i1 [ %.0930.in, %686 ], [ %.0930.in, %691 ], [ %.0930.in, %699 ], [ %.0930.in, %705 ], [ %.0930.in, %713 ], [ %.0930.in, %720 ], [ %.0930.in, %725 ], [ %.0930.in, %733 ], [ %.0930.in, %740 ], [ %.0930.in, %746 ], [ %.0930.in, %799 ], [ %.0930.in, %801 ], [ %.0930.in, %847 ], [ %.0930.in, %843 ], [ %.0930.in, %850 ], [ %.0930.in, %773 ], [ %.0930.in, %755 ], [ %.0930.in, %782 ], [ %.0930.in, %787 ], [ %.0930.in, %792 ], [ %.0930.in, %786 ], [ %..0930.in, %796 ], [ false, %794 ], [ %.0930.in, %877 ], [ %.0930.in, %851 ], [ %.0930.in, %.critedge1126 ], [ %.0930.in, %781 ]
  %.0928 = phi i8 [ %344, %686 ], [ %344, %691 ], [ %344, %699 ], [ %344, %705 ], [ %344, %713 ], [ %344, %720 ], [ %344, %725 ], [ %344, %733 ], [ %344, %740 ], [ %344, %746 ], [ %344, %799 ], [ %344, %801 ], [ %344, %847 ], [ %344, %843 ], [ %344, %850 ], [ %344, %773 ], [ %344, %755 ], [ %344, %782 ], [ %344, %787 ], [ %344, %792 ], [ %344, %786 ], [ %.1130, %796 ], [ 0, %794 ], [ %344, %877 ], [ %344, %851 ], [ %344, %.critedge1126 ], [ %344, %781 ]
  %.0924 = phi float [ %212, %686 ], [ %212, %691 ], [ %212, %699 ], [ %212, %705 ], [ %212, %713 ], [ %212, %720 ], [ %730, %725 ], [ %737, %733 ], [ %212, %740 ], [ %212, %746 ], [ %212, %799 ], [ %212, %801 ], [ %212, %847 ], [ %212, %843 ], [ %212, %850 ], [ %212, %773 ], [ %212, %755 ], [ %212, %782 ], [ %212, %787 ], [ %212, %792 ], [ %212, %786 ], [ %212, %796 ], [ %212, %794 ], [ %212, %877 ], [ %212, %851 ], [ %212, %.critedge1126 ], [ %212, %781 ]
  %.2918 = phi i8 [ %.09161180, %686 ], [ %.09161180, %691 ], [ %.09161180, %699 ], [ %.09161180, %705 ], [ %.09161180, %713 ], [ %.09161180, %720 ], [ %.09161180, %725 ], [ %.09161180, %733 ], [ %.09161180, %740 ], [ %.09161180, %746 ], [ %.09161180, %799 ], [ %.09161180, %801 ], [ %.09161180, %847 ], [ %.09161180, %843 ], [ %.09161180, %850 ], [ %.09161180, %773 ], [ %.09161180, %755 ], [ 1, %782 ], [ %.09161180, %787 ], [ %.09161180, %792 ], [ %.09161180, %786 ], [ %..0916, %796 ], [ 1, %794 ], [ %.09161180, %877 ], [ %.09161180, %851 ], [ 1, %.critedge1126 ], [ 1, %781 ]
  %878 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  %879 = select i1 %878, i8 %.0928, i8 0
  %880 = zext i1 %.1931 to i8
  %881 = or i8 %879, %880
  %.pre1232 = load i32, ptr %170, align 8, !tbaa !116
  br label %882

882:                                              ; preds = %.thread1189, %583
  %883 = phi i32 [ %.pre1232, %.thread1189 ], [ %585, %583 ]
  %.1954 = phi i1 [ %.0953, %.thread1189 ], [ false, %583 ]
  %.2950 = phi i8 [ %.1949, %.thread1189 ], [ 0, %583 ]
  %.2932 = phi i8 [ %881, %.thread1189 ], [ %.0930, %583 ]
  %.1929 = phi i8 [ %.0928, %.thread1189 ], [ %344, %583 ]
  %.1925 = phi float [ %.0924, %.thread1189 ], [ %212, %583 ]
  %.3919 = phi i8 [ %.2918, %.thread1189 ], [ %.09161180, %583 ]
  %884 = icmp eq i32 %883, %90
  br i1 %884, label %.thread1265, label %1088

.thread1265:                                      ; preds = %591, %587, %882
  %.39191284 = phi i8 [ %.3919, %882 ], [ %.09161180, %587 ], [ %.09161180, %591 ]
  %.19251282 = phi float [ %.1925, %882 ], [ %212, %587 ], [ %212, %591 ]
  %.19291280 = phi i8 [ %.1929, %882 ], [ %344, %587 ], [ %344, %591 ]
  %.29321278 = phi i8 [ %.2932, %882 ], [ %.0930, %587 ], [ %.0930, %591 ]
  %.29501275 = phi i8 [ %.2950, %882 ], [ 0, %587 ], [ 0, %591 ]
  %.19541274 = phi i1 [ %.1954, %882 ], [ false, %587 ], [ false, %591 ]
  br i1 %345, label %886, label %885

885:                                              ; preds = %.thread1265
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.4, i32 noundef 4581, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

886:                                              ; preds = %.thread1265
  %.1954.not = xor i1 %.19541274, true
  %brmerge1134 = or i1 %80, %.1954.not
  br i1 %brmerge1134, label %924, label %887

887:                                              ; preds = %886
  %888 = and i32 %5, 1048576
  %.not1032 = icmp eq i32 %888, 0
  br i1 %.not1032, label %894, label %889

889:                                              ; preds = %887
  %890 = load i8, ptr %2, align 1, !tbaa !137
  %.not1034 = icmp eq i8 %890, 0
  br i1 %.not1034, label %891, label %892

891:                                              ; preds = %889
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.4, i32 noundef 4587, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

892:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %24) #14
  %893 = getelementptr inbounds i8, ptr %.09151255, i64 84
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.09151255, ptr noundef nonnull %893, ptr noundef nonnull %24, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %24) #14
  br label %.thread1193

894:                                              ; preds = %887
  %895 = getelementptr inbounds i8, ptr %.09151255, i64 64
  %896 = load ptr, ptr %895, align 8, !tbaa !125
  %897 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) %896) #15
  %.not1033 = icmp eq i32 %897, 0
  br i1 %.not1033, label %.thread1193, label %898

898:                                              ; preds = %894
  %899 = getelementptr inbounds i8, ptr %.09151255, i64 56
  %900 = load i32, ptr %899, align 8, !tbaa !176
  %901 = add nsw i32 %900, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25)
  %902 = icmp sgt i32 %900, 1
  br i1 %902, label %903, label %916

903:                                              ; preds = %898
  %904 = zext nneg i32 %901 to i64
  %905 = getelementptr inbounds i8, ptr %896, i64 %904
  %906 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %896, ptr noundef %905)
          to label %907 unwind label %914

907:                                              ; preds = %903
  %908 = add nsw i32 %906, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %25, i32 noundef %908)
          to label %909 unwind label %914

909:                                              ; preds = %907
  %910 = getelementptr inbounds i8, ptr %25, i64 8
  %911 = load ptr, ptr %910, align 8, !tbaa !177
  %912 = load i32, ptr %25, align 8, !tbaa !178
  %913 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %911, i32 noundef %912, ptr noundef %896, ptr noundef %905, ptr noundef null)
          to label %916 unwind label %914

914:                                              ; preds = %916, %909, %907, %903
  %915 = 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 60, 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 } %915

916:                                              ; preds = %909, %898
  %917 = getelementptr inbounds i8, ptr %.09151255, i64 84
  %918 = getelementptr inbounds i8, ptr %25, i64 8
  %919 = load ptr, ptr %918, align 8, !tbaa !177
  %920 = load i32, ptr %25, align 8
  %921 = add nsw i32 %920, -1
  %922 = select i1 %902, i32 %921, i32 0
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.09151255, ptr noundef nonnull %917, ptr noundef %919, i32 noundef %922)
          to label %923 unwind label %914

923:                                              ; preds = %916
  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 %.thread1193

924:                                              ; preds = %886
  br i1 %80, label %937, label %.thread1193

.thread1193:                                      ; preds = %894, %923, %892, %924
  %.09421201 = phi i1 [ false, %924 ], [ false, %894 ], [ true, %923 ], [ true, %892 ]
  %.09581199 = phi ptr [ null, %924 ], [ null, %894 ], [ %896, %923 ], [ @.str, %892 ]
  %.09631197 = phi i32 [ 0, %924 ], [ 0, %894 ], [ %901, %923 ], [ 0, %892 ]
  %925 = getelementptr inbounds i8, ptr %.09151255, i64 72
  store i8 1, ptr %925, align 8, !tbaa !127
  %926 = getelementptr inbounds i8, ptr %.09151255, i64 40
  %927 = getelementptr inbounds i8, ptr %.09151255, i64 24
  %928 = load i32, ptr %927, align 8, !tbaa !136
  %929 = shl nsw i32 %928, 2
  %930 = or disjoint i32 %929, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %926, i32 noundef %930)
  %931 = getelementptr inbounds i8, ptr %.09151255, i64 48
  %932 = load ptr, ptr %931, align 8, !tbaa !128
  %933 = load i32, ptr %926, align 8, !tbaa !179
  %934 = getelementptr inbounds i8, ptr %.09151255, i64 32
  %935 = load ptr, ptr %934, align 8, !tbaa !129
  %936 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %932, i32 noundef %933, ptr noundef %935, ptr noundef null)
  br label %937

937:                                              ; preds = %.thread1193, %924
  %.09421202 = phi i1 [ %.09421201, %.thread1193 ], [ false, %924 ]
  %.09581200 = phi ptr [ %.09581199, %.thread1193 ], [ null, %924 ]
  %.09631198 = phi i32 [ %.09631197, %.thread1193 ], [ 0, %924 ]
  br i1 %.19541274, label %938, label %.critedge1136

938:                                              ; preds = %937
  %939 = trunc nuw i8 %.29501275 to i1
  %940 = and i32 %5, 32
  %941 = icmp ne i32 %940, 0
  %942 = and i1 %941, %939
  br i1 %942, label %.critedge1136, label %1088

.critedge1136:                                    ; preds = %937, %938
  %943 = and i32 %5, 524736
  %.not1035 = icmp eq i32 %943, 0
  br i1 %.not1035, label %1080, label %944

944:                                              ; preds = %.critedge1136
  br i1 %85, label %946, label %945

945:                                              ; preds = %944
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.4, i32 noundef 4636, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

946:                                              ; preds = %944
  br i1 %.not1003, label %949, label %947

947:                                              ; preds = %946
  %948 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %90, i32 noundef 0)
  br i1 %948, label %.thread1204, label %949

949:                                              ; preds = %947, %946
  br i1 %.not1001.not, label %.critedge1138, label %950

950:                                              ; preds = %949
  %951 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %951, label %.thread1204, label %952

952:                                              ; preds = %950
  %953 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %953, label %.thread1204, label %.critedge1138

.critedge1138:                                    ; preds = %949, %952
  %954 = and i32 %5, 524288
  %.not1036 = icmp eq i32 %954, 0
  br i1 %.not1036, label %959, label %955

955:                                              ; preds = %.critedge1138
  %956 = getelementptr inbounds i8, ptr %.09151255, i64 3718
  %957 = load i8, ptr %956, align 2, !tbaa !146, !range !40, !noundef !41
  %958 = trunc nuw i8 %957 to i1
  br i1 %958, label %.thread1204, label %959

959:                                              ; preds = %.critedge1138, %955
  %960 = and i32 %5, 256
  %.not1037 = icmp eq i32 %960, 0
  br i1 %.not1037, label %1080, label %.thread1204

.thread1204:                                      ; preds = %955, %952, %950, %947, %959
  %.09681209 = phi i32 [ 0, %959 ], [ 0, %955 ], [ 516, %952 ], [ 515, %950 ], [ 512, %947 ]
  %.09691208 = phi i32 [ 256, %959 ], [ 524288, %955 ], [ 128, %952 ], [ 128, %950 ], [ 64, %947 ]
  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 %77, ptr %26, align 8, !tbaa !180
  %961 = getelementptr inbounds i8, ptr %26, i64 8
  store i32 %.09691208, ptr %961, align 8, !tbaa !183
  %962 = getelementptr inbounds i8, ptr %26, i64 12
  store i32 %5, ptr %962, align 4, !tbaa !184
  %963 = getelementptr inbounds i8, ptr %26, i64 16
  store ptr %7, ptr %963, align 8, !tbaa !185
  br i1 %80, label %967, label %964

964:                                              ; preds = %.thread1204
  %965 = getelementptr inbounds i8, ptr %.09151255, i64 48
  %966 = load ptr, ptr %965, align 8, !tbaa !128
  br label %967

967:                                              ; preds = %.thread1204, %964
  %968 = phi ptr [ %966, %964 ], [ %2, %.thread1204 ]
  %969 = getelementptr inbounds i8, ptr %26, i64 28
  store i32 %.09681209, ptr %969, align 4, !tbaa !186
  %970 = getelementptr inbounds i8, ptr %26, i64 32
  store ptr %968, ptr %970, align 8, !tbaa !187
  %971 = getelementptr inbounds i8, ptr %.09151255, i64 16
  %972 = load i32, ptr %971, align 8, !tbaa !126
  %973 = getelementptr inbounds i8, ptr %26, i64 40
  store i32 %972, ptr %973, align 8, !tbaa !188
  %974 = getelementptr inbounds i8, ptr %.09151255, i64 76
  %975 = load i32, ptr %974, align 4, !tbaa !147
  %976 = getelementptr inbounds i8, ptr %26, i64 44
  store i32 %975, ptr %976, align 4, !tbaa !189
  %977 = getelementptr inbounds i8, ptr %26, i64 48
  store i8 0, ptr %977, align 8, !tbaa !190
  %978 = getelementptr inbounds i8, ptr %.09151255, i64 24
  %979 = getelementptr inbounds i8, ptr %.09151255, i64 32
  %980 = load ptr, ptr %979, align 8, !tbaa !129
  %981 = getelementptr inbounds i8, ptr %.09151255, i64 84
  %982 = load i32, ptr %981, align 4, !tbaa !158
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds i16, ptr %980, i64 %983
  %985 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %980, ptr noundef %984)
  %986 = getelementptr inbounds i8, ptr %26, i64 52
  store i32 %985, ptr %986, align 4, !tbaa !191
  %987 = getelementptr inbounds i8, ptr %.09151255, i64 88
  %988 = load i32, ptr %987, align 4, !tbaa !159
  %989 = sext i32 %988 to i64
  %990 = getelementptr inbounds i16, ptr %980, i64 %989
  %991 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %980, ptr noundef %990)
  %992 = getelementptr inbounds i8, ptr %26, i64 56
  store i32 %991, ptr %992, align 8, !tbaa !192
  %993 = getelementptr inbounds i8, ptr %.09151255, i64 92
  %994 = load i32, ptr %993, align 4, !tbaa !160
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds i16, ptr %980, i64 %995
  %997 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %980, ptr noundef %996)
  %998 = getelementptr inbounds i8, ptr %26, i64 60
  store i32 %997, ptr %998, align 4, !tbaa !193
  %999 = call noundef i32 %6(ptr noundef nonnull %26)
  br i1 %80, label %1003, label %1000

1000:                                             ; preds = %967
  %1001 = getelementptr inbounds i8, ptr %.09151255, i64 48
  %1002 = load ptr, ptr %1001, align 8, !tbaa !128
  br label %1003

1003:                                             ; preds = %967, %1000
  %1004 = phi ptr [ %1002, %1000 ], [ %2, %967 ]
  %1005 = load ptr, ptr %970, align 8, !tbaa !187
  %1006 = icmp eq ptr %1005, %1004
  br i1 %1006, label %1008, label %1007

1007:                                             ; preds = %1003
  call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.4, i32 noundef 4691, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1008:                                             ; preds = %1003
  %1009 = load i32, ptr %976, align 4, !tbaa !189
  %1010 = load i32, ptr %974, align 4, !tbaa !147
  %1011 = icmp eq i32 %1009, %1010
  br i1 %1011, label %1013, label %1012

1012:                                             ; preds = %1008
  call void @__assert_fail(ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.4, i32 noundef 4692, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1013:                                             ; preds = %1008
  %1014 = load i32, ptr %962, align 4, !tbaa !184
  %1015 = icmp eq i32 %1014, %5
  br i1 %1015, label %1017, label %1016

1016:                                             ; preds = %1013
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.4, i32 noundef 4693, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1017:                                             ; preds = %1013
  %1018 = load i8, ptr %977, align 8, !tbaa !190, !range !40, !noundef !41
  %1019 = trunc nuw i8 %1018 to i1
  %1020 = load i32, ptr %986, align 4, !tbaa !191
  %.not1039 = icmp ne i32 %1020, %985
  %brmerge1141 = select i1 %.not1039, i1 true, i1 %1019
  br i1 %brmerge1141, label %1021, label %1026

1021:                                             ; preds = %1017
  %1022 = sext i32 %1020 to i64
  %1023 = getelementptr inbounds i8, ptr %1005, i64 %1022
  %1024 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1005, ptr noundef %1023)
  store i32 %1024, ptr %981, align 4, !tbaa !158
  %1025 = getelementptr inbounds i8, ptr %.09151255, i64 3716
  store i8 1, ptr %1025, align 4, !tbaa !161
  br label %1026

1026:                                             ; preds = %1017, %1021
  %1027 = load i32, ptr %992, align 8, !tbaa !192
  %.not1040 = icmp ne i32 %1027, %991
  %brmerge1142 = select i1 %.not1040, i1 true, i1 %1019
  br i1 %brmerge1142, label %1028, label %1040

1028:                                             ; preds = %1026
  %1029 = load i32, ptr %986, align 4, !tbaa !191
  %1030 = icmp eq i32 %1027, %1029
  br i1 %1030, label %1031, label %1033

1031:                                             ; preds = %1028
  %1032 = load i32, ptr %981, align 4, !tbaa !158
  br label %1038

1033:                                             ; preds = %1028
  %1034 = load ptr, ptr %970, align 8, !tbaa !187
  %1035 = sext i32 %1027 to i64
  %1036 = getelementptr inbounds i8, ptr %1034, i64 %1035
  %1037 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1034, ptr noundef %1036)
  br label %1038

1038:                                             ; preds = %1033, %1031
  %1039 = phi i32 [ %1032, %1031 ], [ %1037, %1033 ]
  store i32 %1039, ptr %987, align 4, !tbaa !159
  br label %1040

1040:                                             ; preds = %1026, %1038
  %1041 = load i32, ptr %998, align 4, !tbaa !193
  %.not1041 = icmp ne i32 %1041, %997
  %brmerge1143 = select i1 %.not1041, i1 true, i1 %1019
  br i1 %brmerge1143, label %1042, label %1054

1042:                                             ; preds = %1040
  %1043 = load i32, ptr %992, align 8, !tbaa !192
  %1044 = icmp eq i32 %1041, %1043
  br i1 %1044, label %1045, label %1047

1045:                                             ; preds = %1042
  %1046 = load i32, ptr %987, align 4, !tbaa !159
  br label %1052

1047:                                             ; preds = %1042
  %1048 = load ptr, ptr %970, align 8, !tbaa !187
  %1049 = sext i32 %1041 to i64
  %1050 = getelementptr inbounds i8, ptr %1048, i64 %1049
  %1051 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1048, ptr noundef %1050)
  br label %1052

1052:                                             ; preds = %1047, %1045
  %1053 = phi i32 [ %1046, %1045 ], [ %1051, %1047 ]
  store i32 %1053, ptr %993, align 4, !tbaa !160
  br label %1054

1054:                                             ; preds = %1040, %1052
  br i1 %1019, label %1055, label %1079

1055:                                             ; preds = %1054
  %1056 = icmp eq i32 %79, 0
  br i1 %1056, label %1058, label %1057

1057:                                             ; preds = %1055
  call void @__assert_fail(ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.4, i32 noundef 4700, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1058:                                             ; preds = %1055
  %1059 = load i32, ptr %973, align 8, !tbaa !188
  %1060 = load ptr, ptr %970, align 8, !tbaa !187
  %1061 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1060) #15
  %1062 = trunc i64 %1061 to i32
  %1063 = icmp eq i32 %1059, %1062
  br i1 %1063, label %1065, label %1064

1064:                                             ; preds = %1058
  call void @__assert_fail(ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.4, i32 noundef 4701, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1065:                                             ; preds = %1058
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef nonnull %.09151255, ptr noundef %1060, i32 noundef %1059)
  %1066 = load i32, ptr %973, align 8, !tbaa !188
  %1067 = icmp sle i32 %1066, %.0951
  %brmerge1145 = or i1 %.not1007, %1067
  br i1 %brmerge1145, label %1072, label %1068

1068:                                             ; preds = %1065
  %1069 = load i32, ptr %978, align 8, !tbaa !136
  %1070 = sub i32 %1066, %.0951
  %1071 = add nsw i32 %1070, %1069
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %978, i32 noundef %1071)
  br label %1072

1072:                                             ; preds = %1065, %1068
  %1073 = load ptr, ptr %979, align 8, !tbaa !129
  %1074 = load i32, ptr %978, align 8, !tbaa !136
  %1075 = load ptr, ptr %970, align 8, !tbaa !187
  %1076 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %1073, i32 noundef %1074, ptr noundef %1075, ptr noundef null, ptr noundef null)
  %1077 = getelementptr inbounds i8, ptr %.09151255, i64 12
  store i32 %1076, ptr %1077, align 4, !tbaa !130
  %1078 = load i32, ptr %973, align 8, !tbaa !188
  store i32 %1078, ptr %971, align 8, !tbaa !126
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09151255)
  br label %1079

1079:                                             ; preds = %1072, %1054
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %26) #14
  br label %1080

1080:                                             ; preds = %959, %1079, %.critedge1136
  br i1 %80, label %1088, label %1081

1081:                                             ; preds = %1080
  %1082 = getelementptr inbounds i8, ptr %.09151255, i64 48
  %1083 = load ptr, ptr %1082, align 8, !tbaa !128
  %1084 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1083, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1042 = icmp eq i32 %1084, 0
  br i1 %.not1042, label %1088, label %1085

1085:                                             ; preds = %1081
  %1086 = getelementptr inbounds i8, ptr %.09151255, i64 16
  %1087 = load i32, ptr %1086, align 8, !tbaa !126
  br label %1088

1088:                                             ; preds = %938, %1085, %1081, %1080, %882
  %.39191283 = phi i8 [ %.3919, %882 ], [ %.39191284, %1080 ], [ %.39191284, %1085 ], [ %.39191284, %1081 ], [ %.39191284, %938 ]
  %.19251281 = phi float [ %.1925, %882 ], [ %.19251282, %1080 ], [ %.19251282, %1085 ], [ %.19251282, %1081 ], [ %.19251282, %938 ]
  %.19291279 = phi i8 [ %.1929, %882 ], [ %.19291280, %1080 ], [ %.19291280, %1085 ], [ %.19291280, %1081 ], [ %.19291280, %938 ]
  %.29321277 = phi i8 [ %.2932, %882 ], [ %.29321278, %1080 ], [ %.29321278, %1085 ], [ %.29321278, %1081 ], [ %.29321278, %938 ]
  %.29501276 = phi i8 [ %.2950, %882 ], [ %.29501275, %1080 ], [ %.29501275, %1085 ], [ %.29501275, %1081 ], [ %.29501275, %938 ]
  %.2965 = phi i32 [ 0, %882 ], [ %.09631198, %1080 ], [ %1087, %1085 ], [ %.09631198, %1081 ], [ %.09631198, %938 ]
  %.2960 = phi ptr [ null, %882 ], [ %.09581200, %1080 ], [ %1083, %1085 ], [ %.09581200, %1081 ], [ %.09581200, %938 ]
  %.2944 = phi i1 [ false, %882 ], [ %.09421202, %1080 ], [ true, %1085 ], [ %.09421202, %1081 ], [ %.09421202, %938 ]
  %1089 = getelementptr inbounds i8, ptr %77, i64 23664
  %1090 = load i32, ptr %1089, align 8, !tbaa !194
  %1091 = icmp eq i32 %1090, %90
  br i1 %1091, label %1092, label %1105

1092:                                             ; preds = %1088
  %1093 = load i32, ptr %170, align 8, !tbaa !116
  %.not1043 = icmp eq i32 %1093, %90
  br i1 %.not1043, label %1104, label %1094

1094:                                             ; preds = %1092
  %1095 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  %.not1146 = xor i1 %1095, true
  %brmerge1147 = or i1 %80, %.not1146
  br i1 %brmerge1147, label %1104, label %1096

1096:                                             ; preds = %1094
  %1097 = getelementptr inbounds i8, ptr %77, i64 23680
  %1098 = load ptr, ptr %1097, align 8, !tbaa !195
  %1099 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1098, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1044 = icmp eq i32 %1099, 0
  br i1 %.not1044, label %1104, label %1100

1100:                                             ; preds = %1096
  %1101 = getelementptr inbounds i8, ptr %77, i64 23672
  %1102 = load i32, ptr %1101, align 8, !tbaa !196
  %1103 = add nsw i32 %1102, -1
  br label %1104

1104:                                             ; preds = %1094, %1100, %1096, %1092
  %.3966 = phi i32 [ %1103, %1100 ], [ %.2965, %1096 ], [ %.2965, %1094 ], [ %.2965, %1092 ]
  %.3961 = phi ptr [ %1098, %1100 ], [ %.2960, %1096 ], [ %.2960, %1094 ], [ %.2960, %1092 ]
  %.3945 = phi i1 [ true, %1100 ], [ %.2944, %1096 ], [ %.2944, %1094 ], [ %.2944, %1092 ]
  store i32 0, ptr %1089, align 8, !tbaa !194
  br label %1105

1105:                                             ; preds = %1104, %1088
  %.4967 = phi i32 [ %.3966, %1104 ], [ %.2965, %1088 ]
  %.4962 = phi ptr [ %.3961, %1104 ], [ %.2960, %1088 ]
  %.4946 = phi i1 [ %.3945, %1104 ], [ %.2944, %1088 ]
  %.not1045 = icmp eq ptr %.4962, null
  br i1 %.not1045, label %1131, label %1106

1106:                                             ; preds = %1105
  %1107 = icmp sgt i32 %.4967, -1
  br i1 %1107, label %1109, label %1108

1108:                                             ; preds = %1106
  call void @__assert_fail(ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.4, i32 noundef 4741, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1109:                                             ; preds = %1106
  br i1 %.not1007, label %1127, label %1110

1110:                                             ; preds = %1109
  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 %77, ptr %27, align 8, !tbaa !180
  %1111 = getelementptr inbounds i8, ptr %27, i64 8
  store i32 262144, ptr %1111, align 8, !tbaa !183
  %1112 = getelementptr inbounds i8, ptr %27, i64 12
  store i32 %5, ptr %1112, align 4, !tbaa !184
  %1113 = getelementptr inbounds i8, ptr %27, i64 32
  store ptr %2, ptr %1113, align 8, !tbaa !187
  %1114 = getelementptr inbounds i8, ptr %27, i64 40
  store i32 %.4967, ptr %1114, align 8, !tbaa !188
  %1115 = add nuw nsw i32 %.4967, 1
  %1116 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3, i32 noundef %1115)
  %1117 = getelementptr inbounds i8, ptr %27, i64 44
  store i32 %1116, ptr %1117, align 4, !tbaa !189
  %1118 = getelementptr inbounds i8, ptr %27, i64 16
  store ptr %7, ptr %1118, align 8, !tbaa !185
  %1119 = call noundef i32 %6(ptr noundef nonnull %27)
  %1120 = load ptr, ptr %1113, align 8, !tbaa !187
  %1121 = load i32, ptr %1117, align 4, !tbaa !189
  %1122 = load i32, ptr %1114, align 8, !tbaa !188
  %1123 = add nsw i32 %1121, -1
  %1124 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1122, i32 noundef %1123)
  %.not1046 = icmp sgt i32 %1124, %1121
  br i1 %.not1046, label %1125, label %1126

1125:                                             ; preds = %1110
  call void @__assert_fail(ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.4, i32 noundef 4756, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1126:                                             ; preds = %1110
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #14
  br label %1127

1127:                                             ; preds = %1126, %1109
  %.5 = phi i32 [ %1124, %1126 ], [ %.4967, %1109 ]
  %.0907 = phi i32 [ %1121, %1126 ], [ %3, %1109 ]
  %.0905 = phi ptr [ %1120, %1126 ], [ %2, %1109 ]
  %1128 = add nsw i32 %.5, 1
  %1129 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1128, i32 noundef %.0907)
  %1130 = sext i32 %1129 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %.0905, ptr noundef nonnull %.4962, i64 noundef %1130)
  br label %1131

1131:                                             ; preds = %1127, %1105
  %.1906 = phi ptr [ %.0905, %1127 ], [ %2, %1105 ]
  %1132 = load i32, ptr %170, align 8, !tbaa !116
  %1133 = icmp eq i32 %1132, %90
  br i1 %1133, label %1134, label %1139

1134:                                             ; preds = %1131
  %1135 = trunc nuw i8 %.39191283 to i1
  br i1 %1135, label %1136, label %1137

1136:                                             ; preds = %1134
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %1139

1137:                                             ; preds = %1134
  %1138 = getelementptr inbounds i8, ptr %77, i64 24692
  store i32 1, ptr %1138, align 4, !tbaa !197
  br label %1139

1139:                                             ; preds = %1131, %1137, %1136
  br i1 %68, label %1145, label %1140

1140:                                             ; preds = %1139
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %90, i32 noundef 1)
  %.sroa.091.0.copyload = load <2 x float>, ptr %11, align 8
  %1141 = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.090.0.copyload = load <2 x float>, ptr %1141, align 8
  %1142 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %1143 = getelementptr inbounds i8, ptr %77, i64 14620
  %1144 = load float, ptr %1143, align 4, !tbaa !108
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.091.0.copyload, <2 x float> %.sroa.090.0.copyload, i32 noundef %1142, i1 noundef zeroext true, float noundef %1144)
  br label %1145

1145:                                             ; preds = %1140, %1139
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #14
  %1146 = load float, ptr %11, align 8, !tbaa !151
  %1147 = getelementptr inbounds i8, ptr %11, i64 4
  %1148 = load float, ptr %1147, align 4, !tbaa !198
  %1149 = fadd float %.sroa.0504.2, %1146
  %1150 = fadd float %.sroa.11.0.copyload, %1148
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %28, float noundef %1146, float noundef %1148, float noundef %1149, float noundef %1150)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  br i1 %68, label %1151, label %1154

1151:                                             ; preds = %1145
  %1152 = getelementptr inbounds i8, ptr %.2912, i64 312
  %1153 = load i64, ptr %1152, align 8
  br label %1157

1154:                                             ; preds = %1145
  %1155 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %100)
  %1156 = bitcast <2 x float> %1155 to i64
  br label %1157

1157:                                             ; preds = %1154, %1151
  %storemerge = phi i64 [ %1153, %1151 ], [ %1156, %1154 ]
  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 %379, label %1158, label %1161

1158:                                             ; preds = %1157
  %1159 = getelementptr inbounds i8, ptr %.09151255, i64 48
  %1160 = load ptr, ptr %1159, align 8, !tbaa !128
  br label %1161

1161:                                             ; preds = %1157, %1158
  %1162 = phi ptr [ %1160, %1158 ], [ %.1906, %1157 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  store ptr null, ptr %31, align 8, !tbaa !42
  br i1 %389, label %1163, label %1166

1163:                                             ; preds = %1161
  %1164 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #15
  %1165 = getelementptr inbounds i8, ptr %1, i64 %1164
  store ptr %1165, ptr %31, align 8, !tbaa !42
  br label %1166

1166:                                             ; preds = %1163, %1161
  %1167 = phi ptr [ %1165, %1163 ], [ null, %1161 ]
  %.0947 = phi ptr [ %1, %1163 ], [ %1162, %1161 ]
  %1168 = trunc nuw i8 %.19291279 to i1
  br i1 %1168, label %1171, label %1169

1169:                                             ; preds = %1166
  %1170 = trunc nuw i8 %.29321277 to i1
  br i1 %1170, label %1171, label %1437

1171:                                             ; preds = %1169, %1166
  br i1 %345, label %1173, label %1172

1172:                                             ; preds = %1171
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.4, i32 noundef 4798, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1173:                                             ; preds = %1171
  br i1 %389, label %1179, label %1174

1174:                                             ; preds = %1173
  %1175 = getelementptr inbounds i8, ptr %.09151255, i64 16
  %1176 = load i32, ptr %1175, align 8, !tbaa !126
  %1177 = sext i32 %1176 to i64
  %1178 = getelementptr inbounds i8, ptr %.0947, i64 %1177
  store ptr %1178, ptr %31, align 8, !tbaa !42
  br label %1179

1179:                                             ; preds = %1174, %1173
  %.pre12381240 = phi ptr [ %1178, %1174 ], [ %1167, %1173 ]
  %1180 = getelementptr inbounds i8, ptr %.09151255, i64 32
  %1181 = load ptr, ptr %1180, align 8, !tbaa !129
  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 %1168, label %1182, label %1187

1182:                                             ; preds = %1179
  %1183 = getelementptr inbounds i8, ptr %.09151255, i64 84
  %1184 = load i32, ptr %1183, align 4, !tbaa !158
  %1185 = sext i32 %1184 to i64
  %1186 = getelementptr inbounds i16, ptr %1181, i64 %1185
  br label %1187

1187:                                             ; preds = %1182, %1179
  %.sroa.068.0 = phi ptr [ %1186, %1182 ], [ null, %1179 ]
  %.sroa.062.0 = phi i32 [ -1, %1182 ], [ %.sroa.062.0.copyload, %1179 ]
  %.0937 = phi i32 [ 1, %1182 ], [ 0, %1179 ]
  %1188 = trunc nuw i8 %.29321277 to i1
  br i1 %1188, label %1189, label %1198

1189:                                             ; preds = %1187
  %1190 = getelementptr inbounds i8, ptr %.09151255, i64 88
  %1191 = load i32, ptr %1190, align 4, !tbaa !159
  %1192 = getelementptr inbounds i8, ptr %.09151255, i64 92
  %1193 = load i32, ptr %1192, align 4, !tbaa !160
  %1194 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1191, i32 noundef %1193)
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds i16, ptr %1181, i64 %1195
  %1197 = add nuw nsw i32 %.0937, 1
  br label %1198

1198:                                             ; preds = %1189, %1187
  %.sroa.7.0 = phi ptr [ %1196, %1189 ], [ null, %1187 ]
  %.sroa.9.0 = phi i32 [ -1, %1189 ], [ %.sroa.9.0.copyload, %1187 ]
  %.1938 = phi i32 [ %1197, %1189 ], [ %.0937, %1187 ]
  %.lobit = lshr exact i32 %67, 26
  %1199 = add nuw nsw i32 %.1938, %.lobit
  br label %1200

1200:                                             ; preds = %1215, %1198
  %.sroa.9.1 = phi i32 [ %.sroa.9.0, %1198 ], [ %.sroa.9.2, %1215 ]
  %.sroa.062.1 = phi i32 [ %.sroa.062.0, %1198 ], [ %.sroa.062.3, %1215 ]
  %.2939 = phi i32 [ %1199, %1198 ], [ %.4941, %1215 ]
  %.0934 = phi i32 [ 0, %1198 ], [ %.1935, %1215 ]
  %.0933 = phi ptr [ %1181, %1198 ], [ %1216, %1215 ]
  %1201 = load i16, ptr %.0933, align 2, !tbaa !156
  switch i16 %1201, label %1215 [
    i16 0, label %1217
    i16 10, label %1202
  ]

1202:                                             ; preds = %1200
  %1203 = add nsw i32 %.0934, 1
  %1204 = icmp eq i32 %.sroa.062.1, -1
  br i1 %1204, label %1205, label %1209

1205:                                             ; preds = %1202
  %.not1048 = icmp ult ptr %.0933, %.sroa.068.0
  br i1 %.not1048, label %1209, label %1206

1206:                                             ; preds = %1205
  %1207 = add nsw i32 %.2939, -1
  %1208 = icmp slt i32 %.2939, 2
  br i1 %1208, label %1217, label %1209

1209:                                             ; preds = %1206, %1205, %1202
  %.sroa.062.2 = phi i32 [ %1203, %1206 ], [ -1, %1205 ], [ %.sroa.062.1, %1202 ]
  %.3940 = phi i32 [ %1207, %1206 ], [ %.2939, %1205 ], [ %.2939, %1202 ]
  %1210 = icmp eq i32 %.sroa.9.1, -1
  br i1 %1210, label %1211, label %1215

1211:                                             ; preds = %1209
  %.not1049 = icmp ult ptr %.0933, %.sroa.7.0
  br i1 %.not1049, label %1215, label %1212

1212:                                             ; preds = %1211
  %1213 = add nsw i32 %.3940, -1
  %1214 = icmp slt i32 %.3940, 2
  br i1 %1214, label %1217, label %1215

1215:                                             ; preds = %1200, %1212, %1211, %1209
  %.sroa.9.2 = phi i32 [ %1203, %1212 ], [ -1, %1211 ], [ %.sroa.9.1, %1209 ], [ %.sroa.9.1, %1200 ]
  %.sroa.062.3 = phi i32 [ %.sroa.062.2, %1212 ], [ %.sroa.062.2, %1211 ], [ %.sroa.062.2, %1209 ], [ %.sroa.062.1, %1200 ]
  %.4941 = phi i32 [ %1213, %1212 ], [ %.3940, %1211 ], [ %.3940, %1209 ], [ %.2939, %1200 ]
  %.1935 = phi i32 [ %1203, %1212 ], [ %1203, %1211 ], [ %1203, %1209 ], [ %.0934, %1200 ]
  %1216 = getelementptr inbounds i8, ptr %.0933, i64 2
  br label %1200, !llvm.loop !199

1217:                                             ; preds = %1212, %1206, %1200
  %.sroa.9.3 = phi i32 [ %.sroa.9.1, %1200 ], [ %.sroa.9.1, %1206 ], [ %1203, %1212 ]
  %.sroa.062.4 = phi i32 [ %.sroa.062.1, %1200 ], [ %1203, %1206 ], [ %.sroa.062.2, %1212 ]
  %.2936 = phi i32 [ %.0934, %1200 ], [ %1203, %1206 ], [ %1203, %1212 ]
  %1218 = add nsw i32 %.2936, 1
  %1219 = icmp eq i32 %.sroa.062.4, -1
  %spec.select1148 = select i1 %1219, i32 %1218, i32 %.sroa.062.4
  %1220 = icmp eq i32 %.sroa.9.3, -1
  %.sroa.9.4 = select i1 %1220, i32 %1218, i32 %.sroa.9.3
  %1221 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.068.0, ptr noundef %1181)
  %1222 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %77, ptr noundef %1221, ptr noundef %.sroa.068.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.044.0.vec.extract = extractelement <2 x float> %1222, i64 0
  store float %.sroa.044.0.vec.extract, ptr %32, align 4, !tbaa !200
  %1223 = sitofp i32 %spec.select1148 to float
  %1224 = getelementptr inbounds i8, ptr %77, i64 15696
  %1225 = load float, ptr %1224, align 8, !tbaa !43
  %1226 = fmul float %1225, %1223
  %1227 = getelementptr inbounds i8, ptr %32, i64 4
  store float %1226, ptr %1227, align 4, !tbaa !201
  %1228 = icmp sgt i32 %.sroa.9.4, -1
  br i1 %1228, label %1229, label %1236

1229:                                             ; preds = %1217
  %1230 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.7.0, ptr noundef %1181)
  %1231 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %77, ptr noundef %1230, ptr noundef %.sroa.7.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.043.0.vec.extract = extractelement <2 x float> %1231, i64 0
  store float %.sroa.043.0.vec.extract, ptr %33, align 4, !tbaa !200
  %1232 = uitofp nneg i32 %.sroa.9.4 to float
  %1233 = load float, ptr %1224, align 8, !tbaa !43
  %1234 = fmul float %1233, %1232
  %1235 = getelementptr inbounds i8, ptr %33, i64 4
  store float %1234, ptr %1235, align 4, !tbaa !201
  br label %1236

1236:                                             ; preds = %1229, %1217
  %1237 = phi float [ %1233, %1229 ], [ %1225, %1217 ]
  br i1 %68, label %1238, label %1242

1238:                                             ; preds = %1236
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  %1239 = sitofp i32 %1218 to float
  %1240 = fmul float %1237, %1239
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %.sroa.0504.2, float noundef %1240)
  %1241 = load i64, ptr %34, align 8
  store i64 %1241, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  br label %1242

1242:                                             ; preds = %1238, %1236
  br i1 %1168, label %1243, label %1303

1243:                                             ; preds = %1242
  %1244 = getelementptr inbounds i8, ptr %.09151255, i64 3716
  %1245 = load i8, ptr %1244, align 4, !tbaa !161, !range !40, !noundef !41
  %1246 = trunc nuw i8 %1245 to i1
  br i1 %1246, label %1247, label %1303

1247:                                             ; preds = %1243
  %1248 = and i32 %5, 4096
  %.not1050 = icmp eq i32 %1248, 0
  br i1 %.not1050, label %1249, label %1269

1249:                                             ; preds = %1247
  %1250 = fmul float %.sroa.0504.2, 2.500000e-01
  %1251 = load float, ptr %32, align 4, !tbaa !200
  %1252 = getelementptr inbounds i8, ptr %.09151255, i64 80
  %1253 = load float, ptr %1252, align 8, !tbaa !131
  %1254 = fcmp olt float %1251, %1253
  br i1 %1254, label %1255, label %1260

1255:                                             ; preds = %1249
  %1256 = fsub float %1251, %1250
  %1257 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1256)
  %1258 = fptosi float %1257 to i32
  %1259 = sitofp i32 %1258 to float
  store float %1259, ptr %1252, align 8, !tbaa !131
  br label %1271

1260:                                             ; preds = %1249
  %1261 = load float, ptr %100, align 4, !tbaa !152
  %1262 = fsub float %.sroa.0504.2, %1261
  %1263 = fsub float %1251, %1262
  %1264 = fcmp ult float %1263, %1253
  br i1 %1264, label %1271, label %1265

1265:                                             ; preds = %1260
  %1266 = fadd float %1250, %1263
  %1267 = fptosi float %1266 to i32
  %1268 = sitofp i32 %1267 to float
  store float %1268, ptr %1252, align 8, !tbaa !131
  br label %1271

1269:                                             ; preds = %1247
  %1270 = getelementptr inbounds i8, ptr %.09151255, i64 80
  store float 0.000000e+00, ptr %1270, align 8, !tbaa !131
  br label %1271

1271:                                             ; preds = %1255, %1265, %1260, %1269
  br i1 %68, label %1272, label %1302

1272:                                             ; preds = %1271
  %1273 = load float, ptr %1227, align 4, !tbaa !201
  %1274 = load float, ptr %1224, align 8, !tbaa !43
  %1275 = fsub float %1273, %1274
  %1276 = fcmp olt float %1275, %.19251281
  br i1 %1276, label %1277, label %1279

1277:                                             ; preds = %1272
  %1278 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1275)
  %.pre1233 = load float, ptr %101, align 4, !tbaa !102
  br label %1288

1279:                                             ; preds = %1272
  %1280 = load float, ptr %101, align 4, !tbaa !102
  %1281 = fneg float %1280
  %1282 = call float @llvm.fmuladd.f32(float %1281, float 2.000000e+00, float %.sroa.11.0.copyload)
  %1283 = fsub float %1273, %1282
  %1284 = fcmp ult float %1283, %.19251281
  br i1 %1284, label %1288, label %1285

1285:                                             ; preds = %1279
  %1286 = fsub float %1273, %.sroa.11.0.copyload
  %1287 = call float @llvm.fmuladd.f32(float %1280, float 2.000000e+00, float %1286)
  br label %1288

1288:                                             ; preds = %1279, %1285, %1277
  %1289 = phi float [ %.pre1233, %1277 ], [ %1280, %1285 ], [ %1280, %1279 ]
  %.2926 = phi float [ %1278, %1277 ], [ %1287, %1285 ], [ %.19251281, %1279 ]
  %1290 = getelementptr inbounds i8, ptr %30, i64 4
  %1291 = load float, ptr %1290, align 4, !tbaa !201
  %1292 = call float @llvm.fmuladd.f32(float %1289, float 2.000000e+00, float %1291)
  %1293 = fsub float %1292, %.sroa.11.0.copyload
  %1294 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1293, float noundef 0.000000e+00)
  %1295 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %.2926, float noundef 0.000000e+00, float noundef %1294)
  %1296 = getelementptr inbounds i8, ptr %.2912, i64 188
  %1297 = load float, ptr %1296, align 4, !tbaa !122
  %1298 = fsub float %1297, %1295
  %1299 = getelementptr inbounds i8, ptr %29, i64 4
  %1300 = load float, ptr %1299, align 4, !tbaa !201
  %1301 = fadd float %1300, %1298
  store float %1301, ptr %1299, align 4, !tbaa !201
  store float %1295, ptr %1296, align 4, !tbaa !122
  br label %1302

1302:                                             ; preds = %1288, %1271
  store i8 0, ptr %1244, align 4, !tbaa !161
  br label %1303

1303:                                             ; preds = %1302, %1243, %1242
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  %1304 = getelementptr inbounds i8, ptr %.09151255, i64 80
  %1305 = load float, ptr %1304, align 8, !tbaa !131
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %1305, float noundef 0.000000e+00)
  br i1 %1188, label %1306, label %1375

1306:                                             ; preds = %1303
  %1307 = getelementptr inbounds i8, ptr %.09151255, i64 88
  %1308 = load i32, ptr %1307, align 4, !tbaa !159
  %1309 = getelementptr inbounds i8, ptr %.09151255, i64 92
  %1310 = load i32, ptr %1309, align 4, !tbaa !160
  %1311 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1308, i32 noundef %1310)
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds i16, ptr %1181, i64 %1312
  %1314 = load i32, ptr %1307, align 4, !tbaa !159
  %1315 = load i32, ptr %1309, align 4, !tbaa !160
  %1316 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1314, i32 noundef %1315)
  %1317 = sext i32 %1316 to i64
  %1318 = getelementptr inbounds i16, ptr %1181, i64 %1317
  %1319 = select i1 %1168, float 1.000000e+00, float 0x3FE3333340000000
  %1320 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 49, float noundef %1319)
  %1321 = select i1 %68, float 0.000000e+00, float -1.000000e+00
  %1322 = select i1 %68, 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
  %1323 = 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> %1323, ptr %37, align 8
  %1324 = 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> %1324, 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 %1313, ptr %38, align 8, !tbaa !42
  %1325 = getelementptr inbounds i8, ptr %36, i64 4
  %1326 = icmp slt i32 %1311, %1316
  br i1 %1326, label %.lr.ph1225, label %._crit_edge1226

.lr.ph1225:                                       ; preds = %1306
  %1327 = extractelement <2 x float> %1324, i64 1
  %1328 = getelementptr inbounds i8, ptr %28, i64 12
  %1329 = getelementptr inbounds i8, ptr %28, i64 4
  %1330 = getelementptr inbounds i8, ptr %77, i64 15688
  %1331 = getelementptr inbounds i8, ptr %.2912, i64 728
  %1332 = getelementptr inbounds i8, ptr %39, i64 8
  %.pre1234 = load float, ptr %1224, align 8, !tbaa !43
  br label %1333

1333:                                             ; preds = %.lr.ph1225, %.loopexit
  %1334 = phi ptr [ %1313, %.lr.ph1225 ], [ %1367, %.loopexit ]
  %1335 = phi float [ %1327, %.lr.ph1225 ], [ %1373, %.loopexit ]
  %1336 = phi float [ %.pre1234, %.lr.ph1225 ], [ %1369, %.loopexit ]
  %1337 = load float, ptr %1328, align 4, !tbaa !202
  %1338 = fadd float %1337, %1336
  %1339 = fcmp ogt float %1335, %1338
  br i1 %1339, label %._crit_edge1226.loopexit, label %1340

1340:                                             ; preds = %1333
  %1341 = load float, ptr %1329, align 4, !tbaa !203
  %1342 = fcmp olt float %1335, %1341
  br i1 %1342, label %.preheader, label %1349

.preheader:                                       ; preds = %1340, %1345
  %1343 = phi ptr [ %1346, %1345 ], [ %1334, %1340 ]
  %1344 = icmp ult ptr %1343, %1318
  br i1 %1344, label %1345, label %.loopexit

1345:                                             ; preds = %.preheader
  %1346 = getelementptr inbounds i8, ptr %1343, i64 2
  store ptr %1346, ptr %38, align 8, !tbaa !42
  %1347 = load i16, ptr %1343, align 2, !tbaa !156
  %1348 = icmp eq i16 %1347, 10
  br i1 %1348, label %.loopexit, label %.preheader, !llvm.loop !204

1349:                                             ; preds = %1340
  %1350 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %77, ptr noundef %1334, ptr noundef nonnull %1318, ptr noundef nonnull %38, ptr noundef null, i1 noundef zeroext true)
  %.sroa.028.0.vec.extract = extractelement <2 x float> %1350, i64 0
  %1351 = fcmp ugt float %.sroa.028.0.vec.extract, 0.000000e+00
  br i1 %1351, label %1358, label %1352

1352:                                             ; preds = %1349
  %1353 = load ptr, ptr %1330, align 8, !tbaa !138
  %1354 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %1353, i16 noundef zeroext 32)
  %1355 = fmul float %1354, 5.000000e-01
  %1356 = fptosi float %1355 to i32
  %1357 = sitofp i32 %1356 to float
  br label %1358

1358:                                             ; preds = %1352, %1349
  %.sroa.028.0.vec.extract31.pre-phi = phi float [ %1357, %1352 ], [ %.sroa.028.0.vec.extract, %1349 ]
  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
  %1359 = load float, ptr %1224, align 8, !tbaa !43
  %1360 = fsub float %1321, %1359
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef 0.000000e+00, float noundef %1360)
  %1361 = 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> %1361, 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 %1322)
  %1362 = 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> %1362, 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)
  %1363 = 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 %1363, label %1364, label %1366

1364:                                             ; preds = %1358
  %1365 = load ptr, ptr %1331, align 8, !tbaa !205
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1365, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %1332, i32 noundef %1320, float noundef 0.000000e+00, i32 noundef 0)
  br label %1366

1366:                                             ; preds = %1364, %1358
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #14
  %.pre1235 = load float, ptr %1224, align 8, !tbaa !43
  %.pre1236 = load float, ptr %1325, align 4, !tbaa !201
  %.pre1237 = load ptr, ptr %38, align 8, !tbaa !42
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader, %1345, %1366
  %1367 = phi ptr [ %.pre1237, %1366 ], [ %1343, %.preheader ], [ %1346, %1345 ]
  %1368 = phi float [ %.pre1236, %1366 ], [ %1335, %1345 ], [ %1335, %.preheader ]
  %1369 = phi float [ %.pre1235, %1366 ], [ %1336, %1345 ], [ %1336, %.preheader ]
  %1370 = load float, ptr %29, align 8, !tbaa !200
  %1371 = load float, ptr %35, align 4, !tbaa !200
  %1372 = fsub float %1370, %1371
  store float %1372, ptr %36, align 8, !tbaa !200
  %1373 = fadd float %1369, %1368
  store float %1373, ptr %1325, align 4, !tbaa !201
  %1374 = icmp ult ptr %1367, %1318
  br i1 %1374, label %1333, label %._crit_edge1226.loopexit, !llvm.loop !206

._crit_edge1226.loopexit:                         ; preds = %1333, %.loopexit
  %.pre1238.pre.pre = load ptr, ptr %31, align 8, !tbaa !42
  br label %._crit_edge1226

._crit_edge1226:                                  ; preds = %._crit_edge1226.loopexit, %1306
  %.pre1238.pre = phi ptr [ %.pre1238.pre.pre, %._crit_edge1226.loopexit ], [ %.pre12381240, %1306 ]
  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 %1375

1375:                                             ; preds = %._crit_edge1226, %1303
  %.pre1238 = phi ptr [ %.pre1238.pre, %._crit_edge1226 ], [ %.pre12381240, %1303 ]
  br i1 %68, label %1381, label %1376

1376:                                             ; preds = %1375
  %1377 = ptrtoint ptr %.pre1238 to i64
  %1378 = ptrtoint ptr %.0947 to i64
  %1379 = sub i64 %1377, %1378
  %1380 = icmp slt i64 %1379, 2097152
  br i1 %1380, label %1381, label %1390

1381:                                             ; preds = %1376, %1375
  %. = phi ptr [ %28, %1376 ], [ null, %1375 ]
  %1382 = zext i1 %389 to i32
  %1383 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1382, float noundef 1.000000e+00)
  %1384 = getelementptr inbounds i8, ptr %.2912, i64 728
  %1385 = load ptr, ptr %1384, align 8, !tbaa !205
  %1386 = getelementptr inbounds i8, ptr %77, i64 15688
  %1387 = load ptr, ptr %1386, align 8, !tbaa !138
  %1388 = load float, ptr %1224, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  %1389 = 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> %1389, ptr %46, align 8
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1385, ptr noundef %1387, float noundef %1388, ptr noundef nonnull align 4 dereferenceable(8) %46, i32 noundef %1383, ptr noundef %.0947, ptr noundef %.pre1238, float noundef 0.000000e+00, ptr noundef %.)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  br label %1390

1390:                                             ; preds = %1381, %1376
  br i1 %1168, label %1391, label %1436

1391:                                             ; preds = %1390
  %1392 = getelementptr inbounds i8, ptr %77, i64 24
  %1393 = load float, ptr %1392, align 8, !tbaa !207
  %1394 = getelementptr inbounds i8, ptr %.09151255, i64 3712
  %1395 = load float, ptr %1394, align 8, !tbaa !208
  %1396 = fadd float %1393, %1395
  store float %1396, ptr %1394, align 8, !tbaa !208
  %1397 = getelementptr inbounds i8, ptr %77, i64 99
  %1398 = load i8, ptr %1397, align 1, !tbaa !209, !range !40, !noundef !41
  %1399 = trunc nuw i8 %1398 to i1
  %1400 = fcmp ugt float %1396, 0.000000e+00
  %or.cond1149 = select i1 %1399, i1 %1400, i1 false
  br i1 %or.cond1149, label %1401, label %1404

1401:                                             ; preds = %1391
  %1402 = call float @fmodf(float noundef %1396, float noundef 0x3FF3333340000000) #14
  %1403 = fcmp ole float %1402, 0x3FE99999A0000000
  br label %1404

1404:                                             ; preds = %1401, %1391
  %1405 = phi i1 [ true, %1391 ], [ %1403, %1401 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  %1406 = 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> %1406, ptr %48, align 8
  %1407 = 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> %1407, ptr %47, align 8
  %1408 = call <2 x float> @_ZL7ImFloorRK6ImVec2(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> %1408, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1408, i64 1
  %1409 = load float, ptr %1224, align 8, !tbaa !43
  %1410 = fsub float %.sroa.0.4.vec.extract, %1409
  %1411 = fadd float %1410, 5.000000e-01
  %1412 = fadd float %.sroa.0.0.vec.extract, 1.000000e+00
  %1413 = 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 %1411, float noundef %1412, float noundef %1413)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #14
  br i1 %1405, label %1414, label %.critedge13

1414:                                             ; preds = %1404
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %50, ptr noundef nonnull align 4 dereferenceable(16) %28)
  %1415 = 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 %1415, label %1416, label %1421

1416:                                             ; preds = %1414
  %1417 = getelementptr inbounds i8, ptr %.2912, i64 728
  %1418 = load ptr, ptr %1417, align 8, !tbaa !205
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  %1419 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %49)
  store <2 x float> %1419, ptr %51, align 8
  %1420 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1418, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %51, i32 noundef %1420, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  br label %1421

.critedge13:                                      ; preds = %1404
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #14
  br label %1421

1421:                                             ; preds = %.critedge13, %1416, %1414
  br i1 %80, label %1435, label %1422

1422:                                             ; preds = %1421
  %1423 = getelementptr inbounds i8, ptr %77, i64 23968
  store i8 1, ptr %1423, align 8, !tbaa !210
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  %1424 = fadd float %.sroa.0.0.vec.extract, -1.000000e+00
  %1425 = load float, ptr %1224, align 8, !tbaa !43
  %1426 = fsub float %.sroa.0.4.vec.extract, %1425
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef %1424, float noundef %1426)
  %1427 = getelementptr inbounds i8, ptr %77, i64 23972
  %1428 = load i64, ptr %52, align 8
  store i64 %1428, ptr %1427, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  %1429 = load float, ptr %1224, align 8, !tbaa !43
  %1430 = getelementptr inbounds i8, ptr %77, i64 23980
  store float %1429, ptr %1430, align 4, !tbaa !211
  %1431 = getelementptr inbounds i8, ptr %56, i64 56
  %1432 = load ptr, ptr %1431, align 8, !tbaa !212
  %1433 = load i32, ptr %1432, align 8, !tbaa !213
  %1434 = getelementptr inbounds i8, ptr %77, i64 24000
  store i32 %1433, ptr %1434, align 8, !tbaa !215
  br label %1435

1435:                                             ; preds = %1422, %1421
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #14
  br label %1436

1436:                                             ; preds = %1435, %1390
  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 %1472

1437:                                             ; preds = %1169
  br i1 %68, label %.critedge1151, label %1438

1438:                                             ; preds = %1437
  br i1 %389, label %1456, label %1439

1439:                                             ; preds = %1438
  %1440 = load i32, ptr %170, align 8, !tbaa !116
  %1441 = icmp eq i32 %1440, %90
  br i1 %1441, label %1442, label %1447

1442:                                             ; preds = %1439
  %1443 = getelementptr inbounds i8, ptr %.09151255, i64 16
  %1444 = load i32, ptr %1443, align 8, !tbaa !126
  %1445 = sext i32 %1444 to i64
  %1446 = getelementptr inbounds i8, ptr %.0947, i64 %1445
  store ptr %1446, ptr %31, align 8, !tbaa !42
  br label %1456

1447:                                             ; preds = %1439
  %1448 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.0947) #15
  %1449 = getelementptr inbounds i8, ptr %.0947, i64 %1448
  store ptr %1449, ptr %31, align 8, !tbaa !42
  br label %1456

.critedge1151:                                    ; preds = %1437
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  %1450 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %.0947, ptr noundef nonnull %31)
  %1451 = sitofp i32 %1450 to float
  %1452 = getelementptr inbounds i8, ptr %77, i64 15696
  %1453 = load float, ptr %1452, align 8, !tbaa !43
  %1454 = fmul float %1453, %1451
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef %.sroa.0504.2, float noundef %1454)
  %1455 = load i64, ptr %53, align 8
  store i64 %1455, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  br label %1462

1456:                                             ; preds = %1438, %1442, %1447
  %1457 = phi ptr [ %1167, %1438 ], [ %1446, %1442 ], [ %1449, %1447 ]
  %1458 = ptrtoint ptr %1457 to i64
  %1459 = ptrtoint ptr %.0947 to i64
  %1460 = sub i64 %1458, %1459
  %1461 = icmp slt i64 %1460, 2097152
  br i1 %1461, label %1462, label %1472

1462:                                             ; preds = %.critedge1151, %1456
  %.14 = phi ptr [ %28, %1456 ], [ null, %.critedge1151 ]
  %1463 = zext i1 %389 to i32
  %1464 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1463, float noundef 1.000000e+00)
  %1465 = getelementptr inbounds i8, ptr %.2912, i64 728
  %1466 = load ptr, ptr %1465, align 8, !tbaa !205
  %1467 = getelementptr inbounds i8, ptr %77, i64 15688
  %1468 = load ptr, ptr %1467, align 8, !tbaa !138
  %1469 = getelementptr inbounds i8, ptr %77, i64 15696
  %1470 = load float, ptr %1469, align 8, !tbaa !43
  %1471 = load ptr, ptr %31, align 8, !tbaa !42
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1466, ptr noundef %1468, float noundef %1470, ptr noundef nonnull align 4 dereferenceable(8) %29, i32 noundef %1464, ptr noundef %.0947, ptr noundef %1471, float noundef 0.000000e+00, ptr noundef %.14)
  br label %1472

1472:                                             ; preds = %1456, %1462, %1436
  br i1 %brmerge1063, label %1474, label %1473

1473:                                             ; preds = %1472
  call void @_ZN5ImGui7PopFontEv()
  br label %1474

1474:                                             ; preds = %1472, %1473
  br i1 %68, label %1475, label %1495

1475:                                             ; preds = %1474
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  %1476 = load float, ptr %30, align 8, !tbaa !200
  %1477 = getelementptr inbounds i8, ptr %30, i64 4
  %1478 = load float, ptr %1477, align 4, !tbaa !201
  %1479 = load float, ptr %101, align 4, !tbaa !102
  %1480 = fadd float %1478, %1479
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %54, float noundef %1476, float noundef %1480)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #14
  %1481 = getelementptr inbounds i8, ptr %77, i64 18596
  %1482 = load i32, ptr %1481, align 4, !tbaa !216
  %1483 = or i32 %1482, 1025
  store i32 %1483, ptr %1481, align 4, !tbaa !216
  call void @_ZN5ImGui8EndChildEv()
  %1484 = getelementptr inbounds i8, ptr %77, i64 18624
  %1485 = load i32, ptr %1484, align 8, !tbaa !105
  %1486 = and i32 %1485, 128
  %1487 = getelementptr inbounds i8, ptr %15, i64 8
  %1488 = load i32, ptr %1487, align 4, !tbaa !217
  %1489 = or i32 %1488, %1486
  store i32 %1489, ptr %1487, align 4, !tbaa !217
  call void @_ZN5ImGui8EndGroupEv()
  %1490 = load i32, ptr %160, align 8, !tbaa !218
  %1491 = icmp eq i32 %1490, 0
  br i1 %1491, label %1492, label %1495

1492:                                             ; preds = %1475
  store i32 %90, ptr %160, align 8, !tbaa !218
  %1493 = getelementptr inbounds i8, ptr %15, i64 4
  %1494 = load <2 x i32>, ptr %1493, align 4, !tbaa !107
  store <2 x i32> %1494, ptr %161, align 4, !tbaa !107
  br label %1495

1495:                                             ; preds = %1475, %1492, %1474
  %1496 = getelementptr inbounds i8, ptr %77, i64 24240
  %1497 = load i8, ptr %1496, align 8, !tbaa !219, !range !40, !noundef !41
  %1498 = trunc nuw i8 %1497 to i1
  %or.cond1157 = and i1 %brmerge1063, %1498
  br i1 %or.cond1157, label %1499, label %1501

1499:                                             ; preds = %1495
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.27)
  %1500 = load ptr, ptr %31, align 8, !tbaa !42
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef nonnull %29, ptr noundef %.0947, ptr noundef %1500)
  br label %1501

1501:                                             ; preds = %1499, %1495
  br i1 %106, label %1502, label %1512

1502:                                             ; preds = %1501
  %1503 = getelementptr inbounds i8, ptr %11, i64 8
  %1504 = load float, ptr %1503, align 8, !tbaa !220
  %1505 = getelementptr inbounds i8, ptr %77, i64 14636
  %1506 = load float, ptr %1505, align 4, !tbaa !103
  %1507 = fadd float %1504, %1506
  %1508 = load float, ptr %1147, align 4, !tbaa !198
  %1509 = load float, ptr %101, align 4, !tbaa !102
  %1510 = fadd float %1508, %1509
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef %1507, float noundef %1510)
  %1511 = load <2 x float>, ptr %55, align 8
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %1511, ptr noundef %0, ptr noundef null, i1 noundef zeroext true)
  br label %1512

1512:                                             ; preds = %1502, %1501
  %1513 = and i32 %5, 134217728
  %.not1051 = icmp eq i32 %1513, 0
  %or.cond1154 = and i1 %.not1051, %.4946
  br i1 %or.cond1154, label %1514, label %1515

1514:                                             ; preds = %1512
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %90)
  br label %1515

1515:                                             ; preds = %1514, %1512
  %1516 = and i32 %5, 32
  %.not1052 = icmp eq i32 %1516, 0
  %1517 = trunc nuw i8 %.29501276 to i1
  %.2 = select i1 %.not1052, i1 %.4946, i1 %1517
  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 = %135, %123, %154, %1515
  %.3 = phi i1 [ %.2, %1515 ], [ false, %154 ], [ false, %123 ], [ false, %135 ]
  call void @llvm.lifetime.end.p0(i64 60, 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 %1518

1518:                                             ; 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(60)) unnamed_addr #10 align 2

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

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

declare void @_ZN5ImGui8EndChildEv() local_unnamed_addr #4

; 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

declare noundef zeroext i1 @_ZN5ImGui18SetShortcutRoutingEiji(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

; 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 @_ZL24InputTextFilterCharacterPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(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 240}
!6 = !{!"_ZTS11ImGuiWindow", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !11, i64 28, !7, i64 56, !10, i64 64, !13, i64 68, !10, i64 76, !13, i64 80, !13, i64 88, !13, i64 96, !13, i64 104, !13, i64 112, !13, i64 120, !13, i64 128, !14, i64 136, !14, i64 140, !14, i64 144, !14, i64 148, !14, i64 152, !14, i64 156, !14, i64 160, !14, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !13, i64 184, !13, i64 192, !13, i64 200, !13, i64 208, !13, i64 216, !13, i64 224, !12, i64 232, !12, i64 233, !12, i64 234, !12, i64 235, !12, i64 236, !12, i64 237, !12, i64 238, !12, i64 239, !12, i64 240, !12, i64 241, !12, i64 242, !12, i64 243, !12, i64 244, !12, i64 245, !8, i64 246, !15, i64 248, !15, i64 250, !15, i64 252, !15, i64 254, !15, i64 256, !10, i64 260, !8, i64 264, !8, i64 265, !8, i64 266, !12, i64 267, !10, i64 268, !8, i64 272, !8, i64 273, !8, i64 274, !8, i64 275, !10, i64 276, !10, i64 277, !10, i64 278, !10, i64 279, !13, i64 280, !13, i64 288, !16, i64 296, !17, i64 312, !23, i64 544, !23, i64 560, !23, i64 576, !23, i64 592, !23, i64 608, !23, i64 624, !23, i64 640, !24, i64 656, !24, i64 660, !10, i64 664, !10, i64 668, !14, i64 672, !14, i64 676, !25, i64 680, !27, i64 696, !14, i64 712, !14, i64 716, !10, i64 720, !7, i64 728, !28, i64 736, !7, i64 936, !7, i64 944, !7, i64 952, !7, i64 960, !7, i64 968, !7, i64 976, !7, i64 984, !7, i64 992, !8, i64 1000, !8, i64 1008, !8, i64 1040, !10, i64 1056, !10, i64 1060, !10, i64 1064, !12, i64 1068, !12, i64 1069, !12, i64 1069, !12, i64 1069, !12, i64 1069, !15, i64 1070, !39, i64 1072, !7, i64 1096, !7, i64 1104, !10, i64 1112, !10, i64 1116, !23, i64 1120}
!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, !12, i64 24, !12, i64 25}
!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 15696}
!44 = !{!"_ZTS12ImGuiContext", !12, i64 0, !12, i64 1, !45, i64 8, !47, i64 14336, !50, i64 14552, !10, i64 15676, !10, i64 15680, !7, i64 15688, !14, i64 15696, !14, i64 15700, !51, i64 15704, !52, i64 16232, !10, i64 16240, !10, i64 16244, !10, i64 16248, !10, i64 16252, !12, i64 16256, !12, i64 16257, !12, i64 16258, !12, i64 16259, !12, i64 16260, !7, i64 16264, !53, i64 16272, !53, i64 16288, !46, i64 16304, !10, i64 16308, !21, i64 16312, !21, i64 16328, !21, i64 16344, !54, i64 16360, !25, i64 16376, !10, i64 16392, !13, i64 16396, !7, i64 16408, !7, i64 16416, !7, i64 16424, !7, i64 16432, !7, i64 16440, !13, i64 16448, !10, i64 16456, !14, i64 16460, !13, i64 16464, !13, i64 16472, !10, i64 16480, !10, i64 16484, !10, i64 16488, !12, i64 16492, !12, i64 16493, !14, i64 16496, !14, i64 16500, !10, i64 16504, !10, i64 16508, !14, i64 16512, !12, i64 16516, !12, i64 16517, !12, i64 16518, !12, i64 16519, !12, i64 16520, !12, i64 16521, !13, i64 16524, !7, i64 16536, !55, i64 16544, !10, i64 16548, !10, i64 16552, !12, i64 16556, !12, i64 16557, !7, i64 16560, !10, i64 16568, !14, i64 16572, !8, i64 16576, !56, i64 18256, !10, i64 18568, !12, i64 18572, !10, i64 18576, !10, i64 18580, !10, i64 18584, !10, i64 18588, !58, i64 18592, !59, i64 18616, !60, i64 18680, !61, i64 18824, !62, i64 18840, !63, i64 18856, !16, i64 18872, !64, i64 18888, !65, i64 18904, !66, i64 18920, !66, i64 18936, !10, i64 18952, !67, i64 18960, !14, i64 18976, !7, i64 18984, !7, i64 18992, !7, i64 19000, !10, i64 19008, !68, i64 19016, !10, i64 19064, !10, i64 19068, !10, i64 19072, !7, i64 19080, !10, i64 19088, !10, i64 19092, !10, i64 19096, !10, i64 19100, !10, i64 19104, !10, i64 19108, !10, i64 19112, !10, i64 19116, !10, i64 19120, !10, i64 19124, !10, i64 19128, !55, i64 19132, !19, i64 19136, !12, i64 19140, !12, i64 19141, !12, i64 19142, !12, i64 19143, !12, i64 19144, !12, i64 19145, !12, i64 19146, !69, i64 19152, !12, i64 19200, !12, i64 19201, !12, i64 19202, !10, i64 19204, !10, i64 19208, !10, i64 19212, !10, i64 19216, !10, i64 19220, !10, i64 19224, !23, i64 19228, !23, i64 19244, !10, i64 19260, !10, i64 19264, !10, i64 19268, !69, i64 19272, !69, i64 19320, !69, i64 19368, !69, i64 19416, !10, i64 19464, !10, i64 19468, !7, i64 19472, !7, i64 19480, !7, i64 19488, !14, i64 19496, !14, i64 19500, !12, i64 19504, !13, i64 19508, !13, i64 19516, !14, i64 19524, !12, i64 19528, !12, i64 19529, !12, i64 19530, !10, i64 19532, !10, i64 19536, !10, i64 19540, !70, i64 19544, !23, i64 19608, !10, i64 19624, !10, i64 19628, !14, i64 19632, !10, i64 19636, !10, i64 19640, !10, i64 19644, !10, i64 19648, !71, i64 19656, !8, i64 19672, !10, i64 19688, !72, i64 19696, !7, i64 19712, !10, i64 19720, !73, i64 19728, !74, i64 19744, !22, i64 19784, !38, i64 19800, !7, i64 19816, !76, i64 19824, !78, i64 19864, !79, i64 19880, !10, i64 19896, !10, i64 19900, !14, i64 19904, !14, i64 19908, !10, i64 19912, !10, i64 19916, !10, i64 19920, !14, i64 19924, !13, i64 19928, !80, i64 19936, !84, i64 23664, !85, i64 23688, !10, i64 23808, !10, i64 23812, !10, i64 23816, !10, i64 23820, !14, i64 23824, !14, i64 23828, !10, i64 23832, !36, i64 23836, !87, i64 23852, !14, i64 23900, !14, i64 23904, !12, i64 23908, !12, i64 23909, !14, i64 23912, !14, i64 23916, !14, i64 23920, !14, i64 23924, !15, i64 23928, !15, i64 23930, !81, i64 23936, !16, i64 23952, !88, i64 23968, !88, i64 23984, !10, i64 24000, !8, i64 24004, !89, i64 24008, !7, i64 24064, !12, i64 24072, !14, i64 24076, !92, i64 24080, !93, i64 24096, !94, i64 24112, !95, i64 24128, !96, i64 24144, !10, i64 24160, !8, i64 24168, !12, i64 24240, !97, i64 24244, !7, i64 24248, !92, i64 24256, !7, i64 24272, !7, i64 24280, !14, i64 24288, !12, i64 24292, !10, i64 24296, !10, i64 24300, !10, i64 24304, !10, i64 24308, !92, i64 24312, !98, i64 24328, !8, i64 24352, !8, i64 24353, !8, i64 24354, !12, i64 24355, !8, i64 24356, !10, i64 24360, !99, i64 24364, !100, i64 24384, !7, i64 24424, !8, i64 24432, !10, i64 24672, !10, i64 24676, !14, i64 24680, !10, i64 24684, !10, i64 24688, !10, i64 24692, !81, i64 24696}
!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, !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, !7, i64 200, !12, i64 208, !12, i64 209, !12, i64 210, !12, i64 211, !12, i64 212, !12, i64 213, !12, i64 214, !14, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !13, i64 240, !8, i64 248, !8, i64 2856, !8, i64 3508, !7, i64 3576, !13, i64 3584, !8, i64 3592, !14, i64 3600, !14, i64 3604, !46, i64 3608, !10, i64 3612, !12, i64 3616, !12, i64 3617, !12, i64 3618, !12, i64 3619, !10, i64 3620, !8, i64 3624, !12, i64 14056, !13, i64 14060, !8, i64 14068, !8, i64 14112, !8, i64 14152, !8, i64 14157, !8, i64 14162, !8, i64 14172, !8, i64 14182, !8, i64 14187, !8, i64 14192, !12, i64 14197, !8, i64 14200, !8, i64 14220, !8, i64 14240, !8, i64 14280, !14, i64 14300, !12, i64 14304, !12, i64 14305, !8, i64 14306, !12, i64 14307, !15, i64 14308, !30, i64 14312}
!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, !10, i64 148, !13, i64 152, !13, i64 160, !14, i64 168, !13, i64 172, !13, i64 180, !13, i64 188, !13, i64 196, !14, i64 204, !14, i64 208, !12, i64 212, !12, i64 213, !12, i64 214, !14, i64 216, !14, i64 220, !8, i64 224, !14, i64 1104, !14, i64 1108, !14, i64 1112, !10, i64 1116, !10, i64 1120}
!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 = !{!"_ZTS20ImGuiKeyRoutingTable", !8, i64 0, !57, i64 280, !57, i64 296}
!57 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!58 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !14, i64 8, !10, i64 12, !10, i64 16, !12, i64 20}
!59 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !23, i64 12, !23, i64 28, !23, i64 44}
!60 = !{!"_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, !12, i64 60, !12, i64 61, !23, i64 64, !7, i64 80, !7, i64 88, !14, i64 96, !10, i64 100, !10, i64 104, !11, i64 108, !13, i64 136}
!61 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !7, i64 8}
!62 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !7, i64 8}
!63 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !7, i64 8}
!64 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !7, i64 8}
!65 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!66 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!67 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !7, i64 8}
!68 = !{!"_ZTS20ImGuiPlatformMonitor", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !14, i64 32, !7, i64 40}
!69 = !{!"_ZTS16ImGuiNavItemData", !7, i64 0, !10, i64 8, !10, i64 12, !23, i64 16, !10, i64 32, !14, i64 36, !14, i64 40, !14, i64 44}
!70 = !{!"_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}
!71 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !7, i64 8}
!72 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!73 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!74 = !{!"_ZTS6ImPoolI10ImGuiTableE", !75, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!75 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !7, i64 8}
!76 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !77, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!77 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !7, i64 8}
!78 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !7, i64 8}
!79 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !7, i64 8}
!80 = !{!"_ZTS19ImGuiInputTextState", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !30, i64 24, !81, i64 40, !81, i64 56, !12, i64 72, !10, i64 76, !14, i64 80, !82, i64 84, !14, i64 3712, !12, i64 3716, !12, i64 3717, !12, i64 3718, !10, i64 3720}
!81 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !7, i64 8}
!82 = !{!"_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, !83, i64 32}
!83 = !{!"_ZTSN5ImStb12StbUndoStateE", !8, i64 0, !8, i64 1584, !15, i64 3582, !15, i64 3584, !10, i64 3588, !10, i64 3592}
!84 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !81, i64 8}
!85 = !{!"_ZTS6ImFont", !22, i64 0, !14, i64 16, !14, i64 20, !30, i64 24, !86, 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}
!86 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !7, i64 8}
!87 = !{!"_ZTS21ImGuiComboPreviewData", !23, i64 0, !13, i64 16, !13, i64 24, !13, i64 32, !14, i64 40, !10, i64 44}
!88 = !{!"_ZTS20ImGuiPlatformImeData", !12, i64 0, !13, i64 4, !14, i64 12}
!89 = !{!"_ZTS16ImGuiDockContext", !25, i64 0, !90, i64 16, !91, i64 32, !12, i64 48}
!90 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !10, i64 0, !10, i64 4, !7, i64 8}
!91 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !10, i64 0, !10, i64 4, !7, i64 8}
!92 = !{!"_ZTS15ImGuiTextBuffer", !81, i64 0}
!93 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !7, i64 8}
!94 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !81, i64 0}
!95 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !81, i64 0}
!96 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !7, i64 8}
!97 = !{!"_ZTS12ImGuiLogType", !8, i64 0}
!98 = !{!"_ZTS14ImGuiTextIndex", !64, i64 0, !10, i64 16}
!99 = !{!"_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, !10, i64 12, !10, i64 16}
!100 = !{!"_ZTS14ImGuiStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !101, i64 16, !12, i64 32, !14, i64 36}
!101 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !7, i64 8}
!102 = !{!50, !14, i64 64}
!103 = !{!50, !14, i64 84}
!104 = !{!14, !14, i64 0}
!105 = !{!44, !10, i64 18624}
!106 = !{i64 0, i64 4, !107, i64 4, i64 4, !107, i64 8, i64 4, !107, i64 12, i64 4, !104, i64 16, i64 4, !104, i64 20, i64 4, !104, i64 24, i64 4, !104, i64 28, i64 4, !104, i64 32, i64 4, !104, i64 36, i64 4, !104, i64 40, i64 4, !104, i64 44, i64 4, !104, i64 48, i64 4, !104, i64 52, i64 4, !104, i64 56, i64 4, !104}
!107 = !{!10, !10, i64 0}
!108 = !{!50, !14, i64 68}
!109 = !{!50, !14, i64 72}
!110 = !{!44, !7, i64 16408}
!111 = !{!6, !19, i64 400}
!112 = !{!6, !15, i64 406}
!113 = !{!6, !14, i64 224}
!114 = !{!44, !10, i64 18620}
!115 = !{!44, !10, i64 19920}
!116 = !{!44, !10, i64 16504}
!117 = !{!44, !10, i64 19096}
!118 = !{!44, !10, i64 19108}
!119 = !{!44, !55, i64 19132}
!120 = !{!12, !12, i64 0}
!121 = !{!44, !10, i64 16552}
!122 = !{!6, !14, i64 188}
!123 = !{!80, !8, i64 107}
!124 = !{!80, !10, i64 8}
!125 = !{!80, !7, i64 64}
!126 = !{!80, !10, i64 16}
!127 = !{!80, !12, i64 72}
!128 = !{!80, !7, i64 48}
!129 = !{!80, !7, i64 32}
!130 = !{!80, !10, i64 12}
!131 = !{!80, !14, i64 80}
!132 = !{!45, !12, i64 3616}
!133 = !{!80, !8, i64 96}
!134 = !{!45, !12, i64 89}
!135 = !{!44, !10, i64 18568}
!136 = !{!80, !10, i64 24}
!137 = !{!8, !8, i64 0}
!138 = !{!44, !7, i64 15688}
!139 = !{!85, !14, i64 20}
!140 = !{!85, !14, i64 108}
!141 = !{!85, !7, i64 64}
!142 = !{!85, !7, i64 56}
!143 = !{!144, !14, i64 4}
!144 = !{!"_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}
!145 = !{!85, !14, i64 16}
!146 = !{!80, !12, i64 3718}
!147 = !{!80, !10, i64 76}
!148 = !{!80, !10, i64 3720}
!149 = !{!44, !12, i64 16517}
!150 = !{!45, !14, i64 3584}
!151 = !{!23, !14, i64 0}
!152 = !{!50, !14, i64 60}
!153 = !{!45, !14, i64 3588}
!154 = !{!6, !14, i64 316}
!155 = !{!80, !12, i64 3717}
!156 = !{!15, !15, i64 0}
!157 = !{!45, !12, i64 3617}
!158 = !{!80, !10, i64 84}
!159 = !{!80, !10, i64 88}
!160 = !{!80, !10, i64 92}
!161 = !{!80, !12, i64 3716}
!162 = !{!45, !14, i64 240}
!163 = !{!45, !14, i64 244}
!164 = !{!45, !12, i64 3618}
!165 = !{!45, !12, i64 3619}
!166 = !{!45, !10, i64 14312}
!167 = distinct !{!167, !168}
!168 = !{!"llvm.loop.mustprogress"}
!169 = !{!44, !12, i64 16516}
!170 = !{!80, !10, i64 100}
!171 = !{!45, !10, i64 0}
!172 = !{!45, !10, i64 4}
!173 = !{!45, !12, i64 92}
!174 = !{!45, !7, i64 176}
!175 = distinct !{!175, !168}
!176 = !{!80, !10, i64 56}
!177 = !{!30, !7, i64 8}
!178 = !{!30, !10, i64 0}
!179 = !{!80, !10, i64 40}
!180 = !{!181, !7, i64 0}
!181 = !{!"_ZTS26ImGuiInputTextCallbackData", !7, i64 0, !10, i64 8, !10, i64 12, !7, i64 16, !15, i64 24, !182, i64 28, !7, i64 32, !10, i64 40, !10, i64 44, !12, i64 48, !10, i64 52, !10, i64 56, !10, i64 60}
!182 = !{!"_ZTS8ImGuiKey", !8, i64 0}
!183 = !{!181, !10, i64 8}
!184 = !{!181, !10, i64 12}
!185 = !{!181, !7, i64 16}
!186 = !{!181, !182, i64 28}
!187 = !{!181, !7, i64 32}
!188 = !{!181, !10, i64 40}
!189 = !{!181, !10, i64 44}
!190 = !{!181, !12, i64 48}
!191 = !{!181, !10, i64 52}
!192 = !{!181, !10, i64 56}
!193 = !{!181, !10, i64 60}
!194 = !{!44, !10, i64 23664}
!195 = !{!44, !7, i64 23680}
!196 = !{!44, !10, i64 23672}
!197 = !{!44, !10, i64 24692}
!198 = !{!23, !14, i64 4}
!199 = distinct !{!199, !168}
!200 = !{!13, !14, i64 0}
!201 = !{!13, !14, i64 4}
!202 = !{!36, !14, i64 12}
!203 = !{!36, !14, i64 4}
!204 = distinct !{!204, !168}
!205 = !{!6, !7, i64 728}
!206 = distinct !{!206, !168}
!207 = !{!45, !14, i64 16}
!208 = !{!80, !14, i64 3712}
!209 = !{!44, !12, i64 99}
!210 = !{!44, !12, i64 23968}
!211 = !{!44, !14, i64 23980}
!212 = !{!6, !7, i64 56}
!213 = !{!214, !10, i64 0}
!214 = !{!"_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}
!215 = !{!44, !10, i64 24000}
!216 = !{!44, !10, i64 18596}
!217 = !{!59, !10, i64 8}
!218 = !{!44, !10, i64 18616}
!219 = !{!44, !12, i64 24240}
!220 = !{!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