; LLVM IR from khushmmehta/Scorch-V :: src/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, i32, %struct.ImGuiWindowClass, ptr, i32, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i32, i8, i8, i8, i32, i8, i8, i8, i8, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVector, %struct.ImGuiWindowTempData, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImRect, %struct.ImVec2ih, %struct.ImVec2ih, i32, i32, float, float, %struct.ImGuiStorage, %struct.ImVector.3, float, float, i32, ptr, %struct.ImDrawList, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [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, 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, [154 x %struct.ImGuiKeyOwnerData], %struct.ImGuiKeyRoutingTable, i32, i8, i32, i32, i32, i32, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %struct.ImGuiNextWindowData, i8, %struct.ImVector.16, %struct.ImVector.17, %struct.ImVector.18, %struct.ImVector, %struct.ImVector.19, %struct.ImVector.20, %struct.ImVector.21, %struct.ImVector.21, %struct.ImVector.22, i32, %struct.ImVector.23, float, ptr, ptr, ptr, i32, %struct.ImGuiPlatformMonitor, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i8, i8, i8, i8, i8, i8, i8, i8, %struct.ImGuiNavItemData, i8, i8, i8, i32, i32, i32, i32, i32, i32, %struct.ImRect, %struct.ImRect, i32, i32, i32, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, %struct.ImGuiNavItemData, i32, i32, ptr, ptr, ptr, float, float, i8, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, i32, i32, i32, %struct.ImGuiPayload, %struct.ImRect, i32, i32, float, i32, i32, i32, i32, %struct.ImVector.24, [16 x i8], i32, %struct.ImVector.25, ptr, i32, %struct.ImVector.26, %struct.ImPool, %struct.ImVector.1, %struct.ImVector.10, ptr, %struct.ImPool.28, %struct.ImVector.30, %struct.ImVector.31, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, float, float, i8, i8, float, float, float, float, i16, i16, i16, %struct.ImVector.32, %struct.ImVector, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i32, [4 x i8], %struct.ImGuiDockContext, ptr, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.36, %struct.ImChunkStream, %struct.ImChunkStream.37, %struct.ImVector.38, i32, [11 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.ImGuiIDStackTool, %struct.ImGuiDebugAllocInfo, ptr, [60 x float], i32, i32, float, i32, i32, i32, %struct.ImVector.32 }
%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, i16, i8, i8, i8, i8, i8, i8, i8, float, i32, i32, i32, i32, %struct.ImVec2, [666 x i32], [666 x i8], [16 x float], ptr, ptr, %struct.ImVec2, [5 x i8], float, float, i32, i32, i8, i8, i8, i8, i32, [666 x %struct.ImGuiKeyData], i8, %struct.ImVec2, [5 x %struct.ImVec2], [5 x double], [5 x i8], [5 x i8], [5 x i16], [5 x i16], [5 x i8], [5 x i8], [5 x i8], i8, [5 x float], [5 x float], [5 x %struct.ImVec2], [5 x float], float, i8, i8, i8, i8, i16, %struct.ImVector.5 }
%struct.ImGuiKeyData = type { i8, float, float, float }
%struct.ImGuiPlatformIO = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.ImVector.11, %struct.ImVector.12 }
%struct.ImVector.11 = type { i32, i32, ptr }
%struct.ImVector.12 = type { i32, i32, ptr }
%struct.ImGuiStyle = type { float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, i32, float, float, float, float, %struct.ImVec2, float, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, float, float, float, float, float, float, float, float, float, float, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, float, i8, i8, i8, float, float, [55 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, %struct.ImVec4, i32, %struct.ImVector.9, [48 x %struct.ImVec2], float, [64 x i8], ptr }
%struct.ImVector.13 = type { i32, i32, ptr }
%struct.ImVector.14 = type { i32, i32, ptr }
%struct.ImGuiKeyOwnerData = type <{ i32, i32, i8, i8, [2 x i8] }>
%struct.ImGuiKeyRoutingTable = type { [154 x i16], %struct.ImVector.15, %struct.ImVector.15 }
%struct.ImVector.15 = type { i32, i32, ptr }
%struct.ImGuiNextItemData = type <{ i32, i32, float, [4 x i8], i64, i32, i8, [3 x i8] }>
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, 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.ImVector.23 = 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, [4 x i8], i64, float, float, float, [4 x i8] }>
%struct.ImGuiPayload = type <{ ptr, i32, i32, i32, i32, [33 x i8], i8, i8, [5 x i8] }>
%struct.ImVector.24 = type { i32, i32, ptr }
%struct.ImVector.25 = type { i32, i32, ptr }
%struct.ImVector.26 = type { i32, i32, ptr }
%struct.ImPool = type { %struct.ImVector.27, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.27 = type { i32, i32, ptr }
%struct.ImPool.28 = type { %struct.ImVector.29, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.29 = type { i32, i32, ptr }
%struct.ImVector.30 = type { i32, i32, ptr }
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type <{ ptr, i32, i32, i32, [4 x i8], %struct.ImVector.5, %struct.ImVector.32, %struct.ImVector.32, 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.32 }
%struct.ImFont = type <{ %struct.ImVector.1, float, float, %struct.ImVector.5, %struct.ImVector.33, 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.33 = type { i32, i32, ptr }
%struct.ImGuiComboPreviewData = type { %struct.ImRect, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i32 }
%struct.ImGuiTypingSelectState = type <{ %struct.ImGuiTypingSelectRequest, [64 x i8], i32, i32, float, i8, [3 x i8] }>
%struct.ImGuiTypingSelectRequest = type { i32, i32, ptr, i8, i8, i8 }
%struct.ImGuiPlatformImeData = type { i8, %struct.ImVec2, float }
%struct.ImGuiDockContext = type <{ %struct.ImGuiStorage, %struct.ImVector.34, %struct.ImVector.35, i8, [7 x i8] }>
%struct.ImVector.34 = type { i32, i32, ptr }
%struct.ImVector.35 = type { i32, i32, ptr }
%struct.ImVector.36 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.32 }
%struct.ImChunkStream.37 = type { %struct.ImVector.32 }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.32 }
%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.ImGuiIDStackTool = type { i32, i32, i32, %struct.ImVector.39, i8, float }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImVector.32 = 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 [89 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv = external hidden unnamed_addr constant [134 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [34 x i8], align 1
@__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no = external hidden unnamed_addr constant [2 x i32], align 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) #4

declare noundef float @_ZN5ImGui13CalcItemWidthEv() #4

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

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

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

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

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

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

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

declare void @_ZN5ImGui13ClearActiveIDEv() #4

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef 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 i32, align 4
  %44 = alloca %struct.ImVec2, align 4
  %45 = alloca i8, align 1
  %46 = alloca %struct.ImVec2, align 4
  %47 = alloca i8, align 1
  %48 = alloca ptr, align 8
  %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 i8, align 1
  %56 = alloca float, align 4
  %57 = alloca i8, align 1
  %58 = alloca i8, align 1
  %59 = alloca i8, align 1
  %60 = alloca i32, align 4
  %61 = alloca i8, align 1
  %62 = alloca ptr, align 8
  %63 = alloca i8, align 1
  %64 = alloca i8, align 1
  %65 = alloca i8, align 1
  %66 = alloca i8, align 1
  %67 = alloca i8, align 1
  %68 = alloca ptr, align 8
  %69 = alloca i8, align 1
  %70 = alloca i8, align 1
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca i32, align 4
  %74 = alloca float, align 4
  %75 = alloca float, align 4
  %76 = alloca i32, align 4
  %77 = alloca i8, align 1
  %78 = alloca i8, align 1
  %79 = alloca i32, align 4
  %80 = alloca i8, align 1
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i8, align 1
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i8, align 1
  %87 = alloca i8, align 1
  %88 = alloca i32, align 4
  %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 i8, align 1
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca ptr, align 8
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca ptr, align 8
  %108 = alloca i32, align 4
  %109 = alloca ptr, align 8
  %110 = alloca i32, align 4
  %111 = alloca ptr, align 8
  %112 = alloca i32, align 4
  %113 = alloca i16, align 2
  %114 = alloca %struct.ImVector.5, align 8
  %115 = alloca ptr, align 8
  %116 = alloca i32, align 4
  %117 = alloca i8, align 1
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %121 = alloca ptr, align 8
  %122 = alloca ptr, align 8
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i8, align 1
  %127 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %128 = alloca %struct.ImVec2, align 4
  %129 = alloca %struct.ImVec2, align 4
  %130 = alloca %struct.ImVec4, align 4
  %131 = alloca %struct.ImVec2, align 4
  %132 = alloca %struct.ImVec2, align 4
  %133 = alloca i32, align 4
  %134 = alloca ptr, align 8
  %135 = alloca ptr, align 8
  %136 = alloca ptr, align 8
  %137 = alloca %struct.ImVec2, align 4
  %138 = alloca %struct.ImVec2, align 4
  %139 = alloca [2 x ptr], align 16
  %140 = alloca [2 x i32], align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca ptr, align 8
  %144 = alloca %struct.ImVec2, align 4
  %145 = alloca %struct.ImVec2, align 4
  %146 = alloca %struct.ImVec2, align 4
  %147 = alloca float, align 4
  %148 = alloca float, align 4
  %149 = alloca float, align 4
  %150 = alloca %struct.ImVec2, align 4
  %151 = alloca ptr, align 8
  %152 = alloca ptr, align 8
  %153 = alloca i32, align 4
  %154 = alloca float, align 4
  %155 = alloca float, align 4
  %156 = alloca %struct.ImVec2, align 4
  %157 = alloca %struct.ImVec2, align 4
  %158 = alloca ptr, align 8
  %159 = alloca %struct.ImVec2, align 4
  %160 = alloca %struct.ImRect, align 4
  %161 = alloca %struct.ImVec2, align 4
  %162 = alloca %struct.ImVec2, align 4
  %163 = alloca %struct.ImVec2, align 4
  %164 = alloca %struct.ImVec2, align 4
  %165 = alloca %struct.ImRect, align 4
  %166 = alloca %struct.ImRect, align 4
  %167 = alloca i32, align 4
  %168 = alloca %struct.ImVec2, align 4
  %169 = alloca i8, align 1
  %170 = alloca %struct.ImVec2, align 4
  %171 = alloca %struct.ImVec2, align 4
  %172 = alloca %struct.ImVec2, align 4
  %173 = alloca %struct.ImRect, align 4
  %174 = alloca %struct.ImRect, align 4
  %175 = alloca %struct.ImVec2, align 4
  %176 = alloca %struct.ImVec2, align 4
  %177 = alloca %struct.ImVec2, align 4
  %178 = alloca i32, align 4
  %179 = alloca %struct.ImVec2, align 4
  %180 = 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
  %181 = call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  store ptr %181, ptr %18, align 8, !tbaa !5
  %182 = load ptr, ptr %18, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.ImGuiWindow, ptr %182, i32 0, i32 44
  %184 = load i8, ptr %183, align 8, !tbaa !11, !range !42, !noundef !43
  %185 = trunc i8 %184 to i1
  br i1 %185, label %186, label %187

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

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

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

193:                                              ; preds = %190, %187
  %194 = phi i1 [ false, %187 ], [ %192, %190 ]
  br i1 %194, label %195, label %196

195:                                              ; preds = %193
  br label %198

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

197:                                              ; No predecessors!
  br label %198

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

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

206:                                              ; preds = %202, %198
  %207 = phi i1 [ false, %198 ], [ %205, %202 ]
  %208 = xor i1 %207, true
  br i1 %208, label %209, label %210

209:                                              ; preds = %206
  br label %212

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

211:                                              ; No predecessors!
  br label %212

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

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

220:                                              ; preds = %216, %212
  %221 = phi i1 [ false, %212 ], [ %219, %216 ]
  %222 = xor i1 %221, true
  br i1 %222, label %223, label %224

223:                                              ; preds = %220
  br label %226

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

225:                                              ; No predecessors!
  br label %226

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

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

257:                                              ; preds = %254
  br label %260

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

259:                                              ; No predecessors!
  br label %260

260:                                              ; preds = %259, %257
  br label %261

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

264:                                              ; preds = %261
  call void @_ZN5ImGui10BeginGroupEv()
  br label %265

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

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

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

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

297:                                              ; preds = %283
  %298 = load ptr, ptr %22, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.ImGuiStyle, ptr %298, i32 0, i32 16
  %300 = getelementptr inbounds %struct.ImVec2, ptr %299, i32 0, i32 0
  %301 = load float, ptr %300, align 4, !tbaa !114
  %302 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %303 = load float, ptr %302, align 4, !tbaa !113
  %304 = fadd float %301, %303
  br label %306

305:                                              ; preds = %283
  br label %306

306:                                              ; preds = %305, %297
  %307 = phi float [ %304, %297 ], [ 0.000000e+00, %305 ]
  %308 = fadd float %293, %307
  %309 = getelementptr inbounds %struct.ImVec2, ptr %31, i32 0, i32 1
  %310 = load float, ptr %309, align 4, !tbaa !111
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %33, float noundef %308, float noundef %310)
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #14
  %311 = load ptr, ptr %18, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.ImGuiWindow, ptr %311, i32 0, i32 70
  %313 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %312, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #14
  %314 = load ptr, ptr %18, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.ImGuiWindow, ptr %314, i32 0, i32 70
  %316 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %315, i32 0, i32 0
  %317 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %316, ptr noundef nonnull align 4 dereferenceable(8) %31)
  store <2 x float> %317, ptr %35, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %34, ptr noundef nonnull align 4 dereferenceable(8) %313, 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
  %318 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #14
  %319 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %320 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %319, ptr noundef nonnull align 4 dereferenceable(8) %33)
  store <2 x float> %320, ptr %37, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %36, ptr noundef nonnull align 4 dereferenceable(8) %318, 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
  %321 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %321, 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)
  %322 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %323 = trunc i8 %322 to i1
  br i1 %323, label %324, label %410

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

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

335:                                              ; preds = %324
  %336 = load ptr, ptr %20, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.ImGuiContext, ptr %336, i32 0, i32 79
  %338 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %337, i32 0, i32 2
  %339 = load i32, ptr %338, align 8, !tbaa !115
  store i32 %339, ptr %40, align 4, !tbaa !9
  %340 = load ptr, ptr %20, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.ImGuiContext, ptr %340, i32 0, i32 79
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %41, ptr align 8 %341, i64 60, i1 false), !tbaa.struct !116
  %342 = load ptr, ptr %18, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ImGuiWindow, ptr %342, i32 0, i32 70
  %344 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %343, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %344, ptr align 4 %42, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #14
  %345 = load ptr, ptr %20, align 8, !tbaa !5
  %346 = getelementptr inbounds %struct.ImGuiContext, ptr %345, i32 0, i32 105
  %347 = load i32, ptr %346, align 8, !tbaa !117
  store i32 %347, ptr %43, align 4, !tbaa !9
  %348 = load ptr, ptr %20, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.ImGuiContext, ptr %348, i32 0, i32 51
  %350 = load i32, ptr %349, align 4, !tbaa !118
  %351 = load i32, ptr %29, align 4, !tbaa !9
  %352 = icmp eq i32 %350, %351
  br i1 %352, label %353, label %356

353:                                              ; preds = %335
  %354 = load ptr, ptr %20, align 8, !tbaa !5
  %355 = getelementptr inbounds %struct.ImGuiContext, ptr %354, i32 0, i32 105
  store i32 0, ptr %355, align 8, !tbaa !117
  br label %356

356:                                              ; preds = %353, %335
  %357 = load ptr, ptr %22, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.ImGuiStyle, ptr %357, i32 0, i32 46
  %359 = getelementptr inbounds [55 x %struct.ImVec4], ptr %358, i64 0, i64 7
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %359)
  %360 = load ptr, ptr %22, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.ImGuiStyle, ptr %360, i32 0, i32 13
  %362 = load float, ptr %361, align 4, !tbaa !119
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %362)
  %363 = load ptr, ptr %22, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.ImGuiStyle, ptr %363, i32 0, i32 14
  %365 = load float, ptr %364, align 4, !tbaa !120
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 8, float noundef %365)
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %44, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 2, ptr noundef nonnull align 4 dereferenceable(8) %44)
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #14
  %366 = load ptr, ptr %10, align 8, !tbaa !5
  %367 = load i32, ptr %29, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #14
  %368 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %34)
  store <2 x float> %368, ptr %46, align 4
  %369 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2ii(ptr noundef %366, i32 noundef %367, ptr noundef nonnull align 4 dereferenceable(8) %46, i32 noundef 1, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #14
  %370 = zext i1 %369 to i8
  store i8 %370, ptr %45, align 1, !tbaa !44
  %371 = load i32, ptr %43, align 4, !tbaa !9
  %372 = load ptr, ptr %20, align 8, !tbaa !5
  %373 = getelementptr inbounds %struct.ImGuiContext, ptr %372, i32 0, i32 105
  store i32 %371, ptr %373, align 8, !tbaa !117
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  %374 = load i8, ptr %45, align 1, !tbaa !44, !range !42, !noundef !43
  %375 = trunc i8 %374 to i1
  br i1 %375, label %377, label %376

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

377:                                              ; preds = %356
  %378 = load ptr, ptr %20, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.ImGuiContext, ptr %378, i32 0, i32 33
  %380 = load ptr, ptr %379, align 8, !tbaa !121
  store ptr %380, ptr %38, align 8, !tbaa !5
  %381 = load ptr, ptr %38, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.ImGuiWindow, ptr %381, i32 0, i32 70
  %383 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %382, i32 0, i32 15
  %384 = load i32, ptr %383, align 8, !tbaa !122
  %385 = shl i32 1, %384
  %386 = load ptr, ptr %38, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.ImGuiWindow, ptr %386, i32 0, i32 70
  %388 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %387, i32 0, i32 17
  %389 = load i16, ptr %388, align 2, !tbaa !123
  %390 = sext i16 %389 to i32
  %391 = or i32 %390, %385
  %392 = trunc i32 %391 to i16
  store i16 %392, ptr %388, align 2, !tbaa !123
  %393 = load ptr, ptr %22, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.ImGuiStyle, ptr %393, i32 0, i32 12
  %395 = load ptr, ptr %38, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.ImGuiWindow, ptr %395, i32 0, i32 70
  %397 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %396, i32 0, i32 0
  %398 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZpLR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %397, ptr noundef nonnull align 4 dereferenceable(8) %394)
  %399 = load ptr, ptr %38, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.ImGuiWindow, ptr %399, i32 0, i32 35
  %401 = getelementptr inbounds %struct.ImVec2, ptr %400, i32 0, i32 0
  %402 = load float, ptr %401, align 8, !tbaa !124
  %403 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %404 = load float, ptr %403, align 4, !tbaa !113
  %405 = fsub float %404, %402
  store float %405, ptr %403, align 4, !tbaa !113
  store i32 0, ptr %19, align 4
  br label %406

406:                                              ; preds = %377, %376
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #14
  br label %407

407:                                              ; preds = %406, %334
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #14
  %408 = load i32, ptr %19, align 4
  switch i32 %408, label %3589 [
    i32 0, label %409
  ]

409:                                              ; preds = %407
  br label %428

410:                                              ; preds = %306
  %411 = load ptr, ptr %22, align 8, !tbaa !5
  %412 = getelementptr inbounds %struct.ImGuiStyle, ptr %411, i32 0, i32 12
  %413 = getelementptr inbounds %struct.ImVec2, ptr %412, i32 0, i32 1
  %414 = load float, ptr %413, align 4, !tbaa !112
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %36, float noundef %414)
  %415 = load i32, ptr %15, align 4, !tbaa !9
  %416 = and i32 %415, 268435456
  %417 = icmp ne i32 %416, 0
  br i1 %417, label %423, label %418

418:                                              ; preds = %410
  %419 = load i32, ptr %29, align 4, !tbaa !9
  %420 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %36, i32 noundef %419, ptr noundef %34, i32 noundef 1024)
  br i1 %420, label %422, label %421

421:                                              ; preds = %418
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3589

422:                                              ; preds = %418
  br label %423

423:                                              ; preds = %422, %410
  %424 = load ptr, ptr %20, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.ImGuiContext, ptr %424, i32 0, i32 79
  %426 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %425, i32 0, i32 2
  %427 = load i32, ptr %426, align 8, !tbaa !115
  store i32 %427, ptr %40, align 4, !tbaa !9
  br label %428

428:                                              ; preds = %423, %409
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #14
  %429 = load i32, ptr %29, align 4, !tbaa !9
  %430 = load ptr, ptr %20, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.ImGuiContext, ptr %430, i32 0, i32 79
  %432 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %431, i32 0, i32 1
  %433 = load i32, ptr %432, align 4, !tbaa !125
  %434 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef %429, i32 noundef %433)
  %435 = zext i1 %434 to i8
  store i8 %435, ptr %47, align 1, !tbaa !44
  %436 = load i8, ptr %47, align 1, !tbaa !44, !range !42, !noundef !43
  %437 = trunc i8 %436 to i1
  br i1 %437, label %438, label %441

438:                                              ; preds = %428
  %439 = load ptr, ptr %20, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.ImGuiContext, ptr %439, i32 0, i32 190
  store i32 1, ptr %440, align 8, !tbaa !126
  br label %441

441:                                              ; preds = %438, %428
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #14
  %442 = load i32, ptr %29, align 4, !tbaa !9
  %443 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %442)
  store ptr %443, ptr %48, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #14
  %444 = load i32, ptr %40, align 4, !tbaa !9
  %445 = and i32 %444, 256
  %446 = icmp ne i32 %445, 0
  %447 = zext i1 %446 to i8
  store i8 %447, ptr %49, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #14
  %448 = load ptr, ptr %20, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.ImGuiContext, ptr %448, i32 0, i32 51
  %450 = load i32, ptr %449, align 4, !tbaa !118
  %451 = load i32, ptr %29, align 4, !tbaa !9
  %452 = icmp ne i32 %450, %451
  br i1 %452, label %453, label %474

453:                                              ; preds = %441
  %454 = load ptr, ptr %20, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.ImGuiContext, ptr %454, i32 0, i32 105
  %456 = load i32, ptr %455, align 8, !tbaa !117
  %457 = load i32, ptr %29, align 4, !tbaa !9
  %458 = icmp eq i32 %456, %457
  br i1 %458, label %459, label %472

459:                                              ; preds = %453
  %460 = load ptr, ptr %20, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.ImGuiContext, ptr %460, i32 0, i32 108
  %462 = load i32, ptr %461, align 4, !tbaa !127
  %463 = and i32 %462, 1
  %464 = icmp ne i32 %463, 0
  br i1 %464, label %470, label %465

465:                                              ; preds = %459
  %466 = load ptr, ptr %20, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.ImGuiContext, ptr %466, i32 0, i32 114
  %468 = load i32, ptr %467, align 4, !tbaa !128
  %469 = icmp eq i32 %468, 2
  br label %470

470:                                              ; preds = %465, %459
  %471 = phi i1 [ true, %459 ], [ %469, %465 ]
  br label %472

472:                                              ; preds = %470, %453
  %473 = phi i1 [ false, %453 ], [ %471, %470 ]
  br label %474

474:                                              ; preds = %472, %441
  %475 = phi i1 [ false, %441 ], [ %473, %472 ]
  %476 = zext i1 %475 to i8
  store i8 %476, ptr %50, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #14
  %477 = load i8, ptr %47, align 1, !tbaa !44, !range !42, !noundef !43
  %478 = trunc i8 %477 to i1
  br i1 %478, label %479, label %485

479:                                              ; preds = %474
  %480 = load ptr, ptr %21, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.ImGuiIO, ptr %480, i32 0, i32 83
  %482 = getelementptr inbounds [5 x i8], ptr %481, i64 0, i64 0
  %483 = load i8, ptr %482, align 8, !tbaa !44, !range !42, !noundef !43
  %484 = trunc i8 %483 to i1
  br label %485

485:                                              ; preds = %479, %474
  %486 = phi i1 [ false, %474 ], [ %484, %479 ]
  %487 = zext i1 %486 to i8
  store i8 %487, ptr %51, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #14
  %488 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %489 = trunc i8 %488 to i1
  br i1 %489, label %490, label %505

490:                                              ; preds = %485
  %491 = load ptr, ptr %48, align 8, !tbaa !5
  %492 = icmp ne ptr %491, null
  br i1 %492, label %493, label %505

493:                                              ; preds = %490
  %494 = load ptr, ptr %20, align 8, !tbaa !5
  %495 = getelementptr inbounds %struct.ImGuiContext, ptr %494, i32 0, i32 51
  %496 = load i32, ptr %495, align 4, !tbaa !118
  %497 = icmp eq i32 %496, 0
  br i1 %497, label %498, label %505

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

505:                                              ; preds = %498, %493, %490, %485
  %506 = phi i1 [ false, %493 ], [ false, %490 ], [ false, %485 ], [ %504, %498 ]
  %507 = zext i1 %506 to i8
  store i8 %507, ptr %52, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #14
  %508 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %509 = trunc i8 %508 to i1
  br i1 %509, label %510, label %520

510:                                              ; preds = %505
  %511 = load ptr, ptr %48, align 8, !tbaa !5
  %512 = icmp ne ptr %511, null
  br i1 %512, label %513, label %520

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

520:                                              ; preds = %513, %510, %505
  %521 = phi i1 [ false, %510 ], [ false, %505 ], [ %519, %513 ]
  %522 = zext i1 %521 to i8
  store i8 %522, 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 1, ptr %55) #14
  store i8 0, ptr %55, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #14
  %523 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %524 = trunc i8 %523 to i1
  br i1 %524, label %525, label %530

525:                                              ; preds = %520
  %526 = load ptr, ptr %38, align 8, !tbaa !5
  %527 = getelementptr inbounds %struct.ImGuiWindow, ptr %526, i32 0, i32 30
  %528 = getelementptr inbounds %struct.ImVec2, ptr %527, i32 0, i32 1
  %529 = load float, ptr %528, align 4, !tbaa !130
  br label %531

530:                                              ; preds = %520
  br label %531

531:                                              ; preds = %530, %525
  %532 = phi float [ %529, %525 ], [ 0x47EFFFFFE0000000, %530 ]
  store float %532, ptr %56, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #14
  %533 = load ptr, ptr %48, align 8, !tbaa !5
  %534 = icmp ne ptr %533, null
  br i1 %534, label %535, label %546

535:                                              ; preds = %531
  %536 = load ptr, ptr %48, align 8, !tbaa !5
  %537 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %536, i32 0, i32 12
  %538 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %537, i32 0, i32 8
  %539 = load i8, ptr %538, align 1, !tbaa !131
  %540 = zext i8 %539 to i32
  %541 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %542 = trunc i8 %541 to i1
  %543 = xor i1 %542, true
  %544 = zext i1 %543 to i32
  %545 = icmp ne i32 %540, %544
  br label %546

546:                                              ; preds = %535, %531
  %547 = phi i1 [ false, %531 ], [ %545, %535 ]
  %548 = zext i1 %547 to i8
  store i8 %548, ptr %57, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #14
  %549 = load i8, ptr %51, align 1, !tbaa !44, !range !42, !noundef !43
  %550 = trunc i8 %549 to i1
  br i1 %550, label %560, label %551

551:                                              ; preds = %546
  %552 = load i8, ptr %52, align 1, !tbaa !44, !range !42, !noundef !43
  %553 = trunc i8 %552 to i1
  br i1 %553, label %560, label %554

554:                                              ; preds = %551
  %555 = load i8, ptr %50, align 1, !tbaa !44, !range !42, !noundef !43
  %556 = trunc i8 %555 to i1
  br i1 %556, label %560, label %557

557:                                              ; preds = %554
  %558 = load i8, ptr %49, align 1, !tbaa !44, !range !42, !noundef !43
  %559 = trunc i8 %558 to i1
  br label %560

560:                                              ; preds = %557, %554, %551, %546
  %561 = phi i1 [ true, %554 ], [ true, %551 ], [ true, %546 ], [ %559, %557 ]
  %562 = zext i1 %561 to i8
  store i8 %562, ptr %58, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #14
  %563 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %564 = trunc i8 %563 to i1
  br i1 %564, label %568, label %565

565:                                              ; preds = %560
  %566 = load i8, ptr %53, align 1, !tbaa !44, !range !42, !noundef !43
  %567 = trunc i8 %566 to i1
  br label %568

568:                                              ; preds = %565, %560
  %569 = phi i1 [ true, %560 ], [ %567, %565 ]
  %570 = zext i1 %569 to i8
  store i8 %570, ptr %59, align 1, !tbaa !44
  %571 = load i8, ptr %59, align 1, !tbaa !44, !range !42, !noundef !43
  %572 = trunc i8 %571 to i1
  br i1 %572, label %573, label %579

573:                                              ; preds = %568
  %574 = load ptr, ptr %20, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.ImGuiContext, ptr %574, i32 0, i32 51
  %576 = load i32, ptr %575, align 4, !tbaa !118
  %577 = load i32, ptr %29, align 4, !tbaa !9
  %578 = icmp ne i32 %576, %577
  br i1 %578, label %582, label %579

579:                                              ; preds = %573, %568
  %580 = load i8, ptr %57, align 1, !tbaa !44, !range !42, !noundef !43
  %581 = trunc i8 %580 to i1
  br i1 %581, label %582, label %725

582:                                              ; preds = %579, %573
  %583 = load ptr, ptr %20, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.ImGuiContext, ptr %583, i32 0, i32 193
  store ptr %584, ptr %48, align 8, !tbaa !5
  %585 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %585)
  %586 = load ptr, ptr %48, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %586, i32 0, i32 1
  %588 = load i32, ptr %587, align 8, !tbaa !132
  call void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef %588)
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #14
  %589 = load ptr, ptr %12, align 8, !tbaa !5
  %590 = call i64 @strlen(ptr noundef %589) #16
  %591 = trunc i64 %590 to i32
  store i32 %591, ptr %60, align 4, !tbaa !9
  %592 = load ptr, ptr %48, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %592, i32 0, i32 7
  %594 = load i32, ptr %60, align 4, !tbaa !9
  %595 = add nsw i32 %594, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %593, i32 noundef %595)
  %596 = load ptr, ptr %48, align 8, !tbaa !5
  %597 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %596, i32 0, i32 7
  %598 = getelementptr inbounds %struct.ImVector.32, ptr %597, i32 0, i32 2
  %599 = load ptr, ptr %598, align 8, !tbaa !133
  %600 = load ptr, ptr %12, align 8, !tbaa !5
  %601 = load i32, ptr %60, align 4, !tbaa !9
  %602 = add nsw i32 %601, 1
  %603 = sext i32 %602 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %599, ptr align 1 %600, i64 %603, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #14
  %604 = load ptr, ptr %48, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %604, i32 0, i32 1
  %606 = load i32, ptr %605, align 8, !tbaa !132
  %607 = load i32, ptr %29, align 4, !tbaa !9
  %608 = icmp eq i32 %606, %607
  br i1 %608, label %609, label %613

609:                                              ; preds = %582
  %610 = load i8, ptr %57, align 1, !tbaa !44, !range !42, !noundef !43
  %611 = trunc i8 %610 to i1
  %612 = xor i1 %611, true
  br label %613

613:                                              ; preds = %609, %582
  %614 = phi i1 [ false, %582 ], [ %612, %609 ]
  %615 = zext i1 %614 to i8
  store i8 %615, ptr %61, align 1, !tbaa !44
  %616 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %617 = trunc i8 %616 to i1
  br i1 %617, label %618, label %640

618:                                              ; preds = %613
  %619 = load ptr, ptr %48, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %619, i32 0, i32 3
  %621 = load i32, ptr %620, align 8, !tbaa !134
  %622 = load i32, ptr %60, align 4, !tbaa !9
  %623 = icmp ne i32 %621, %622
  br i1 %623, label %639, label %624

624:                                              ; preds = %618
  %625 = load ptr, ptr %48, align 8, !tbaa !5
  %626 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %625, i32 0, i32 8
  %627 = load i8, ptr %626, align 8, !tbaa !135, !range !42, !noundef !43
  %628 = trunc i8 %627 to i1
  br i1 %628, label %629, label %640

629:                                              ; preds = %624
  %630 = load ptr, ptr %48, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %630, i32 0, i32 6
  %632 = getelementptr inbounds %struct.ImVector.32, ptr %631, i32 0, i32 2
  %633 = load ptr, ptr %632, align 8, !tbaa !136
  %634 = load ptr, ptr %12, align 8, !tbaa !5
  %635 = load i32, ptr %60, align 4, !tbaa !9
  %636 = sext i32 %635 to i64
  %637 = call i32 @strncmp(ptr noundef %633, ptr noundef %634, i64 noundef %636) #16
  %638 = icmp ne i32 %637, 0
  br i1 %638, label %639, label %640

639:                                              ; preds = %629, %618
  store i8 0, ptr %61, align 1, !tbaa !44
  br label %640

640:                                              ; preds = %639, %629, %624, %613
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #14
  store ptr null, ptr %62, align 8, !tbaa !5
  %641 = load i32, ptr %29, align 4, !tbaa !9
  %642 = load ptr, ptr %48, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %642, i32 0, i32 1
  store i32 %641, ptr %643, align 8, !tbaa !132
  %644 = load ptr, ptr %48, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %644, i32 0, i32 5
  %646 = load i32, ptr %13, align 4, !tbaa !9
  %647 = add nsw i32 %646, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %645, i32 noundef %647)
  %648 = load ptr, ptr %48, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %648, i32 0, i32 6
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %649, i32 noundef 0)
  %650 = load ptr, ptr %48, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %650, i32 0, i32 8
  store i8 0, ptr %651, align 8, !tbaa !135
  %652 = load ptr, ptr %48, align 8, !tbaa !5
  %653 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %652, i32 0, i32 5
  %654 = getelementptr inbounds %struct.ImVector.5, ptr %653, i32 0, i32 2
  %655 = load ptr, ptr %654, align 8, !tbaa !137
  %656 = load i32, ptr %13, align 4, !tbaa !9
  %657 = load ptr, ptr %12, align 8, !tbaa !5
  %658 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %655, i32 noundef %656, ptr noundef %657, ptr noundef null, ptr noundef %62)
  %659 = load ptr, ptr %48, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %659, i32 0, i32 2
  store i32 %658, ptr %660, align 4, !tbaa !138
  %661 = load ptr, ptr %62, align 8, !tbaa !5
  %662 = load ptr, ptr %12, align 8, !tbaa !5
  %663 = ptrtoint ptr %661 to i64
  %664 = ptrtoint ptr %662 to i64
  %665 = sub i64 %663, %664
  %666 = trunc i64 %665 to i32
  %667 = load ptr, ptr %48, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %667, i32 0, i32 3
  store i32 %666, ptr %668, align 8, !tbaa !134
  %669 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %670 = trunc i8 %669 to i1
  br i1 %670, label %671, label %673

671:                                              ; preds = %640
  %672 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %672)
  br label %682

673:                                              ; preds = %640
  %674 = load ptr, ptr %48, align 8, !tbaa !5
  %675 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %674, i32 0, i32 11
  store float 0.000000e+00, ptr %675, align 8, !tbaa !139
  %676 = load ptr, ptr %48, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %676, i32 0, i32 12
  %678 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %679 = trunc i8 %678 to i1
  %680 = xor i1 %679, true
  %681 = zext i1 %680 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef %677, i32 noundef %681)
  br label %682

682:                                              ; preds = %673, %671
  %683 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %684 = trunc i8 %683 to i1
  br i1 %684, label %716, label %685

685:                                              ; preds = %682
  %686 = load i32, ptr %15, align 4, !tbaa !9
  %687 = and i32 %686, 16
  %688 = icmp ne i32 %687, 0
  br i1 %688, label %689, label %690

689:                                              ; preds = %685
  store i8 1, ptr %55, align 1, !tbaa !44
  br label %690

690:                                              ; preds = %689, %685
  %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 %703

693:                                              ; preds = %690
  %694 = load i8, ptr %61, align 1, !tbaa !44, !range !42, !noundef !43
  %695 = trunc i8 %694 to i1
  br i1 %695, label %696, label %702

696:                                              ; preds = %693
  %697 = load ptr, ptr %20, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.ImGuiContext, ptr %697, i32 0, i32 108
  %699 = load i32, ptr %698, align 4, !tbaa !127
  %700 = and i32 %699, 4
  %701 = icmp ne i32 %700, 0
  br i1 %701, label %703, label %702

702:                                              ; preds = %696, %693
  store i8 1, ptr %55, align 1, !tbaa !44
  br label %703

703:                                              ; preds = %702, %696, %690
  %704 = load i8, ptr %49, align 1, !tbaa !44, !range !42, !noundef !43
  %705 = trunc i8 %704 to i1
  br i1 %705, label %714, label %706

706:                                              ; preds = %703
  %707 = load i8, ptr %51, align 1, !tbaa !44, !range !42, !noundef !43
  %708 = trunc i8 %707 to i1
  br i1 %708, label %709, label %715

709:                                              ; preds = %706
  %710 = load ptr, ptr %21, align 8, !tbaa !5
  %711 = getelementptr inbounds %struct.ImGuiIO, ptr %710, i32 0, i32 73
  %712 = load i8, ptr %711, align 8, !tbaa !140, !range !42, !noundef !43
  %713 = trunc i8 %712 to i1
  br i1 %713, label %714, label %715

714:                                              ; preds = %709, %703
  store i8 1, ptr %55, align 1, !tbaa !44
  br label %715

715:                                              ; preds = %714, %709, %706
  br label %716

716:                                              ; preds = %715, %682
  %717 = load i32, ptr %15, align 4, !tbaa !9
  %718 = and i32 %717, 8192
  %719 = icmp ne i32 %718, 0
  br i1 %719, label %720, label %724

720:                                              ; preds = %716
  %721 = load ptr, ptr %48, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %721, i32 0, i32 12
  %723 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %722, i32 0, i32 3
  store i8 1, ptr %723, align 4, !tbaa !141
  br label %724

724:                                              ; preds = %720, %716
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #14
  br label %725

725:                                              ; preds = %724, %579
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #14
  %726 = load ptr, ptr %21, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.ImGuiIO, ptr %726, i32 0, i32 22
  %728 = load i8, ptr %727, align 1, !tbaa !142, !range !42, !noundef !43
  %729 = trunc i8 %728 to i1
  %730 = zext i1 %729 to i8
  store i8 %730, ptr %63, align 1, !tbaa !44
  %731 = load ptr, ptr %20, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.ImGuiContext, ptr %731, i32 0, i32 51
  %733 = load i32, ptr %732, align 4, !tbaa !118
  %734 = load i32, ptr %29, align 4, !tbaa !9
  %735 = icmp ne i32 %733, %734
  br i1 %735, label %736, label %759

736:                                              ; preds = %725
  %737 = load i8, ptr %58, align 1, !tbaa !44, !range !42, !noundef !43
  %738 = trunc i8 %737 to i1
  br i1 %738, label %739, label %759

739:                                              ; preds = %736
  %740 = load ptr, ptr %48, align 8, !tbaa !5
  %741 = icmp ne ptr %740, null
  br i1 %741, label %742, label %748

742:                                              ; preds = %739
  %743 = load ptr, ptr %48, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %743, i32 0, i32 1
  %745 = load i32, ptr %744, align 8, !tbaa !132
  %746 = load i32, ptr %29, align 4, !tbaa !9
  %747 = icmp eq i32 %745, %746
  br label %748

748:                                              ; preds = %742, %739
  %749 = phi i1 [ false, %739 ], [ %747, %742 ]
  br i1 %749, label %750, label %751

750:                                              ; preds = %748
  br label %753

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

752:                                              ; No predecessors!
  br label %753

753:                                              ; preds = %752, %750
  %754 = load i32, ptr %29, align 4, !tbaa !9
  %755 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %754, ptr noundef %755)
  %756 = load i32, ptr %29, align 4, !tbaa !9
  %757 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %756, ptr noundef %757)
  %758 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef %758, i32 noundef 0)
  br label %759

759:                                              ; preds = %753, %736, %725
  %760 = load ptr, ptr %20, align 8, !tbaa !5
  %761 = getelementptr inbounds %struct.ImGuiContext, ptr %760, i32 0, i32 51
  %762 = load i32, ptr %761, align 4, !tbaa !118
  %763 = load i32, ptr %29, align 4, !tbaa !9
  %764 = icmp eq i32 %762, %763
  br i1 %764, label %765, label %807

765:                                              ; preds = %759
  %766 = load i8, ptr %51, align 1, !tbaa !44, !range !42, !noundef !43
  %767 = trunc i8 %766 to i1
  br i1 %767, label %768, label %770

768:                                              ; preds = %765
  %769 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 655, i32 noundef %769, i32 noundef 0)
  br label %770

770:                                              ; preds = %768, %765
  %771 = load ptr, ptr %20, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.ImGuiContext, ptr %771, i32 0, i32 72
  %773 = load i32, ptr %772, align 8, !tbaa !143
  %774 = or i32 %773, 3
  store i32 %774, ptr %772, align 8, !tbaa !143
  %775 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %776 = trunc i8 %775 to i1
  br i1 %776, label %781, label %777

777:                                              ; preds = %770
  %778 = load i32, ptr %15, align 4, !tbaa !9
  %779 = and i32 %778, 128
  %780 = icmp ne i32 %779, 0
  br i1 %780, label %781, label %786

781:                                              ; preds = %777, %770
  %782 = load ptr, ptr %20, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.ImGuiContext, ptr %782, i32 0, i32 72
  %784 = load i32, ptr %783, align 8, !tbaa !143
  %785 = or i32 %784, 12
  store i32 %785, ptr %783, align 8, !tbaa !143
  br label %786

786:                                              ; preds = %781, %777
  %787 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 519, i32 noundef %787, i32 noundef 0)
  %788 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 520, i32 noundef %788, i32 noundef 0)
  %789 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %790 = trunc i8 %789 to i1
  br i1 %790, label %791, label %794

791:                                              ; preds = %786
  %792 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 517, i32 noundef %792, i32 noundef 0)
  %793 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 518, i32 noundef %793, i32 noundef 0)
  br label %794

794:                                              ; preds = %791, %786
  %795 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %796 = trunc i8 %795 to i1
  br i1 %796, label %797, label %799

797:                                              ; preds = %794
  %798 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 16384, i32 noundef %798, i32 noundef 0)
  br label %799

799:                                              ; preds = %797, %794
  %800 = load i32, ptr %15, align 4, !tbaa !9
  %801 = and i32 %800, 1088
  %802 = icmp ne i32 %801, 0
  br i1 %802, label %803, label %806

803:                                              ; preds = %799
  %804 = load i32, ptr %29, align 4, !tbaa !9
  %805 = call noundef zeroext i1 @_ZN5ImGui18SetShortcutRoutingEiji(i32 noundef 512, i32 noundef %804, i32 noundef 0)
  br label %806

806:                                              ; preds = %803, %799
  br label %807

807:                                              ; preds = %806, %759
  %808 = load ptr, ptr %20, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.ImGuiContext, ptr %808, i32 0, i32 51
  %810 = load i32, ptr %809, align 4, !tbaa !118
  %811 = load i32, ptr %29, align 4, !tbaa !9
  %812 = icmp eq i32 %810, %811
  br i1 %812, label %813, label %817

813:                                              ; preds = %807
  %814 = load ptr, ptr %48, align 8, !tbaa !5
  %815 = icmp eq ptr %814, null
  br i1 %815, label %816, label %817

816:                                              ; preds = %813
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %817

817:                                              ; preds = %816, %813, %807
  %818 = load ptr, ptr %20, align 8, !tbaa !5
  %819 = getelementptr inbounds %struct.ImGuiContext, ptr %818, i32 0, i32 51
  %820 = load i32, ptr %819, align 4, !tbaa !118
  %821 = load i32, ptr %29, align 4, !tbaa !9
  %822 = icmp eq i32 %820, %821
  br i1 %822, label %823, label %836

823:                                              ; preds = %817
  %824 = load ptr, ptr %21, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.ImGuiIO, ptr %824, i32 0, i32 83
  %826 = getelementptr inbounds [5 x i8], ptr %825, i64 0, i64 0
  %827 = load i8, ptr %826, align 8, !tbaa !44, !range !42, !noundef !43
  %828 = trunc i8 %827 to i1
  br i1 %828, label %829, label %836

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

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

835:                                              ; preds = %832
  store i8 1, ptr %54, align 1, !tbaa !44
  br label %836

836:                                              ; preds = %835, %832, %829, %823, %817
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #14
  %837 = load ptr, ptr %20, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.ImGuiContext, ptr %837, i32 0, i32 51
  %839 = load i32, ptr %838, align 4, !tbaa !118
  %840 = load i32, ptr %29, align 4, !tbaa !9
  %841 = icmp eq i32 %839, %840
  br i1 %841, label %850, label %842

842:                                              ; preds = %836
  %843 = load ptr, ptr %48, align 8, !tbaa !5
  %844 = icmp ne ptr %843, null
  br i1 %844, label %845, label %848

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

848:                                              ; preds = %845, %842
  %849 = phi i1 [ false, %842 ], [ %847, %845 ]
  br label %850

850:                                              ; preds = %848, %836
  %851 = phi i1 [ true, %836 ], [ %849, %848 ]
  %852 = zext i1 %851 to i8
  store i8 %852, ptr %64, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #14
  %853 = load ptr, ptr %48, align 8, !tbaa !5
  %854 = icmp ne ptr %853, null
  br i1 %854, label %855, label %864

855:                                              ; preds = %850
  %856 = load ptr, ptr %48, align 8, !tbaa !5
  %857 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %856)
  br i1 %857, label %861, label %858

858:                                              ; preds = %855
  %859 = load i8, ptr %55, align 1, !tbaa !44, !range !42, !noundef !43
  %860 = trunc i8 %859 to i1
  br i1 %860, label %861, label %864

861:                                              ; preds = %858, %855
  %862 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %863 = trunc i8 %862 to i1
  br label %864

864:                                              ; preds = %861, %858, %850
  %865 = phi i1 [ false, %858 ], [ false, %850 ], [ %863, %861 ]
  %866 = zext i1 %865 to i8
  store i8 %866, 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
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #14
  store i8 0, ptr %67, align 1, !tbaa !44
  %867 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %868 = trunc i8 %867 to i1
  br i1 %868, label %869, label %913

869:                                              ; preds = %864
  %870 = load ptr, ptr %48, align 8, !tbaa !5
  %871 = icmp ne ptr %870, null
  br i1 %871, label %872, label %913

872:                                              ; preds = %869
  %873 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %874 = trunc i8 %873 to i1
  br i1 %874, label %878, label %875

875:                                              ; preds = %872
  %876 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %877 = trunc i8 %876 to i1
  br i1 %877, label %878, label %913

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

913:                                              ; preds = %878, %875, %869, %864
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #14
  %914 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %915 = trunc i8 %914 to i1
  br i1 %915, label %925, label %916

916:                                              ; preds = %913
  %917 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %918 = trunc i8 %917 to i1
  br i1 %918, label %925, label %919

919:                                              ; preds = %916
  %920 = load ptr, ptr %20, align 8, !tbaa !5
  %921 = getelementptr inbounds %struct.ImGuiContext, ptr %920, i32 0, i32 51
  %922 = load i32, ptr %921, align 4, !tbaa !118
  %923 = load i32, ptr %29, align 4, !tbaa !9
  %924 = icmp eq i32 %922, %923
  br i1 %924, label %925, label %936

925:                                              ; preds = %919, %916, %913
  %926 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %927 = trunc i8 %926 to i1
  br i1 %927, label %936, label %928

928:                                              ; preds = %925
  %929 = load ptr, ptr %48, align 8, !tbaa !5
  %930 = icmp ne ptr %929, null
  br i1 %930, label %931, label %936

931:                                              ; preds = %928
  %932 = load ptr, ptr %48, align 8, !tbaa !5
  %933 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %932, i32 0, i32 8
  %934 = load i8, ptr %933, align 8, !tbaa !135, !range !42, !noundef !43
  %935 = trunc i8 %934 to i1
  br label %936

936:                                              ; preds = %931, %928, %925, %919
  %937 = phi i1 [ false, %928 ], [ false, %925 ], [ false, %919 ], [ %935, %931 ]
  %938 = zext i1 %937 to i8
  store i8 %938, ptr %69, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #14
  %939 = load ptr, ptr %11, align 8, !tbaa !5
  %940 = icmp ne ptr %939, null
  br i1 %940, label %941, label %957

941:                                              ; preds = %936
  %942 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %943 = trunc i8 %942 to i1
  br i1 %943, label %944, label %949

944:                                              ; preds = %941
  %945 = load ptr, ptr %48, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %945, i32 0, i32 6
  %947 = getelementptr inbounds %struct.ImVector.32, ptr %946, i32 0, i32 2
  %948 = load ptr, ptr %947, align 8, !tbaa !136
  br label %951

949:                                              ; preds = %941
  %950 = load ptr, ptr %12, align 8, !tbaa !5
  br label %951

951:                                              ; preds = %949, %944
  %952 = phi ptr [ %948, %944 ], [ %950, %949 ]
  %953 = getelementptr inbounds i8, ptr %952, i64 0
  %954 = load i8, ptr %953, align 1, !tbaa !145
  %955 = sext i8 %954 to i32
  %956 = icmp eq i32 %955, 0
  br label %957

957:                                              ; preds = %951, %936
  %958 = phi i1 [ false, %936 ], [ %956, %951 ]
  %959 = zext i1 %958 to i8
  store i8 %959, ptr %70, align 1, !tbaa !44
  %960 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %961 = trunc i8 %960 to i1
  br i1 %961, label %962, label %1033

962:                                              ; preds = %957
  %963 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %964 = trunc i8 %963 to i1
  br i1 %964, label %1033, label %965

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

1018:                                             ; preds = %965
  %1019 = load ptr, ptr %72, align 8, !tbaa !5
  %1020 = getelementptr inbounds %struct.ImFont, ptr %1019, i32 0, i32 0
  %1021 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1020)
  br i1 %1021, label %1022, label %1026

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

1026:                                             ; preds = %1022, %1018, %965
  %1027 = phi i1 [ false, %1018 ], [ false, %965 ], [ %1025, %1022 ]
  br i1 %1027, label %1028, label %1029

1028:                                             ; preds = %1026
  br label %1031

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

1030:                                             ; No predecessors!
  br label %1031

1031:                                             ; preds = %1030, %1028
  %1032 = load ptr, ptr %72, align 8, !tbaa !5
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef %1032)
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #14
  br label %1033

1033:                                             ; preds = %1031, %962, %957
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #14
  store i32 0, ptr %73, align 4, !tbaa !9
  %1034 = load ptr, ptr %20, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.ImGuiContext, ptr %1034, i32 0, i32 51
  %1036 = load i32, ptr %1035, align 4, !tbaa !118
  %1037 = load i32, ptr %29, align 4, !tbaa !9
  %1038 = icmp eq i32 %1036, %1037
  br i1 %1038, label %1039, label %1422

1039:                                             ; preds = %1033
  %1040 = load ptr, ptr %48, align 8, !tbaa !5
  %1041 = icmp ne ptr %1040, null
  br i1 %1041, label %1042, label %1043

1042:                                             ; preds = %1039
  br label %1045

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

1044:                                             ; No predecessors!
  br label %1045

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

1085:                                             ; preds = %1045
  %1086 = load ptr, ptr %21, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.ImGuiIO, ptr %1086, i32 0, i32 67
  %1088 = getelementptr inbounds %struct.ImVec2, ptr %1087, i32 0, i32 1
  %1089 = load float, ptr %1088, align 4, !tbaa !163
  %1090 = load ptr, ptr %38, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.ImGuiWindow, ptr %1090, i32 0, i32 70
  %1092 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1091, i32 0, i32 0
  %1093 = getelementptr inbounds %struct.ImVec2, ptr %1092, i32 0, i32 1
  %1094 = load float, ptr %1093, align 4, !tbaa !164
  %1095 = fsub float %1089, %1094
  br label %1101

1096:                                             ; preds = %1045
  %1097 = load ptr, ptr %20, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.ImGuiContext, ptr %1097, i32 0, i32 8
  %1099 = load float, ptr %1098, align 8, !tbaa !47
  %1100 = fmul float %1099, 5.000000e-01
  br label %1101

1101:                                             ; preds = %1096, %1085
  %1102 = phi float [ %1095, %1085 ], [ %1100, %1096 ]
  store float %1102, ptr %75, align 4, !tbaa !46
  %1103 = load i8, ptr %55, align 1, !tbaa !44, !range !42, !noundef !43
  %1104 = trunc i8 %1103 to i1
  br i1 %1104, label %1105, label %1109

1105:                                             ; preds = %1101
  %1106 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %1106)
  %1107 = load ptr, ptr %48, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1107, i32 0, i32 15
  store i8 1, ptr %1108, align 1, !tbaa !165
  br label %1311

1109:                                             ; preds = %1101
  %1110 = load i8, ptr %47, align 1, !tbaa !44, !range !42, !noundef !43
  %1111 = trunc i8 %1110 to i1
  br i1 %1111, label %1112, label %1242

1112:                                             ; preds = %1109
  %1113 = load ptr, ptr %21, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.ImGuiIO, ptr %1113, i32 0, i32 85
  %1115 = getelementptr inbounds [5 x i16], ptr %1114, i64 0, i64 0
  %1116 = load i16, ptr %1115, align 2, !tbaa !166
  %1117 = zext i16 %1116 to i32
  %1118 = icmp sge i32 %1117, 2
  br i1 %1118, label %1119, label %1242

1119:                                             ; preds = %1112
  %1120 = load ptr, ptr %21, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.ImGuiIO, ptr %1120, i32 0, i32 74
  %1122 = load i8, ptr %1121, align 1, !tbaa !167, !range !42, !noundef !43
  %1123 = trunc i8 %1122 to i1
  br i1 %1123, label %1242, label %1124

1124:                                             ; preds = %1119
  %1125 = load ptr, ptr %48, align 8, !tbaa !5
  %1126 = load ptr, ptr %48, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1126, i32 0, i32 12
  %1128 = load float, ptr %74, align 4, !tbaa !46
  %1129 = load float, ptr %75, align 4, !tbaa !46
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1125, ptr noundef %1127, float noundef %1128, float noundef %1129)
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #14
  %1130 = load ptr, ptr %21, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.ImGuiIO, ptr %1130, i32 0, i32 85
  %1132 = getelementptr inbounds [5 x i16], ptr %1131, i64 0, i64 0
  %1133 = load i16, ptr %1132, align 2, !tbaa !166
  %1134 = zext i16 %1133 to i32
  %1135 = sub nsw i32 %1134, 2
  store i32 %1135, ptr %76, align 4, !tbaa !9
  %1136 = load i32, ptr %76, align 4, !tbaa !9
  %1137 = srem i32 %1136, 2
  %1138 = icmp eq i32 %1137, 0
  br i1 %1138, label %1139, label %1205

1139:                                             ; preds = %1124
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #14
  %1140 = load ptr, ptr %48, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1140, i32 0, i32 12
  %1142 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1141, i32 0, i32 0
  %1143 = load i32, ptr %1142, align 4, !tbaa !168
  %1144 = icmp eq i32 %1143, 0
  br i1 %1144, label %1155, label %1145

1145:                                             ; preds = %1139
  %1146 = load ptr, ptr %48, align 8, !tbaa !5
  %1147 = load ptr, ptr %48, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1147, i32 0, i32 12
  %1149 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1148, i32 0, i32 0
  %1150 = load i32, ptr %1149, align 4, !tbaa !168
  %1151 = sub nsw i32 %1150, 1
  %1152 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef %1146, i32 noundef %1151)
  %1153 = zext i16 %1152 to i32
  %1154 = icmp eq i32 %1153, 10
  br label %1155

1155:                                             ; preds = %1145, %1139
  %1156 = phi i1 [ true, %1139 ], [ %1154, %1145 ]
  %1157 = zext i1 %1156 to i8
  store i8 %1157, ptr %77, align 1, !tbaa !44
  %1158 = load ptr, ptr %48, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1158, i32 0, i32 12
  %1160 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1159, i32 0, i32 1
  %1161 = load i32, ptr %1160, align 4, !tbaa !169
  %1162 = load ptr, ptr %48, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1162, i32 0, i32 12
  %1164 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1163, i32 0, i32 2
  %1165 = load i32, ptr %1164, align 4, !tbaa !170
  %1166 = icmp ne i32 %1161, %1165
  br i1 %1166, label %1170, label %1167

1167:                                             ; preds = %1155
  %1168 = load i8, ptr %77, align 1, !tbaa !44, !range !42, !noundef !43
  %1169 = trunc i8 %1168 to i1
  br i1 %1169, label %1172, label %1170

1170:                                             ; preds = %1167, %1155
  %1171 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1171, i32 noundef 2097164)
  br label %1172

1172:                                             ; preds = %1170, %1167
  %1173 = load ptr, ptr %48, align 8, !tbaa !5
  %1174 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1173, i32 0, i32 12
  %1175 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1174, i32 0, i32 1
  %1176 = load i32, ptr %1175, align 4, !tbaa !169
  %1177 = load ptr, ptr %48, align 8, !tbaa !5
  %1178 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1177, i32 0, i32 12
  %1179 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1178, i32 0, i32 2
  %1180 = load i32, ptr %1179, align 4, !tbaa !170
  %1181 = icmp ne i32 %1176, %1180
  br i1 %1181, label %1185, label %1182

1182:                                             ; preds = %1172
  %1183 = load ptr, ptr %48, align 8, !tbaa !5
  %1184 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1183, i32 0, i32 12
  call void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef %1184)
  br label %1185

1185:                                             ; preds = %1182, %1172
  %1186 = load ptr, ptr %48, align 8, !tbaa !5
  %1187 = load ptr, ptr %48, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1187, i32 0, i32 12
  %1189 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1188, i32 0, i32 0
  %1190 = load i32, ptr %1189, align 4, !tbaa !168
  %1191 = call noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef %1186, i32 noundef %1190)
  %1192 = load ptr, ptr %48, align 8, !tbaa !5
  %1193 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1192, i32 0, i32 12
  %1194 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1193, i32 0, i32 0
  store i32 %1191, ptr %1194, align 4, !tbaa !168
  %1195 = load ptr, ptr %48, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1195, i32 0, i32 12
  %1197 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1196, i32 0, i32 0
  %1198 = load i32, ptr %1197, align 4, !tbaa !168
  %1199 = load ptr, ptr %48, align 8, !tbaa !5
  %1200 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1199, i32 0, i32 12
  %1201 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1200, i32 0, i32 2
  store i32 %1198, ptr %1201, align 4, !tbaa !170
  %1202 = load ptr, ptr %48, align 8, !tbaa !5
  %1203 = load ptr, ptr %48, align 8, !tbaa !5
  %1204 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1203, i32 0, i32 12
  call void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %1202, ptr noundef %1204)
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #14
  br label %1240

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

1220:                                             ; preds = %1205
  %1221 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1222 = trunc i8 %1221 to i1
  br i1 %1222, label %1223, label %1237

1223:                                             ; preds = %1220
  %1224 = load ptr, ptr %48, align 8, !tbaa !5
  %1225 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1224, i32 0, i32 12
  %1226 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1225, i32 0, i32 1
  %1227 = load ptr, ptr %48, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1227, i32 0, i32 12
  %1229 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1228, i32 0, i32 2
  call void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4) %1226, ptr noundef nonnull align 4 dereferenceable(4) %1229)
  %1230 = load ptr, ptr %48, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1230, i32 0, i32 12
  %1232 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1231, i32 0, i32 2
  %1233 = load i32, ptr %1232, align 4, !tbaa !170
  %1234 = load ptr, ptr %48, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1234, i32 0, i32 12
  %1236 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1235, i32 0, i32 0
  store i32 %1233, ptr %1236, align 4, !tbaa !168
  br label %1237

1237:                                             ; preds = %1223, %1220, %1205
  %1238 = load ptr, ptr %48, align 8, !tbaa !5
  %1239 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1238, i32 0, i32 14
  store i8 0, ptr %1239, align 4, !tbaa !171
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #14
  br label %1240

1240:                                             ; preds = %1237, %1185
  %1241 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %1241)
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #14
  br label %1310

1242:                                             ; preds = %1119, %1112, %1109
  %1243 = load ptr, ptr %21, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.ImGuiIO, ptr %1243, i32 0, i32 83
  %1245 = getelementptr inbounds [5 x i8], ptr %1244, i64 0, i64 0
  %1246 = load i8, ptr %1245, align 8, !tbaa !44, !range !42, !noundef !43
  %1247 = trunc i8 %1246 to i1
  br i1 %1247, label %1248, label %1276

1248:                                             ; preds = %1242
  %1249 = load ptr, ptr %48, align 8, !tbaa !5
  %1250 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1249, i32 0, i32 15
  %1251 = load i8, ptr %1250, align 1, !tbaa !165, !range !42, !noundef !43
  %1252 = trunc i8 %1251 to i1
  br i1 %1252, label %1276, label %1253

1253:                                             ; preds = %1248
  %1254 = load i8, ptr %47, align 1, !tbaa !44, !range !42, !noundef !43
  %1255 = trunc i8 %1254 to i1
  br i1 %1255, label %1256, label %1275

1256:                                             ; preds = %1253
  %1257 = load ptr, ptr %21, align 8, !tbaa !5
  %1258 = getelementptr inbounds %struct.ImGuiIO, ptr %1257, i32 0, i32 74
  %1259 = load i8, ptr %1258, align 1, !tbaa !167, !range !42, !noundef !43
  %1260 = trunc i8 %1259 to i1
  br i1 %1260, label %1261, label %1267

1261:                                             ; preds = %1256
  %1262 = load ptr, ptr %48, align 8, !tbaa !5
  %1263 = load ptr, ptr %48, align 8, !tbaa !5
  %1264 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1263, i32 0, i32 12
  %1265 = load float, ptr %74, align 4, !tbaa !46
  %1266 = load float, ptr %75, align 4, !tbaa !46
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1262, ptr noundef %1264, float noundef %1265, float noundef %1266)
  br label %1273

1267:                                             ; preds = %1256
  %1268 = load ptr, ptr %48, align 8, !tbaa !5
  %1269 = load ptr, ptr %48, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1269, i32 0, i32 12
  %1271 = load float, ptr %74, align 4, !tbaa !46
  %1272 = load float, ptr %75, align 4, !tbaa !46
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1268, ptr noundef %1270, float noundef %1271, float noundef %1272)
  br label %1273

1273:                                             ; preds = %1267, %1261
  %1274 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %1274)
  br label %1275

1275:                                             ; preds = %1273, %1253
  br label %1309

1276:                                             ; preds = %1248, %1242
  %1277 = load ptr, ptr %21, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.ImGuiIO, ptr %1277, i32 0, i32 68
  %1279 = getelementptr inbounds [5 x i8], ptr %1278, i64 0, i64 0
  %1280 = load i8, ptr %1279, align 8, !tbaa !44, !range !42, !noundef !43
  %1281 = trunc i8 %1280 to i1
  br i1 %1281, label %1282, label %1308

1282:                                             ; preds = %1276
  %1283 = load ptr, ptr %48, align 8, !tbaa !5
  %1284 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1283, i32 0, i32 15
  %1285 = load i8, ptr %1284, align 1, !tbaa !165, !range !42, !noundef !43
  %1286 = trunc i8 %1285 to i1
  br i1 %1286, label %1308, label %1287

1287:                                             ; preds = %1282
  %1288 = load ptr, ptr %21, align 8, !tbaa !5
  %1289 = getelementptr inbounds %struct.ImGuiIO, ptr %1288, i32 0, i32 61
  %1290 = getelementptr inbounds %struct.ImVec2, ptr %1289, i32 0, i32 0
  %1291 = load float, ptr %1290, align 8, !tbaa !172
  %1292 = fcmp une float %1291, 0.000000e+00
  br i1 %1292, label %1299, label %1293

1293:                                             ; preds = %1287
  %1294 = load ptr, ptr %21, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.ImGuiIO, ptr %1294, i32 0, i32 61
  %1296 = getelementptr inbounds %struct.ImVec2, ptr %1295, i32 0, i32 1
  %1297 = load float, ptr %1296, align 4, !tbaa !173
  %1298 = fcmp une float %1297, 0.000000e+00
  br i1 %1298, label %1299, label %1308

1299:                                             ; preds = %1293, %1287
  %1300 = load ptr, ptr %48, align 8, !tbaa !5
  %1301 = load ptr, ptr %48, align 8, !tbaa !5
  %1302 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1301, i32 0, i32 12
  %1303 = load float, ptr %74, align 4, !tbaa !46
  %1304 = load float, ptr %75, align 4, !tbaa !46
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1300, ptr noundef %1302, float noundef %1303, float noundef %1304)
  %1305 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %1305)
  %1306 = load ptr, ptr %48, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1306, i32 0, i32 14
  store i8 1, ptr %1307, align 4, !tbaa !171
  br label %1308

1308:                                             ; preds = %1299, %1293, %1282, %1276
  br label %1309

1309:                                             ; preds = %1308, %1275
  br label %1310

1310:                                             ; preds = %1309, %1240
  br label %1311

1311:                                             ; preds = %1310, %1105
  %1312 = load ptr, ptr %48, align 8, !tbaa !5
  %1313 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1312, i32 0, i32 15
  %1314 = load i8, ptr %1313, align 1, !tbaa !165, !range !42, !noundef !43
  %1315 = trunc i8 %1314 to i1
  br i1 %1315, label %1316, label %1325

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

1322:                                             ; preds = %1316
  %1323 = load ptr, ptr %48, align 8, !tbaa !5
  %1324 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1323, i32 0, i32 15
  store i8 0, ptr %1324, align 1, !tbaa !165
  br label %1325

1325:                                             ; preds = %1322, %1316, %1311
  %1326 = load i32, ptr %15, align 4, !tbaa !9
  %1327 = and i32 %1326, 1024
  %1328 = icmp ne i32 %1327, 0
  br i1 %1328, label %1329, label %1345

1329:                                             ; preds = %1325
  %1330 = load i32, ptr %29, align 4, !tbaa !9
  %1331 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %1330, i32 noundef 0)
  br i1 %1331, label %1332, label %1345

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

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

1341:                                             ; preds = %1335
  %1342 = load ptr, ptr %48, align 8, !tbaa !5
  %1343 = load i32, ptr %79, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1342, i32 noundef %1343)
  br label %1344

1344:                                             ; preds = %1341, %1335
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #14
  br label %1345

1345:                                             ; preds = %1344, %1332, %1329, %1325
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #14
  %1346 = load ptr, ptr %21, align 8, !tbaa !5
  %1347 = getelementptr inbounds %struct.ImGuiIO, ptr %1346, i32 0, i32 73
  %1348 = load i8, ptr %1347, align 8, !tbaa !140, !range !42, !noundef !43
  %1349 = trunc i8 %1348 to i1
  br i1 %1349, label %1350, label %1355

1350:                                             ; preds = %1345
  %1351 = load ptr, ptr %21, align 8, !tbaa !5
  %1352 = getelementptr inbounds %struct.ImGuiIO, ptr %1351, i32 0, i32 75
  %1353 = load i8, ptr %1352, align 2, !tbaa !174, !range !42, !noundef !43
  %1354 = trunc i8 %1353 to i1
  br i1 %1354, label %1355, label %1365

1355:                                             ; preds = %1350, %1345
  %1356 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %1357 = trunc i8 %1356 to i1
  br i1 %1357, label %1358, label %1363

1358:                                             ; preds = %1355
  %1359 = load ptr, ptr %21, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.ImGuiIO, ptr %1359, i32 0, i32 76
  %1361 = load i8, ptr %1360, align 1, !tbaa !175, !range !42, !noundef !43
  %1362 = trunc i8 %1361 to i1
  br label %1363

1363:                                             ; preds = %1358, %1355
  %1364 = phi i1 [ false, %1355 ], [ %1362, %1358 ]
  br label %1365

1365:                                             ; preds = %1363, %1350
  %1366 = phi i1 [ true, %1350 ], [ %1364, %1363 ]
  %1367 = zext i1 %1366 to i8
  store i8 %1367, ptr %80, align 1, !tbaa !44
  %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 !176
  %1372 = icmp sgt i32 %1371, 0
  br i1 %1372, label %1373, label %1421

1373:                                             ; preds = %1365
  %1374 = load i8, ptr %80, align 1, !tbaa !44, !range !42, !noundef !43
  %1375 = trunc i8 %1374 to i1
  br i1 %1375, label %1418, label %1376

1376:                                             ; preds = %1373
  %1377 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1378 = trunc i8 %1377 to i1
  br i1 %1378, label %1418, label %1379

1379:                                             ; preds = %1376
  %1380 = load i8, ptr %50, align 1, !tbaa !44, !range !42, !noundef !43
  %1381 = trunc i8 %1380 to i1
  br i1 %1381, label %1418, label %1382

1382:                                             ; preds = %1379
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #14
  store i32 0, ptr %81, align 4, !tbaa !9
  br label %1383

1383:                                             ; preds = %1414, %1382
  %1384 = load i32, ptr %81, align 4, !tbaa !9
  %1385 = load ptr, ptr %21, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.ImGuiIO, ptr %1385, i32 0, i32 101
  %1387 = getelementptr inbounds %struct.ImVector.5, ptr %1386, i32 0, i32 0
  %1388 = load i32, ptr %1387, align 8, !tbaa !176
  %1389 = icmp slt i32 %1384, %1388
  br i1 %1389, label %1391, label %1390

1390:                                             ; preds = %1383
  store i32 2, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #14
  br label %1417

1391:                                             ; preds = %1383
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #14
  %1392 = load ptr, ptr %21, align 8, !tbaa !5
  %1393 = getelementptr inbounds %struct.ImGuiIO, ptr %1392, i32 0, i32 101
  %1394 = load i32, ptr %81, align 4, !tbaa !9
  %1395 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1393, i32 noundef %1394)
  %1396 = load i16, ptr %1395, align 2, !tbaa !166
  %1397 = zext i16 %1396 to i32
  store i32 %1397, ptr %82, align 4, !tbaa !9
  %1398 = load i32, ptr %82, align 4, !tbaa !9
  %1399 = icmp eq i32 %1398, 9
  br i1 %1399, label %1400, label %1401

1400:                                             ; preds = %1391
  store i32 4, ptr %19, align 4
  br label %1411

1401:                                             ; preds = %1391
  %1402 = load ptr, ptr %20, align 8, !tbaa !5
  %1403 = load i32, ptr %15, align 4, !tbaa !9
  %1404 = load ptr, ptr %16, align 8, !tbaa !5
  %1405 = load ptr, ptr %17, align 8, !tbaa !5
  %1406 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %1402, ptr noundef %82, i32 noundef %1403, ptr noundef %1404, ptr noundef %1405, i32 noundef 2)
  br i1 %1406, label %1407, label %1410

1407:                                             ; preds = %1401
  %1408 = load ptr, ptr %48, align 8, !tbaa !5
  %1409 = load i32, ptr %82, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1408, i32 noundef %1409)
  br label %1410

1410:                                             ; preds = %1407, %1401
  store i32 0, ptr %19, align 4
  br label %1411

1411:                                             ; preds = %1410, %1400
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #14
  %1412 = load i32, ptr %19, align 4
  switch i32 %1412, label %3597 [
    i32 0, label %1413
    i32 4, label %1414
  ]

1413:                                             ; preds = %1411
  br label %1414

1414:                                             ; preds = %1413, %1411
  %1415 = load i32, ptr %81, align 4, !tbaa !9
  %1416 = add nsw i32 %1415, 1
  store i32 %1416, ptr %81, align 4, !tbaa !9
  br label %1383, !llvm.loop !177

1417:                                             ; preds = %1390
  br label %1418

1418:                                             ; preds = %1417, %1379, %1376, %1373
  %1419 = load ptr, ptr %21, align 8, !tbaa !5
  %1420 = getelementptr inbounds %struct.ImGuiIO, ptr %1419, i32 0, i32 101
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1420, i32 noundef 0)
  br label %1421

1421:                                             ; preds = %1418, %1365
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #14
  br label %1422

1422:                                             ; preds = %1421, %1033
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #14
  store i8 0, ptr %83, align 1, !tbaa !44
  %1423 = load ptr, ptr %20, align 8, !tbaa !5
  %1424 = getelementptr inbounds %struct.ImGuiContext, ptr %1423, i32 0, i32 51
  %1425 = load i32, ptr %1424, align 4, !tbaa !118
  %1426 = load i32, ptr %29, align 4, !tbaa !9
  %1427 = icmp eq i32 %1425, %1426
  br i1 %1427, label %1428, label %2139

1428:                                             ; preds = %1422
  %1429 = load ptr, ptr %20, align 8, !tbaa !5
  %1430 = getelementptr inbounds %struct.ImGuiContext, ptr %1429, i32 0, i32 54
  %1431 = load i8, ptr %1430, align 8, !tbaa !179, !range !42, !noundef !43
  %1432 = trunc i8 %1431 to i1
  br i1 %1432, label %2139, label %1433

1433:                                             ; preds = %1428
  %1434 = load i8, ptr %54, align 1, !tbaa !44, !range !42, !noundef !43
  %1435 = trunc i8 %1434 to i1
  br i1 %1435, label %2139, label %1436

1436:                                             ; preds = %1433
  %1437 = load ptr, ptr %48, align 8, !tbaa !5
  %1438 = icmp ne ptr %1437, null
  br i1 %1438, label %1439, label %1440

1439:                                             ; preds = %1436
  br label %1442

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

1441:                                             ; No predecessors!
  br label %1442

1442:                                             ; preds = %1441, %1439
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #14
  %1443 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %1444 = load float, ptr %1443, align 4, !tbaa !111
  %1445 = load ptr, ptr %22, align 8, !tbaa !5
  %1446 = getelementptr inbounds %struct.ImGuiStyle, ptr %1445, i32 0, i32 12
  %1447 = getelementptr inbounds %struct.ImVec2, ptr %1446, i32 0, i32 1
  %1448 = load float, ptr %1447, align 4, !tbaa !112
  %1449 = fsub float %1444, %1448
  %1450 = load ptr, ptr %20, align 8, !tbaa !5
  %1451 = getelementptr inbounds %struct.ImGuiContext, ptr %1450, i32 0, i32 8
  %1452 = load float, ptr %1451, align 8, !tbaa !47
  %1453 = fdiv float %1449, %1452
  %1454 = fptosi float %1453 to i32
  %1455 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1454, i32 noundef 1)
  store i32 %1455, ptr %84, align 4, !tbaa !9
  %1456 = load i32, ptr %84, align 4, !tbaa !9
  %1457 = load ptr, ptr %48, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1457, i32 0, i32 12
  %1459 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1458, i32 0, i32 4
  store i32 %1456, ptr %1459, align 4, !tbaa !180
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #14
  %1460 = load ptr, ptr %21, align 8, !tbaa !5
  %1461 = getelementptr inbounds %struct.ImGuiIO, ptr %1460, i32 0, i32 74
  %1462 = load i8, ptr %1461, align 1, !tbaa !167, !range !42, !noundef !43
  %1463 = trunc i8 %1462 to i1
  %1464 = zext i1 %1463 to i64
  %1465 = select i1 %1463, i32 4194304, i32 0
  store i32 %1465, ptr %85, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #14
  %1466 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %1467 = trunc i8 %1466 to i1
  br i1 %1467, label %1468, label %1473

1468:                                             ; preds = %1442
  %1469 = load ptr, ptr %21, align 8, !tbaa !5
  %1470 = getelementptr inbounds %struct.ImGuiIO, ptr %1469, i32 0, i32 75
  %1471 = load i8, ptr %1470, align 2, !tbaa !174, !range !42, !noundef !43
  %1472 = trunc i8 %1471 to i1
  br label %1478

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

1478:                                             ; preds = %1473, %1468
  %1479 = phi i1 [ %1472, %1468 ], [ %1477, %1473 ]
  %1480 = zext i1 %1479 to i8
  store i8 %1480, ptr %86, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #14
  %1481 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %1482 = trunc i8 %1481 to i1
  br i1 %1482, label %1483, label %1499

1483:                                             ; preds = %1478
  %1484 = load ptr, ptr %21, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.ImGuiIO, ptr %1484, i32 0, i32 76
  %1486 = load i8, ptr %1485, align 1, !tbaa !175, !range !42, !noundef !43
  %1487 = trunc i8 %1486 to i1
  br i1 %1487, label %1488, label %1499

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

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

1499:                                             ; preds = %1493, %1488, %1483, %1478
  %1500 = phi i1 [ false, %1488 ], [ false, %1483 ], [ false, %1478 ], [ %1498, %1493 ]
  %1501 = zext i1 %1500 to i8
  store i8 %1501, ptr %87, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #14
  store i32 1, ptr %88, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #14
  %1502 = load i32, ptr %29, align 4, !tbaa !9
  %1503 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2617, i32 noundef %1502, i32 noundef 1)
  br i1 %1503, label %1507, label %1504

1504:                                             ; preds = %1499
  %1505 = load i32, ptr %29, align 4, !tbaa !9
  %1506 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8714, i32 noundef %1505, i32 noundef 1)
  br i1 %1506, label %1507, label %1521

1507:                                             ; preds = %1504, %1499
  %1508 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1509 = trunc i8 %1508 to i1
  br i1 %1509, label %1521, label %1510

1510:                                             ; preds = %1507
  %1511 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %1512 = trunc i8 %1511 to i1
  br i1 %1512, label %1521, label %1513

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

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

1519:                                             ; preds = %1516, %1513
  %1520 = phi i1 [ true, %1513 ], [ %1518, %1516 ]
  br label %1521

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

1526:                                             ; preds = %1521
  %1527 = load i32, ptr %29, align 4, !tbaa !9
  %1528 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 4617, i32 noundef %1527, i32 noundef 0)
  br i1 %1528, label %1529, label %1540

1529:                                             ; preds = %1526, %1521
  %1530 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %1531 = trunc i8 %1530 to i1
  br i1 %1531, label %1540, label %1532

1532:                                             ; preds = %1529
  %1533 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1534 = trunc i8 %1533 to i1
  br i1 %1534, label %1535, label %1538

1535:                                             ; preds = %1532
  %1536 = load ptr, ptr %48, align 8, !tbaa !5
  %1537 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1536)
  br label %1538

1538:                                             ; preds = %1535, %1532
  %1539 = phi i1 [ true, %1532 ], [ %1537, %1535 ]
  br label %1540

1540:                                             ; preds = %1538, %1529, %1526
  %1541 = phi i1 [ false, %1529 ], [ false, %1526 ], [ %1539, %1538 ]
  %1542 = zext i1 %1541 to i8
  store i8 %1542, ptr %90, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #14
  %1543 = load i32, ptr %29, align 4, !tbaa !9
  %1544 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2615, i32 noundef %1543, i32 noundef 1)
  br i1 %1544, label %1548, label %1545

1545:                                             ; preds = %1540
  %1546 = load i32, ptr %29, align 4, !tbaa !9
  %1547 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8713, i32 noundef %1546, i32 noundef 1)
  br i1 %1547, label %1548, label %1552

1548:                                             ; preds = %1545, %1540
  %1549 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1550 = trunc i8 %1549 to i1
  %1551 = xor i1 %1550, true
  br label %1552

1552:                                             ; preds = %1548, %1545
  %1553 = phi i1 [ false, %1545 ], [ %1551, %1548 ]
  %1554 = zext i1 %1553 to i8
  store i8 %1554, ptr %91, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #14
  %1555 = load i32, ptr %29, align 4, !tbaa !9
  %1556 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2619, i32 noundef %1555, i32 noundef 1)
  br i1 %1556, label %1557, label %1563

1557:                                             ; preds = %1552
  %1558 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1559 = trunc i8 %1558 to i1
  br i1 %1559, label %1563, label %1560

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

1563:                                             ; preds = %1560, %1557, %1552
  %1564 = phi i1 [ false, %1557 ], [ false, %1552 ], [ %1562, %1560 ]
  %1565 = zext i1 %1564 to i8
  store i8 %1565, ptr %92, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #14
  %1566 = load i32, ptr %29, align 4, !tbaa !9
  %1567 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2618, i32 noundef %1566, i32 noundef 1)
  br i1 %1567, label %1574, label %1568

1568:                                             ; preds = %1563
  %1569 = load i8, ptr %63, align 1, !tbaa !44, !range !42, !noundef !43
  %1570 = trunc i8 %1569 to i1
  br i1 %1570, label %1571, label %1580

1571:                                             ; preds = %1568
  %1572 = load i32, ptr %29, align 4, !tbaa !9
  %1573 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 10811, i32 noundef %1572, i32 noundef 1)
  br i1 %1573, label %1574, label %1580

1574:                                             ; preds = %1571, %1563
  %1575 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1576 = trunc i8 %1575 to i1
  br i1 %1576, label %1580, label %1577

1577:                                             ; preds = %1574
  %1578 = load i8, ptr %27, align 1, !tbaa !44, !range !42, !noundef !43
  %1579 = trunc i8 %1578 to i1
  br label %1580

1580:                                             ; preds = %1577, %1574, %1571, %1568
  %1581 = phi i1 [ false, %1574 ], [ false, %1571 ], [ false, %1568 ], [ %1579, %1577 ]
  %1582 = zext i1 %1581 to i8
  store i8 %1582, ptr %93, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #14
  %1583 = load i32, ptr %29, align 4, !tbaa !9
  %1584 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2594, i32 noundef %1583, i32 noundef 0)
  %1585 = zext i1 %1584 to i8
  store i8 %1585, ptr %94, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #14
  %1586 = load ptr, ptr %21, align 8, !tbaa !5
  %1587 = getelementptr inbounds %struct.ImGuiIO, ptr %1586, i32 0, i32 0
  %1588 = load i32, ptr %1587, align 8, !tbaa !181
  %1589 = and i32 %1588, 2
  %1590 = icmp ne i32 %1589, 0
  br i1 %1590, label %1591, label %1597

1591:                                             ; preds = %1580
  %1592 = load ptr, ptr %21, align 8, !tbaa !5
  %1593 = getelementptr inbounds %struct.ImGuiIO, ptr %1592, i32 0, i32 1
  %1594 = load i32, ptr %1593, align 4, !tbaa !182
  %1595 = and i32 %1594, 1
  %1596 = icmp ne i32 %1595, 0
  br label %1597

1597:                                             ; preds = %1591, %1580
  %1598 = phi i1 [ false, %1580 ], [ %1596, %1591 ]
  %1599 = zext i1 %1598 to i8
  store i8 %1599, ptr %95, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #14
  %1600 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 525, i1 noundef zeroext true)
  br i1 %1600, label %1603, label %1601

1601:                                             ; preds = %1597
  %1602 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 627, i1 noundef zeroext true)
  br label %1603

1603:                                             ; preds = %1601, %1597
  %1604 = phi i1 [ true, %1597 ], [ %1602, %1601 ]
  %1605 = zext i1 %1604 to i8
  store i8 %1605, ptr %96, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #14
  %1606 = load i8, ptr %95, align 1, !tbaa !44, !range !42, !noundef !43
  %1607 = trunc i8 %1606 to i1
  br i1 %1607, label %1608, label %1614

1608:                                             ; preds = %1603
  %1609 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 636, i1 noundef zeroext false)
  br i1 %1609, label %1612, label %1610

1610:                                             ; preds = %1608
  %1611 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 635, i1 noundef zeroext false)
  br label %1612

1612:                                             ; preds = %1610, %1608
  %1613 = phi i1 [ true, %1608 ], [ %1611, %1610 ]
  br label %1614

1614:                                             ; preds = %1612, %1603
  %1615 = phi i1 [ false, %1603 ], [ %1613, %1612 ]
  %1616 = zext i1 %1615 to i8
  store i8 %1616, ptr %97, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #14
  %1617 = load i32, ptr %29, align 4, !tbaa !9
  %1618 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 526, i32 noundef %1617, i32 noundef 1)
  br i1 %1618, label %1627, label %1619

1619:                                             ; preds = %1614
  %1620 = load i8, ptr %95, align 1, !tbaa !44, !range !42, !noundef !43
  %1621 = trunc i8 %1620 to i1
  br i1 %1621, label %1622, label %1625

1622:                                             ; preds = %1619
  %1623 = load i32, ptr %29, align 4, !tbaa !9
  %1624 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 634, i32 noundef %1623, i32 noundef 1)
  br label %1625

1625:                                             ; preds = %1622, %1619
  %1626 = phi i1 [ false, %1619 ], [ %1624, %1622 ]
  br label %1627

1627:                                             ; preds = %1625, %1614
  %1628 = phi i1 [ true, %1614 ], [ %1626, %1625 ]
  %1629 = zext i1 %1628 to i8
  store i8 %1629, ptr %98, align 1, !tbaa !44
  %1630 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %1630, label %1631, label %1645

1631:                                             ; preds = %1627
  %1632 = load ptr, ptr %48, align 8, !tbaa !5
  %1633 = load i8, ptr %87, align 1, !tbaa !44, !range !42, !noundef !43
  %1634 = trunc i8 %1633 to i1
  br i1 %1634, label %1635, label %1636

1635:                                             ; preds = %1631
  br label %1641

1636:                                             ; preds = %1631
  %1637 = load i8, ptr %86, align 1, !tbaa !44, !range !42, !noundef !43
  %1638 = trunc i8 %1637 to i1
  %1639 = zext i1 %1638 to i64
  %1640 = select i1 %1638, i32 2097164, i32 2097152
  br label %1641

1641:                                             ; preds = %1636, %1635
  %1642 = phi i32 [ 2097156, %1635 ], [ %1640, %1636 ]
  %1643 = load i32, ptr %85, align 4, !tbaa !9
  %1644 = or i32 %1642, %1643
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1632, i32 noundef %1644)
  br label %2124

1645:                                             ; preds = %1627
  %1646 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %1646, label %1647, label %1661

1647:                                             ; preds = %1645
  %1648 = load ptr, ptr %48, align 8, !tbaa !5
  %1649 = load i8, ptr %87, align 1, !tbaa !44, !range !42, !noundef !43
  %1650 = trunc i8 %1649 to i1
  br i1 %1650, label %1651, label %1652

1651:                                             ; preds = %1647
  br label %1657

1652:                                             ; preds = %1647
  %1653 = load i8, ptr %86, align 1, !tbaa !44, !range !42, !noundef !43
  %1654 = trunc i8 %1653 to i1
  %1655 = zext i1 %1654 to i64
  %1656 = select i1 %1654, i32 2097165, i32 2097153
  br label %1657

1657:                                             ; preds = %1652, %1651
  %1658 = phi i32 [ 2097157, %1651 ], [ %1656, %1652 ]
  %1659 = load i32, ptr %85, align 4, !tbaa !9
  %1660 = or i32 %1658, %1659
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1648, i32 noundef %1660)
  br label %2123

1661:                                             ; preds = %1645
  %1662 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %1662, label %1663, label %1691

1663:                                             ; preds = %1661
  %1664 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1665 = trunc i8 %1664 to i1
  br i1 %1665, label %1666, label %1691

1666:                                             ; preds = %1663
  %1667 = load ptr, ptr %21, align 8, !tbaa !5
  %1668 = getelementptr inbounds %struct.ImGuiIO, ptr %1667, i32 0, i32 73
  %1669 = load i8, ptr %1668, align 8, !tbaa !140, !range !42, !noundef !43
  %1670 = trunc i8 %1669 to i1
  br i1 %1670, label %1671, label %1682

1671:                                             ; preds = %1666
  %1672 = load ptr, ptr %38, align 8, !tbaa !5
  %1673 = load ptr, ptr %38, align 8, !tbaa !5
  %1674 = getelementptr inbounds %struct.ImGuiWindow, ptr %1673, i32 0, i32 30
  %1675 = getelementptr inbounds %struct.ImVec2, ptr %1674, i32 0, i32 1
  %1676 = load float, ptr %1675, align 4, !tbaa !130
  %1677 = load ptr, ptr %20, align 8, !tbaa !5
  %1678 = getelementptr inbounds %struct.ImGuiContext, ptr %1677, i32 0, i32 8
  %1679 = load float, ptr %1678, align 8, !tbaa !47
  %1680 = fsub float %1676, %1679
  %1681 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1680, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1672, float noundef %1681)
  br label %1690

1682:                                             ; preds = %1666
  %1683 = load ptr, ptr %48, align 8, !tbaa !5
  %1684 = load i8, ptr %87, align 1, !tbaa !44, !range !42, !noundef !43
  %1685 = trunc i8 %1684 to i1
  %1686 = zext i1 %1685 to i64
  %1687 = select i1 %1685, i32 2097158, i32 2097154
  %1688 = load i32, ptr %85, align 4, !tbaa !9
  %1689 = or i32 %1687, %1688
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1683, i32 noundef %1689)
  br label %1690

1690:                                             ; preds = %1682, %1671
  br label %2122

1691:                                             ; preds = %1663, %1661
  %1692 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %1692, label %1693, label %1722

1693:                                             ; preds = %1691
  %1694 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1695 = trunc i8 %1694 to i1
  br i1 %1695, label %1696, label %1722

1696:                                             ; preds = %1693
  %1697 = load ptr, ptr %21, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.ImGuiIO, ptr %1697, i32 0, i32 73
  %1699 = load i8, ptr %1698, align 8, !tbaa !140, !range !42, !noundef !43
  %1700 = trunc i8 %1699 to i1
  br i1 %1700, label %1701, label %1713

1701:                                             ; preds = %1696
  %1702 = load ptr, ptr %38, align 8, !tbaa !5
  %1703 = load ptr, ptr %38, align 8, !tbaa !5
  %1704 = getelementptr inbounds %struct.ImGuiWindow, ptr %1703, i32 0, i32 30
  %1705 = getelementptr inbounds %struct.ImVec2, ptr %1704, i32 0, i32 1
  %1706 = load float, ptr %1705, align 4, !tbaa !130
  %1707 = load ptr, ptr %20, align 8, !tbaa !5
  %1708 = getelementptr inbounds %struct.ImGuiContext, ptr %1707, i32 0, i32 8
  %1709 = load float, ptr %1708, align 8, !tbaa !47
  %1710 = fadd float %1706, %1709
  %1711 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %1712 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1710, float noundef %1711)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1702, float noundef %1712)
  br label %1721

1713:                                             ; preds = %1696
  %1714 = load ptr, ptr %48, align 8, !tbaa !5
  %1715 = load i8, ptr %87, align 1, !tbaa !44, !range !42, !noundef !43
  %1716 = trunc i8 %1715 to i1
  %1717 = zext i1 %1716 to i64
  %1718 = select i1 %1716, i32 2097159, i32 2097155
  %1719 = load i32, ptr %85, align 4, !tbaa !9
  %1720 = or i32 %1718, %1719
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1714, i32 noundef %1720)
  br label %1721

1721:                                             ; preds = %1713, %1701
  br label %2121

1722:                                             ; preds = %1693, %1691
  %1723 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  br i1 %1723, label %1724, label %1739

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

1727:                                             ; preds = %1724
  %1728 = load ptr, ptr %48, align 8, !tbaa !5
  %1729 = load i32, ptr %85, align 4, !tbaa !9
  %1730 = or i32 2097166, %1729
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1728, i32 noundef %1730)
  %1731 = load i32, ptr %84, align 4, !tbaa !9
  %1732 = sitofp i32 %1731 to float
  %1733 = load ptr, ptr %20, align 8, !tbaa !5
  %1734 = getelementptr inbounds %struct.ImGuiContext, ptr %1733, i32 0, i32 8
  %1735 = load float, ptr %1734, align 8, !tbaa !47
  %1736 = load float, ptr %56, align 4, !tbaa !46
  %1737 = fneg float %1732
  %1738 = call float @llvm.fmuladd.f32(float %1737, float %1735, float %1736)
  store float %1738, ptr %56, align 4, !tbaa !46
  br label %2120

1739:                                             ; preds = %1724, %1722
  %1740 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  br i1 %1740, label %1741, label %1755

1741:                                             ; preds = %1739
  %1742 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1743 = trunc i8 %1742 to i1
  br i1 %1743, label %1744, label %1755

1744:                                             ; preds = %1741
  %1745 = load ptr, ptr %48, align 8, !tbaa !5
  %1746 = load i32, ptr %85, align 4, !tbaa !9
  %1747 = or i32 2097167, %1746
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1745, i32 noundef %1747)
  %1748 = load i32, ptr %84, align 4, !tbaa !9
  %1749 = sitofp i32 %1748 to float
  %1750 = load ptr, ptr %20, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.ImGuiContext, ptr %1750, i32 0, i32 8
  %1752 = load float, ptr %1751, align 8, !tbaa !47
  %1753 = load float, ptr %56, align 4, !tbaa !46
  %1754 = call float @llvm.fmuladd.f32(float %1749, float %1752, float %1753)
  store float %1754, ptr %56, align 4, !tbaa !46
  br label %2119

1755:                                             ; preds = %1741, %1739
  %1756 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %1756, label %1757, label %1771

1757:                                             ; preds = %1755
  %1758 = load ptr, ptr %48, align 8, !tbaa !5
  %1759 = load ptr, ptr %21, align 8, !tbaa !5
  %1760 = getelementptr inbounds %struct.ImGuiIO, ptr %1759, i32 0, i32 73
  %1761 = load i8, ptr %1760, align 8, !tbaa !140, !range !42, !noundef !43
  %1762 = trunc i8 %1761 to i1
  br i1 %1762, label %1763, label %1766

1763:                                             ; preds = %1757
  %1764 = load i32, ptr %85, align 4, !tbaa !9
  %1765 = or i32 2097158, %1764
  br label %1769

1766:                                             ; preds = %1757
  %1767 = load i32, ptr %85, align 4, !tbaa !9
  %1768 = or i32 2097156, %1767
  br label %1769

1769:                                             ; preds = %1766, %1763
  %1770 = phi i32 [ %1765, %1763 ], [ %1768, %1766 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1758, i32 noundef %1770)
  br label %2118

1771:                                             ; preds = %1755
  %1772 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %1772, label %1773, label %1787

1773:                                             ; preds = %1771
  %1774 = load ptr, ptr %48, align 8, !tbaa !5
  %1775 = load ptr, ptr %21, align 8, !tbaa !5
  %1776 = getelementptr inbounds %struct.ImGuiIO, ptr %1775, i32 0, i32 73
  %1777 = load i8, ptr %1776, align 8, !tbaa !140, !range !42, !noundef !43
  %1778 = trunc i8 %1777 to i1
  br i1 %1778, label %1779, label %1782

1779:                                             ; preds = %1773
  %1780 = load i32, ptr %85, align 4, !tbaa !9
  %1781 = or i32 2097159, %1780
  br label %1785

1782:                                             ; preds = %1773
  %1783 = load i32, ptr %85, align 4, !tbaa !9
  %1784 = or i32 2097157, %1783
  br label %1785

1785:                                             ; preds = %1782, %1779
  %1786 = phi i32 [ %1781, %1779 ], [ %1784, %1782 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1774, i32 noundef %1786)
  br label %2117

1787:                                             ; preds = %1771
  %1788 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  br i1 %1788, label %1789, label %1808

1789:                                             ; preds = %1787
  %1790 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1791 = trunc i8 %1790 to i1
  br i1 %1791, label %1808, label %1792

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

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

1798:                                             ; preds = %1795
  %1799 = load i8, ptr %86, 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 %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1802, i32 noundef 6291469)
  br label %1803

1803:                                             ; preds = %1801, %1798
  br label %1804

1804:                                             ; preds = %1803, %1795
  %1805 = load ptr, ptr %48, align 8, !tbaa !5
  %1806 = load i32, ptr %85, align 4, !tbaa !9
  %1807 = or i32 2097160, %1806
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1805, i32 noundef %1807)
  br label %2116

1808:                                             ; preds = %1792, %1789, %1787
  %1809 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  br i1 %1809, label %1810, label %1847

1810:                                             ; preds = %1808
  %1811 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1812 = trunc i8 %1811 to i1
  br i1 %1812, label %1847, label %1813

1813:                                             ; preds = %1810
  %1814 = load ptr, ptr %48, align 8, !tbaa !5
  %1815 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1814)
  br i1 %1815, label %1843, label %1816

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

1819:                                             ; preds = %1816
  %1820 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1820, i32 noundef 6291468)
  br label %1842

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

1824:                                             ; preds = %1821
  %1825 = load ptr, ptr %21, align 8, !tbaa !5
  %1826 = getelementptr inbounds %struct.ImGuiIO, ptr %1825, i32 0, i32 76
  %1827 = load i8, ptr %1826, align 1, !tbaa !175, !range !42, !noundef !43
  %1828 = trunc i8 %1827 to i1
  br i1 %1828, label %1829, label %1841

1829:                                             ; preds = %1824
  %1830 = load ptr, ptr %21, align 8, !tbaa !5
  %1831 = getelementptr inbounds %struct.ImGuiIO, ptr %1830, i32 0, i32 75
  %1832 = load i8, ptr %1831, align 2, !tbaa !174, !range !42, !noundef !43
  %1833 = trunc i8 %1832 to i1
  br i1 %1833, label %1841, label %1834

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

1839:                                             ; preds = %1834
  %1840 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1840, i32 noundef 6291460)
  br label %1841

1841:                                             ; preds = %1839, %1834, %1829, %1824, %1821
  br label %1842

1842:                                             ; preds = %1841, %1819
  br label %1843

1843:                                             ; preds = %1842, %1813
  %1844 = load ptr, ptr %48, align 8, !tbaa !5
  %1845 = load i32, ptr %85, align 4, !tbaa !9
  %1846 = or i32 2097161, %1845
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1844, i32 noundef %1846)
  br label %2115

1847:                                             ; preds = %1810, %1808
  %1848 = load i8, ptr %96, align 1, !tbaa !44, !range !42, !noundef !43
  %1849 = trunc i8 %1848 to i1
  br i1 %1849, label %1853, label %1850

1850:                                             ; preds = %1847
  %1851 = load i8, ptr %97, align 1, !tbaa !44, !range !42, !noundef !43
  %1852 = trunc i8 %1851 to i1
  br i1 %1852, label %1853, label %1906

1853:                                             ; preds = %1850, %1847
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #14
  %1854 = load i32, ptr %15, align 4, !tbaa !9
  %1855 = and i32 %1854, 2048
  %1856 = icmp ne i32 %1855, 0
  %1857 = zext i1 %1856 to i8
  store i8 %1857, ptr %99, align 1, !tbaa !44
  %1858 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1859 = trunc i8 %1858 to i1
  br i1 %1859, label %1860, label %1879

1860:                                             ; preds = %1853
  %1861 = load i8, ptr %97, align 1, !tbaa !44, !range !42, !noundef !43
  %1862 = trunc i8 %1861 to i1
  br i1 %1862, label %1879, label %1863

1863:                                             ; preds = %1860
  %1864 = load i8, ptr %99, align 1, !tbaa !44, !range !42, !noundef !43
  %1865 = trunc i8 %1864 to i1
  br i1 %1865, label %1866, label %1871

1866:                                             ; preds = %1863
  %1867 = load ptr, ptr %21, align 8, !tbaa !5
  %1868 = getelementptr inbounds %struct.ImGuiIO, ptr %1867, i32 0, i32 73
  %1869 = load i8, ptr %1868, align 8, !tbaa !140, !range !42, !noundef !43
  %1870 = trunc i8 %1869 to i1
  br i1 %1870, label %1871, label %1879

1871:                                             ; preds = %1866, %1863
  %1872 = load i8, ptr %99, align 1, !tbaa !44, !range !42, !noundef !43
  %1873 = trunc i8 %1872 to i1
  br i1 %1873, label %1891, label %1874

1874:                                             ; preds = %1871
  %1875 = load ptr, ptr %21, align 8, !tbaa !5
  %1876 = getelementptr inbounds %struct.ImGuiIO, ptr %1875, i32 0, i32 73
  %1877 = load i8, ptr %1876, align 8, !tbaa !140, !range !42, !noundef !43
  %1878 = trunc i8 %1877 to i1
  br i1 %1878, label %1879, label %1891

1879:                                             ; preds = %1874, %1866, %1860, %1853
  store i8 1, ptr %67, align 1, !tbaa !44
  %1880 = load ptr, ptr %21, align 8, !tbaa !5
  %1881 = getelementptr inbounds %struct.ImGuiIO, ptr %1880, i32 0, i32 25
  %1882 = load i8, ptr %1881, align 4, !tbaa !183, !range !42, !noundef !43
  %1883 = trunc i8 %1882 to i1
  br i1 %1883, label %1884, label %1889

1884:                                             ; preds = %1879
  %1885 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %1886 = trunc i8 %1885 to i1
  br i1 %1886, label %1889, label %1887

1887:                                             ; preds = %1884
  %1888 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %1888)
  br label %1890

1889:                                             ; preds = %1884, %1879
  store i8 1, ptr %54, align 1, !tbaa !44
  br label %1890

1890:                                             ; preds = %1889, %1887
  br label %1905

1891:                                             ; preds = %1874, %1871
  %1892 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %1893 = trunc i8 %1892 to i1
  br i1 %1893, label %1904, label %1894

1894:                                             ; preds = %1891
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #14
  store i32 10, ptr %100, align 4, !tbaa !9
  %1895 = load ptr, ptr %20, align 8, !tbaa !5
  %1896 = load i32, ptr %15, align 4, !tbaa !9
  %1897 = load ptr, ptr %16, align 8, !tbaa !5
  %1898 = load ptr, ptr %17, align 8, !tbaa !5
  %1899 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %1895, ptr noundef %100, i32 noundef %1896, ptr noundef %1897, ptr noundef %1898, i32 noundef 2)
  br i1 %1899, label %1900, label %1903

1900:                                             ; preds = %1894
  %1901 = load ptr, ptr %48, align 8, !tbaa !5
  %1902 = load i32, ptr %100, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1901, i32 noundef %1902)
  br label %1903

1903:                                             ; preds = %1900, %1894
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #14
  br label %1904

1904:                                             ; preds = %1903, %1891
  br label %1905

1905:                                             ; preds = %1904, %1890
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #14
  br label %2114

1906:                                             ; preds = %1850
  %1907 = load i8, ptr %98, align 1, !tbaa !44, !range !42, !noundef !43
  %1908 = trunc i8 %1907 to i1
  br i1 %1908, label %1909, label %1924

1909:                                             ; preds = %1906
  %1910 = load i32, ptr %15, align 4, !tbaa !9
  %1911 = and i32 %1910, 1048576
  %1912 = icmp ne i32 %1911, 0
  br i1 %1912, label %1913, label %1922

1913:                                             ; preds = %1909
  %1914 = load ptr, ptr %12, align 8, !tbaa !5
  %1915 = getelementptr inbounds i8, ptr %1914, i64 0
  %1916 = load i8, ptr %1915, align 1, !tbaa !145
  %1917 = sext i8 %1916 to i32
  %1918 = icmp ne i32 %1917, 0
  br i1 %1918, label %1919, label %1920

1919:                                             ; preds = %1913
  store i8 1, ptr %83, align 1, !tbaa !44
  br label %1921

1920:                                             ; preds = %1913
  store i8 0, ptr %65, align 1, !tbaa !44
  store i8 0, ptr %64, align 1, !tbaa !44
  store i8 1, ptr %54, align 1, !tbaa !44
  br label %1921

1921:                                             ; preds = %1920, %1919
  br label %1923

1922:                                             ; preds = %1909
  store i8 1, ptr %83, align 1, !tbaa !44
  store i8 1, ptr %54, align 1, !tbaa !44
  store i8 0, ptr %65, align 1, !tbaa !44
  store i8 0, ptr %64, align 1, !tbaa !44
  br label %1923

1923:                                             ; preds = %1922, %1921
  br label %2113

1924:                                             ; preds = %1906
  %1925 = load i8, ptr %92, align 1, !tbaa !44, !range !42, !noundef !43
  %1926 = trunc i8 %1925 to i1
  br i1 %1926, label %1930, label %1927

1927:                                             ; preds = %1924
  %1928 = load i8, ptr %93, align 1, !tbaa !44, !range !42, !noundef !43
  %1929 = trunc i8 %1928 to i1
  br i1 %1929, label %1930, label %1937

1930:                                             ; preds = %1927, %1924
  %1931 = load ptr, ptr %48, align 8, !tbaa !5
  %1932 = load i8, ptr %92, align 1, !tbaa !44, !range !42, !noundef !43
  %1933 = trunc i8 %1932 to i1
  %1934 = zext i1 %1933 to i64
  %1935 = select i1 %1933, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %1931, i32 noundef %1935)
  %1936 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1936)
  br label %2112

1937:                                             ; preds = %1927
  %1938 = load i8, ptr %94, align 1, !tbaa !44, !range !42, !noundef !43
  %1939 = trunc i8 %1938 to i1
  br i1 %1939, label %1940, label %1944

1940:                                             ; preds = %1937
  %1941 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %1941)
  %1942 = load ptr, ptr %48, align 8, !tbaa !5
  %1943 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1942, i32 0, i32 14
  store i8 1, ptr %1943, align 4, !tbaa !171
  br label %2111

1944:                                             ; preds = %1937
  %1945 = load i8, ptr %89, align 1, !tbaa !44, !range !42, !noundef !43
  %1946 = trunc i8 %1945 to i1
  br i1 %1946, label %1950, label %1947

1947:                                             ; preds = %1944
  %1948 = load i8, ptr %90, align 1, !tbaa !44, !range !42, !noundef !43
  %1949 = trunc i8 %1948 to i1
  br i1 %1949, label %1950, label %2044

1950:                                             ; preds = %1947, %1944
  %1951 = load ptr, ptr %21, align 8, !tbaa !5
  %1952 = getelementptr inbounds %struct.ImGuiIO, ptr %1951, i32 0, i32 45
  %1953 = load ptr, ptr %1952, align 8, !tbaa !184
  %1954 = icmp ne ptr %1953, null
  br i1 %1954, label %1955, label %2028

1955:                                             ; preds = %1950
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #14
  %1956 = load ptr, ptr %48, align 8, !tbaa !5
  %1957 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1956)
  br i1 %1957, label %1958, label %1968

1958:                                             ; preds = %1955
  %1959 = load ptr, ptr %48, 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 1
  %1962 = load i32, ptr %1961, align 4, !tbaa !169
  %1963 = load ptr, ptr %48, align 8, !tbaa !5
  %1964 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1963, i32 0, i32 12
  %1965 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1964, i32 0, i32 2
  %1966 = load i32, ptr %1965, align 4, !tbaa !170
  %1967 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1962, i32 noundef %1966)
  br label %1969

1968:                                             ; preds = %1955
  br label %1969

1969:                                             ; preds = %1968, %1958
  %1970 = phi i32 [ %1967, %1958 ], [ 0, %1968 ]
  store i32 %1970, ptr %101, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #14
  %1971 = load ptr, ptr %48, align 8, !tbaa !5
  %1972 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %1971)
  br i1 %1972, label %1973, label %1983

1973:                                             ; preds = %1969
  %1974 = load ptr, ptr %48, align 8, !tbaa !5
  %1975 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1974, i32 0, i32 12
  %1976 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1975, i32 0, i32 1
  %1977 = load i32, ptr %1976, align 4, !tbaa !169
  %1978 = load ptr, ptr %48, align 8, !tbaa !5
  %1979 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1978, i32 0, i32 12
  %1980 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1979, i32 0, i32 2
  %1981 = load i32, ptr %1980, align 4, !tbaa !170
  %1982 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1977, i32 noundef %1981)
  br label %1987

1983:                                             ; preds = %1969
  %1984 = load ptr, ptr %48, align 8, !tbaa !5
  %1985 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1984, i32 0, i32 2
  %1986 = load i32, ptr %1985, align 4, !tbaa !138
  br label %1987

1987:                                             ; preds = %1983, %1973
  %1988 = phi i32 [ %1982, %1973 ], [ %1986, %1983 ]
  store i32 %1988, ptr %102, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #14
  %1989 = load ptr, ptr %48, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1989, i32 0, i32 5
  %1991 = getelementptr inbounds %struct.ImVector.5, ptr %1990, i32 0, i32 2
  %1992 = load ptr, ptr %1991, align 8, !tbaa !137
  %1993 = load i32, ptr %101, align 4, !tbaa !9
  %1994 = sext i32 %1993 to i64
  %1995 = getelementptr inbounds i16, ptr %1992, i64 %1994
  %1996 = load ptr, ptr %48, align 8, !tbaa !5
  %1997 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1996, i32 0, i32 5
  %1998 = getelementptr inbounds %struct.ImVector.5, ptr %1997, i32 0, i32 2
  %1999 = load ptr, ptr %1998, align 8, !tbaa !137
  %2000 = load i32, ptr %102, align 4, !tbaa !9
  %2001 = sext i32 %2000 to i64
  %2002 = getelementptr inbounds i16, ptr %1999, i64 %2001
  %2003 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %1995, ptr noundef %2002)
  %2004 = add nsw i32 %2003, 1
  store i32 %2004, ptr %103, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #14
  %2005 = load i32, ptr %103, align 4, !tbaa !9
  %2006 = sext i32 %2005 to i64
  %2007 = mul i64 %2006, 1
  %2008 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %2007)
  store ptr %2008, ptr %104, align 8, !tbaa !5
  %2009 = load ptr, ptr %104, align 8, !tbaa !5
  %2010 = load i32, ptr %103, align 4, !tbaa !9
  %2011 = load ptr, ptr %48, align 8, !tbaa !5
  %2012 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2011, i32 0, i32 5
  %2013 = getelementptr inbounds %struct.ImVector.5, ptr %2012, i32 0, i32 2
  %2014 = load ptr, ptr %2013, align 8, !tbaa !137
  %2015 = load i32, ptr %101, align 4, !tbaa !9
  %2016 = sext i32 %2015 to i64
  %2017 = getelementptr inbounds i16, ptr %2014, i64 %2016
  %2018 = load ptr, ptr %48, align 8, !tbaa !5
  %2019 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2018, i32 0, i32 5
  %2020 = getelementptr inbounds %struct.ImVector.5, ptr %2019, i32 0, i32 2
  %2021 = load ptr, ptr %2020, align 8, !tbaa !137
  %2022 = load i32, ptr %102, align 4, !tbaa !9
  %2023 = sext i32 %2022 to i64
  %2024 = getelementptr inbounds i16, ptr %2021, i64 %2023
  %2025 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2009, i32 noundef %2010, ptr noundef %2017, ptr noundef %2024)
  %2026 = load ptr, ptr %104, align 8, !tbaa !5
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %2026)
  %2027 = load ptr, ptr %104, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2027)
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #14
  call void @llvm.lifetime.end.p0(i64 4, 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
  br label %2028

2028:                                             ; preds = %1987, %1950
  %2029 = load i8, ptr %89, align 1, !tbaa !44, !range !42, !noundef !43
  %2030 = trunc i8 %2029 to i1
  br i1 %2030, label %2031, label %2043

2031:                                             ; preds = %2028
  %2032 = load ptr, ptr %48, align 8, !tbaa !5
  %2033 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %2032)
  br i1 %2033, label %2036, label %2034

2034:                                             ; preds = %2031
  %2035 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %2035)
  br label %2036

2036:                                             ; preds = %2034, %2031
  %2037 = load ptr, ptr %48, align 8, !tbaa !5
  %2038 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2037, i32 0, i32 14
  store i8 1, ptr %2038, align 4, !tbaa !171
  %2039 = load ptr, ptr %48, align 8, !tbaa !5
  %2040 = load ptr, ptr %48, align 8, !tbaa !5
  %2041 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2040, i32 0, i32 12
  %2042 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %2039, ptr noundef %2041)
  br label %2043

2043:                                             ; preds = %2036, %2028
  br label %2110

2044:                                             ; preds = %1947
  %2045 = load i8, ptr %91, align 1, !tbaa !44, !range !42, !noundef !43
  %2046 = trunc i8 %2045 to i1
  br i1 %2046, label %2047, label %2109

2047:                                             ; preds = %2044
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #14
  %2048 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  store ptr %2048, ptr %105, align 8, !tbaa !5
  %2049 = load ptr, ptr %105, align 8, !tbaa !5
  %2050 = icmp ne ptr %2049, null
  br i1 %2050, label %2051, label %2108

2051:                                             ; preds = %2047
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #14
  %2052 = load ptr, ptr %105, align 8, !tbaa !5
  %2053 = call i64 @strlen(ptr noundef %2052) #16
  %2054 = trunc i64 %2053 to i32
  store i32 %2054, ptr %106, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #14
  %2055 = load i32, ptr %106, align 4, !tbaa !9
  %2056 = add nsw i32 %2055, 1
  %2057 = sext i32 %2056 to i64
  %2058 = mul i64 %2057, 2
  %2059 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %2058)
  store ptr %2059, ptr %107, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #14
  store i32 0, ptr %108, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #14
  %2060 = load ptr, ptr %105, align 8, !tbaa !5
  store ptr %2060, ptr %109, align 8, !tbaa !5
  br label %2061

2061:                                             ; preds = %2089, %2087, %2051
  %2062 = load ptr, ptr %109, align 8, !tbaa !5
  %2063 = load i8, ptr %2062, align 1, !tbaa !145
  %2064 = sext i8 %2063 to i32
  %2065 = icmp ne i32 %2064, 0
  br i1 %2065, label %2067, label %2066

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

2067:                                             ; preds = %2061
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #14
  %2068 = load ptr, ptr %109, align 8, !tbaa !5
  %2069 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef %110, ptr noundef %2068, ptr noundef null)
  %2070 = load ptr, ptr %109, align 8, !tbaa !5
  %2071 = sext i32 %2069 to i64
  %2072 = getelementptr inbounds i8, ptr %2070, i64 %2071
  store ptr %2072, ptr %109, align 8, !tbaa !5
  %2073 = load ptr, ptr %20, align 8, !tbaa !5
  %2074 = load i32, ptr %15, align 4, !tbaa !9
  %2075 = load ptr, ptr %16, align 8, !tbaa !5
  %2076 = load ptr, ptr %17, align 8, !tbaa !5
  %2077 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %2073, ptr noundef %110, i32 noundef %2074, ptr noundef %2075, ptr noundef %2076, i32 noundef 4)
  br i1 %2077, label %2079, label %2078

2078:                                             ; preds = %2067
  store i32 6, ptr %19, align 4
  br label %2087, !llvm.loop !185

2079:                                             ; preds = %2067
  %2080 = load i32, ptr %110, align 4, !tbaa !9
  %2081 = trunc i32 %2080 to i16
  %2082 = load ptr, ptr %107, align 8, !tbaa !5
  %2083 = load i32, ptr %108, align 4, !tbaa !9
  %2084 = add nsw i32 %2083, 1
  store i32 %2084, ptr %108, align 4, !tbaa !9
  %2085 = sext i32 %2083 to i64
  %2086 = getelementptr inbounds i16, ptr %2082, i64 %2085
  store i16 %2081, ptr %2086, align 2, !tbaa !166
  store i32 0, ptr %19, align 4
  br label %2087

2087:                                             ; preds = %2079, %2078
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #14
  %2088 = load i32, ptr %19, align 4
  switch i32 %2088, label %3597 [
    i32 0, label %2089
    i32 6, label %2061
  ]

2089:                                             ; preds = %2087
  br label %2061, !llvm.loop !185

2090:                                             ; preds = %2066
  %2091 = load ptr, ptr %107, align 8, !tbaa !5
  %2092 = load i32, ptr %108, align 4, !tbaa !9
  %2093 = sext i32 %2092 to i64
  %2094 = getelementptr inbounds i16, ptr %2091, i64 %2093
  store i16 0, ptr %2094, align 2, !tbaa !166
  %2095 = load i32, ptr %108, align 4, !tbaa !9
  %2096 = icmp sgt i32 %2095, 0
  br i1 %2096, label %2097, label %2106

2097:                                             ; preds = %2090
  %2098 = load ptr, ptr %48, align 8, !tbaa !5
  %2099 = load ptr, ptr %48, align 8, !tbaa !5
  %2100 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2099, i32 0, i32 12
  %2101 = load ptr, ptr %107, align 8, !tbaa !5
  %2102 = load i32, ptr %108, align 4, !tbaa !9
  %2103 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2098, ptr noundef %2100, ptr noundef %2101, i32 noundef %2102)
  %2104 = load ptr, ptr %48, align 8, !tbaa !5
  %2105 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2104, i32 0, i32 14
  store i8 1, ptr %2105, align 4, !tbaa !171
  br label %2106

2106:                                             ; preds = %2097, %2090
  %2107 = load ptr, ptr %107, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2107)
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #14
  br label %2108

2108:                                             ; preds = %2106, %2047
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #14
  br label %2109

2109:                                             ; preds = %2108, %2044
  br label %2110

2110:                                             ; preds = %2109, %2043
  br label %2111

2111:                                             ; preds = %2110, %1940
  br label %2112

2112:                                             ; preds = %2111, %1930
  br label %2113

2113:                                             ; preds = %2112, %1923
  br label %2114

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

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

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

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

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

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

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

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

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

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

2124:                                             ; preds = %2123, %1641
  %2125 = load ptr, ptr %48, align 8, !tbaa !5
  %2126 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %2125)
  br i1 %2126, label %2127, label %2130

2127:                                             ; preds = %2124
  %2128 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2129 = trunc i8 %2128 to i1
  br label %2130

2130:                                             ; preds = %2127, %2124
  %2131 = phi i1 [ false, %2124 ], [ %2129, %2127 ]
  %2132 = zext i1 %2131 to i32
  %2133 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %2134 = trunc i8 %2133 to i1
  %2135 = zext i1 %2134 to i32
  %2136 = or i32 %2135, %2132
  %2137 = icmp ne i32 %2136, 0
  %2138 = zext i1 %2137 to i8
  store i8 %2138, ptr %65, align 1, !tbaa !44
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #14
  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 4, ptr %88) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #14
  br label %2139

2139:                                             ; preds = %2130, %1433, %1428, %1422
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #14
  store ptr null, ptr %111, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #14
  store i32 0, ptr %112, align 4, !tbaa !9
  %2140 = load ptr, ptr %20, align 8, !tbaa !5
  %2141 = getelementptr inbounds %struct.ImGuiContext, ptr %2140, i32 0, i32 51
  %2142 = load i32, ptr %2141, align 4, !tbaa !118
  %2143 = load i32, ptr %29, align 4, !tbaa !9
  %2144 = icmp eq i32 %2142, %2143
  br i1 %2144, label %2145, label %2623

2145:                                             ; preds = %2139
  %2146 = load ptr, ptr %48, align 8, !tbaa !5
  %2147 = icmp ne ptr %2146, null
  br i1 %2147, label %2148, label %2149

2148:                                             ; preds = %2145
  br label %2151

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

2150:                                             ; No predecessors!
  br label %2151

2151:                                             ; preds = %2150, %2148
  %2152 = load i8, ptr %83, align 1, !tbaa !44, !range !42, !noundef !43
  %2153 = trunc i8 %2152 to i1
  br i1 %2153, label %2154, label %2237

2154:                                             ; preds = %2151
  %2155 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2156 = trunc i8 %2155 to i1
  br i1 %2156, label %2237, label %2157

2157:                                             ; preds = %2154
  %2158 = load i32, ptr %15, align 4, !tbaa !9
  %2159 = and i32 %2158, 1048576
  %2160 = icmp ne i32 %2159, 0
  br i1 %2160, label %2161, label %2174

2161:                                             ; preds = %2157
  %2162 = load ptr, ptr %12, align 8, !tbaa !5
  %2163 = getelementptr inbounds i8, ptr %2162, i64 0
  %2164 = load i8, ptr %2163, align 1, !tbaa !145
  %2165 = sext i8 %2164 to i32
  %2166 = icmp ne i32 %2165, 0
  br i1 %2166, label %2167, label %2168

2167:                                             ; preds = %2161
  br label %2170

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

2169:                                             ; No predecessors!
  br label %2170

2170:                                             ; preds = %2169, %2167
  store ptr @.str, ptr %111, align 8, !tbaa !5
  store i32 0, ptr %112, align 4, !tbaa !9
  store i8 1, ptr %66, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 2, ptr %113) #14
  %2171 = load ptr, ptr %48, align 8, !tbaa !5
  %2172 = load ptr, ptr %48, align 8, !tbaa !5
  %2173 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2172, i32 0, i32 12
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2171, ptr noundef %2173, ptr noundef %113, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr %113) #14
  br label %2236

2174:                                             ; preds = %2157
  %2175 = load ptr, ptr %12, align 8, !tbaa !5
  %2176 = load ptr, ptr %48, align 8, !tbaa !5
  %2177 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2176, i32 0, i32 7
  %2178 = getelementptr inbounds %struct.ImVector.32, ptr %2177, i32 0, i32 2
  %2179 = load ptr, ptr %2178, align 8, !tbaa !133
  %2180 = call i32 @strcmp(ptr noundef %2175, ptr noundef %2179) #16
  %2181 = icmp ne i32 %2180, 0
  br i1 %2181, label %2182, label %2235

2182:                                             ; preds = %2174
  %2183 = load ptr, ptr %48, align 8, !tbaa !5
  %2184 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2183, i32 0, i32 7
  %2185 = getelementptr inbounds %struct.ImVector.32, ptr %2184, i32 0, i32 2
  %2186 = load ptr, ptr %2185, align 8, !tbaa !133
  store ptr %2186, ptr %111, align 8, !tbaa !5
  %2187 = load ptr, ptr %48, align 8, !tbaa !5
  %2188 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2187, i32 0, i32 7
  %2189 = getelementptr inbounds %struct.ImVector.32, ptr %2188, i32 0, i32 0
  %2190 = load i32, ptr %2189, align 8, !tbaa !186
  %2191 = sub nsw i32 %2190, 1
  store i32 %2191, ptr %112, align 4, !tbaa !9
  store i8 1, ptr %66, align 1, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %114)
  %2192 = load i32, ptr %112, align 4, !tbaa !9
  %2193 = icmp sgt i32 %2192, 0
  br i1 %2193, label %2194, label %2219

2194:                                             ; preds = %2182
  %2195 = load ptr, ptr %111, align 8, !tbaa !5
  %2196 = load ptr, ptr %111, align 8, !tbaa !5
  %2197 = load i32, ptr %112, align 4, !tbaa !9
  %2198 = sext i32 %2197 to i64
  %2199 = getelementptr inbounds i8, ptr %2196, i64 %2198
  %2200 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2195, ptr noundef %2199)
          to label %2201 unwind label %2215

2201:                                             ; preds = %2194
  %2202 = add nsw i32 %2200, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %114, i32 noundef %2202)
          to label %2203 unwind label %2215

2203:                                             ; preds = %2201
  %2204 = getelementptr inbounds %struct.ImVector.5, ptr %114, i32 0, i32 2
  %2205 = load ptr, ptr %2204, align 8, !tbaa !187
  %2206 = getelementptr inbounds %struct.ImVector.5, ptr %114, i32 0, i32 0
  %2207 = load i32, ptr %2206, align 8, !tbaa !188
  %2208 = load ptr, ptr %111, align 8, !tbaa !5
  %2209 = load ptr, ptr %111, align 8, !tbaa !5
  %2210 = load i32, ptr %112, align 4, !tbaa !9
  %2211 = sext i32 %2210 to i64
  %2212 = getelementptr inbounds i8, ptr %2209, i64 %2211
  %2213 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2205, i32 noundef %2207, ptr noundef %2208, ptr noundef %2212, ptr noundef null)
          to label %2214 unwind label %2215

2214:                                             ; preds = %2203
  br label %2219

2215:                                             ; preds = %2232, %2203, %2201, %2194
  %2216 = landingpad { ptr, i32 }
          cleanup
  %2217 = extractvalue { ptr, i32 } %2216, 0
  store ptr %2217, ptr %115, align 8
  %2218 = extractvalue { ptr, i32 } %2216, 1
  store i32 %2218, ptr %116, align 4
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %114) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #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 %59) #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 4, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 1, 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 8, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #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 %3592

2219:                                             ; preds = %2214, %2182
  %2220 = load ptr, ptr %48, align 8, !tbaa !5
  %2221 = load ptr, ptr %48, align 8, !tbaa !5
  %2222 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2221, i32 0, i32 12
  %2223 = getelementptr inbounds %struct.ImVector.5, ptr %114, i32 0, i32 2
  %2224 = load ptr, ptr %2223, align 8, !tbaa !187
  %2225 = load i32, ptr %112, align 4, !tbaa !9
  %2226 = icmp sgt i32 %2225, 0
  br i1 %2226, label %2227, label %2231

2227:                                             ; preds = %2219
  %2228 = getelementptr inbounds %struct.ImVector.5, ptr %114, i32 0, i32 0
  %2229 = load i32, ptr %2228, align 8, !tbaa !188
  %2230 = sub nsw i32 %2229, 1
  br label %2232

2231:                                             ; preds = %2219
  br label %2232

2232:                                             ; preds = %2231, %2227
  %2233 = phi i32 [ %2230, %2227 ], [ 0, %2231 ]
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2220, ptr noundef %2222, ptr noundef %2224, i32 noundef %2233)
          to label %2234 unwind label %2215

2234:                                             ; preds = %2232
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %114) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #14
  br label %2235

2235:                                             ; preds = %2234, %2174
  br label %2236

2236:                                             ; preds = %2235, %2170
  br label %2237

2237:                                             ; preds = %2236, %2154, %2151
  %2238 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2239 = trunc i8 %2238 to i1
  br i1 %2239, label %2264, label %2240

2240:                                             ; preds = %2237
  %2241 = load ptr, ptr %48, align 8, !tbaa !5
  %2242 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2241, i32 0, i32 8
  store i8 1, ptr %2242, align 8, !tbaa !135
  %2243 = load ptr, ptr %48, align 8, !tbaa !5
  %2244 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2243, i32 0, i32 6
  %2245 = load ptr, ptr %48, align 8, !tbaa !5
  %2246 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2245, i32 0, i32 5
  %2247 = getelementptr inbounds %struct.ImVector.5, ptr %2246, i32 0, i32 0
  %2248 = load i32, ptr %2247, align 8, !tbaa !144
  %2249 = mul nsw i32 %2248, 4
  %2250 = add nsw i32 %2249, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2244, i32 noundef %2250)
  %2251 = load ptr, ptr %48, align 8, !tbaa !5
  %2252 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2251, i32 0, i32 6
  %2253 = getelementptr inbounds %struct.ImVector.32, ptr %2252, i32 0, i32 2
  %2254 = load ptr, ptr %2253, align 8, !tbaa !136
  %2255 = load ptr, ptr %48, align 8, !tbaa !5
  %2256 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2255, i32 0, i32 6
  %2257 = getelementptr inbounds %struct.ImVector.32, ptr %2256, i32 0, i32 0
  %2258 = load i32, ptr %2257, align 8, !tbaa !189
  %2259 = load ptr, ptr %48, align 8, !tbaa !5
  %2260 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2259, i32 0, i32 5
  %2261 = getelementptr inbounds %struct.ImVector.5, ptr %2260, i32 0, i32 2
  %2262 = load ptr, ptr %2261, align 8, !tbaa !137
  %2263 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2254, i32 noundef %2258, ptr noundef %2262, ptr noundef null)
  br label %2264

2264:                                             ; preds = %2240, %2237
  call void @llvm.lifetime.start.p0(i64 1, ptr %117) #14
  %2265 = load i8, ptr %83, align 1, !tbaa !44, !range !42, !noundef !43
  %2266 = trunc i8 %2265 to i1
  br i1 %2266, label %2267, label %2276

2267:                                             ; preds = %2264
  %2268 = load i8, ptr %67, align 1, !tbaa !44, !range !42, !noundef !43
  %2269 = trunc i8 %2268 to i1
  br i1 %2269, label %2270, label %2274

2270:                                             ; preds = %2267
  %2271 = load i32, ptr %15, align 4, !tbaa !9
  %2272 = and i32 %2271, 32
  %2273 = icmp ne i32 %2272, 0
  br label %2274

2274:                                             ; preds = %2270, %2267
  %2275 = phi i1 [ false, %2267 ], [ %2273, %2270 ]
  br label %2276

2276:                                             ; preds = %2274, %2264
  %2277 = phi i1 [ true, %2264 ], [ %2275, %2274 ]
  %2278 = zext i1 %2277 to i8
  store i8 %2278, ptr %117, align 1, !tbaa !44
  %2279 = load i8, ptr %117, align 1, !tbaa !44, !range !42, !noundef !43
  %2280 = trunc i8 %2279 to i1
  br i1 %2280, label %2281, label %2622

2281:                                             ; preds = %2276
  %2282 = load i32, ptr %15, align 4, !tbaa !9
  %2283 = and i32 %2282, 524736
  %2284 = icmp ne i32 %2283, 0
  br i1 %2284, label %2285, label %2602

2285:                                             ; preds = %2281
  %2286 = load ptr, ptr %16, align 8, !tbaa !5
  %2287 = icmp ne ptr %2286, null
  br i1 %2287, label %2288, label %2289

2288:                                             ; preds = %2285
  br label %2291

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

2290:                                             ; No predecessors!
  br label %2291

2291:                                             ; preds = %2290, %2288
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #14
  store i32 0, ptr %118, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #14
  store i32 0, ptr %119, align 4, !tbaa !190
  %2292 = load i32, ptr %15, align 4, !tbaa !9
  %2293 = and i32 %2292, 64
  %2294 = icmp ne i32 %2293, 0
  br i1 %2294, label %2295, label %2299

2295:                                             ; preds = %2291
  %2296 = load i32, ptr %29, align 4, !tbaa !9
  %2297 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %2296, i32 noundef 0)
  br i1 %2297, label %2298, label %2299

2298:                                             ; preds = %2295
  store i32 64, ptr %118, align 4, !tbaa !9
  store i32 512, ptr %119, align 4, !tbaa !190
  br label %2332

2299:                                             ; preds = %2295, %2291
  %2300 = load i32, ptr %15, align 4, !tbaa !9
  %2301 = and i32 %2300, 128
  %2302 = icmp ne i32 %2301, 0
  br i1 %2302, label %2303, label %2306

2303:                                             ; preds = %2299
  %2304 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %2304, label %2305, label %2306

2305:                                             ; preds = %2303
  store i32 128, ptr %118, align 4, !tbaa !9
  store i32 515, ptr %119, align 4, !tbaa !190
  br label %2331

2306:                                             ; preds = %2303, %2299
  %2307 = load i32, ptr %15, align 4, !tbaa !9
  %2308 = and i32 %2307, 128
  %2309 = icmp ne i32 %2308, 0
  br i1 %2309, label %2310, label %2313

2310:                                             ; preds = %2306
  %2311 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %2311, label %2312, label %2313

2312:                                             ; preds = %2310
  store i32 128, ptr %118, align 4, !tbaa !9
  store i32 516, ptr %119, align 4, !tbaa !190
  br label %2330

2313:                                             ; preds = %2310, %2306
  %2314 = load i32, ptr %15, align 4, !tbaa !9
  %2315 = and i32 %2314, 524288
  %2316 = icmp ne i32 %2315, 0
  br i1 %2316, label %2317, label %2323

2317:                                             ; preds = %2313
  %2318 = load ptr, ptr %48, align 8, !tbaa !5
  %2319 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2318, i32 0, i32 16
  %2320 = load i8, ptr %2319, align 2, !tbaa !156, !range !42, !noundef !43
  %2321 = trunc i8 %2320 to i1
  br i1 %2321, label %2322, label %2323

2322:                                             ; preds = %2317
  store i32 524288, ptr %118, align 4, !tbaa !9
  br label %2329

2323:                                             ; preds = %2317, %2313
  %2324 = load i32, ptr %15, align 4, !tbaa !9
  %2325 = and i32 %2324, 256
  %2326 = icmp ne i32 %2325, 0
  br i1 %2326, label %2327, label %2328

2327:                                             ; preds = %2323
  store i32 256, ptr %118, align 4, !tbaa !9
  br label %2328

2328:                                             ; preds = %2327, %2323
  br label %2329

2329:                                             ; preds = %2328, %2322
  br label %2330

2330:                                             ; preds = %2329, %2312
  br label %2331

2331:                                             ; preds = %2330, %2305
  br label %2332

2332:                                             ; preds = %2331, %2298
  %2333 = load i32, ptr %118, align 4, !tbaa !9
  %2334 = icmp ne i32 %2333, 0
  br i1 %2334, label %2335, label %2601

2335:                                             ; preds = %2332
  call void @llvm.lifetime.start.p0(i64 64, ptr %120) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %120)
  %2336 = load ptr, ptr %20, align 8, !tbaa !5
  %2337 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 0
  store ptr %2336, ptr %2337, align 8, !tbaa !192
  %2338 = load i32, ptr %118, align 4, !tbaa !9
  %2339 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 1
  store i32 %2338, ptr %2339, align 8, !tbaa !194
  %2340 = load i32, ptr %15, align 4, !tbaa !9
  %2341 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 2
  store i32 %2340, ptr %2341, align 4, !tbaa !195
  %2342 = load ptr, ptr %17, align 8, !tbaa !5
  %2343 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 3
  store ptr %2342, ptr %2343, align 8, !tbaa !196
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #14
  %2344 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2345 = trunc i8 %2344 to i1
  br i1 %2345, label %2346, label %2348

2346:                                             ; preds = %2335
  %2347 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2353

2348:                                             ; preds = %2335
  %2349 = load ptr, ptr %48, align 8, !tbaa !5
  %2350 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2349, i32 0, i32 6
  %2351 = getelementptr inbounds %struct.ImVector.32, ptr %2350, i32 0, i32 2
  %2352 = load ptr, ptr %2351, align 8, !tbaa !136
  br label %2353

2353:                                             ; preds = %2348, %2346
  %2354 = phi ptr [ %2347, %2346 ], [ %2352, %2348 ]
  store ptr %2354, ptr %121, align 8, !tbaa !5
  %2355 = load i32, ptr %119, align 4, !tbaa !190
  %2356 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 5
  store i32 %2355, ptr %2356, align 4, !tbaa !197
  %2357 = load ptr, ptr %121, align 8, !tbaa !5
  %2358 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  store ptr %2357, ptr %2358, align 8, !tbaa !198
  %2359 = load ptr, ptr %48, align 8, !tbaa !5
  %2360 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2359, i32 0, i32 3
  %2361 = load i32, ptr %2360, align 8, !tbaa !134
  %2362 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 7
  store i32 %2361, ptr %2362, align 8, !tbaa !199
  %2363 = load ptr, ptr %48, align 8, !tbaa !5
  %2364 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2363, i32 0, i32 10
  %2365 = load i32, ptr %2364, align 4, !tbaa !157
  %2366 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 8
  store i32 %2365, ptr %2366, align 4, !tbaa !200
  %2367 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 9
  store i8 0, ptr %2367, align 8, !tbaa !201
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #14
  %2368 = load ptr, ptr %48, align 8, !tbaa !5
  %2369 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2368, i32 0, i32 5
  %2370 = getelementptr inbounds %struct.ImVector.5, ptr %2369, i32 0, i32 2
  %2371 = load ptr, ptr %2370, align 8, !tbaa !137
  store ptr %2371, ptr %122, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #14
  %2372 = load ptr, ptr %122, align 8, !tbaa !5
  %2373 = load ptr, ptr %122, align 8, !tbaa !5
  %2374 = load ptr, ptr %48, 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 0
  %2377 = load i32, ptr %2376, align 4, !tbaa !168
  %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 %120, i32 0, i32 10
  store i32 %2380, ptr %2381, align 4, !tbaa !202
  store i32 %2380, ptr %123, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #14
  %2382 = load ptr, ptr %122, align 8, !tbaa !5
  %2383 = load ptr, ptr %122, align 8, !tbaa !5
  %2384 = load ptr, ptr %48, align 8, !tbaa !5
  %2385 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2384, i32 0, i32 12
  %2386 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2385, i32 0, i32 1
  %2387 = load i32, ptr %2386, align 4, !tbaa !169
  %2388 = sext i32 %2387 to i64
  %2389 = getelementptr inbounds i16, ptr %2383, i64 %2388
  %2390 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2382, ptr noundef %2389)
  %2391 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 11
  store i32 %2390, ptr %2391, align 8, !tbaa !203
  store i32 %2390, ptr %124, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #14
  %2392 = load ptr, ptr %122, align 8, !tbaa !5
  %2393 = load ptr, ptr %122, align 8, !tbaa !5
  %2394 = load ptr, ptr %48, align 8, !tbaa !5
  %2395 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2394, i32 0, i32 12
  %2396 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2395, i32 0, i32 2
  %2397 = load i32, ptr %2396, align 4, !tbaa !170
  %2398 = sext i32 %2397 to i64
  %2399 = getelementptr inbounds i16, ptr %2393, i64 %2398
  %2400 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2392, ptr noundef %2399)
  %2401 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 12
  store i32 %2400, ptr %2401, align 4, !tbaa !204
  store i32 %2400, ptr %125, align 4, !tbaa !9
  %2402 = load ptr, ptr %16, align 8, !tbaa !5
  %2403 = call noundef i32 %2402(ptr noundef %120)
  %2404 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2405 = trunc i8 %2404 to i1
  br i1 %2405, label %2406, label %2408

2406:                                             ; preds = %2353
  %2407 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2413

2408:                                             ; preds = %2353
  %2409 = load ptr, ptr %48, align 8, !tbaa !5
  %2410 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2409, i32 0, i32 6
  %2411 = getelementptr inbounds %struct.ImVector.32, ptr %2410, i32 0, i32 2
  %2412 = load ptr, ptr %2411, align 8, !tbaa !136
  br label %2413

2413:                                             ; preds = %2408, %2406
  %2414 = phi ptr [ %2407, %2406 ], [ %2412, %2408 ]
  store ptr %2414, ptr %121, align 8, !tbaa !5
  %2415 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2416 = load ptr, ptr %2415, align 8, !tbaa !198
  %2417 = load ptr, ptr %121, align 8, !tbaa !5
  %2418 = icmp eq ptr %2416, %2417
  br i1 %2418, label %2419, label %2420

2419:                                             ; preds = %2413
  br label %2422

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

2421:                                             ; No predecessors!
  br label %2422

2422:                                             ; preds = %2421, %2419
  %2423 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 8
  %2424 = load i32, ptr %2423, align 4, !tbaa !200
  %2425 = load ptr, ptr %48, align 8, !tbaa !5
  %2426 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2425, i32 0, i32 10
  %2427 = load i32, ptr %2426, align 4, !tbaa !157
  %2428 = icmp eq i32 %2424, %2427
  br i1 %2428, label %2429, label %2430

2429:                                             ; preds = %2422
  br label %2432

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

2431:                                             ; No predecessors!
  br label %2432

2432:                                             ; preds = %2431, %2429
  %2433 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 2
  %2434 = load i32, ptr %2433, align 4, !tbaa !195
  %2435 = load i32, ptr %15, align 4, !tbaa !9
  %2436 = icmp eq i32 %2434, %2435
  br i1 %2436, label %2437, label %2438

2437:                                             ; preds = %2432
  br label %2440

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

2439:                                             ; No predecessors!
  br label %2440

2440:                                             ; preds = %2439, %2437
  call void @llvm.lifetime.start.p0(i64 1, ptr %126) #14
  %2441 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 9
  %2442 = load i8, ptr %2441, align 8, !tbaa !201, !range !42, !noundef !43
  %2443 = trunc i8 %2442 to i1
  %2444 = zext i1 %2443 to i8
  store i8 %2444, ptr %126, align 1, !tbaa !44
  %2445 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 10
  %2446 = load i32, ptr %2445, align 4, !tbaa !202
  %2447 = load i32, ptr %123, align 4, !tbaa !9
  %2448 = icmp ne i32 %2446, %2447
  br i1 %2448, label %2452, label %2449

2449:                                             ; preds = %2440
  %2450 = load i8, ptr %126, align 1, !tbaa !44, !range !42, !noundef !43
  %2451 = trunc i8 %2450 to i1
  br i1 %2451, label %2452, label %2467

2452:                                             ; preds = %2449, %2440
  %2453 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2454 = load ptr, ptr %2453, align 8, !tbaa !198
  %2455 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2456 = load ptr, ptr %2455, align 8, !tbaa !198
  %2457 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 10
  %2458 = load i32, ptr %2457, align 4, !tbaa !202
  %2459 = sext i32 %2458 to i64
  %2460 = getelementptr inbounds i8, ptr %2456, i64 %2459
  %2461 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2454, ptr noundef %2460)
  %2462 = load ptr, ptr %48, 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
  store i32 %2461, ptr %2464, align 4, !tbaa !168
  %2465 = load ptr, ptr %48, align 8, !tbaa !5
  %2466 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2465, i32 0, i32 14
  store i8 1, ptr %2466, align 4, !tbaa !171
  br label %2467

2467:                                             ; preds = %2452, %2449
  %2468 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 11
  %2469 = load i32, ptr %2468, align 8, !tbaa !203
  %2470 = load i32, ptr %124, align 4, !tbaa !9
  %2471 = icmp ne i32 %2469, %2470
  br i1 %2471, label %2475, label %2472

2472:                                             ; preds = %2467
  %2473 = load i8, ptr %126, align 1, !tbaa !44, !range !42, !noundef !43
  %2474 = trunc i8 %2473 to i1
  br i1 %2474, label %2475, label %2501

2475:                                             ; preds = %2472, %2467
  %2476 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 11
  %2477 = load i32, ptr %2476, align 8, !tbaa !203
  %2478 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 10
  %2479 = load i32, ptr %2478, align 4, !tbaa !202
  %2480 = icmp eq i32 %2477, %2479
  br i1 %2480, label %2481, label %2486

2481:                                             ; preds = %2475
  %2482 = load ptr, ptr %48, align 8, !tbaa !5
  %2483 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2482, i32 0, i32 12
  %2484 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2483, i32 0, i32 0
  %2485 = load i32, ptr %2484, align 4, !tbaa !168
  br label %2496

2486:                                             ; preds = %2475
  %2487 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2488 = load ptr, ptr %2487, align 8, !tbaa !198
  %2489 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2490 = load ptr, ptr %2489, align 8, !tbaa !198
  %2491 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 11
  %2492 = load i32, ptr %2491, align 8, !tbaa !203
  %2493 = sext i32 %2492 to i64
  %2494 = getelementptr inbounds i8, ptr %2490, i64 %2493
  %2495 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2488, ptr noundef %2494)
  br label %2496

2496:                                             ; preds = %2486, %2481
  %2497 = phi i32 [ %2485, %2481 ], [ %2495, %2486 ]
  %2498 = load ptr, ptr %48, align 8, !tbaa !5
  %2499 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2498, i32 0, i32 12
  %2500 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2499, i32 0, i32 1
  store i32 %2497, ptr %2500, align 4, !tbaa !169
  br label %2501

2501:                                             ; preds = %2496, %2472
  %2502 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 12
  %2503 = load i32, ptr %2502, align 4, !tbaa !204
  %2504 = load i32, ptr %125, align 4, !tbaa !9
  %2505 = icmp ne i32 %2503, %2504
  br i1 %2505, label %2509, label %2506

2506:                                             ; preds = %2501
  %2507 = load i8, ptr %126, align 1, !tbaa !44, !range !42, !noundef !43
  %2508 = trunc i8 %2507 to i1
  br i1 %2508, label %2509, label %2535

2509:                                             ; preds = %2506, %2501
  %2510 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 12
  %2511 = load i32, ptr %2510, align 4, !tbaa !204
  %2512 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 11
  %2513 = load i32, ptr %2512, align 8, !tbaa !203
  %2514 = icmp eq i32 %2511, %2513
  br i1 %2514, label %2515, label %2520

2515:                                             ; preds = %2509
  %2516 = load ptr, ptr %48, align 8, !tbaa !5
  %2517 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2516, i32 0, i32 12
  %2518 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2517, i32 0, i32 1
  %2519 = load i32, ptr %2518, align 4, !tbaa !169
  br label %2530

2520:                                             ; preds = %2509
  %2521 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2522 = load ptr, ptr %2521, align 8, !tbaa !198
  %2523 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2524 = load ptr, ptr %2523, align 8, !tbaa !198
  %2525 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 12
  %2526 = load i32, ptr %2525, align 4, !tbaa !204
  %2527 = sext i32 %2526 to i64
  %2528 = getelementptr inbounds i8, ptr %2524, i64 %2527
  %2529 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2522, ptr noundef %2528)
  br label %2530

2530:                                             ; preds = %2520, %2515
  %2531 = phi i32 [ %2519, %2515 ], [ %2529, %2520 ]
  %2532 = load ptr, ptr %48, align 8, !tbaa !5
  %2533 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2532, i32 0, i32 12
  %2534 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2533, i32 0, i32 2
  store i32 %2531, ptr %2534, align 4, !tbaa !170
  br label %2535

2535:                                             ; preds = %2530, %2506
  %2536 = load i8, ptr %126, align 1, !tbaa !44, !range !42, !noundef !43
  %2537 = trunc i8 %2536 to i1
  br i1 %2537, label %2538, label %2600

2538:                                             ; preds = %2535
  %2539 = load i32, ptr %15, align 4, !tbaa !9
  %2540 = and i32 %2539, 16384
  %2541 = icmp eq i32 %2540, 0
  br i1 %2541, label %2542, label %2543

2542:                                             ; preds = %2538
  br label %2545

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

2544:                                             ; No predecessors!
  br label %2545

2545:                                             ; preds = %2544, %2542
  %2546 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 7
  %2547 = load i32, ptr %2546, align 8, !tbaa !199
  %2548 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2549 = load ptr, ptr %2548, align 8, !tbaa !198
  %2550 = call i64 @strlen(ptr noundef %2549) #16
  %2551 = trunc i64 %2550 to i32
  %2552 = icmp eq i32 %2547, %2551
  br i1 %2552, label %2553, label %2554

2553:                                             ; preds = %2545
  br label %2556

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

2555:                                             ; No predecessors!
  br label %2556

2556:                                             ; preds = %2555, %2553
  %2557 = load ptr, ptr %48, align 8, !tbaa !5
  %2558 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2559 = load ptr, ptr %2558, align 8, !tbaa !198
  %2560 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 7
  %2561 = load i32, ptr %2560, align 8, !tbaa !199
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef %2557, ptr noundef %2559, i32 noundef %2561)
  %2562 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 7
  %2563 = load i32, ptr %2562, align 8, !tbaa !199
  %2564 = load i32, ptr %73, align 4, !tbaa !9
  %2565 = icmp sgt i32 %2563, %2564
  br i1 %2565, label %2566, label %2581

2566:                                             ; preds = %2556
  %2567 = load i8, ptr %28, align 1, !tbaa !44, !range !42, !noundef !43
  %2568 = trunc i8 %2567 to i1
  br i1 %2568, label %2569, label %2581

2569:                                             ; preds = %2566
  %2570 = load ptr, ptr %48, align 8, !tbaa !5
  %2571 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2570, i32 0, i32 5
  %2572 = load ptr, ptr %48, align 8, !tbaa !5
  %2573 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2572, i32 0, i32 5
  %2574 = getelementptr inbounds %struct.ImVector.5, ptr %2573, i32 0, i32 0
  %2575 = load i32, ptr %2574, align 8, !tbaa !144
  %2576 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 7
  %2577 = load i32, ptr %2576, align 8, !tbaa !199
  %2578 = load i32, ptr %73, align 4, !tbaa !9
  %2579 = sub nsw i32 %2577, %2578
  %2580 = add nsw i32 %2575, %2579
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2571, i32 noundef %2580)
  br label %2581

2581:                                             ; preds = %2569, %2566, %2556
  %2582 = load ptr, ptr %48, align 8, !tbaa !5
  %2583 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2582, i32 0, i32 5
  %2584 = getelementptr inbounds %struct.ImVector.5, ptr %2583, i32 0, i32 2
  %2585 = load ptr, ptr %2584, align 8, !tbaa !137
  %2586 = load ptr, ptr %48, align 8, !tbaa !5
  %2587 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2586, i32 0, i32 5
  %2588 = getelementptr inbounds %struct.ImVector.5, ptr %2587, i32 0, i32 0
  %2589 = load i32, ptr %2588, align 8, !tbaa !144
  %2590 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 6
  %2591 = load ptr, ptr %2590, align 8, !tbaa !198
  %2592 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2585, i32 noundef %2589, ptr noundef %2591, ptr noundef null, ptr noundef null)
  %2593 = load ptr, ptr %48, align 8, !tbaa !5
  %2594 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2593, i32 0, i32 2
  store i32 %2592, ptr %2594, align 4, !tbaa !138
  %2595 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %120, i32 0, i32 7
  %2596 = load i32, ptr %2595, align 8, !tbaa !199
  %2597 = load ptr, ptr %48, align 8, !tbaa !5
  %2598 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2597, i32 0, i32 3
  store i32 %2596, ptr %2598, align 8, !tbaa !134
  %2599 = load ptr, ptr %48, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %2599)
  br label %2600

2600:                                             ; preds = %2581, %2535
  call void @llvm.lifetime.end.p0(i64 1, ptr %126) #14
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %122) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #14
  call void @llvm.lifetime.end.p0(i64 64, ptr %120) #14
  br label %2601

2601:                                             ; preds = %2600, %2332
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #14
  br label %2602

2602:                                             ; preds = %2601, %2281
  %2603 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2604 = trunc i8 %2603 to i1
  br i1 %2604, label %2621, label %2605

2605:                                             ; preds = %2602
  %2606 = load ptr, ptr %48, align 8, !tbaa !5
  %2607 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2606, i32 0, i32 6
  %2608 = getelementptr inbounds %struct.ImVector.32, ptr %2607, i32 0, i32 2
  %2609 = load ptr, ptr %2608, align 8, !tbaa !136
  %2610 = load ptr, ptr %12, align 8, !tbaa !5
  %2611 = call i32 @strcmp(ptr noundef %2609, ptr noundef %2610) #16
  %2612 = icmp ne i32 %2611, 0
  br i1 %2612, label %2613, label %2621

2613:                                             ; preds = %2605
  %2614 = load ptr, ptr %48, align 8, !tbaa !5
  %2615 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2614, i32 0, i32 6
  %2616 = getelementptr inbounds %struct.ImVector.32, ptr %2615, i32 0, i32 2
  %2617 = load ptr, ptr %2616, align 8, !tbaa !136
  store ptr %2617, ptr %111, align 8, !tbaa !5
  %2618 = load ptr, ptr %48, align 8, !tbaa !5
  %2619 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2618, i32 0, i32 3
  %2620 = load i32, ptr %2619, align 8, !tbaa !134
  store i32 %2620, ptr %112, align 4, !tbaa !9
  store i8 1, ptr %66, align 1, !tbaa !44
  br label %2621

2621:                                             ; preds = %2613, %2605, %2602
  br label %2622

2622:                                             ; preds = %2621, %2276
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #14
  br label %2623

2623:                                             ; preds = %2622, %2139
  %2624 = load ptr, ptr %20, align 8, !tbaa !5
  %2625 = getelementptr inbounds %struct.ImGuiContext, ptr %2624, i32 0, i32 194
  %2626 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2625, i32 0, i32 0
  %2627 = load i32, ptr %2626, align 8, !tbaa !205
  %2628 = load i32, ptr %29, align 4, !tbaa !9
  %2629 = icmp eq i32 %2627, %2628
  br i1 %2629, label %2630, label %2666

2630:                                             ; preds = %2623
  %2631 = load ptr, ptr %20, align 8, !tbaa !5
  %2632 = getelementptr inbounds %struct.ImGuiContext, ptr %2631, i32 0, i32 51
  %2633 = load i32, ptr %2632, align 4, !tbaa !118
  %2634 = load i32, ptr %29, align 4, !tbaa !9
  %2635 = icmp ne i32 %2633, %2634
  br i1 %2635, label %2636, label %2662

2636:                                             ; preds = %2630
  %2637 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  br i1 %2637, label %2638, label %2662

2638:                                             ; preds = %2636
  %2639 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %2640 = trunc i8 %2639 to i1
  br i1 %2640, label %2662, label %2641

2641:                                             ; preds = %2638
  %2642 = load ptr, ptr %20, align 8, !tbaa !5
  %2643 = getelementptr inbounds %struct.ImGuiContext, ptr %2642, i32 0, i32 194
  %2644 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2643, i32 0, i32 1
  %2645 = getelementptr inbounds %struct.ImVector.32, ptr %2644, i32 0, i32 2
  %2646 = load ptr, ptr %2645, align 8, !tbaa !206
  %2647 = load ptr, ptr %12, align 8, !tbaa !5
  %2648 = call i32 @strcmp(ptr noundef %2646, ptr noundef %2647) #16
  %2649 = icmp ne i32 %2648, 0
  br i1 %2649, label %2650, label %2662

2650:                                             ; preds = %2641
  %2651 = load ptr, ptr %20, align 8, !tbaa !5
  %2652 = getelementptr inbounds %struct.ImGuiContext, ptr %2651, i32 0, i32 194
  %2653 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2652, i32 0, i32 1
  %2654 = getelementptr inbounds %struct.ImVector.32, ptr %2653, i32 0, i32 2
  %2655 = load ptr, ptr %2654, align 8, !tbaa !206
  store ptr %2655, ptr %111, align 8, !tbaa !5
  %2656 = load ptr, ptr %20, align 8, !tbaa !5
  %2657 = getelementptr inbounds %struct.ImGuiContext, ptr %2656, i32 0, i32 194
  %2658 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2657, i32 0, i32 1
  %2659 = getelementptr inbounds %struct.ImVector.32, ptr %2658, i32 0, i32 0
  %2660 = load i32, ptr %2659, align 8, !tbaa !207
  %2661 = sub nsw i32 %2660, 1
  store i32 %2661, ptr %112, align 4, !tbaa !9
  store i8 1, ptr %66, align 1, !tbaa !44
  br label %2662

2662:                                             ; preds = %2650, %2641, %2638, %2636, %2630
  %2663 = load ptr, ptr %20, align 8, !tbaa !5
  %2664 = getelementptr inbounds %struct.ImGuiContext, ptr %2663, i32 0, i32 194
  %2665 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2664, i32 0, i32 0
  store i32 0, ptr %2665, align 8, !tbaa !205
  br label %2666

2666:                                             ; preds = %2662, %2623
  %2667 = load ptr, ptr %111, align 8, !tbaa !5
  %2668 = icmp ne ptr %2667, null
  br i1 %2668, label %2669, label %2721

2669:                                             ; preds = %2666
  %2670 = load i32, ptr %112, align 4, !tbaa !9
  %2671 = icmp sge i32 %2670, 0
  br i1 %2671, label %2672, label %2673

2672:                                             ; preds = %2669
  br label %2675

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

2674:                                             ; No predecessors!
  br label %2675

2675:                                             ; preds = %2674, %2672
  %2676 = load i8, ptr %28, align 1, !tbaa !44, !range !42, !noundef !43
  %2677 = trunc i8 %2676 to i1
  br i1 %2677, label %2678, label %2713

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

2709:                                             ; preds = %2678
  br label %2712

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

2711:                                             ; No predecessors!
  br label %2712

2712:                                             ; preds = %2711, %2709
  call void @llvm.lifetime.end.p0(i64 64, ptr %127) #14
  br label %2713

2713:                                             ; preds = %2712, %2675
  %2714 = load ptr, ptr %12, align 8, !tbaa !5
  %2715 = load ptr, ptr %111, align 8, !tbaa !5
  %2716 = load i32, ptr %112, align 4, !tbaa !9
  %2717 = add nsw i32 %2716, 1
  %2718 = load i32, ptr %13, align 4, !tbaa !9
  %2719 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2717, i32 noundef %2718)
  %2720 = sext i32 %2719 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %2714, ptr noundef %2715, i64 noundef %2720)
  br label %2721

2721:                                             ; preds = %2713, %2666
  %2722 = load ptr, ptr %20, align 8, !tbaa !5
  %2723 = getelementptr inbounds %struct.ImGuiContext, ptr %2722, i32 0, i32 51
  %2724 = load i32, ptr %2723, align 4, !tbaa !118
  %2725 = load i32, ptr %29, align 4, !tbaa !9
  %2726 = icmp eq i32 %2724, %2725
  br i1 %2726, label %2727, label %2731

2727:                                             ; preds = %2721
  %2728 = load i8, ptr %54, align 1, !tbaa !44, !range !42, !noundef !43
  %2729 = trunc i8 %2728 to i1
  br i1 %2729, label %2730, label %2731

2730:                                             ; preds = %2727
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %2741

2731:                                             ; preds = %2727, %2721
  %2732 = load ptr, ptr %20, align 8, !tbaa !5
  %2733 = getelementptr inbounds %struct.ImGuiContext, ptr %2732, i32 0, i32 51
  %2734 = load i32, ptr %2733, align 4, !tbaa !118
  %2735 = load i32, ptr %29, align 4, !tbaa !9
  %2736 = icmp eq i32 %2734, %2735
  br i1 %2736, label %2737, label %2740

2737:                                             ; preds = %2731
  %2738 = load ptr, ptr %20, align 8, !tbaa !5
  %2739 = getelementptr inbounds %struct.ImGuiContext, ptr %2738, i32 0, i32 266
  store i32 1, ptr %2739, align 4, !tbaa !208
  br label %2740

2740:                                             ; preds = %2737, %2731
  br label %2741

2741:                                             ; preds = %2740, %2730
  %2742 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2743 = trunc i8 %2742 to i1
  br i1 %2743, label %2754, label %2744

2744:                                             ; preds = %2741
  %2745 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %34, i32 noundef %2745, i32 noundef 1)
  %2746 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 %2746, i64 8, i1 false), !tbaa.struct !45
  %2747 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %129, ptr align 4 %2747, i64 8, i1 false), !tbaa.struct !45
  %2748 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %2749 = load ptr, ptr %22, align 8, !tbaa !5
  %2750 = getelementptr inbounds %struct.ImGuiStyle, ptr %2749, i32 0, i32 13
  %2751 = load float, ptr %2750, align 4, !tbaa !119
  %2752 = load <2 x float>, ptr %128, align 4
  %2753 = load <2 x float>, ptr %129, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %2752, <2 x float> %2753, i32 noundef %2748, i1 noundef zeroext true, float noundef %2751)
  br label %2754

2754:                                             ; preds = %2744, %2741
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #14
  %2755 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2756 = getelementptr inbounds %struct.ImVec2, ptr %2755, i32 0, i32 0
  %2757 = load float, ptr %2756, align 4, !tbaa !161
  %2758 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2759 = getelementptr inbounds %struct.ImVec2, ptr %2758, i32 0, i32 1
  %2760 = load float, ptr %2759, align 4, !tbaa !209
  %2761 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2762 = getelementptr inbounds %struct.ImVec2, ptr %2761, i32 0, i32 0
  %2763 = load float, ptr %2762, align 4, !tbaa !161
  %2764 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2765 = load float, ptr %2764, align 4, !tbaa !113
  %2766 = fadd float %2763, %2765
  %2767 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2768 = getelementptr inbounds %struct.ImVec2, ptr %2767, i32 0, i32 1
  %2769 = load float, ptr %2768, align 4, !tbaa !209
  %2770 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %2771 = load float, ptr %2770, align 4, !tbaa !111
  %2772 = fadd float %2769, %2771
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %130, float noundef %2757, float noundef %2760, float noundef %2766, float noundef %2772)
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #14
  %2773 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2774 = trunc i8 %2773 to i1
  br i1 %2774, label %2775, label %2779

2775:                                             ; preds = %2754
  %2776 = load ptr, ptr %38, align 8, !tbaa !5
  %2777 = getelementptr inbounds %struct.ImGuiWindow, ptr %2776, i32 0, i32 70
  %2778 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2777, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %131, ptr align 8 %2778, i64 8, i1 false), !tbaa.struct !45
  br label %2784

2779:                                             ; preds = %2754
  %2780 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %2781 = load ptr, ptr %22, align 8, !tbaa !5
  %2782 = getelementptr inbounds %struct.ImGuiStyle, ptr %2781, i32 0, i32 12
  %2783 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2780, ptr noundef nonnull align 4 dereferenceable(8) %2782)
  store <2 x float> %2783, ptr %131, align 4
  br label %2784

2784:                                             ; preds = %2779, %2775
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %132, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #14
  store i32 2097152, ptr %133, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #14
  %2785 = load i8, ptr %69, align 1, !tbaa !44, !range !42, !noundef !43
  %2786 = trunc i8 %2785 to i1
  br i1 %2786, label %2787, label %2792

2787:                                             ; preds = %2784
  %2788 = load ptr, ptr %48, align 8, !tbaa !5
  %2789 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2788, i32 0, i32 6
  %2790 = getelementptr inbounds %struct.ImVector.32, ptr %2789, i32 0, i32 2
  %2791 = load ptr, ptr %2790, align 8, !tbaa !136
  br label %2794

2792:                                             ; preds = %2784
  %2793 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2794

2794:                                             ; preds = %2792, %2787
  %2795 = phi ptr [ %2791, %2787 ], [ %2793, %2792 ]
  store ptr %2795, ptr %134, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #14
  store ptr null, ptr %135, align 8, !tbaa !5
  %2796 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %2797 = trunc i8 %2796 to i1
  br i1 %2797, label %2798, label %2804

2798:                                             ; preds = %2794
  %2799 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %2799, ptr %134, align 8, !tbaa !5
  %2800 = load ptr, ptr %11, align 8, !tbaa !5
  %2801 = load ptr, ptr %11, align 8, !tbaa !5
  %2802 = call i64 @strlen(ptr noundef %2801) #16
  %2803 = getelementptr inbounds i8, ptr %2800, i64 %2802
  store ptr %2803, ptr %135, align 8, !tbaa !5
  br label %2804

2804:                                             ; preds = %2798, %2794
  %2805 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2806 = trunc i8 %2805 to i1
  br i1 %2806, label %2810, label %2807

2807:                                             ; preds = %2804
  %2808 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %2809 = trunc i8 %2808 to i1
  br i1 %2809, label %2810, label %3403

2810:                                             ; preds = %2807, %2804
  %2811 = load ptr, ptr %48, align 8, !tbaa !5
  %2812 = icmp ne ptr %2811, null
  br i1 %2812, label %2813, label %2814

2813:                                             ; preds = %2810
  br label %2816

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

2815:                                             ; No predecessors!
  br label %2816

2816:                                             ; preds = %2815, %2813
  %2817 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %2818 = trunc i8 %2817 to i1
  br i1 %2818, label %2826, label %2819

2819:                                             ; preds = %2816
  %2820 = load ptr, ptr %134, align 8, !tbaa !5
  %2821 = load ptr, ptr %48, align 8, !tbaa !5
  %2822 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2821, i32 0, i32 3
  %2823 = load i32, ptr %2822, align 8, !tbaa !134
  %2824 = sext i32 %2823 to i64
  %2825 = getelementptr inbounds i8, ptr %2820, i64 %2824
  store ptr %2825, ptr %135, align 8, !tbaa !5
  br label %2826

2826:                                             ; preds = %2819, %2816
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #14
  %2827 = load ptr, ptr %48, align 8, !tbaa !5
  %2828 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2827, i32 0, i32 5
  %2829 = getelementptr inbounds %struct.ImVector.5, ptr %2828, i32 0, i32 2
  %2830 = load ptr, ptr %2829, align 8, !tbaa !137
  store ptr %2830, ptr %136, align 8, !tbaa !5
  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 8, ptr %138) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %138)
  call void @llvm.lifetime.start.p0(i64 16, ptr %139) #14
  call void @llvm.memset.p0.i64(ptr align 16 %139, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %140, ptr align 4 @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #14
  store i32 0, ptr %141, align 4, !tbaa !9
  %2831 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2832 = trunc i8 %2831 to i1
  br i1 %2832, label %2833, label %2845

2833:                                             ; preds = %2826
  %2834 = load ptr, ptr %136, align 8, !tbaa !5
  %2835 = load ptr, ptr %48, align 8, !tbaa !5
  %2836 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2835, i32 0, i32 12
  %2837 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2836, i32 0, i32 0
  %2838 = load i32, ptr %2837, align 4, !tbaa !168
  %2839 = sext i32 %2838 to i64
  %2840 = getelementptr inbounds i16, ptr %2834, i64 %2839
  %2841 = getelementptr inbounds [2 x ptr], ptr %139, i64 0, i64 0
  store ptr %2840, ptr %2841, align 16, !tbaa !5
  %2842 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 0
  store i32 -1, ptr %2842, align 4, !tbaa !9
  %2843 = load i32, ptr %141, align 4, !tbaa !9
  %2844 = add nsw i32 %2843, 1
  store i32 %2844, ptr %141, align 4, !tbaa !9
  br label %2845

2845:                                             ; preds = %2833, %2826
  %2846 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %2847 = trunc i8 %2846 to i1
  br i1 %2847, label %2848, label %2865

2848:                                             ; preds = %2845
  %2849 = load ptr, ptr %136, align 8, !tbaa !5
  %2850 = load ptr, ptr %48, align 8, !tbaa !5
  %2851 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2850, i32 0, i32 12
  %2852 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2851, i32 0, i32 1
  %2853 = load i32, ptr %2852, align 4, !tbaa !169
  %2854 = load ptr, ptr %48, align 8, !tbaa !5
  %2855 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2854, i32 0, i32 12
  %2856 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2855, i32 0, i32 2
  %2857 = load i32, ptr %2856, align 4, !tbaa !170
  %2858 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2853, i32 noundef %2857)
  %2859 = sext i32 %2858 to i64
  %2860 = getelementptr inbounds i16, ptr %2849, i64 %2859
  %2861 = getelementptr inbounds [2 x ptr], ptr %139, i64 0, i64 1
  store ptr %2860, ptr %2861, align 8, !tbaa !5
  %2862 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 1
  store i32 -1, ptr %2862, align 4, !tbaa !9
  %2863 = load i32, ptr %141, align 4, !tbaa !9
  %2864 = add nsw i32 %2863, 1
  store i32 %2864, ptr %141, align 4, !tbaa !9
  br label %2865

2865:                                             ; preds = %2848, %2845
  %2866 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2867 = trunc i8 %2866 to i1
  %2868 = zext i1 %2867 to i64
  %2869 = select i1 %2867, i32 1, i32 0
  %2870 = load i32, ptr %141, align 4, !tbaa !9
  %2871 = add nsw i32 %2870, %2869
  store i32 %2871, ptr %141, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #14
  store i32 0, ptr %142, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #14
  %2872 = load ptr, ptr %136, align 8, !tbaa !5
  store ptr %2872, ptr %143, align 8, !tbaa !5
  br label %2873

2873:                                             ; preds = %2922, %2865
  %2874 = load ptr, ptr %143, align 8, !tbaa !5
  %2875 = load i16, ptr %2874, align 2, !tbaa !166
  %2876 = zext i16 %2875 to i32
  %2877 = icmp ne i32 %2876, 0
  br i1 %2877, label %2879, label %2878

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

2879:                                             ; preds = %2873
  %2880 = load ptr, ptr %143, align 8, !tbaa !5
  %2881 = load i16, ptr %2880, align 2, !tbaa !166
  %2882 = zext i16 %2881 to i32
  %2883 = icmp eq i32 %2882, 10
  br i1 %2883, label %2884, label %2921

2884:                                             ; preds = %2879
  %2885 = load i32, ptr %142, align 4, !tbaa !9
  %2886 = add nsw i32 %2885, 1
  store i32 %2886, ptr %142, align 4, !tbaa !9
  %2887 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 0
  %2888 = load i32, ptr %2887, align 4, !tbaa !9
  %2889 = icmp eq i32 %2888, -1
  br i1 %2889, label %2890, label %2903

2890:                                             ; preds = %2884
  %2891 = load ptr, ptr %143, align 8, !tbaa !5
  %2892 = getelementptr inbounds [2 x ptr], ptr %139, i64 0, i64 0
  %2893 = load ptr, ptr %2892, align 16, !tbaa !5
  %2894 = icmp uge ptr %2891, %2893
  br i1 %2894, label %2895, label %2903

2895:                                             ; preds = %2890
  %2896 = load i32, ptr %142, align 4, !tbaa !9
  %2897 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 0
  store i32 %2896, ptr %2897, align 4, !tbaa !9
  %2898 = load i32, ptr %141, align 4, !tbaa !9
  %2899 = add nsw i32 %2898, -1
  store i32 %2899, ptr %141, align 4, !tbaa !9
  %2900 = icmp sle i32 %2899, 0
  br i1 %2900, label %2901, label %2902

2901:                                             ; preds = %2895
  store i32 7, ptr %19, align 4
  br label %2925

2902:                                             ; preds = %2895
  br label %2903

2903:                                             ; preds = %2902, %2890, %2884
  %2904 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 1
  %2905 = load i32, ptr %2904, align 4, !tbaa !9
  %2906 = icmp eq i32 %2905, -1
  br i1 %2906, label %2907, label %2920

2907:                                             ; preds = %2903
  %2908 = load ptr, ptr %143, align 8, !tbaa !5
  %2909 = getelementptr inbounds [2 x ptr], ptr %139, i64 0, i64 1
  %2910 = load ptr, ptr %2909, align 8, !tbaa !5
  %2911 = icmp uge ptr %2908, %2910
  br i1 %2911, label %2912, label %2920

2912:                                             ; preds = %2907
  %2913 = load i32, ptr %142, align 4, !tbaa !9
  %2914 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 1
  store i32 %2913, ptr %2914, align 4, !tbaa !9
  %2915 = load i32, ptr %141, align 4, !tbaa !9
  %2916 = add nsw i32 %2915, -1
  store i32 %2916, ptr %141, align 4, !tbaa !9
  %2917 = icmp sle i32 %2916, 0
  br i1 %2917, label %2918, label %2919

2918:                                             ; preds = %2912
  store i32 7, ptr %19, align 4
  br label %2925

2919:                                             ; preds = %2912
  br label %2920

2920:                                             ; preds = %2919, %2907, %2903
  br label %2921

2921:                                             ; preds = %2920, %2879
  br label %2922

2922:                                             ; preds = %2921
  %2923 = load ptr, ptr %143, align 8, !tbaa !5
  %2924 = getelementptr inbounds i16, ptr %2923, i32 1
  store ptr %2924, ptr %143, align 8, !tbaa !5
  br label %2873, !llvm.loop !210

2925:                                             ; preds = %2918, %2901, %2878
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #14
  br label %2926

2926:                                             ; preds = %2925
  %2927 = load i32, ptr %142, align 4, !tbaa !9
  %2928 = add nsw i32 %2927, 1
  store i32 %2928, ptr %142, align 4, !tbaa !9
  %2929 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 0
  %2930 = load i32, ptr %2929, align 4, !tbaa !9
  %2931 = icmp eq i32 %2930, -1
  br i1 %2931, label %2932, label %2935

2932:                                             ; preds = %2926
  %2933 = load i32, ptr %142, align 4, !tbaa !9
  %2934 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 0
  store i32 %2933, ptr %2934, align 4, !tbaa !9
  br label %2935

2935:                                             ; preds = %2932, %2926
  %2936 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 1
  %2937 = load i32, ptr %2936, align 4, !tbaa !9
  %2938 = icmp eq i32 %2937, -1
  br i1 %2938, label %2939, label %2942

2939:                                             ; preds = %2935
  %2940 = load i32, ptr %142, align 4, !tbaa !9
  %2941 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 1
  store i32 %2940, ptr %2941, align 4, !tbaa !9
  br label %2942

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

2965:                                             ; preds = %2942
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #14
  %2966 = load ptr, ptr %20, align 8, !tbaa !5
  %2967 = getelementptr inbounds [2 x ptr], ptr %139, i64 0, i64 1
  %2968 = load ptr, ptr %2967, align 8, !tbaa !5
  %2969 = load ptr, ptr %136, align 8, !tbaa !5
  %2970 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2968, ptr noundef %2969)
  %2971 = getelementptr inbounds [2 x ptr], ptr %139, i64 0, i64 1
  %2972 = load ptr, ptr %2971, align 8, !tbaa !5
  %2973 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %2966, ptr noundef %2970, ptr noundef %2972, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2973, ptr %145, align 4
  %2974 = getelementptr inbounds %struct.ImVec2, ptr %145, i32 0, i32 0
  %2975 = load float, ptr %2974, align 4, !tbaa !113
  %2976 = getelementptr inbounds %struct.ImVec2, ptr %138, i32 0, i32 0
  store float %2975, ptr %2976, align 4, !tbaa !113
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #14
  %2977 = getelementptr inbounds [2 x i32], ptr %140, i64 0, i64 1
  %2978 = load i32, ptr %2977, align 4, !tbaa !9
  %2979 = sitofp i32 %2978 to float
  %2980 = load ptr, ptr %20, align 8, !tbaa !5
  %2981 = getelementptr inbounds %struct.ImGuiContext, ptr %2980, i32 0, i32 8
  %2982 = load float, ptr %2981, align 8, !tbaa !47
  %2983 = fmul float %2979, %2982
  %2984 = getelementptr inbounds %struct.ImVec2, ptr %138, i32 0, i32 1
  store float %2983, ptr %2984, align 4, !tbaa !111
  br label %2985

2985:                                             ; preds = %2965, %2942
  %2986 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %2987 = trunc i8 %2986 to i1
  br i1 %2987, label %2988, label %2997

2988:                                             ; preds = %2985
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #14
  %2989 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %2990 = load float, ptr %2989, align 4, !tbaa !113
  %2991 = load i32, ptr %142, align 4, !tbaa !9
  %2992 = sitofp i32 %2991 to float
  %2993 = load ptr, ptr %20, align 8, !tbaa !5
  %2994 = getelementptr inbounds %struct.ImGuiContext, ptr %2993, i32 0, i32 8
  %2995 = load float, ptr %2994, align 8, !tbaa !47
  %2996 = fmul float %2992, %2995
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %146, float noundef %2990, float noundef %2996)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %132, ptr align 4 %146, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #14
  br label %2997

2997:                                             ; preds = %2988, %2985
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %139) #14
  %2998 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %2999 = trunc i8 %2998 to i1
  br i1 %2999, label %3000, label %3138

3000:                                             ; preds = %2997
  %3001 = load ptr, ptr %48, align 8, !tbaa !5
  %3002 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3001, i32 0, i32 14
  %3003 = load i8, ptr %3002, align 4, !tbaa !171, !range !42, !noundef !43
  %3004 = trunc i8 %3003 to i1
  br i1 %3004, label %3005, label %3138

3005:                                             ; preds = %3000
  %3006 = load i32, ptr %15, align 4, !tbaa !9
  %3007 = and i32 %3006, 4096
  %3008 = icmp ne i32 %3007, 0
  br i1 %3008, label %3058, label %3009

3009:                                             ; preds = %3005
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #14
  %3010 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %3011 = load float, ptr %3010, align 4, !tbaa !113
  %3012 = fmul float %3011, 2.500000e-01
  store float %3012, ptr %147, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #14
  %3013 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %3014 = load float, ptr %3013, align 4, !tbaa !113
  %3015 = load ptr, ptr %22, align 8, !tbaa !5
  %3016 = getelementptr inbounds %struct.ImGuiStyle, ptr %3015, i32 0, i32 12
  %3017 = getelementptr inbounds %struct.ImVec2, ptr %3016, i32 0, i32 0
  %3018 = load float, ptr %3017, align 4, !tbaa !162
  %3019 = fsub float %3014, %3018
  store float %3019, ptr %148, align 4, !tbaa !46
  %3020 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 0
  %3021 = load float, ptr %3020, align 4, !tbaa !113
  %3022 = load ptr, ptr %48, align 8, !tbaa !5
  %3023 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3022, i32 0, i32 11
  %3024 = load float, ptr %3023, align 8, !tbaa !139
  %3025 = fcmp olt float %3021, %3024
  br i1 %3025, label %3026, label %3036

3026:                                             ; preds = %3009
  %3027 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 0
  %3028 = load float, ptr %3027, align 4, !tbaa !113
  %3029 = load float, ptr %147, align 4, !tbaa !46
  %3030 = fsub float %3028, %3029
  %3031 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3030)
  %3032 = fptosi float %3031 to i32
  %3033 = sitofp i32 %3032 to float
  %3034 = load ptr, ptr %48, align 8, !tbaa !5
  %3035 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3034, i32 0, i32 11
  store float %3033, ptr %3035, align 8, !tbaa !139
  br label %3057

3036:                                             ; preds = %3009
  %3037 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 0
  %3038 = load float, ptr %3037, align 4, !tbaa !113
  %3039 = load float, ptr %148, align 4, !tbaa !46
  %3040 = fsub float %3038, %3039
  %3041 = load ptr, ptr %48, align 8, !tbaa !5
  %3042 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3041, i32 0, i32 11
  %3043 = load float, ptr %3042, align 8, !tbaa !139
  %3044 = fcmp oge float %3040, %3043
  br i1 %3044, label %3045, label %3056

3045:                                             ; preds = %3036
  %3046 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 0
  %3047 = load float, ptr %3046, align 4, !tbaa !113
  %3048 = load float, ptr %148, align 4, !tbaa !46
  %3049 = fsub float %3047, %3048
  %3050 = load float, ptr %147, align 4, !tbaa !46
  %3051 = fadd float %3049, %3050
  %3052 = fptosi float %3051 to i32
  %3053 = sitofp i32 %3052 to float
  %3054 = load ptr, ptr %48, align 8, !tbaa !5
  %3055 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3054, i32 0, i32 11
  store float %3053, ptr %3055, align 8, !tbaa !139
  br label %3056

3056:                                             ; preds = %3045, %3036
  br label %3057

3057:                                             ; preds = %3056, %3026
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #14
  br label %3061

3058:                                             ; preds = %3005
  %3059 = load ptr, ptr %48, align 8, !tbaa !5
  %3060 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3059, i32 0, i32 11
  store float 0.000000e+00, ptr %3060, align 8, !tbaa !139
  br label %3061

3061:                                             ; preds = %3058, %3057
  %3062 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3063 = trunc i8 %3062 to i1
  br i1 %3063, label %3064, label %3135

3064:                                             ; preds = %3061
  %3065 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 1
  %3066 = load float, ptr %3065, align 4, !tbaa !111
  %3067 = load ptr, ptr %20, align 8, !tbaa !5
  %3068 = getelementptr inbounds %struct.ImGuiContext, ptr %3067, i32 0, i32 8
  %3069 = load float, ptr %3068, align 8, !tbaa !47
  %3070 = fsub float %3066, %3069
  %3071 = load float, ptr %56, align 4, !tbaa !46
  %3072 = fcmp olt float %3070, %3071
  br i1 %3072, label %3073, label %3081

3073:                                             ; preds = %3064
  %3074 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 1
  %3075 = load float, ptr %3074, align 4, !tbaa !111
  %3076 = load ptr, ptr %20, align 8, !tbaa !5
  %3077 = getelementptr inbounds %struct.ImGuiContext, ptr %3076, i32 0, i32 8
  %3078 = load float, ptr %3077, align 8, !tbaa !47
  %3079 = fsub float %3075, %3078
  %3080 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3079)
  store float %3080, ptr %56, align 4, !tbaa !46
  br label %3107

3081:                                             ; preds = %3064
  %3082 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 1
  %3083 = load float, ptr %3082, align 4, !tbaa !111
  %3084 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %3085 = load float, ptr %3084, align 4, !tbaa !111
  %3086 = load ptr, ptr %22, align 8, !tbaa !5
  %3087 = getelementptr inbounds %struct.ImGuiStyle, ptr %3086, i32 0, i32 12
  %3088 = getelementptr inbounds %struct.ImVec2, ptr %3087, i32 0, i32 1
  %3089 = load float, ptr %3088, align 4, !tbaa !112
  %3090 = fneg float %3089
  %3091 = call float @llvm.fmuladd.f32(float %3090, float 2.000000e+00, float %3085)
  %3092 = fsub float %3083, %3091
  %3093 = load float, ptr %56, align 4, !tbaa !46
  %3094 = fcmp oge float %3092, %3093
  br i1 %3094, label %3095, label %3106

3095:                                             ; preds = %3081
  %3096 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 1
  %3097 = load float, ptr %3096, align 4, !tbaa !111
  %3098 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %3099 = load float, ptr %3098, align 4, !tbaa !111
  %3100 = fsub float %3097, %3099
  %3101 = load ptr, ptr %22, align 8, !tbaa !5
  %3102 = getelementptr inbounds %struct.ImGuiStyle, ptr %3101, i32 0, i32 12
  %3103 = getelementptr inbounds %struct.ImVec2, ptr %3102, i32 0, i32 1
  %3104 = load float, ptr %3103, align 4, !tbaa !112
  %3105 = call float @llvm.fmuladd.f32(float %3104, float 2.000000e+00, float %3100)
  store float %3105, ptr %56, align 4, !tbaa !46
  br label %3106

3106:                                             ; preds = %3095, %3081
  br label %3107

3107:                                             ; preds = %3106, %3073
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #14
  %3108 = getelementptr inbounds %struct.ImVec2, ptr %132, i32 0, i32 1
  %3109 = load float, ptr %3108, align 4, !tbaa !111
  %3110 = load ptr, ptr %22, align 8, !tbaa !5
  %3111 = getelementptr inbounds %struct.ImGuiStyle, ptr %3110, i32 0, i32 12
  %3112 = getelementptr inbounds %struct.ImVec2, ptr %3111, i32 0, i32 1
  %3113 = load float, ptr %3112, align 4, !tbaa !112
  %3114 = call float @llvm.fmuladd.f32(float %3113, float 2.000000e+00, float %3109)
  %3115 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 1
  %3116 = load float, ptr %3115, align 4, !tbaa !111
  %3117 = fsub float %3114, %3116
  %3118 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %3117, float noundef 0.000000e+00)
  store float %3118, ptr %149, align 4, !tbaa !46
  %3119 = load float, ptr %56, align 4, !tbaa !46
  %3120 = load float, ptr %149, align 4, !tbaa !46
  %3121 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %3119, float noundef 0.000000e+00, float noundef %3120)
  store float %3121, ptr %56, align 4, !tbaa !46
  %3122 = load ptr, ptr %38, align 8, !tbaa !5
  %3123 = getelementptr inbounds %struct.ImGuiWindow, ptr %3122, i32 0, i32 30
  %3124 = getelementptr inbounds %struct.ImVec2, ptr %3123, i32 0, i32 1
  %3125 = load float, ptr %3124, align 4, !tbaa !130
  %3126 = load float, ptr %56, align 4, !tbaa !46
  %3127 = fsub float %3125, %3126
  %3128 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 1
  %3129 = load float, ptr %3128, align 4, !tbaa !111
  %3130 = fadd float %3129, %3127
  store float %3130, ptr %3128, align 4, !tbaa !111
  %3131 = load float, ptr %56, align 4, !tbaa !46
  %3132 = load ptr, ptr %38, align 8, !tbaa !5
  %3133 = getelementptr inbounds %struct.ImGuiWindow, ptr %3132, i32 0, i32 30
  %3134 = getelementptr inbounds %struct.ImVec2, ptr %3133, i32 0, i32 1
  store float %3131, ptr %3134, align 4, !tbaa !130
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #14
  br label %3135

3135:                                             ; preds = %3107, %3061
  %3136 = load ptr, ptr %48, align 8, !tbaa !5
  %3137 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3136, i32 0, i32 14
  store i8 0, ptr %3137, align 4, !tbaa !171
  br label %3138

3138:                                             ; preds = %3135, %3000, %2997
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #14
  %3139 = load ptr, ptr %48, align 8, !tbaa !5
  %3140 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3139, i32 0, i32 11
  %3141 = load float, ptr %3140, align 8, !tbaa !139
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %150, float noundef %3141, float noundef 0.000000e+00)
  %3142 = load i8, ptr %65, align 1, !tbaa !44, !range !42, !noundef !43
  %3143 = trunc i8 %3142 to i1
  br i1 %3143, label %3144, label %3273

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

3185:                                             ; preds = %3258, %3144
  %3186 = load ptr, ptr %158, align 8, !tbaa !5
  %3187 = load ptr, ptr %152, align 8, !tbaa !5
  %3188 = icmp ult ptr %3186, %3187
  br i1 %3188, label %3190, label %3189

3189:                                             ; preds = %3185
  store i32 10, ptr %19, align 4
  br label %3271

3190:                                             ; preds = %3185
  %3191 = getelementptr inbounds %struct.ImVec2, ptr %156, i32 0, i32 1
  %3192 = load float, ptr %3191, align 4, !tbaa !111
  %3193 = getelementptr inbounds %struct.ImVec4, ptr %130, i32 0, i32 3
  %3194 = load float, ptr %3193, align 4, !tbaa !211
  %3195 = load ptr, ptr %20, align 8, !tbaa !5
  %3196 = getelementptr inbounds %struct.ImGuiContext, ptr %3195, i32 0, i32 8
  %3197 = load float, ptr %3196, align 8, !tbaa !47
  %3198 = fadd float %3194, %3197
  %3199 = fcmp ogt float %3192, %3198
  br i1 %3199, label %3200, label %3201

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

3201:                                             ; preds = %3190
  %3202 = getelementptr inbounds %struct.ImVec2, ptr %156, i32 0, i32 1
  %3203 = load float, ptr %3202, align 4, !tbaa !111
  %3204 = getelementptr inbounds %struct.ImVec4, ptr %130, i32 0, i32 1
  %3205 = load float, ptr %3204, align 4, !tbaa !212
  %3206 = fcmp olt float %3203, %3205
  br i1 %3206, label %3207, label %3221

3207:                                             ; preds = %3201
  br label %3208

3208:                                             ; preds = %3219, %3207
  %3209 = load ptr, ptr %158, align 8, !tbaa !5
  %3210 = load ptr, ptr %152, align 8, !tbaa !5
  %3211 = icmp ult ptr %3209, %3210
  br i1 %3211, label %3212, label %3220

3212:                                             ; preds = %3208
  %3213 = load ptr, ptr %158, align 8, !tbaa !5
  %3214 = getelementptr inbounds i16, ptr %3213, i32 1
  store ptr %3214, ptr %158, align 8, !tbaa !5
  %3215 = load i16, ptr %3213, align 2, !tbaa !166
  %3216 = zext i16 %3215 to i32
  %3217 = icmp eq i32 %3216, 10
  br i1 %3217, label %3218, label %3219

3218:                                             ; preds = %3212
  br label %3220

3219:                                             ; preds = %3212
  br label %3208, !llvm.loop !213

3220:                                             ; preds = %3218, %3208
  br label %3258

3221:                                             ; preds = %3201
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #14
  %3222 = load ptr, ptr %20, align 8, !tbaa !5
  %3223 = load ptr, ptr %158, align 8, !tbaa !5
  %3224 = load ptr, ptr %152, align 8, !tbaa !5
  %3225 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %3222, ptr noundef %3223, ptr noundef %3224, ptr noundef %158, ptr noundef null, i1 noundef zeroext true)
  store <2 x float> %3225, ptr %159, align 4
  %3226 = getelementptr inbounds %struct.ImVec2, ptr %159, i32 0, i32 0
  %3227 = load float, ptr %3226, align 4, !tbaa !113
  %3228 = fcmp ole float %3227, 0.000000e+00
  br i1 %3228, label %3229, label %3238

3229:                                             ; preds = %3221
  %3230 = load ptr, ptr %20, align 8, !tbaa !5
  %3231 = getelementptr inbounds %struct.ImGuiContext, ptr %3230, i32 0, i32 7
  %3232 = load ptr, ptr %3231, align 8, !tbaa !146
  %3233 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %3232, i16 noundef zeroext 32)
  %3234 = fmul float %3233, 5.000000e-01
  %3235 = fptosi float %3234 to i32
  %3236 = sitofp i32 %3235 to float
  %3237 = getelementptr inbounds %struct.ImVec2, ptr %159, i32 0, i32 0
  store float %3236, ptr %3237, align 4, !tbaa !113
  br label %3238

3238:                                             ; preds = %3229, %3221
  call void @llvm.lifetime.start.p0(i64 16, ptr %160) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #14
  %3239 = load float, ptr %154, align 4, !tbaa !46
  %3240 = load ptr, ptr %20, align 8, !tbaa !5
  %3241 = getelementptr inbounds %struct.ImGuiContext, ptr %3240, i32 0, i32 8
  %3242 = load float, ptr %3241, align 8, !tbaa !47
  %3243 = fsub float %3239, %3242
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %162, float noundef 0.000000e+00, float noundef %3243)
  %3244 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %156, ptr noundef nonnull align 4 dereferenceable(8) %162)
  store <2 x float> %3244, ptr %161, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #14
  %3245 = getelementptr inbounds %struct.ImVec2, ptr %159, i32 0, i32 0
  %3246 = load float, ptr %3245, align 4, !tbaa !113
  %3247 = load float, ptr %155, align 4, !tbaa !46
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %164, float noundef %3246, float noundef %3247)
  %3248 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %156, ptr noundef nonnull align 4 dereferenceable(8) %164)
  store <2 x float> %3248, ptr %163, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %160, ptr noundef nonnull align 4 dereferenceable(8) %161, ptr noundef nonnull align 4 dereferenceable(8) %163)
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #14
  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.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) %130)
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %160, ptr noundef nonnull align 4 dereferenceable(16) %165)
  call void @llvm.lifetime.end.p0(i64 16, ptr %165) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %166) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %166, ptr noundef nonnull align 4 dereferenceable(16) %130)
  %3249 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %160, ptr noundef nonnull align 4 dereferenceable(16) %166)
  call void @llvm.lifetime.end.p0(i64 16, ptr %166) #14
  br i1 %3249, label %3250, label %3257

3250:                                             ; preds = %3238
  %3251 = load ptr, ptr %38, align 8, !tbaa !5
  %3252 = getelementptr inbounds %struct.ImGuiWindow, ptr %3251, i32 0, i32 89
  %3253 = load ptr, ptr %3252, align 8, !tbaa !214
  %3254 = getelementptr inbounds %struct.ImRect, ptr %160, i32 0, i32 0
  %3255 = getelementptr inbounds %struct.ImRect, ptr %160, i32 0, i32 1
  %3256 = load i32, ptr %153, align 4, !tbaa !9
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %3253, ptr noundef nonnull align 4 dereferenceable(8) %3254, ptr noundef nonnull align 4 dereferenceable(8) %3255, i32 noundef %3256, float noundef 0.000000e+00, i32 noundef 0)
  br label %3257

3257:                                             ; preds = %3250, %3238
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #14
  br label %3258

3258:                                             ; preds = %3257, %3220
  %3259 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 0
  %3260 = load float, ptr %3259, align 4, !tbaa !113
  %3261 = getelementptr inbounds %struct.ImVec2, ptr %150, i32 0, i32 0
  %3262 = load float, ptr %3261, align 4, !tbaa !113
  %3263 = fsub float %3260, %3262
  %3264 = getelementptr inbounds %struct.ImVec2, ptr %156, i32 0, i32 0
  store float %3263, ptr %3264, align 4, !tbaa !113
  %3265 = load ptr, ptr %20, align 8, !tbaa !5
  %3266 = getelementptr inbounds %struct.ImGuiContext, ptr %3265, i32 0, i32 8
  %3267 = load float, ptr %3266, align 8, !tbaa !47
  %3268 = getelementptr inbounds %struct.ImVec2, ptr %156, i32 0, i32 1
  %3269 = load float, ptr %3268, align 4, !tbaa !111
  %3270 = fadd float %3269, %3267
  store float %3270, ptr %3268, align 4, !tbaa !111
  br label %3185, !llvm.loop !215

3271:                                             ; preds = %3200, %3189
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #14
  br label %3272

3272:                                             ; preds = %3271
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #14
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %152) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #14
  br label %3273

3273:                                             ; preds = %3272, %3138
  %3274 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3275 = trunc i8 %3274 to i1
  br i1 %3275, label %3283, label %3276

3276:                                             ; preds = %3273
  %3277 = load ptr, ptr %135, align 8, !tbaa !5
  %3278 = load ptr, ptr %134, align 8, !tbaa !5
  %3279 = ptrtoint ptr %3277 to i64
  %3280 = ptrtoint ptr %3278 to i64
  %3281 = sub i64 %3279, %3280
  %3282 = icmp slt i64 %3281, 2097152
  br i1 %3282, label %3283, label %3308

3283:                                             ; preds = %3276, %3273
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #14
  %3284 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %3285 = trunc i8 %3284 to i1
  %3286 = zext i1 %3285 to i64
  %3287 = select i1 %3285, i32 1, i32 0
  %3288 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3287, float noundef 1.000000e+00)
  store i32 %3288, ptr %167, align 4, !tbaa !9
  %3289 = load ptr, ptr %38, align 8, !tbaa !5
  %3290 = getelementptr inbounds %struct.ImGuiWindow, ptr %3289, i32 0, i32 89
  %3291 = load ptr, ptr %3290, align 8, !tbaa !214
  %3292 = load ptr, ptr %20, align 8, !tbaa !5
  %3293 = getelementptr inbounds %struct.ImGuiContext, ptr %3292, i32 0, i32 7
  %3294 = load ptr, ptr %3293, align 8, !tbaa !146
  %3295 = load ptr, ptr %20, align 8, !tbaa !5
  %3296 = getelementptr inbounds %struct.ImGuiContext, ptr %3295, i32 0, i32 8
  %3297 = load float, ptr %3296, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #14
  %3298 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %131, ptr noundef nonnull align 4 dereferenceable(8) %150)
  store <2 x float> %3298, ptr %168, align 4
  %3299 = load i32, ptr %167, align 4, !tbaa !9
  %3300 = load ptr, ptr %134, align 8, !tbaa !5
  %3301 = load ptr, ptr %135, align 8, !tbaa !5
  %3302 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3303 = trunc i8 %3302 to i1
  br i1 %3303, label %3304, label %3305

3304:                                             ; preds = %3283
  br label %3306

3305:                                             ; preds = %3283
  br label %3306

3306:                                             ; preds = %3305, %3304
  %3307 = phi ptr [ null, %3304 ], [ %130, %3305 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3291, ptr noundef %3294, float noundef %3297, ptr noundef nonnull align 4 dereferenceable(8) %168, i32 noundef %3299, ptr noundef %3300, ptr noundef %3301, float noundef 0.000000e+00, ptr noundef %3307)
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #14
  br label %3308

3308:                                             ; preds = %3306, %3276
  %3309 = load i8, ptr %64, align 1, !tbaa !44, !range !42, !noundef !43
  %3310 = trunc i8 %3309 to i1
  br i1 %3310, label %3311, label %3402

3311:                                             ; preds = %3308
  %3312 = load ptr, ptr %21, align 8, !tbaa !5
  %3313 = getelementptr inbounds %struct.ImGuiIO, ptr %3312, i32 0, i32 3
  %3314 = load float, ptr %3313, align 8, !tbaa !216
  %3315 = load ptr, ptr %48, align 8, !tbaa !5
  %3316 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3315, i32 0, i32 13
  %3317 = load float, ptr %3316, align 8, !tbaa !217
  %3318 = fadd float %3317, %3314
  store float %3318, ptr %3316, align 8, !tbaa !217
  call void @llvm.lifetime.start.p0(i64 1, ptr %169) #14
  %3319 = load ptr, ptr %20, align 8, !tbaa !5
  %3320 = getelementptr inbounds %struct.ImGuiContext, ptr %3319, i32 0, i32 2
  %3321 = getelementptr inbounds %struct.ImGuiIO, ptr %3320, i32 0, i32 24
  %3322 = load i8, ptr %3321, align 1, !tbaa !218, !range !42, !noundef !43
  %3323 = trunc i8 %3322 to i1
  br i1 %3323, label %3324, label %3335

3324:                                             ; preds = %3311
  %3325 = load ptr, ptr %48, align 8, !tbaa !5
  %3326 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3325, i32 0, i32 13
  %3327 = load float, ptr %3326, align 8, !tbaa !217
  %3328 = fcmp ole float %3327, 0.000000e+00
  br i1 %3328, label %3335, label %3329

3329:                                             ; preds = %3324
  %3330 = load ptr, ptr %48, align 8, !tbaa !5
  %3331 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3330, i32 0, i32 13
  %3332 = load float, ptr %3331, align 8, !tbaa !217
  %3333 = call float @fmodf(float noundef %3332, float noundef 0x3FF3333340000000) #14
  %3334 = fcmp ole float %3333, 0x3FE99999A0000000
  br label %3335

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

3358:                                             ; preds = %3335
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %174, ptr noundef nonnull align 4 dereferenceable(16) %130)
  %3359 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %173, ptr noundef nonnull align 4 dereferenceable(16) %174)
  br label %3360

3360:                                             ; preds = %3358, %3335
  %3361 = phi i1 [ false, %3335 ], [ %3359, %3358 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %174) #14
  br i1 %3361, label %3362, label %3369

3362:                                             ; preds = %3360
  %3363 = load ptr, ptr %38, align 8, !tbaa !5
  %3364 = getelementptr inbounds %struct.ImGuiWindow, ptr %3363, i32 0, i32 89
  %3365 = load ptr, ptr %3364, align 8, !tbaa !214
  %3366 = getelementptr inbounds %struct.ImRect, ptr %173, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #14
  %3367 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %173)
  store <2 x float> %3367, ptr %175, align 4
  %3368 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %3365, ptr noundef nonnull align 4 dereferenceable(8) %3366, ptr noundef nonnull align 4 dereferenceable(8) %175, i32 noundef %3368, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #14
  br label %3369

3369:                                             ; preds = %3362, %3360
  %3370 = load i8, ptr %25, align 1, !tbaa !44, !range !42, !noundef !43
  %3371 = trunc i8 %3370 to i1
  br i1 %3371, label %3401, label %3372

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

3401:                                             ; preds = %3372, %3369
  call void @llvm.lifetime.end.p0(i64 16, ptr %173) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #14
  br label %3402

3402:                                             ; preds = %3401, %3308
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #14
  br label %3477

3403:                                             ; preds = %2807
  %3404 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3405 = trunc i8 %3404 to i1
  br i1 %3405, label %3406, label %3416

3406:                                             ; preds = %3403
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #14
  %3407 = getelementptr inbounds %struct.ImVec2, ptr %39, i32 0, i32 0
  %3408 = load float, ptr %3407, align 4, !tbaa !113
  %3409 = load ptr, ptr %134, align 8, !tbaa !5
  %3410 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %3409, ptr noundef %135)
  %3411 = sitofp i32 %3410 to float
  %3412 = load ptr, ptr %20, align 8, !tbaa !5
  %3413 = getelementptr inbounds %struct.ImGuiContext, ptr %3412, i32 0, i32 8
  %3414 = load float, ptr %3413, align 8, !tbaa !47
  %3415 = fmul float %3411, %3414
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %177, float noundef %3408, float noundef %3415)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %132, ptr align 4 %177, i64 8, i1 false), !tbaa.struct !45
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #14
  br label %3442

3416:                                             ; preds = %3403
  %3417 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %3418 = trunc i8 %3417 to i1
  br i1 %3418, label %3432, label %3419

3419:                                             ; preds = %3416
  %3420 = load ptr, ptr %20, align 8, !tbaa !5
  %3421 = getelementptr inbounds %struct.ImGuiContext, ptr %3420, i32 0, i32 51
  %3422 = load i32, ptr %3421, align 4, !tbaa !118
  %3423 = load i32, ptr %29, align 4, !tbaa !9
  %3424 = icmp eq i32 %3422, %3423
  br i1 %3424, label %3425, label %3432

3425:                                             ; preds = %3419
  %3426 = load ptr, ptr %134, align 8, !tbaa !5
  %3427 = load ptr, ptr %48, align 8, !tbaa !5
  %3428 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3427, i32 0, i32 3
  %3429 = load i32, ptr %3428, align 8, !tbaa !134
  %3430 = sext i32 %3429 to i64
  %3431 = getelementptr inbounds i8, ptr %3426, i64 %3430
  store ptr %3431, ptr %135, align 8, !tbaa !5
  br label %3441

3432:                                             ; preds = %3419, %3416
  %3433 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %3434 = trunc i8 %3433 to i1
  br i1 %3434, label %3440, label %3435

3435:                                             ; preds = %3432
  %3436 = load ptr, ptr %134, align 8, !tbaa !5
  %3437 = load ptr, ptr %134, align 8, !tbaa !5
  %3438 = call i64 @strlen(ptr noundef %3437) #16
  %3439 = getelementptr inbounds i8, ptr %3436, i64 %3438
  store ptr %3439, ptr %135, align 8, !tbaa !5
  br label %3440

3440:                                             ; preds = %3435, %3432
  br label %3441

3441:                                             ; preds = %3440, %3425
  br label %3442

3442:                                             ; preds = %3441, %3406
  %3443 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3444 = trunc i8 %3443 to i1
  br i1 %3444, label %3452, label %3445

3445:                                             ; preds = %3442
  %3446 = load ptr, ptr %135, align 8, !tbaa !5
  %3447 = load ptr, ptr %134, align 8, !tbaa !5
  %3448 = ptrtoint ptr %3446 to i64
  %3449 = ptrtoint ptr %3447 to i64
  %3450 = sub i64 %3448, %3449
  %3451 = icmp slt i64 %3450, 2097152
  br i1 %3451, label %3452, label %3476

3452:                                             ; preds = %3445, %3442
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #14
  %3453 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %3454 = trunc i8 %3453 to i1
  %3455 = zext i1 %3454 to i64
  %3456 = select i1 %3454, i32 1, i32 0
  %3457 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3456, float noundef 1.000000e+00)
  store i32 %3457, ptr %178, align 4, !tbaa !9
  %3458 = load ptr, ptr %38, align 8, !tbaa !5
  %3459 = getelementptr inbounds %struct.ImGuiWindow, ptr %3458, i32 0, i32 89
  %3460 = load ptr, ptr %3459, align 8, !tbaa !214
  %3461 = load ptr, ptr %20, align 8, !tbaa !5
  %3462 = getelementptr inbounds %struct.ImGuiContext, ptr %3461, i32 0, i32 7
  %3463 = load ptr, ptr %3462, align 8, !tbaa !146
  %3464 = load ptr, ptr %20, align 8, !tbaa !5
  %3465 = getelementptr inbounds %struct.ImGuiContext, ptr %3464, i32 0, i32 8
  %3466 = load float, ptr %3465, align 8, !tbaa !47
  %3467 = load i32, ptr %178, align 4, !tbaa !9
  %3468 = load ptr, ptr %134, align 8, !tbaa !5
  %3469 = load ptr, ptr %135, align 8, !tbaa !5
  %3470 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3471 = trunc i8 %3470 to i1
  br i1 %3471, label %3472, label %3473

3472:                                             ; preds = %3452
  br label %3474

3473:                                             ; preds = %3452
  br label %3474

3474:                                             ; preds = %3473, %3472
  %3475 = phi ptr [ null, %3472 ], [ %130, %3473 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3460, ptr noundef %3463, float noundef %3466, ptr noundef nonnull align 4 dereferenceable(8) %131, i32 noundef %3467, ptr noundef %3468, ptr noundef %3469, float noundef 0.000000e+00, ptr noundef %3475)
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #14
  br label %3476

3476:                                             ; preds = %3474, %3445
  br label %3477

3477:                                             ; preds = %3476, %3402
  %3478 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %3479 = trunc i8 %3478 to i1
  br i1 %3479, label %3480, label %3484

3480:                                             ; preds = %3477
  %3481 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %3482 = trunc i8 %3481 to i1
  br i1 %3482, label %3484, label %3483

3483:                                             ; preds = %3480
  call void @_ZN5ImGui7PopFontEv()
  br label %3484

3484:                                             ; preds = %3483, %3480, %3477
  %3485 = load i8, ptr %24, align 1, !tbaa !44, !range !42, !noundef !43
  %3486 = trunc i8 %3485 to i1
  br i1 %3486, label %3487, label %3531

3487:                                             ; preds = %3484
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #14
  %3488 = getelementptr inbounds %struct.ImVec2, ptr %132, i32 0, i32 0
  %3489 = load float, ptr %3488, align 4, !tbaa !113
  %3490 = getelementptr inbounds %struct.ImVec2, ptr %132, i32 0, i32 1
  %3491 = load float, ptr %3490, align 4, !tbaa !111
  %3492 = load ptr, ptr %22, align 8, !tbaa !5
  %3493 = getelementptr inbounds %struct.ImGuiStyle, ptr %3492, i32 0, i32 12
  %3494 = getelementptr inbounds %struct.ImVec2, ptr %3493, i32 0, i32 1
  %3495 = load float, ptr %3494, align 4, !tbaa !112
  %3496 = fadd float %3491, %3495
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %179, float noundef %3489, float noundef %3496)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %179)
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #14
  %3497 = load ptr, ptr %20, align 8, !tbaa !5
  %3498 = getelementptr inbounds %struct.ImGuiContext, ptr %3497, i32 0, i32 78
  %3499 = getelementptr inbounds %struct.ImGuiNextItemData, ptr %3498, i32 0, i32 1
  %3500 = load i32, ptr %3499, align 4, !tbaa !225
  %3501 = or i32 %3500, 1025
  store i32 %3501, ptr %3499, align 4, !tbaa !225
  call void @_ZN5ImGui8EndChildEv()
  %3502 = load ptr, ptr %20, align 8, !tbaa !5
  %3503 = getelementptr inbounds %struct.ImGuiContext, ptr %3502, i32 0, i32 79
  %3504 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3503, i32 0, i32 2
  %3505 = load i32, ptr %3504, align 8, !tbaa !115
  %3506 = and i32 %3505, 128
  %3507 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %41, i32 0, i32 2
  %3508 = load i32, ptr %3507, align 4, !tbaa !226
  %3509 = or i32 %3508, %3506
  store i32 %3509, ptr %3507, align 4, !tbaa !226
  call void @_ZN5ImGui8EndGroupEv()
  %3510 = load ptr, ptr %20, align 8, !tbaa !5
  %3511 = getelementptr inbounds %struct.ImGuiContext, ptr %3510, i32 0, i32 79
  %3512 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3511, i32 0, i32 0
  %3513 = load i32, ptr %3512, align 8, !tbaa !227
  %3514 = icmp eq i32 %3513, 0
  br i1 %3514, label %3515, label %3530

3515:                                             ; preds = %3487
  %3516 = load i32, ptr %29, align 4, !tbaa !9
  %3517 = load ptr, ptr %20, align 8, !tbaa !5
  %3518 = getelementptr inbounds %struct.ImGuiContext, ptr %3517, i32 0, i32 79
  %3519 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3518, i32 0, i32 0
  store i32 %3516, ptr %3519, align 8, !tbaa !227
  %3520 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %41, i32 0, i32 1
  %3521 = load i32, ptr %3520, align 4, !tbaa !228
  %3522 = load ptr, ptr %20, align 8, !tbaa !5
  %3523 = getelementptr inbounds %struct.ImGuiContext, ptr %3522, i32 0, i32 79
  %3524 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3523, i32 0, i32 1
  store i32 %3521, ptr %3524, align 4, !tbaa !125
  %3525 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %41, i32 0, i32 2
  %3526 = load i32, ptr %3525, align 4, !tbaa !226
  %3527 = load ptr, ptr %20, align 8, !tbaa !5
  %3528 = getelementptr inbounds %struct.ImGuiContext, ptr %3527, i32 0, i32 79
  %3529 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3528, i32 0, i32 2
  store i32 %3526, ptr %3529, align 8, !tbaa !115
  br label %3530

3530:                                             ; preds = %3515, %3487
  br label %3531

3531:                                             ; preds = %3530, %3484
  %3532 = load ptr, ptr %20, align 8, !tbaa !5
  %3533 = getelementptr inbounds %struct.ImGuiContext, ptr %3532, i32 0, i32 236
  %3534 = load i8, ptr %3533, align 8, !tbaa !229, !range !42, !noundef !43
  %3535 = trunc i8 %3534 to i1
  br i1 %3535, label %3536, label %3545

3536:                                             ; preds = %3531
  %3537 = load i8, ptr %26, align 1, !tbaa !44, !range !42, !noundef !43
  %3538 = trunc i8 %3537 to i1
  br i1 %3538, label %3539, label %3542

3539:                                             ; preds = %3536
  %3540 = load i8, ptr %70, align 1, !tbaa !44, !range !42, !noundef !43
  %3541 = trunc i8 %3540 to i1
  br i1 %3541, label %3542, label %3545

3542:                                             ; preds = %3539, %3536
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef @.str.25, ptr noundef @.str.26)
  %3543 = load ptr, ptr %134, align 8, !tbaa !5
  %3544 = load ptr, ptr %135, align 8, !tbaa !5
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef %131, ptr noundef %3543, ptr noundef %3544)
  br label %3545

3545:                                             ; preds = %3542, %3539, %3531
  %3546 = getelementptr inbounds %struct.ImVec2, ptr %30, i32 0, i32 0
  %3547 = load float, ptr %3546, align 4, !tbaa !113
  %3548 = fcmp ogt float %3547, 0.000000e+00
  br i1 %3548, label %3549, label %3568

3549:                                             ; preds = %3545
  %3550 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 1
  %3551 = getelementptr inbounds %struct.ImVec2, ptr %3550, i32 0, i32 0
  %3552 = load float, ptr %3551, align 4, !tbaa !230
  %3553 = load ptr, ptr %22, align 8, !tbaa !5
  %3554 = getelementptr inbounds %struct.ImGuiStyle, ptr %3553, i32 0, i32 16
  %3555 = getelementptr inbounds %struct.ImVec2, ptr %3554, i32 0, i32 0
  %3556 = load float, ptr %3555, align 4, !tbaa !114
  %3557 = fadd float %3552, %3556
  %3558 = getelementptr inbounds %struct.ImRect, ptr %34, i32 0, i32 0
  %3559 = getelementptr inbounds %struct.ImVec2, ptr %3558, i32 0, i32 1
  %3560 = load float, ptr %3559, align 4, !tbaa !209
  %3561 = load ptr, ptr %22, align 8, !tbaa !5
  %3562 = getelementptr inbounds %struct.ImGuiStyle, ptr %3561, i32 0, i32 12
  %3563 = getelementptr inbounds %struct.ImVec2, ptr %3562, i32 0, i32 1
  %3564 = load float, ptr %3563, align 4, !tbaa !112
  %3565 = fadd float %3560, %3564
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %180, float noundef %3557, float noundef %3565)
  %3566 = load ptr, ptr %10, align 8, !tbaa !5
  %3567 = load <2 x float>, ptr %180, align 4
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %3567, ptr noundef %3566, ptr noundef null, i1 noundef zeroext true)
  br label %3568

3568:                                             ; preds = %3549, %3545
  %3569 = load i8, ptr %66, align 1, !tbaa !44, !range !42, !noundef !43
  %3570 = trunc i8 %3569 to i1
  br i1 %3570, label %3571, label %3577

3571:                                             ; preds = %3568
  %3572 = load i32, ptr %15, align 4, !tbaa !9
  %3573 = and i32 %3572, 134217728
  %3574 = icmp ne i32 %3573, 0
  br i1 %3574, label %3577, label %3575

3575:                                             ; preds = %3571
  %3576 = load i32, ptr %29, align 4, !tbaa !9
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %3576)
  br label %3577

3577:                                             ; preds = %3575, %3571, %3568
  %3578 = load ptr, ptr %20, align 8, !tbaa !5
  %3579 = load i32, ptr %15, align 4, !tbaa !9
  %3580 = and i32 %3579, 32
  %3581 = icmp ne i32 %3580, 0
  br i1 %3581, label %3582, label %3585

3582:                                             ; preds = %3577
  %3583 = load i8, ptr %67, align 1, !tbaa !44, !range !42, !noundef !43
  %3584 = trunc i8 %3583 to i1
  store i1 %3584, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3588

3585:                                             ; preds = %3577
  %3586 = load i8, ptr %66, align 1, !tbaa !44, !range !42, !noundef !43
  %3587 = trunc i8 %3586 to i1
  store i1 %3587, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3588

3588:                                             ; preds = %3585, %3582
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #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 %59) #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 4, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 1, 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 8, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #14
  br label %3589

3589:                                             ; preds = %3588, %421, %407
  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 %3590

3590:                                             ; preds = %3589, %186
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #14
  %3591 = load i1, ptr %9, align 1
  ret i1 %3591

3592:                                             ; preds = %2215
  %3593 = load ptr, ptr %115, align 8
  %3594 = load i32, ptr %116, align 4
  %3595 = insertvalue { ptr, i32 } poison, ptr %3593, 0
  %3596 = insertvalue { ptr, i32 } %3595, i32 %3594, 1
  resume { ptr, i32 } %3596

3597:                                             ; preds = %2087, %1411
  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 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2ii(ptr noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, i32 noundef) #4

declare void @_ZN5ImGui8EndChildEv() #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare 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 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef) #10

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

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

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

declare noundef float @_ZN5ImGui13GetScrollMaxYEv() #4

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

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

declare noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef) #4

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

declare void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef) #4

declare void @_ZN5ImGui7MemFreeEPv(ptr noundef) #4

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

declare noundef ptr @_ZN5ImGui16GetClipboardTextEv() #4

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

declare noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv() #4

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118), i16 noundef zeroext) #10 align 2

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

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

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

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

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

declare void @_ZN5ImGui7PopFontEv() #4

declare void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr)

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !14, i64 248}
!12 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !13, i64 32, !6, i64 64, !10, i64 72, !15, i64 76, !10, i64 84, !15, i64 88, !15, i64 96, !15, i64 104, !15, i64 112, !15, i64 120, !15, i64 128, !15, i64 136, !16, i64 144, !16, i64 148, !16, i64 152, !16, i64 156, !16, i64 160, !16, i64 164, !16, i64 168, !16, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !15, i64 192, !15, i64 200, !15, i64 208, !15, i64 216, !15, i64 224, !15, i64 232, !14, i64 240, !14, i64 241, !14, i64 242, !14, i64 243, !14, i64 244, !14, i64 245, !14, i64 246, !14, i64 247, !14, i64 248, !14, i64 249, !14, i64 250, !14, i64 251, !14, i64 252, !14, i64 253, !7, i64 254, !7, i64 255, !17, i64 256, !17, i64 258, !17, i64 260, !17, i64 262, !17, i64 264, !10, i64 268, !7, i64 272, !7, i64 273, !14, i64 274, !10, i64 276, !7, i64 280, !7, i64 281, !7, i64 282, !7, i64 283, !10, i64 284, !10, i64 285, !10, i64 286, !10, i64 287, !15, i64 288, !15, i64 296, !18, i64 304, !19, i64 320, !25, i64 552, !25, i64 568, !25, i64 584, !25, i64 600, !25, i64 616, !25, i64 632, !25, i64 648, !26, i64 664, !26, i64 668, !10, i64 672, !10, i64 676, !16, i64 680, !16, i64 684, !27, i64 688, !29, i64 704, !16, i64 720, !16, i64 724, !10, i64 728, !6, i64 736, !30, i64 744, !6, i64 944, !6, i64 952, !6, i64 960, !6, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !6, i64 1000, !7, i64 1008, !7, i64 1016, !7, i64 1048, !10, i64 1064, !10, i64 1068, !10, i64 1072, !14, i64 1076, !14, i64 1077, !14, i64 1077, !14, i64 1077, !14, i64 1077, !17, i64 1078, !41, i64 1080, !6, i64 1104, !6, i64 1112, !10, i64 1120, !10, i64 1124, !25, i64 1128}
!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 16000}
!48 = !{!"_ZTS12ImGuiContext", !14, i64 0, !14, i64 1, !49, i64 8, !51, i64 14632, !54, i64 14848, !10, i64 15980, !10, i64 15984, !6, i64 15992, !16, i64 16000, !16, i64 16004, !55, i64 16008, !56, i64 16536, !10, i64 16544, !10, i64 16548, !10, i64 16552, !10, i64 16556, !14, i64 16560, !14, i64 16561, !14, i64 16562, !14, i64 16563, !14, i64 16564, !6, i64 16568, !57, i64 16576, !57, i64 16592, !50, i64 16608, !10, i64 16612, !23, i64 16616, !23, i64 16632, !23, i64 16648, !58, i64 16664, !27, i64 16680, !10, i64 16696, !15, i64 16700, !6, i64 16712, !6, i64 16720, !6, i64 16728, !6, i64 16736, !6, i64 16744, !15, i64 16752, !10, i64 16760, !10, i64 16764, !16, i64 16768, !15, i64 16772, !15, i64 16780, !10, i64 16788, !10, i64 16792, !10, i64 16796, !14, i64 16800, !14, i64 16801, !16, i64 16804, !16, i64 16808, !10, i64 16812, !10, i64 16816, !16, i64 16820, !14, i64 16824, !14, i64 16825, !14, i64 16826, !14, i64 16827, !14, i64 16828, !14, i64 16829, !15, i64 16832, !6, i64 16840, !59, i64 16848, !10, i64 16852, !10, i64 16856, !14, i64 16860, !14, i64 16861, !6, i64 16864, !10, i64 16872, !16, i64 16876, !7, i64 16880, !60, i64 18728, !10, i64 19072, !14, i64 19076, !10, i64 19080, !10, i64 19084, !10, i64 19088, !10, i64 19092, !62, i64 19096, !64, i64 19128, !65, i64 19192, !14, i64 19344, !66, i64 19352, !67, i64 19368, !68, i64 19384, !18, i64 19400, !69, i64 19416, !70, i64 19432, !71, i64 19448, !71, i64 19464, !72, i64 19480, !10, i64 19496, !73, i64 19504, !16, i64 19520, !6, i64 19528, !6, i64 19536, !6, i64 19544, !10, i64 19552, !74, i64 19560, !10, i64 19608, !10, i64 19612, !10, i64 19616, !6, i64 19624, !10, i64 19632, !10, i64 19636, !10, i64 19640, !10, i64 19644, !10, i64 19648, !10, i64 19652, !10, i64 19656, !10, i64 19660, !10, i64 19664, !10, i64 19668, !10, i64 19672, !59, i64 19676, !21, i64 19680, !63, i64 19688, !14, i64 19696, !14, i64 19697, !14, i64 19698, !14, i64 19699, !14, i64 19700, !14, i64 19701, !14, i64 19702, !75, i64 19704, !14, i64 19768, !14, i64 19769, !14, i64 19770, !10, i64 19772, !10, i64 19776, !10, i64 19780, !10, i64 19784, !10, i64 19788, !10, i64 19792, !25, i64 19796, !25, i64 19812, !10, i64 19828, !10, i64 19832, !10, i64 19836, !75, i64 19840, !75, i64 19904, !75, i64 19968, !75, i64 20032, !10, i64 20096, !10, i64 20100, !6, i64 20104, !6, i64 20112, !6, i64 20120, !16, i64 20128, !16, i64 20132, !14, i64 20136, !15, i64 20140, !15, i64 20148, !16, i64 20156, !14, i64 20160, !14, i64 20161, !14, i64 20162, !10, i64 20164, !10, i64 20168, !10, i64 20172, !76, i64 20176, !25, i64 20240, !10, i64 20256, !10, i64 20260, !16, i64 20264, !10, i64 20268, !10, i64 20272, !10, i64 20276, !10, i64 20280, !77, i64 20288, !7, i64 20304, !10, i64 20320, !78, i64 20328, !6, i64 20344, !10, i64 20352, !79, i64 20360, !80, i64 20376, !24, i64 20416, !40, i64 20432, !6, i64 20448, !82, i64 20456, !84, i64 20496, !85, i64 20512, !10, i64 20528, !10, i64 20532, !16, i64 20536, !16, i64 20540, !10, i64 20544, !10, i64 20548, !10, i64 20552, !16, i64 20556, !15, i64 20560, !86, i64 20568, !90, i64 24296, !91, i64 24320, !10, i64 24440, !10, i64 24444, !10, i64 24448, !10, i64 24452, !16, i64 24456, !16, i64 24460, !10, i64 24464, !38, i64 24468, !93, i64 24484, !25, i64 24532, !14, i64 24548, !16, i64 24552, !16, i64 24556, !14, i64 24560, !14, i64 24561, !16, i64 24564, !16, i64 24568, !16, i64 24572, !16, i64 24576, !17, i64 24580, !17, i64 24582, !17, i64 24584, !87, i64 24592, !18, i64 24608, !94, i64 24624, !96, i64 24728, !96, i64 24744, !10, i64 24760, !97, i64 24768, !6, i64 24824, !14, i64 24832, !16, i64 24836, !100, i64 24840, !101, i64 24856, !102, i64 24872, !103, i64 24888, !104, i64 24904, !10, i64 24920, !7, i64 24928, !14, i64 25016, !105, i64 25020, !6, i64 25024, !100, i64 25032, !6, i64 25048, !6, i64 25056, !16, i64 25064, !14, i64 25068, !10, i64 25072, !10, i64 25076, !10, i64 25080, !10, i64 25084, !100, i64 25088, !106, i64 25104, !7, i64 25128, !7, i64 25129, !7, i64 25130, !14, i64 25131, !7, i64 25132, !10, i64 25136, !107, i64 25140, !108, i64 25160, !110, i64 25200, !6, i64 25264, !7, i64 25272, !10, i64 25512, !10, i64 25516, !16, i64 25520, !10, i64 25524, !10, i64 25528, !10, i64 25532, !87, i64 25536}
!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, !17, i64 200, !14, i64 202, !14, i64 203, !14, i64 204, !14, i64 205, !14, i64 206, !14, i64 207, !14, i64 208, !16, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !15, i64 232, !7, i64 240, !7, i64 2904, !7, i64 3572, !6, i64 3640, !6, i64 3648, !15, i64 3656, !7, i64 3664, !16, i64 3672, !16, i64 3676, !50, i64 3680, !10, i64 3684, !14, i64 3688, !14, i64 3689, !14, i64 3690, !14, i64 3691, !10, i64 3692, !7, i64 3696, !14, i64 14352, !15, i64 14356, !7, i64 14364, !7, i64 14408, !7, i64 14448, !7, i64 14453, !7, i64 14458, !7, i64 14468, !7, i64 14478, !7, i64 14483, !7, i64 14488, !14, i64 14493, !7, i64 14496, !7, i64 14516, !7, i64 14536, !7, i64 14576, !16, i64 14596, !14, i64 14600, !14, i64 14601, !7, i64 14602, !14, i64 14603, !17, i64 14604, !32, i64 14608}
!50 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!51 = !{!"_ZTS15ImGuiPlatformIO", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !52, i64 184, !53, i64 200}
!52 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !10, i64 0, !10, i64 4, !6, i64 8}
!53 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !10, i64 0, !10, i64 4, !6, i64 8}
!54 = !{!"_ZTS10ImGuiStyle", !16, i64 0, !16, i64 4, !15, i64 8, !16, i64 16, !16, i64 20, !15, i64 24, !15, i64 32, !10, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !15, i64 60, !16, i64 68, !16, i64 72, !15, i64 76, !15, i64 84, !15, i64 92, !15, i64 100, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !16, i64 148, !16, i64 152, !10, i64 156, !15, i64 160, !15, i64 168, !16, i64 176, !15, i64 180, !15, i64 188, !15, i64 196, !15, i64 204, !16, i64 212, !16, i64 216, !14, i64 220, !14, i64 221, !14, i64 222, !16, i64 224, !16, i64 228, !7, i64 232, !16, i64 1112, !16, i64 1116, !16, i64 1120, !10, i64 1124, !10, i64 1128}
!55 = !{!"_ZTS20ImDrawListSharedData", !15, i64 0, !6, i64 8, !16, i64 16, !16, i64 20, !16, i64 24, !38, i64 28, !10, i64 44, !36, i64 48, !7, i64 64, !16, i64 448, !7, i64 452, !6, i64 520}
!56 = !{!"double", !7, i64 0}
!57 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !10, i64 0, !10, i64 4, !6, i64 8}
!58 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!59 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!60 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !61, i64 312, !61, i64 328}
!61 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!62 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !16, i64 8, !63, i64 16, !10, i64 24, !14, i64 28}
!63 = !{!"long long", !7, i64 0}
!64 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !25, i64 12, !25, i64 28, !25, i64 44}
!65 = !{!"_ZTS19ImGuiNextWindowData", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !15, i64 20, !15, i64 28, !15, i64 36, !15, i64 44, !15, i64 52, !10, i64 60, !14, i64 64, !14, i64 65, !25, i64 68, !6, i64 88, !6, i64 96, !16, i64 104, !10, i64 108, !10, i64 112, !13, i64 116, !15, i64 144}
!66 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!73 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !6, i64 8}
!74 = !{!"_ZTS20ImGuiPlatformMonitor", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !16, i64 32, !6, i64 40}
!75 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !10, i64 8, !10, i64 12, !25, i64 16, !10, i64 32, !63, i64 40, !16, i64 48, !16, i64 52, !16, i64 56}
!76 = !{!"_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}
!77 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!79 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!80 = !{!"_ZTS6ImPoolI10ImGuiTableE", !81, i64 0, !27, i64 16, !10, i64 32, !10, i64 36}
!81 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !6, i64 8}
!82 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !83, i64 0, !27, i64 16, !10, i64 32, !10, i64 36}
!83 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !6, i64 8}
!85 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !6, i64 8}
!86 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !32, i64 24, !87, i64 40, !87, i64 56, !14, i64 72, !10, i64 76, !16, i64 80, !88, i64 84, !16, i64 3712, !14, i64 3716, !14, i64 3717, !14, i64 3718, !10, i64 3720}
!87 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!88 = !{!"_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, !89, i64 32}
!89 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !17, i64 3582, !17, i64 3584, !10, i64 3588, !10, i64 3592}
!90 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !87, i64 8}
!91 = !{!"_ZTS6ImFont", !24, i64 0, !16, i64 16, !16, i64 20, !32, i64 24, !92, 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}
!92 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!93 = !{!"_ZTS21ImGuiComboPreviewData", !25, i64 0, !15, i64 16, !15, i64 24, !15, i64 32, !16, i64 40, !10, i64 44}
!94 = !{!"_ZTS22ImGuiTypingSelectState", !95, i64 0, !7, i64 24, !10, i64 88, !10, i64 92, !16, i64 96, !14, i64 100}
!95 = !{!"_ZTS24ImGuiTypingSelectRequest", !10, i64 0, !10, i64 4, !6, i64 8, !14, i64 16, !14, i64 17, !7, i64 18}
!96 = !{!"_ZTS20ImGuiPlatformImeData", !14, i64 0, !15, i64 4, !16, i64 12}
!97 = !{!"_ZTS16ImGuiDockContext", !27, i64 0, !98, i64 16, !99, i64 32, !14, i64 48}
!98 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !10, i64 0, !10, i64 4, !6, i64 8}
!99 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !10, i64 0, !10, i64 4, !6, i64 8}
!100 = !{!"_ZTS15ImGuiTextBuffer", !87, i64 0}
!101 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!102 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !87, i64 0}
!103 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !87, i64 0}
!104 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !6, i64 8}
!105 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!106 = !{!"_ZTS14ImGuiTextIndex", !69, i64 0, !10, i64 16}
!107 = !{!"_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}
!108 = !{!"_ZTS16ImGuiIDStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !109, i64 16, !14, i64 32, !16, i64 36}
!109 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !6, i64 8}
!110 = !{!"_ZTS19ImGuiDebugAllocInfo", !10, i64 0, !10, i64 4, !17, i64 8, !7, i64 12}
!111 = !{!15, !16, i64 4}
!112 = !{!54, !16, i64 64}
!113 = !{!15, !16, i64 0}
!114 = !{!54, !16, i64 84}
!115 = !{!48, !10, i64 19136}
!116 = !{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}
!117 = !{!48, !10, i64 19640}
!118 = !{!48, !10, i64 16812}
!119 = !{!54, !16, i64 68}
!120 = !{!54, !16, i64 72}
!121 = !{!48, !6, i64 16712}
!122 = !{!12, !21, i64 408}
!123 = !{!12, !17, i64 414}
!124 = !{!12, !16, i64 232}
!125 = !{!48, !10, i64 19132}
!126 = !{!48, !10, i64 20552}
!127 = !{!48, !10, i64 19652}
!128 = !{!48, !59, i64 19676}
!129 = !{!48, !10, i64 16856}
!130 = !{!12, !16, i64 196}
!131 = !{!86, !7, i64 107}
!132 = !{!86, !10, i64 8}
!133 = !{!86, !6, i64 64}
!134 = !{!86, !10, i64 16}
!135 = !{!86, !14, i64 72}
!136 = !{!86, !6, i64 48}
!137 = !{!86, !6, i64 32}
!138 = !{!86, !10, i64 12}
!139 = !{!86, !16, i64 80}
!140 = !{!49, !14, i64 3688}
!141 = !{!86, !7, i64 96}
!142 = !{!49, !14, i64 89}
!143 = !{!48, !10, i64 19072}
!144 = !{!86, !10, i64 24}
!145 = !{!7, !7, i64 0}
!146 = !{!48, !6, i64 15992}
!147 = !{!91, !16, i64 20}
!148 = !{!91, !16, i64 100}
!149 = !{!91, !16, i64 104}
!150 = !{!91, !16, i64 108}
!151 = !{!91, !6, i64 64}
!152 = !{!91, !6, i64 56}
!153 = !{!154, !16, i64 4}
!154 = !{!"_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}
!155 = !{!91, !16, i64 16}
!156 = !{!86, !14, i64 3718}
!157 = !{!86, !10, i64 76}
!158 = !{!86, !10, i64 3720}
!159 = !{!48, !14, i64 16825}
!160 = !{!49, !16, i64 3656}
!161 = !{!25, !16, i64 0}
!162 = !{!54, !16, i64 60}
!163 = !{!49, !16, i64 3660}
!164 = !{!12, !16, i64 324}
!165 = !{!86, !14, i64 3717}
!166 = !{!17, !17, i64 0}
!167 = !{!49, !14, i64 3689}
!168 = !{!86, !10, i64 84}
!169 = !{!86, !10, i64 88}
!170 = !{!86, !10, i64 92}
!171 = !{!86, !14, i64 3716}
!172 = !{!49, !16, i64 232}
!173 = !{!49, !16, i64 236}
!174 = !{!49, !14, i64 3690}
!175 = !{!49, !14, i64 3691}
!176 = !{!49, !10, i64 14608}
!177 = distinct !{!177, !178}
!178 = !{!"llvm.loop.mustprogress"}
!179 = !{!48, !14, i64 16824}
!180 = !{!86, !10, i64 100}
!181 = !{!49, !10, i64 0}
!182 = !{!49, !10, i64 4}
!183 = !{!49, !14, i64 92}
!184 = !{!49, !6, i64 176}
!185 = distinct !{!185, !178}
!186 = !{!86, !10, i64 56}
!187 = !{!32, !6, i64 8}
!188 = !{!32, !10, i64 0}
!189 = !{!86, !10, i64 40}
!190 = !{!191, !191, i64 0}
!191 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!192 = !{!193, !6, i64 0}
!193 = !{!"_ZTS26ImGuiInputTextCallbackData", !6, i64 0, !10, i64 8, !10, i64 12, !6, i64 16, !17, i64 24, !191, i64 28, !6, i64 32, !10, i64 40, !10, i64 44, !14, i64 48, !10, i64 52, !10, i64 56, !10, i64 60}
!194 = !{!193, !10, i64 8}
!195 = !{!193, !10, i64 12}
!196 = !{!193, !6, i64 16}
!197 = !{!193, !191, i64 28}
!198 = !{!193, !6, i64 32}
!199 = !{!193, !10, i64 40}
!200 = !{!193, !10, i64 44}
!201 = !{!193, !14, i64 48}
!202 = !{!193, !10, i64 52}
!203 = !{!193, !10, i64 56}
!204 = !{!193, !10, i64 60}
!205 = !{!48, !10, i64 24296}
!206 = !{!48, !6, i64 24312}
!207 = !{!48, !10, i64 24304}
!208 = !{!48, !10, i64 25532}
!209 = !{!25, !16, i64 4}
!210 = distinct !{!210, !178}
!211 = !{!38, !16, i64 12}
!212 = !{!38, !16, i64 4}
!213 = distinct !{!213, !178}
!214 = !{!12, !6, i64 736}
!215 = distinct !{!215, !178}
!216 = !{!49, !16, i64 16}
!217 = !{!86, !16, i64 3712}
!218 = !{!48, !14, i64 99}
!219 = !{!48, !14, i64 24728}
!220 = !{!48, !16, i64 24740}
!221 = !{!12, !6, i64 64}
!222 = !{!223, !10, i64 0}
!223 = !{!"_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}
!224 = !{!48, !10, i64 24760}
!225 = !{!48, !10, i64 19100}
!226 = !{!64, !10, i64 8}
!227 = !{!48, !10, i64 19128}
!228 = !{!64, !10, i64 4}
!229 = !{!48, !14, i64 25016}
!230 = !{!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 [89 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv = external hidden unnamed_addr constant [134 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [34 x i8], align 1
@__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no = external hidden unnamed_addr constant [2 x i32], align 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) local_unnamed_addr #4

declare noundef float @_ZN5ImGui13CalcItemWidthEv() local_unnamed_addr #4

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

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

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

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

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

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

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

declare void @_ZN5ImGui13ClearActiveIDEv() local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef 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 248
  %58 = load i8, ptr %57, align 8, !tbaa !5, !range !40, !noundef !41
  %59 = trunc nuw i8 %58 to i1
  br i1 %59, label %1525, label %60

60:                                               ; preds = %8
  %61 = icmp ne ptr %2, null
  %62 = icmp sgt i32 %3, -1
  %63 = and i1 %61, %62
  br i1 %63, label %65, label %64

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

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

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

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

75:                                               ; preds = %71
  tail call void @__assert_fail(ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.4, i32 noundef 4106, 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
  %.not1016 = icmp eq i32 %81, 0
  %82 = and i32 %5, 65536
  %83 = icmp eq i32 %82, 0
  %84 = and i32 %5, 262144
  %.not1017 = icmp eq i32 %84, 0
  %85 = icmp ne ptr %6, null
  %or.cond17 = or i1 %.not1017, %85
  br i1 %or.cond17, label %87, label %86

86:                                               ; preds = %76
  tail call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.4, i32 noundef 4119, 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(1144) %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.0534.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 16000
  %95 = load float, ptr %94, align 8, !tbaa !43
  %96 = fmul float %95, 8.000000e+00
  br label %98

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

98:                                               ; preds = %97, %93
  %99 = phi float [ %96, %93 ], [ %.sroa.0535.4.vec.extract, %97 ]
  %100 = getelementptr inbounds i8, ptr %77, i64 14908
  %101 = getelementptr inbounds i8, ptr %77, i64 14912
  %102 = load float, ptr %101, align 4, !tbaa !107
  %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.0534.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.0535.0.vec.extract = extractelement <2 x float> %91, i64 0
  %106 = fcmp ogt float %.sroa.0535.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 14932
  %110 = load float, ptr %109, align 4, !tbaa !108
  %111 = fadd float %.sroa.0535.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 320
  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.0505.0.copyload = load float, ptr %9, align 8, !tbaa !109
  %.sroa.11.0.copyload = load float, ptr %115, align 4, !tbaa !109
  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 %158

119:                                              ; preds = %112
  %120 = load i64, ptr %116, align 8
  %121 = load float, ptr %101, align 4, !tbaa !107
  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 19128
  %126 = getelementptr inbounds i8, ptr %77, i64 19136
  %127 = load i32, ptr %126, align 8, !tbaa !110
  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 !111
  store i64 %120, ptr %116, align 8
  %128 = getelementptr inbounds i8, ptr %77, i64 19640
  %129 = load i32, ptr %128, align 8, !tbaa !113
  %130 = getelementptr inbounds i8, ptr %77, i64 16812
  %131 = load i32, ptr %130, align 4, !tbaa !114
  %132 = icmp eq i32 %131, %90
  br i1 %132, label %133, label %134

133:                                              ; preds = %124
  store i32 0, ptr %128, align 8, !tbaa !113
  br label %134

134:                                              ; preds = %133, %124
  %135 = getelementptr inbounds i8, ptr %77, i64 15192
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %135)
  %136 = getelementptr inbounds i8, ptr %77, i64 14916
  %137 = load float, ptr %136, align 4, !tbaa !115
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %137)
  %138 = getelementptr inbounds i8, ptr %77, i64 14920
  %139 = load float, ptr %138, align 4, !tbaa !116
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 8, float noundef %139)
  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
  %140 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  store <2 x float> %140, ptr %17, align 8
  %141 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2ii(ptr noundef %0, i32 noundef %90, ptr noundef nonnull align 4 dereferenceable(8) %17, i32 noundef 1, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  store i32 %129, ptr %128, align 8, !tbaa !113
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br i1 %141, label %143, label %142

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

143:                                              ; preds = %134
  %144 = getelementptr inbounds i8, ptr %77, i64 16712
  %145 = load ptr, ptr %144, align 8, !tbaa !117
  %146 = getelementptr inbounds i8, ptr %145, i64 320
  %147 = getelementptr inbounds i8, ptr %145, i64 408
  %148 = load i32, ptr %147, align 8, !tbaa !118
  %149 = shl nuw i32 1, %148
  %150 = getelementptr inbounds i8, ptr %145, i64 414
  %151 = load i16, ptr %150, align 2, !tbaa !119
  %152 = trunc i32 %149 to i16
  %153 = or i16 %151, %152
  store i16 %153, ptr %150, align 2, !tbaa !119
  %154 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZpLR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %146, ptr noundef nonnull align 4 dereferenceable(8) %100)
  %155 = getelementptr inbounds i8, ptr %145, i64 232
  %156 = load float, ptr %155, align 8, !tbaa !120
  %157 = fsub float %.sroa.0505.0.copyload, %156
  br label %166

158:                                              ; preds = %112
  %159 = load float, ptr %101, align 4, !tbaa !107
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %159)
  %160 = and i32 %5, 268435456
  %.not1018 = icmp eq i32 %160, 0
  br i1 %.not1018, label %161, label %163

161:                                              ; preds = %158
  %162 = 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 %162, label %163, label %.thread

163:                                              ; preds = %161, %158
  %164 = getelementptr inbounds i8, ptr %77, i64 19136
  %165 = load i32, ptr %164, align 8, !tbaa !110
  br label %166

166:                                              ; preds = %143, %163
  %.1924 = phi i32 [ %127, %143 ], [ %165, %163 ]
  %.sroa.0505.2 = phi float [ %157, %143 ], [ %.sroa.0505.0.copyload, %163 ]
  %.2922 = phi ptr [ %145, %143 ], [ %56, %163 ]
  %167 = getelementptr inbounds i8, ptr %77, i64 19128
  %168 = getelementptr inbounds i8, ptr %77, i64 19132
  %169 = load i32, ptr %168, align 4, !tbaa !121
  %170 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %90, i32 noundef %169)
  br i1 %170, label %171, label %173

171:                                              ; preds = %166
  %172 = getelementptr inbounds i8, ptr %77, i64 20552
  store i32 1, ptr %172, align 8, !tbaa !122
  br label %173

173:                                              ; preds = %171, %166
  %174 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %90)
  %175 = and i32 %.1924, 256
  %176 = icmp ne i32 %175, 0
  %177 = getelementptr inbounds i8, ptr %77, i64 16812
  %178 = load i32, ptr %177, align 4, !tbaa !114
  %.not1019 = icmp eq i32 %178, %90
  br i1 %.not1019, label %191, label %179

179:                                              ; preds = %173
  %180 = getelementptr inbounds i8, ptr %77, i64 19640
  %181 = load i32, ptr %180, align 8, !tbaa !113
  %182 = icmp eq i32 %181, %90
  br i1 %182, label %183, label %191

183:                                              ; preds = %179
  %184 = getelementptr inbounds i8, ptr %77, i64 19652
  %185 = load i32, ptr %184, align 4, !tbaa !123
  %186 = and i32 %185, 1
  %.not1020 = icmp eq i32 %186, 0
  br i1 %.not1020, label %187, label %191

187:                                              ; preds = %183
  %188 = getelementptr inbounds i8, ptr %77, i64 19676
  %189 = load i32, ptr %188, align 4, !tbaa !124
  %190 = icmp eq i32 %189, 2
  br label %191

191:                                              ; preds = %179, %187, %183, %173
  %192 = phi i1 [ false, %173 ], [ false, %179 ], [ true, %183 ], [ %190, %187 ]
  br i1 %170, label %193, label %197

193:                                              ; preds = %191
  %194 = getelementptr inbounds i8, ptr %77, i64 14456
  %195 = load i8, ptr %194, align 8, !tbaa !125, !range !40, !noundef !41
  %196 = trunc nuw i8 %195 to i1
  br label %197

197:                                              ; preds = %193, %191
  %198 = phi i1 [ false, %191 ], [ %196, %193 ]
  %199 = icmp ne ptr %174, null
  %or.cond = and i1 %68, %199
  br i1 %or.cond, label %200, label %210

200:                                              ; preds = %197
  %201 = icmp eq i32 %178, 0
  br i1 %201, label %202, label %.thread1177

202:                                              ; preds = %200
  %203 = getelementptr inbounds i8, ptr %77, i64 16856
  %204 = load i32, ptr %203, align 8, !tbaa !126
  %205 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.2922, i32 noundef 1)
  %206 = icmp eq i32 %204, %205
  %.pre = load i32, ptr %177, align 4, !tbaa !114
  br label %.thread1177

.thread1177:                                      ; preds = %200, %202
  %207 = phi i32 [ %.pre, %202 ], [ %178, %200 ]
  %.ph = phi i1 [ %206, %202 ], [ false, %200 ]
  %208 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.2922, i32 noundef 1)
  %209 = icmp eq i32 %207, %208
  br label %211

210:                                              ; preds = %197
  br i1 %68, label %211, label %216

211:                                              ; preds = %.thread1177, %210
  %212 = phi i1 [ %209, %.thread1177 ], [ false, %210 ]
  %213 = phi i1 [ %.ph, %.thread1177 ], [ false, %210 ]
  %214 = getelementptr inbounds i8, ptr %.2922, i64 196
  %215 = load float, ptr %214, align 4, !tbaa !127
  br label %216

216:                                              ; preds = %210, %211
  %217 = phi i1 [ %212, %211 ], [ false, %210 ]
  %218 = phi i1 [ %213, %211 ], [ false, %210 ]
  %219 = phi float [ %215, %211 ], [ 0x47EFFFFFE0000000, %210 ]
  br i1 %199, label %220, label %.thread1178

220:                                              ; preds = %216
  %221 = getelementptr inbounds i8, ptr %174, i64 107
  %222 = load i8, ptr %221, align 1, !tbaa !128
  %223 = xor i1 %68, true
  %224 = zext i1 %223 to i8
  %225 = icmp ne i8 %222, %224
  %brmerge = select i1 %198, i1 true, i1 %218
  %226 = select i1 %brmerge, i1 true, i1 %192
  %spec.select1168 = select i1 %226, i1 true, i1 %176
  %227 = select i1 %spec.select1168, i1 true, i1 %217
  br i1 %227, label %230, label %233

.thread1178:                                      ; preds = %216
  %brmerge1179 = select i1 %198, i1 true, i1 %218
  %228 = select i1 %brmerge1179, i1 true, i1 %192
  %spec.select11681181 = select i1 %228, i1 true, i1 %176
  %229 = select i1 %spec.select11681181, i1 true, i1 %217
  br i1 %229, label %230, label %.thread1186.thread

230:                                              ; preds = %.thread1178, %220
  %spec.select11681185 = phi i1 [ %spec.select11681181, %.thread1178 ], [ %spec.select1168, %220 ]
  %231 = phi i1 [ false, %.thread1178 ], [ %225, %220 ]
  %232 = load i32, ptr %177, align 4, !tbaa !114
  %.not1021 = icmp ne i32 %232, %90
  %brmerge1063 = select i1 %.not1021, i1 true, i1 %231
  br i1 %brmerge1063, label %234, label %.thread1186

233:                                              ; preds = %220
  br i1 %225, label %234, label %.thread1186.thread

234:                                              ; preds = %230, %233
  %235 = phi i8 [ 1, %230 ], [ 0, %233 ]
  %spec.select11681183 = phi i1 [ %spec.select11681185, %230 ], [ false, %233 ]
  %236 = phi i1 [ %231, %230 ], [ true, %233 ]
  %237 = getelementptr inbounds i8, ptr %77, i64 20568
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %237)
  %238 = getelementptr inbounds i8, ptr %77, i64 20576
  %239 = load i32, ptr %238, align 8, !tbaa !129
  call void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef %239)
  %240 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #15
  %241 = trunc i64 %240 to i32
  %242 = getelementptr inbounds i8, ptr %77, i64 20624
  %243 = add nsw i32 %241, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %242, i32 noundef %243)
  %244 = getelementptr inbounds i8, ptr %77, i64 20632
  %245 = load ptr, ptr %244, align 8, !tbaa !130
  %246 = sext i32 %243 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %245, ptr nonnull align 1 %2, i64 %246, i1 false)
  %247 = load i32, ptr %238, align 8, !tbaa !129
  %248 = icmp ne i32 %247, %90
  %.not1222 = select i1 %248, i1 true, i1 %236
  br i1 %.not1222, label %262, label %249

249:                                              ; preds = %234
  %250 = getelementptr inbounds i8, ptr %77, i64 20584
  %251 = load i32, ptr %250, align 8, !tbaa !131
  %.not1022 = icmp eq i32 %251, %241
  br i1 %.not1022, label %252, label %261

252:                                              ; preds = %249
  %253 = getelementptr inbounds i8, ptr %77, i64 20640
  %254 = load i8, ptr %253, align 8, !tbaa !132, !range !40, !noundef !41
  %255 = trunc nuw i8 %254 to i1
  br i1 %255, label %256, label %262

256:                                              ; preds = %252
  %257 = getelementptr inbounds i8, ptr %77, i64 20616
  %258 = load ptr, ptr %257, align 8, !tbaa !133
  %sext = shl i64 %240, 32
  %259 = ashr exact i64 %sext, 32
  %260 = call i32 @strncmp(ptr noundef %258, ptr noundef nonnull %2, i64 noundef %259) #15
  %.not1023 = icmp eq i32 %260, 0
  br i1 %.not1023, label %262, label %261

261:                                              ; preds = %256, %249
  br label %262

262:                                              ; preds = %261, %256, %252, %234
  %.0937.shrunk = phi i1 [ false, %261 ], [ true, %256 ], [ true, %252 ], [ false, %234 ]
  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 %238, align 8, !tbaa !129
  %263 = getelementptr inbounds i8, ptr %77, i64 20592
  %264 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %263, i32 noundef %264)
  %265 = getelementptr inbounds i8, ptr %77, i64 20608
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %265, i32 noundef 0)
  %266 = getelementptr inbounds i8, ptr %77, i64 20640
  store i8 0, ptr %266, align 8, !tbaa !132
  %267 = getelementptr inbounds i8, ptr %77, i64 20600
  %268 = load ptr, ptr %267, align 8, !tbaa !134
  %269 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %268, i32 noundef %3, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %18)
  %270 = getelementptr inbounds i8, ptr %77, i64 20580
  store i32 %269, ptr %270, align 4, !tbaa !135
  %271 = load ptr, ptr %18, align 8, !tbaa !42
  %272 = ptrtoint ptr %271 to i64
  %273 = ptrtoint ptr %2 to i64
  %274 = sub i64 %272, %273
  %275 = trunc i64 %274 to i32
  %276 = getelementptr inbounds i8, ptr %77, i64 20584
  store i32 %275, ptr %276, align 8, !tbaa !131
  br i1 %.0937.shrunk, label %277, label %278

277:                                              ; preds = %262
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %237)
  br label %283

278:                                              ; preds = %262
  %279 = getelementptr inbounds i8, ptr %77, i64 20648
  store float 0.000000e+00, ptr %279, align 8, !tbaa !136
  %280 = getelementptr inbounds i8, ptr %77, i64 20652
  %281 = xor i1 %68, true
  %282 = zext i1 %281 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef nonnull %280, i32 noundef %282)
  br label %283

283:                                              ; preds = %278, %277
  br i1 %68, label %300, label %284

284:                                              ; preds = %283
  %285 = trunc i32 %5 to i8
  %286 = lshr i8 %285, 4
  br i1 %192, label %287, label %293

287:                                              ; preds = %284
  br i1 %.0937.shrunk, label %288, label %292

288:                                              ; preds = %287
  %289 = getelementptr inbounds i8, ptr %77, i64 19652
  %290 = load i32, ptr %289, align 4, !tbaa !123
  %291 = and i32 %290, 4
  %.not1025 = icmp eq i32 %291, 0
  br i1 %.not1025, label %292, label %293

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

293:                                              ; preds = %292, %288, %284
  %.1931 = phi i8 [ %286, %288 ], [ 1, %292 ], [ %286, %284 ]
  br i1 %176, label %299, label %294

294:                                              ; preds = %293
  br i1 %198, label %295, label %300

295:                                              ; preds = %294
  %296 = getelementptr inbounds i8, ptr %77, i64 3696
  %297 = load i8, ptr %296, align 8, !tbaa !137, !range !40, !noundef !41
  %298 = trunc nuw i8 %297 to i1
  br i1 %298, label %299, label %300

299:                                              ; preds = %295, %293
  br label %300

300:                                              ; preds = %294, %295, %299, %283
  %.2932 = phi i8 [ 0, %283 ], [ 1, %299 ], [ %.1931, %295 ], [ %.1931, %294 ]
  %301 = and i32 %5, 8192
  %.not1026 = icmp eq i32 %301, 0
  br i1 %.not1026, label %304, label %302

302:                                              ; preds = %300
  %303 = getelementptr inbounds i8, ptr %77, i64 20664
  store i8 1, ptr %303, align 4, !tbaa !138
  br label %304

304:                                              ; preds = %302, %300
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  br label %.thread1186

.thread1186.thread:                               ; preds = %233, %.thread1178
  %305 = getelementptr inbounds i8, ptr %77, i64 97
  %306 = load i8, ptr %305, align 1, !tbaa !139, !range !40, !noundef !41
  %307 = trunc nuw i8 %306 to i1
  br label %.sink.split

.thread1186:                                      ; preds = %230, %304
  %308 = phi i8 [ %235, %304 ], [ 1, %230 ]
  %spec.select11681182 = phi i1 [ %spec.select11681183, %304 ], [ %spec.select11681185, %230 ]
  %.3933 = phi i8 [ %.2932, %304 ], [ 0, %230 ]
  %.0925 = phi ptr [ %237, %304 ], [ %174, %230 ]
  %309 = getelementptr inbounds i8, ptr %77, i64 97
  %310 = load i8, ptr %309, align 1, !tbaa !139, !range !40, !noundef !41
  %311 = trunc nuw i8 %310 to i1
  %312 = load i32, ptr %177, align 4, !tbaa !114
  %.not1027 = icmp ne i32 %312, %90
  %brmerge1066.not = and i1 %spec.select11681182, %.not1027
  br i1 %brmerge1066.not, label %313, label %320

313:                                              ; preds = %.thread1186
  %.not1028 = icmp eq ptr %.0925, null
  br i1 %.not1028, label %.critedge, label %314

314:                                              ; preds = %313
  %315 = getelementptr inbounds i8, ptr %.0925, i64 8
  %316 = load i32, ptr %315, align 8, !tbaa !129
  %317 = icmp eq i32 %316, %90
  br i1 %317, label %318, label %.critedge

.critedge:                                        ; preds = %313, %314
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.4, i32 noundef 4262, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

318:                                              ; preds = %314
  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 = %318, %.thread1186.thread
  %.ph1296 = phi i1 [ %307, %.thread1186.thread ], [ %311, %318 ]
  %.09251265.ph = phi ptr [ %174, %.thread1186.thread ], [ %.0925, %318 ]
  %.39331264.ph = phi i8 [ 0, %.thread1186.thread ], [ %.3933, %318 ]
  %.ph1297 = phi i8 [ 0, %.thread1186.thread ], [ %308, %318 ]
  %319 = load i32, ptr %177, align 4, !tbaa !114
  br label %320

320:                                              ; preds = %.sink.split, %.thread1186
  %321 = phi i1 [ %311, %.thread1186 ], [ %.ph1296, %.sink.split ]
  %.09251265 = phi ptr [ %.0925, %.thread1186 ], [ %.09251265.ph, %.sink.split ]
  %.39331264 = phi i8 [ %.3933, %.thread1186 ], [ %.39331264.ph, %.sink.split ]
  %322 = phi i8 [ %308, %.thread1186 ], [ %.ph1297, %.sink.split ]
  %323 = phi i32 [ %312, %.thread1186 ], [ %319, %.sink.split ]
  %324 = icmp eq i32 %323, %90
  br i1 %324, label %325, label %336

325:                                              ; preds = %320
  br i1 %198, label %326, label %327

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

327:                                              ; preds = %326, %325
  %328 = getelementptr inbounds i8, ptr %77, i64 19072
  %329 = load i32, ptr %328, align 8, !tbaa !140
  %brmerge1067.not = icmp eq i32 %69, 0
  %spec.select.v = select i1 %brmerge1067.not, i32 3, i32 15
  %spec.select = or i32 %329, %spec.select.v
  store i32 %spec.select, ptr %328, align 8, !tbaa !140
  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 %330, label %331

330:                                              ; preds = %327
  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 %331

331:                                              ; preds = %330, %327
  br i1 %321, label %332, label %333

332:                                              ; preds = %331
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 16384, i32 noundef %90, i32 noundef 0)
  br label %333

333:                                              ; preds = %332, %331
  %.not1029 = icmp eq i32 %74, 0
  br i1 %.not1029, label %336, label %334

334:                                              ; preds = %333
  %335 = call noundef zeroext i1 @_ZN5ImGui18SetShortcutRoutingEiji(i32 noundef 512, i32 noundef %90, i32 noundef 0)
  br label %336

336:                                              ; preds = %333, %334, %320
  %337 = load i32, ptr %177, align 4, !tbaa !114
  %338 = icmp eq i32 %337, %90
  %339 = icmp eq ptr %.09251265, null
  %or.cond5 = and i1 %339, %338
  br i1 %or.cond5, label %340, label %341

340:                                              ; preds = %336
  call void @_ZN5ImGui13ClearActiveIDEv()
  %.pre1239 = load i32, ptr %177, align 4, !tbaa !114
  br label %341

341:                                              ; preds = %340, %336
  %342 = phi i32 [ %.pre1239, %340 ], [ %337, %336 ]
  %343 = icmp eq i32 %342, %90
  br i1 %343, label %.thread1188, label %346

.thread1188:                                      ; preds = %341
  %344 = getelementptr inbounds i8, ptr %77, i64 14456
  %345 = load i8, ptr %344, align 8, !tbaa !125, !range !40, !noundef !41
  %.not1225 = xor i8 %322, 1
  %not.brmerge1069 = and i8 %345, %.not1225
  br label %349

346:                                              ; preds = %341
  %347 = icmp ne ptr %.09251265, null
  %348 = select i1 %347, i1 %217, i1 false
  br label %349

349:                                              ; preds = %.thread1188, %346
  %.09261190 = phi i8 [ 0, %346 ], [ %not.brmerge1069, %.thread1188 ]
  %350 = phi i1 [ %348, %346 ], [ true, %.thread1188 ]
  %351 = zext i1 %350 to i8
  %352 = icmp ne ptr %.09251265, null
  br i1 %352, label %353, label %.thread1191

353:                                              ; preds = %349
  %354 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br i1 %354, label %357, label %355

355:                                              ; preds = %353
  %356 = trunc i8 %.39331264 to i1
  br i1 %356, label %357, label %358

357:                                              ; preds = %355, %353
  br label %358

358:                                              ; preds = %357, %355
  %359 = phi i1 [ false, %355 ], [ %350, %357 ]
  %brmerge1070 = or i1 %350, %359
  %or.cond1166 = select i1 %80, i1 %brmerge1070, i1 false
  br i1 %or.cond1166, label %360, label %.thread1191

360:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  store ptr null, ptr %19, align 8, !tbaa !42
  %361 = getelementptr inbounds i8, ptr %.09251265, i64 24
  %362 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %361, i32 noundef %362)
  %363 = getelementptr inbounds i8, ptr %.09251265, i64 32
  %364 = load ptr, ptr %363, align 8, !tbaa !134
  %365 = load i32, ptr %361, align 8, !tbaa !141
  %366 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %364, i32 noundef %365, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %19)
  %367 = getelementptr inbounds i8, ptr %.09251265, i64 12
  store i32 %366, ptr %367, align 4, !tbaa !135
  %368 = load ptr, ptr %19, align 8, !tbaa !42
  %369 = ptrtoint ptr %368 to i64
  %370 = ptrtoint ptr %2 to i64
  %371 = sub i64 %369, %370
  %372 = trunc i64 %371 to i32
  %373 = getelementptr inbounds i8, ptr %.09251265, i64 16
  store i32 %372, ptr %373, align 8, !tbaa !131
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  %374 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  %375 = and i1 %359, %374
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  br label %.thread1191

.thread1191:                                      ; preds = %349, %360, %358
  %.0940.in = phi i1 [ %375, %360 ], [ %359, %358 ], [ false, %349 ]
  %.0940 = zext i1 %.0940.in to i8
  %brmerge1071 = select i1 %350, i1 true, i1 %.0940.in
  br i1 %brmerge1071, label %380, label %376

376:                                              ; preds = %.thread1191
  %377 = load i32, ptr %177, align 4, !tbaa !114
  %378 = icmp eq i32 %377, %90
  %.not = xor i1 %80, true
  %379 = and i1 %378, %.not
  %or.cond1072 = and i1 %352, %379
  br i1 %or.cond1072, label %381, label %385

380:                                              ; preds = %.thread1191
  %.not.old = xor i1 %80, true
  %or.cond9.old = and i1 %352, %.not.old
  br i1 %or.cond9.old, label %381, label %385

381:                                              ; preds = %376, %380
  %382 = getelementptr inbounds i8, ptr %.09251265, i64 72
  %383 = load i8, ptr %382, align 8, !tbaa !132, !range !40, !noundef !41
  %384 = trunc nuw i8 %383 to i1
  br label %385

385:                                              ; preds = %381, %380, %376
  %386 = phi i1 [ false, %380 ], [ false, %376 ], [ %384, %381 ]
  %.not1030 = icmp eq ptr %1, null
  br i1 %.not1030, label %395, label %387

387:                                              ; preds = %385
  br i1 %386, label %388, label %391

388:                                              ; preds = %387
  %389 = getelementptr inbounds i8, ptr %.09251265, i64 48
  %390 = load ptr, ptr %389, align 8, !tbaa !133
  br label %391

391:                                              ; preds = %387, %388
  %392 = phi ptr [ %390, %388 ], [ %2, %387 ]
  %393 = load i8, ptr %392, align 1, !tbaa !142
  %394 = icmp eq i8 %393, 0
  br label %395

395:                                              ; preds = %391, %385
  %396 = phi i1 [ false, %385 ], [ %394, %391 ]
  %brmerge1073 = select i1 %.not1016, i1 true, i1 %396
  br i1 %brmerge1073, label %427, label %397

397:                                              ; preds = %395
  %398 = getelementptr inbounds i8, ptr %77, i64 15992
  %399 = load ptr, ptr %398, align 8, !tbaa !143
  %400 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118) %399, i16 noundef zeroext 42)
  %401 = getelementptr inbounds i8, ptr %77, i64 24320
  %402 = load ptr, ptr %398, align 8, !tbaa !143
  %403 = getelementptr inbounds i8, ptr %402, i64 20
  %404 = load float, ptr %403, align 4, !tbaa !144
  %405 = getelementptr inbounds i8, ptr %77, i64 24340
  store float %404, ptr %405, align 4, !tbaa !144
  %406 = getelementptr inbounds i8, ptr %402, i64 100
  %407 = getelementptr inbounds i8, ptr %77, i64 24420
  %408 = load <2 x float>, ptr %406, align 4, !tbaa !109
  store <2 x float> %408, ptr %407, align 4, !tbaa !109
  %409 = getelementptr inbounds i8, ptr %402, i64 108
  %410 = load float, ptr %409, align 4, !tbaa !145
  %411 = getelementptr inbounds i8, ptr %77, i64 24428
  store float %410, ptr %411, align 4, !tbaa !145
  %412 = getelementptr inbounds i8, ptr %402, i64 64
  %413 = load ptr, ptr %412, align 8, !tbaa !146
  %414 = getelementptr inbounds i8, ptr %77, i64 24384
  store ptr %413, ptr %414, align 8, !tbaa !146
  %415 = getelementptr inbounds i8, ptr %77, i64 24376
  store ptr %400, ptr %415, align 8, !tbaa !147
  %416 = getelementptr inbounds i8, ptr %400, i64 4
  %417 = load float, ptr %416, align 4, !tbaa !148
  %418 = getelementptr inbounds i8, ptr %77, i64 24336
  store float %417, ptr %418, align 8, !tbaa !150
  %419 = getelementptr inbounds i8, ptr %77, i64 24360
  %420 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %419)
  br i1 %420, label %421, label %.critedge11

421:                                              ; preds = %397
  %422 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %401)
  br i1 %422, label %423, label %.critedge11

423:                                              ; preds = %421
  %424 = getelementptr inbounds i8, ptr %77, i64 24344
  %425 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %424)
  br i1 %425, label %426, label %.critedge11

.critedge11:                                      ; preds = %421, %397, %423
  call void @__assert_fail(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.4, i32 noundef 4330, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

426:                                              ; preds = %423
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef nonnull %401)
  br label %427

427:                                              ; preds = %395, %426
  %428 = load i32, ptr %177, align 4, !tbaa !114
  %429 = icmp eq i32 %428, %90
  br i1 %429, label %430, label %590

430:                                              ; preds = %427
  br i1 %352, label %432, label %431

431:                                              ; preds = %430
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4338, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

432:                                              ; preds = %430
  %433 = getelementptr inbounds i8, ptr %.09251265, i64 16
  %434 = load i32, ptr %433, align 8, !tbaa !131
  %435 = getelementptr inbounds i8, ptr %.09251265, i64 3718
  store i8 0, ptr %435, align 2, !tbaa !151
  %436 = getelementptr inbounds i8, ptr %.09251265, i64 76
  store i32 %3, ptr %436, align 4, !tbaa !152
  %437 = getelementptr inbounds i8, ptr %.09251265, i64 3720
  store i32 %5, ptr %437, align 8, !tbaa !153
  %438 = getelementptr inbounds i8, ptr %77, i64 3672
  %439 = load i8, ptr %438, align 8, !tbaa !125, !range !40, !noundef !41
  %440 = xor i8 %439, 1
  %441 = getelementptr inbounds i8, ptr %77, i64 16825
  store i8 %440, ptr %441, align 1, !tbaa !154
  %442 = getelementptr inbounds i8, ptr %77, i64 3664
  %443 = load float, ptr %442, align 8, !tbaa !155
  %444 = load float, ptr %11, align 8, !tbaa !156
  %445 = fsub float %443, %444
  %446 = load float, ptr %100, align 4, !tbaa !157
  %447 = fsub float %445, %446
  %448 = getelementptr inbounds i8, ptr %.09251265, i64 80
  %449 = load float, ptr %448, align 8, !tbaa !136
  %450 = fadd float %447, %449
  br i1 %68, label %451, label %457

451:                                              ; preds = %432
  %452 = getelementptr inbounds i8, ptr %77, i64 3668
  %453 = load float, ptr %452, align 4, !tbaa !158
  %454 = getelementptr inbounds i8, ptr %.2922, i64 324
  %455 = load float, ptr %454, align 4, !tbaa !159
  %456 = fsub float %453, %455
  br label %461

457:                                              ; preds = %432
  %458 = getelementptr inbounds i8, ptr %77, i64 16000
  %459 = load float, ptr %458, align 8, !tbaa !43
  %460 = fmul float %459, 5.000000e-01
  br label %461

461:                                              ; preds = %457, %451
  %462 = phi float [ %456, %451 ], [ %460, %457 ]
  %463 = trunc i8 %.39331264 to i1
  br i1 %463, label %464, label %466

464:                                              ; preds = %461
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  %465 = getelementptr inbounds i8, ptr %.09251265, i64 3717
  store i8 1, ptr %465, align 1, !tbaa !160
  br label %541

466:                                              ; preds = %461
  br i1 %170, label %467, label %507

467:                                              ; preds = %466
  %468 = getelementptr inbounds i8, ptr %77, i64 14466
  %469 = load i16, ptr %468, align 2, !tbaa !161
  %470 = icmp ugt i16 %469, 1
  br i1 %470, label %471, label %507

471:                                              ; preds = %467
  %472 = getelementptr inbounds i8, ptr %77, i64 3697
  %473 = load i8, ptr %472, align 1, !tbaa !162, !range !40, !noundef !41
  %474 = trunc nuw i8 %473 to i1
  br i1 %474, label %507, label %475

475:                                              ; preds = %471
  %476 = getelementptr inbounds i8, ptr %.09251265, i64 84
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09251265, ptr noundef nonnull %476, float noundef %450, float noundef %462)
  %477 = load i16, ptr %468, align 2, !tbaa !161
  %478 = and i16 %477, 1
  %479 = icmp eq i16 %478, 0
  %480 = load i32, ptr %476, align 4, !tbaa !163
  br i1 %479, label %481, label %497

481:                                              ; preds = %475
  %482 = icmp eq i32 %480, 0
  br i1 %482, label %487, label %483

483:                                              ; preds = %481
  %484 = add nsw i32 %480, -1
  %485 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef nonnull %.09251265, i32 noundef %484)
  %486 = icmp eq i16 %485, 10
  br label %487

487:                                              ; preds = %483, %481
  %488 = phi i1 [ true, %481 ], [ %486, %483 ]
  %489 = getelementptr inbounds i8, ptr %.09251265, i64 88
  %490 = load i32, ptr %489, align 4, !tbaa !164
  %491 = getelementptr inbounds i8, ptr %.09251265, i64 92
  %492 = load i32, ptr %491, align 4, !tbaa !165
  %.not1031 = icmp eq i32 %490, %492
  %brmerge1075.not = and i1 %488, %.not1031
  br i1 %brmerge1075.not, label %.thread1272, label %493

493:                                              ; preds = %487
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef 2097164)
  %.pre1240 = load i32, ptr %489, align 4, !tbaa !164
  %.pre1241 = load i32, ptr %491, align 4, !tbaa !165
  %.not1032 = icmp eq i32 %.pre1240, %.pre1241
  br i1 %.not1032, label %.thread1272, label %494

.thread1272:                                      ; preds = %487, %493
  call void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef nonnull %476)
  br label %494

494:                                              ; preds = %.thread1272, %493
  %495 = load i32, ptr %476, align 4, !tbaa !163
  %496 = call noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef nonnull %.09251265, i32 noundef %495)
  store i32 %496, ptr %476, align 4, !tbaa !163
  store i32 %496, ptr %491, align 4, !tbaa !165
  call void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.09251265, ptr noundef nonnull %476)
  br label %506

497:                                              ; preds = %475
  %498 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef nonnull %.09251265, i32 noundef %480)
  %499 = icmp ne i16 %498, 10
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef 2097156)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef 6291461)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef 6291457)
  %brmerge1077.not = and i1 %68, %499
  br i1 %brmerge1077.not, label %500, label %504

500:                                              ; preds = %497
  %501 = getelementptr inbounds i8, ptr %.09251265, i64 88
  %502 = getelementptr inbounds i8, ptr %.09251265, i64 92
  call void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4) %501, ptr noundef nonnull align 4 dereferenceable(4) %502)
  %503 = load i32, ptr %502, align 4, !tbaa !165
  store i32 %503, ptr %476, align 4, !tbaa !163
  br label %504

504:                                              ; preds = %497, %500
  %505 = getelementptr inbounds i8, ptr %.09251265, i64 3716
  store i8 0, ptr %505, align 4, !tbaa !166
  br label %506

506:                                              ; preds = %504, %494
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br label %541

507:                                              ; preds = %471, %467, %466
  %508 = getelementptr inbounds i8, ptr %77, i64 14456
  %509 = load i8, ptr %508, align 8, !tbaa !125, !range !40, !noundef !41
  %510 = trunc nuw i8 %509 to i1
  br i1 %510, label %511, label %524

511:                                              ; preds = %507
  %512 = getelementptr inbounds i8, ptr %.09251265, i64 3717
  %513 = load i8, ptr %512, align 1, !tbaa !160, !range !40, !noundef !41
  %514 = trunc nuw i8 %513 to i1
  br i1 %514, label %524, label %515

515:                                              ; preds = %511
  br i1 %170, label %516, label %541

516:                                              ; preds = %515
  %517 = getelementptr inbounds i8, ptr %77, i64 3697
  %518 = load i8, ptr %517, align 1, !tbaa !162, !range !40, !noundef !41
  %519 = trunc nuw i8 %518 to i1
  %520 = getelementptr inbounds i8, ptr %.09251265, i64 84
  br i1 %519, label %521, label %522

521:                                              ; preds = %516
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09251265, ptr noundef nonnull %520, float noundef %450, float noundef %462)
  br label %523

522:                                              ; preds = %516
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09251265, ptr noundef nonnull %520, float noundef %450, float noundef %462)
  br label %523

523:                                              ; preds = %522, %521
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br label %541

524:                                              ; preds = %511, %507
  %525 = trunc nuw i8 %439 to i1
  br i1 %525, label %526, label %541

526:                                              ; preds = %524
  %527 = getelementptr inbounds i8, ptr %.09251265, i64 3717
  %528 = load i8, ptr %527, align 1, !tbaa !160, !range !40, !noundef !41
  %529 = trunc nuw i8 %528 to i1
  br i1 %529, label %541, label %530

530:                                              ; preds = %526
  %531 = getelementptr inbounds i8, ptr %77, i64 240
  %532 = load float, ptr %531, align 8, !tbaa !167
  %533 = fcmp une float %532, 0.000000e+00
  br i1 %533, label %538, label %534

534:                                              ; preds = %530
  %535 = getelementptr inbounds i8, ptr %77, i64 244
  %536 = load float, ptr %535, align 4, !tbaa !168
  %537 = fcmp une float %536, 0.000000e+00
  br i1 %537, label %538, label %541

538:                                              ; preds = %534, %530
  %539 = getelementptr inbounds i8, ptr %.09251265, i64 84
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.09251265, ptr noundef nonnull %539, float noundef %450, float noundef %462)
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  %540 = getelementptr inbounds i8, ptr %.09251265, i64 3716
  store i8 1, ptr %540, align 4, !tbaa !166
  br label %541

541:                                              ; preds = %506, %524, %526, %534, %538, %515, %523, %464
  %542 = getelementptr inbounds i8, ptr %.09251265, i64 3717
  %543 = load i8, ptr %542, align 1, !tbaa !160, !range !40, !noundef !41
  %544 = trunc nuw i8 %543 to i1
  br i1 %544, label %545, label %549

545:                                              ; preds = %541
  %546 = load i8, ptr %438, align 8, !tbaa !125, !range !40, !noundef !41
  %547 = trunc nuw i8 %546 to i1
  br i1 %547, label %549, label %548

548:                                              ; preds = %545
  store i8 0, ptr %542, align 1, !tbaa !160
  br label %549

549:                                              ; preds = %548, %545, %541
  br i1 %.not1014, label %557, label %550

550:                                              ; preds = %549
  %551 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %90, i32 noundef 0)
  %.not1078 = xor i1 %551, true
  %brmerge1079 = or i1 %80, %.not1078
  br i1 %brmerge1079, label %557, label %552

552:                                              ; preds = %550
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #14
  store i32 9, ptr %20, align 4, !tbaa !112
  %553 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %77, ptr noundef nonnull %20, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %553, label %554, label %556

554:                                              ; preds = %552
  %555 = load i32, ptr %20, align 4, !tbaa !112
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %555)
  br label %556

556:                                              ; preds = %554, %552
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #14
  br label %557

557:                                              ; preds = %550, %556, %549
  %558 = getelementptr inbounds i8, ptr %77, i64 3696
  %559 = load i8, ptr %558, align 8, !tbaa !137, !range !40, !noundef !41
  %560 = trunc nuw i8 %559 to i1
  br i1 %560, label %561, label %566

561:                                              ; preds = %557
  %562 = getelementptr inbounds i8, ptr %77, i64 3698
  %563 = load i8, ptr %562, align 2, !tbaa !169, !range !40, !noundef !41
  %564 = trunc nuw i8 %563 to i1
  %.not1080 = xor i1 %564, true
  %565 = select i1 %564, i1 %321, i1 false
  br i1 %565, label %567, label %571

566:                                              ; preds = %557
  br i1 %321, label %567, label %571

567:                                              ; preds = %561, %566
  %568 = getelementptr inbounds i8, ptr %77, i64 3699
  %569 = load i8, ptr %568, align 1, !tbaa !170, !range !40, !noundef !41
  %570 = trunc nuw i8 %569 to i1
  br label %571

571:                                              ; preds = %561, %566, %567
  %572 = phi i1 [ %321, %561 ], [ false, %566 ], [ %321, %567 ]
  %573 = phi i1 [ %.not1080, %561 ], [ false, %566 ], [ %570, %567 ]
  %574 = getelementptr inbounds i8, ptr %77, i64 14616
  %575 = load i32, ptr %574, align 8, !tbaa !171
  %576 = icmp sgt i32 %575, 0
  br i1 %576, label %577, label %590

577:                                              ; preds = %571
  %brmerge1083 = or i1 %80, %573
  %brmerge1084 = select i1 %brmerge1083, i1 true, i1 %192
  br i1 %brmerge1084, label %.loopexit1228, label %.lr.ph

.lr.ph:                                           ; preds = %577, %586
  %.09621229 = phi i32 [ %587, %586 ], [ 0, %577 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #14
  %578 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %574, i32 noundef %.09621229)
  %579 = load i16, ptr %578, align 2, !tbaa !161
  %580 = zext i16 %579 to i32
  store i32 %580, ptr %21, align 4, !tbaa !112
  %581 = icmp eq i16 %579, 9
  br i1 %581, label %586, label %582

582:                                              ; preds = %.lr.ph
  %583 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %77, ptr noundef nonnull %21, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %583, label %584, label %586

584:                                              ; preds = %582
  %585 = load i32, ptr %21, align 4, !tbaa !112
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %585)
  br label %586

586:                                              ; preds = %582, %584, %.lr.ph
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #14
  %587 = add nuw nsw i32 %.09621229, 1
  %588 = load i32, ptr %574, align 8, !tbaa !171
  %589 = icmp slt i32 %587, %588
  br i1 %589, label %.lr.ph, label %.loopexit1228, !llvm.loop !172

.loopexit1228:                                    ; preds = %586, %577
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %574, i32 noundef 0)
  br label %590

590:                                              ; preds = %571, %.loopexit1228, %427
  %591 = phi i1 [ %321, %427 ], [ %572, %.loopexit1228 ], [ %572, %571 ]
  %.0961 = phi i32 [ 0, %427 ], [ %434, %.loopexit1228 ], [ %434, %571 ]
  %592 = load i32, ptr %177, align 4, !tbaa !114
  %593 = icmp eq i32 %592, %90
  br i1 %593, label %594, label %889

594:                                              ; preds = %590
  %595 = getelementptr inbounds i8, ptr %77, i64 16824
  %596 = load i8, ptr %595, align 8, !tbaa !174, !range !40, !noundef !41
  %597 = trunc nuw i8 %596 to i1
  br i1 %597, label %.thread1275, label %598

598:                                              ; preds = %594
  %599 = trunc nuw i8 %.09261190 to i1
  br i1 %599, label %.thread1275, label %600

600:                                              ; preds = %598
  br i1 %352, label %602, label %601

601:                                              ; preds = %600
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4446, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

602:                                              ; preds = %600
  %603 = load float, ptr %101, align 4, !tbaa !107
  %604 = fsub float %.sroa.11.0.copyload, %603
  %605 = getelementptr inbounds i8, ptr %77, i64 16000
  %606 = load float, ptr %605, align 8, !tbaa !43
  %607 = fdiv float %604, %606
  %608 = fptosi float %607 to i32
  %609 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %608, i32 noundef 1)
  %610 = getelementptr inbounds i8, ptr %.09251265, i64 84
  %611 = getelementptr inbounds i8, ptr %.09251265, i64 100
  store i32 %609, ptr %611, align 4, !tbaa !175
  %612 = getelementptr inbounds i8, ptr %77, i64 3697
  %613 = load i8, ptr %612, align 1, !tbaa !162, !range !40, !noundef !41
  %614 = trunc nuw i8 %613 to i1
  %615 = select i1 %614, i32 4194304, i32 0
  %616 = getelementptr inbounds i8, ptr %77, i64 3698
  %617 = getelementptr inbounds i8, ptr %77, i64 3696
  %.in.in = select i1 %591, ptr %616, ptr %617
  %.in = load i8, ptr %.in.in, align 2, !tbaa !125, !range !40, !noundef !41
  %618 = trunc nuw i8 %.in to i1
  br i1 %591, label %619, label %630

619:                                              ; preds = %602
  %620 = getelementptr inbounds i8, ptr %77, i64 3699
  %621 = load i8, ptr %620, align 1, !tbaa !170, !range !40, !noundef !41
  %622 = trunc nuw i8 %621 to i1
  br i1 %622, label %623, label %630

623:                                              ; preds = %619
  %624 = load i8, ptr %617, align 8, !tbaa !137, !range !40, !noundef !41
  %625 = trunc nuw i8 %624 to i1
  br i1 %625, label %630, label %626

626:                                              ; preds = %623
  %627 = load i8, ptr %616, align 2, !tbaa !169, !range !40, !noundef !41
  %628 = trunc nuw i8 %627 to i1
  %629 = xor i1 %628, true
  br label %630

630:                                              ; preds = %626, %623, %619, %602
  %631 = phi i1 [ false, %623 ], [ false, %619 ], [ false, %602 ], [ %629, %626 ]
  %632 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2617, i32 noundef %90, i32 noundef 1)
  br i1 %632, label %637, label %633

633:                                              ; preds = %630
  %634 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8714, i32 noundef %90, i32 noundef 1)
  %635 = and i1 %.not1016, %634
  %636 = xor i1 %635, true
  %brmerge1087 = or i1 %80, %636
  %.not1093 = xor i1 %68, true
  %brmerge1094 = or i1 %brmerge1087, %.not1093
  %not.brmerge1087 = xor i1 %brmerge1087, true
  br i1 %brmerge1094, label %640, label %638

637:                                              ; preds = %630
  %.not1016.not1088 = xor i1 %.not1016, true
  %brmerge1089 = or i1 %80, %.not1016.not1088
  %.not1090 = xor i1 %68, true
  %brmerge1091 = or i1 %brmerge1089, %.not1090
  %not.brmerge1089 = xor i1 %brmerge1089, true
  br i1 %brmerge1091, label %640, label %638

638:                                              ; preds = %633, %637
  %639 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br label %640

640:                                              ; preds = %633, %637, %638
  %641 = phi i1 [ %not.brmerge1089, %637 ], [ %not.brmerge1087, %633 ], [ %639, %638 ]
  %642 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2596, i32 noundef %90, i32 noundef 0)
  br i1 %642, label %645, label %643

643:                                              ; preds = %640
  %644 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 4617, i32 noundef %90, i32 noundef 0)
  %brmerge1098.demorgan = and i1 %.not1016, %644
  %brmerge1100.not = and i1 %68, %brmerge1098.demorgan
  br i1 %brmerge1100.not, label %647, label %649

645:                                              ; preds = %640
  %646 = and i32 %5, 67141632
  %brmerge1104.not = icmp eq i32 %646, 67108864
  br i1 %brmerge1104.not, label %647, label %649

647:                                              ; preds = %645, %643
  %648 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br label %649

649:                                              ; preds = %645, %643, %647
  %650 = phi i1 [ %.not1016, %645 ], [ %brmerge1098.demorgan, %643 ], [ %648, %647 ]
  %651 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2615, i32 noundef %90, i32 noundef 1)
  br i1 %651, label %654, label %652

652:                                              ; preds = %649
  %653 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8713, i32 noundef %90, i32 noundef 1)
  br i1 %653, label %654, label %._crit_edge1253

._crit_edge1253:                                  ; preds = %652
  %.pre1254 = xor i1 %80, true
  br label %656

654:                                              ; preds = %652, %649
  %655 = xor i1 %80, true
  br label %656

656:                                              ; preds = %._crit_edge1253, %654
  %not..pre-phi = phi i1 [ %.pre1254, %._crit_edge1253 ], [ %655, %654 ]
  %657 = phi i1 [ false, %._crit_edge1253 ], [ %655, %654 ]
  %658 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2619, i32 noundef %90, i32 noundef 1)
  %spec.select1106 = and i1 %83, %not..pre-phi
  %spec.select1169 = and i1 %spec.select1106, %658
  %659 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2618, i32 noundef %90, i32 noundef 1)
  br i1 %659, label %663, label %660

660:                                              ; preds = %656
  br i1 %591, label %661, label %664

661:                                              ; preds = %660
  %662 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 10811, i32 noundef %90, i32 noundef 1)
  br i1 %662, label %663, label %664

663:                                              ; preds = %661, %656
  br label %664

664:                                              ; preds = %663, %661, %660
  %665 = phi i1 [ false, %661 ], [ false, %660 ], [ %spec.select1106, %663 ]
  %666 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2594, i32 noundef %90, i32 noundef 0)
  %667 = load i32, ptr %78, align 8, !tbaa !176
  %668 = and i32 %667, 2
  %.not1033 = icmp eq i32 %668, 0
  br i1 %.not1033, label %674, label %669

669:                                              ; preds = %664
  %670 = getelementptr inbounds i8, ptr %77, i64 12
  %671 = load i32, ptr %670, align 4, !tbaa !177
  %672 = and i32 %671, 1
  %673 = icmp ne i32 %672, 0
  br label %674

674:                                              ; preds = %669, %664
  %675 = phi i1 [ false, %664 ], [ %673, %669 ]
  %676 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 525, i1 noundef zeroext true)
  br i1 %676, label %679, label %677

677:                                              ; preds = %674
  %678 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 627, i1 noundef zeroext true)
  br label %679

679:                                              ; preds = %677, %674
  %680 = phi i1 [ true, %674 ], [ %678, %677 ]
  br i1 %675, label %681, label %.sink.split1299

681:                                              ; preds = %679
  %682 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 636, i1 noundef zeroext false)
  br i1 %682, label %685, label %683

683:                                              ; preds = %681
  %684 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 635, i1 noundef zeroext false)
  br label %685

685:                                              ; preds = %681, %683
  %686 = phi i1 [ true, %681 ], [ %684, %683 ]
  %687 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 526, i32 noundef %90, i32 noundef 1)
  br i1 %687, label %689, label %.sink.split1299

.sink.split1299:                                  ; preds = %685, %679
  %.sink = phi i32 [ 526, %679 ], [ 634, %685 ]
  %.ph1300 = phi i1 [ false, %679 ], [ %686, %685 ]
  %688 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef %.sink, i32 noundef %90, i32 noundef 1)
  br label %689

689:                                              ; preds = %.sink.split1299, %685
  %690 = phi i1 [ %686, %685 ], [ %.ph1300, %.sink.split1299 ]
  %691 = phi i1 [ true, %685 ], [ %688, %.sink.split1299 ]
  %692 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %692, label %693, label %696

693:                                              ; preds = %689
  %694 = select i1 %618, i32 2097164, i32 2097152
  %spec.select1111 = select i1 %631, i32 2097156, i32 %694
  %695 = or disjoint i32 %spec.select1111, %615
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %695)
  br label %.thread1199

696:                                              ; preds = %689
  %697 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %697, label %698, label %701

698:                                              ; preds = %696
  %699 = select i1 %618, i32 2097165, i32 2097153
  %spec.select1112 = select i1 %631, i32 2097157, i32 %699
  %700 = or disjoint i32 %spec.select1112, %615
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %700)
  br label %.thread1199

701:                                              ; preds = %696
  %702 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  %.not1114 = xor i1 %68, true
  %brmerge1115.not = and i1 %68, %702
  br i1 %brmerge1115.not, label %703, label %715

703:                                              ; preds = %701
  %704 = load i8, ptr %617, align 8, !tbaa !137, !range !40, !noundef !41
  %705 = trunc nuw i8 %704 to i1
  br i1 %705, label %706, label %712

706:                                              ; preds = %703
  %707 = getelementptr inbounds i8, ptr %.2922, i64 196
  %708 = load float, ptr %707, align 4, !tbaa !127
  %709 = load float, ptr %605, align 8, !tbaa !43
  %710 = fsub float %708, %709
  %711 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %710, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2922, float noundef %711)
  br label %.thread1199

712:                                              ; preds = %703
  %713 = select i1 %631, i32 2097158, i32 2097154
  %714 = or disjoint i32 %713, %615
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %714)
  br label %.thread1199

715:                                              ; preds = %701
  %716 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  %brmerge1118.not = and i1 %68, %716
  br i1 %brmerge1118.not, label %717, label %730

717:                                              ; preds = %715
  %718 = load i8, ptr %617, align 8, !tbaa !137, !range !40, !noundef !41
  %719 = trunc nuw i8 %718 to i1
  br i1 %719, label %720, label %727

720:                                              ; preds = %717
  %721 = getelementptr inbounds i8, ptr %.2922, i64 196
  %722 = load float, ptr %721, align 4, !tbaa !127
  %723 = load float, ptr %605, align 8, !tbaa !43
  %724 = fadd float %722, %723
  %725 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %726 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %724, float noundef %725)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2922, float noundef %726)
  br label %.thread1199

727:                                              ; preds = %717
  %728 = select i1 %631, i32 2097159, i32 2097155
  %729 = or disjoint i32 %728, %615
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %729)
  br label %.thread1199

730:                                              ; preds = %715
  %731 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  %brmerge1121.not = and i1 %68, %731
  br i1 %brmerge1121.not, label %732, label %738

732:                                              ; preds = %730
  %733 = or disjoint i32 %615, 2097166
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %733)
  %734 = sitofp i32 %609 to float
  %735 = load float, ptr %605, align 8, !tbaa !43
  %736 = fneg float %734
  %737 = call float @llvm.fmuladd.f32(float %736, float %735, float %219)
  br label %.thread1199

738:                                              ; preds = %730
  %739 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  %brmerge1124.not = and i1 %68, %739
  br i1 %brmerge1124.not, label %740, label %745

740:                                              ; preds = %738
  %741 = or disjoint i32 %615, 2097167
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %741)
  %742 = sitofp i32 %609 to float
  %743 = load float, ptr %605, align 8, !tbaa !43
  %744 = call float @llvm.fmuladd.f32(float %742, float %743, float %219)
  br label %.thread1199

745:                                              ; preds = %738
  %746 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %746, label %747, label %751

747:                                              ; preds = %745
  %748 = load i8, ptr %617, align 8, !tbaa !137, !range !40, !noundef !41
  %749 = trunc nuw i8 %748 to i1
  %.v1041 = select i1 %749, i32 2097158, i32 2097156
  %750 = or disjoint i32 %.v1041, %615
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %750)
  br label %.thread1199

751:                                              ; preds = %745
  %752 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %752, label %753, label %757

753:                                              ; preds = %751
  %754 = load i8, ptr %617, align 8, !tbaa !137, !range !40, !noundef !41
  %755 = trunc nuw i8 %754 to i1
  %.v = select i1 %755, i32 2097159, i32 2097157
  %756 = or disjoint i32 %.v, %615
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %756)
  br label %.thread1199

757:                                              ; preds = %751
  %758 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  %.not1125 = xor i1 %758, true
  %brmerge1126 = or i1 %80, %.not1125
  %brmerge1127 = or i1 %641, %brmerge1126
  br i1 %brmerge1127, label %764, label %759

759:                                              ; preds = %757
  %760 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  %.not1128 = xor i1 %618, true
  %brmerge1129 = select i1 %760, i1 true, i1 %.not1128
  br i1 %brmerge1129, label %762, label %761

761:                                              ; preds = %759
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef 6291469)
  br label %762

762:                                              ; preds = %759, %761
  %763 = or disjoint i32 %615, 2097160
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %763)
  br label %.thread1199

764:                                              ; preds = %757
  %765 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  %.not1130 = xor i1 %765, true
  %brmerge1131 = or i1 %80, %.not1130
  br i1 %brmerge1131, label %782, label %766

766:                                              ; preds = %764
  %767 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br i1 %767, label %780, label %768

768:                                              ; preds = %766
  br i1 %618, label %.sink.split1302, label %769

769:                                              ; preds = %768
  br i1 %591, label %770, label %780

770:                                              ; preds = %769
  %771 = getelementptr inbounds i8, ptr %77, i64 3699
  %772 = load i8, ptr %771, align 1, !tbaa !170, !range !40, !noundef !41
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %774, label %780

774:                                              ; preds = %770
  %775 = load i8, ptr %616, align 2, !tbaa !169, !range !40, !noundef !41
  %776 = trunc nuw i8 %775 to i1
  br i1 %776, label %780, label %777

777:                                              ; preds = %774
  %778 = load i8, ptr %617, align 8, !tbaa !137, !range !40, !noundef !41
  %779 = trunc nuw i8 %778 to i1
  br i1 %779, label %780, label %.sink.split1302

.sink.split1302:                                  ; preds = %777, %768
  %.sink1303 = phi i32 [ 6291468, %768 ], [ 6291460, %777 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %.sink1303)
  br label %780

780:                                              ; preds = %.sink.split1302, %777, %774, %770, %769, %766
  %781 = or disjoint i32 %615, 2097161
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %781)
  br label %.thread1199

782:                                              ; preds = %764
  %brmerge1132 = or i1 %680, %690
  br i1 %brmerge1132, label %783, label %800

783:                                              ; preds = %782
  %brmerge1134 = or i1 %690, %.not1114
  br i1 %brmerge1134, label %789, label %784

784:                                              ; preds = %783
  %785 = and i32 %5, 2048
  %.not1040 = icmp eq i32 %785, 0
  %786 = load i8, ptr %617, align 8, !tbaa !137, !range !40, !noundef !41
  %787 = trunc nuw i8 %786 to i1
  br i1 %.not1040, label %.critedge1136, label %788

788:                                              ; preds = %784
  br i1 %787, label %794, label %.thread1199

.critedge1136:                                    ; preds = %784
  br i1 %787, label %.thread1199, label %794

789:                                              ; preds = %783
  %790 = getelementptr inbounds i8, ptr %77, i64 100
  %791 = load i8, ptr %790, align 4, !tbaa !178, !range !40, !noundef !41
  %792 = trunc nuw i8 %791 to i1
  %.not1137 = xor i1 %792, true
  %brmerge1138 = or i1 %68, %.not1137
  br i1 %brmerge1138, label %.thread1199, label %793

793:                                              ; preds = %789
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br label %.thread1199

794:                                              ; preds = %788, %.critedge1136
  br i1 %80, label %.thread1199, label %795

795:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #14
  store i32 10, ptr %22, align 4, !tbaa !112
  %796 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %77, ptr noundef nonnull %22, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %796, label %797, label %799

797:                                              ; preds = %795
  %798 = load i32, ptr %22, align 4, !tbaa !112
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %798)
  br label %799

799:                                              ; preds = %797, %795
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #14
  br label %.thread1199

800:                                              ; preds = %782
  br i1 %691, label %801, label %805

801:                                              ; preds = %800
  %802 = and i32 %5, 1048576
  %.not1038 = icmp eq i32 %802, 0
  br i1 %.not1038, label %.thread1199, label %803

803:                                              ; preds = %801
  %804 = load i8, ptr %2, align 1, !tbaa !142
  %.not1039 = icmp ne i8 %804, 0
  %..0940.in = select i1 %.not1039, i1 %.0940.in, i1 false
  %.1140 = select i1 %.not1039, i8 %351, i8 0
  %..0926 = select i1 %.not1039, i8 %.09261190, i8 1
  br label %.thread1199

805:                                              ; preds = %800
  %brmerge1141 = or i1 %spec.select1169, %665
  br i1 %brmerge1141, label %806, label %807

806:                                              ; preds = %805
  %.mux1142 = select i1 %spec.select1169, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265, i32 noundef %.mux1142)
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br label %.thread1199

807:                                              ; preds = %805
  br i1 %666, label %808, label %810

808:                                              ; preds = %807
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  %809 = getelementptr inbounds i8, ptr %.09251265, i64 3716
  store i8 1, ptr %809, align 4, !tbaa !166
  br label %.thread1199

810:                                              ; preds = %807
  %brmerge1143 = or i1 %641, %650
  br i1 %brmerge1143, label %811, label %857

811:                                              ; preds = %810
  %812 = getelementptr inbounds i8, ptr %77, i64 184
  %813 = load ptr, ptr %812, align 8, !tbaa !179
  %.not1037 = icmp eq ptr %813, null
  br i1 %.not1037, label %850, label %814

814:                                              ; preds = %811
  %815 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br i1 %815, label %816, label %822

816:                                              ; preds = %814
  %817 = getelementptr inbounds i8, ptr %.09251265, i64 88
  %818 = load i32, ptr %817, align 4, !tbaa !164
  %819 = getelementptr inbounds i8, ptr %.09251265, i64 92
  %820 = load i32, ptr %819, align 4, !tbaa !165
  %821 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %818, i32 noundef %820)
  br label %822

822:                                              ; preds = %814, %816
  %823 = phi i32 [ %821, %816 ], [ 0, %814 ]
  %824 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br i1 %824, label %825, label %831

825:                                              ; preds = %822
  %826 = getelementptr inbounds i8, ptr %.09251265, i64 88
  %827 = load i32, ptr %826, align 4, !tbaa !164
  %828 = getelementptr inbounds i8, ptr %.09251265, i64 92
  %829 = load i32, ptr %828, align 4, !tbaa !165
  %830 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %827, i32 noundef %829)
  br label %834

831:                                              ; preds = %822
  %832 = getelementptr inbounds i8, ptr %.09251265, i64 12
  %833 = load i32, ptr %832, align 4, !tbaa !135
  br label %834

834:                                              ; preds = %831, %825
  %835 = phi i32 [ %830, %825 ], [ %833, %831 ]
  %836 = getelementptr inbounds i8, ptr %.09251265, i64 32
  %837 = load ptr, ptr %836, align 8, !tbaa !134
  %838 = sext i32 %823 to i64
  %839 = getelementptr inbounds i16, ptr %837, i64 %838
  %840 = sext i32 %835 to i64
  %841 = getelementptr inbounds i16, ptr %837, i64 %840
  %842 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %839, ptr noundef %841)
  %843 = add nsw i32 %842, 1
  %844 = sext i32 %843 to i64
  %845 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %844)
  %846 = load ptr, ptr %836, align 8, !tbaa !134
  %847 = getelementptr inbounds i16, ptr %846, i64 %838
  %848 = getelementptr inbounds i16, ptr %846, i64 %840
  %849 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %845, i32 noundef %843, ptr noundef %847, ptr noundef %848)
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %845)
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %845)
  br label %850

850:                                              ; preds = %834, %811
  br i1 %641, label %851, label %.thread1199

851:                                              ; preds = %850
  %852 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br i1 %852, label %854, label %853

853:                                              ; preds = %851
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br label %854

854:                                              ; preds = %853, %851
  %855 = getelementptr inbounds i8, ptr %.09251265, i64 3716
  store i8 1, ptr %855, align 4, !tbaa !166
  %856 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.09251265, ptr noundef nonnull %610)
  br label %.thread1199

857:                                              ; preds = %810
  br i1 %657, label %858, label %.thread1199

858:                                              ; preds = %857
  %859 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  %.not1034 = icmp eq ptr %859, null
  br i1 %.not1034, label %.thread1199, label %860

860:                                              ; preds = %858
  %861 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %859) #15
  %862 = shl i64 %861, 32
  %sext1035 = add i64 %862, 4294967296
  %863 = ashr exact i64 %sext1035, 31
  %864 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %863)
  %865 = load i8, ptr %859, align 1, !tbaa !142
  %.not10361230 = icmp eq i8 %865, 0
  br i1 %.not10361230, label %._crit_edge.thread, label %.lr.ph1233

._crit_edge.thread:                               ; preds = %860
  store i16 0, ptr %864, align 2, !tbaa !161
  br label %884

._crit_edge:                                      ; preds = %879
  %866 = sext i32 %.1966 to i64
  %867 = getelementptr inbounds i16, ptr %864, i64 %866
  store i16 0, ptr %867, align 2, !tbaa !161
  %868 = icmp sgt i32 %.1966, 0
  br i1 %868, label %881, label %884

.lr.ph1233:                                       ; preds = %860, %879
  %.09651232 = phi i32 [ %.1966, %879 ], [ 0, %860 ]
  %.09671231 = phi ptr [ %871, %879 ], [ %859, %860 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #14
  %869 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef nonnull %23, ptr noundef nonnull %.09671231, ptr noundef null)
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds i8, ptr %.09671231, i64 %870
  %872 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %77, ptr noundef nonnull %23, i32 noundef %5, ptr noundef %6, ptr noundef %7, i32 noundef 4)
  br i1 %872, label %873, label %879, !llvm.loop !180

873:                                              ; preds = %.lr.ph1233
  %874 = load i32, ptr %23, align 4, !tbaa !112
  %875 = trunc i32 %874 to i16
  %876 = add nsw i32 %.09651232, 1
  %877 = sext i32 %.09651232 to i64
  %878 = getelementptr inbounds i16, ptr %864, i64 %877
  store i16 %875, ptr %878, align 2, !tbaa !161
  br label %879

879:                                              ; preds = %.lr.ph1233, %873
  %.1966 = phi i32 [ %876, %873 ], [ %.09651232, %.lr.ph1233 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #14
  %880 = load i8, ptr %871, align 1, !tbaa !142
  %.not1036 = icmp eq i8 %880, 0
  br i1 %.not1036, label %._crit_edge, label %.lr.ph1233

881:                                              ; preds = %._crit_edge
  %882 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %.09251265, ptr noundef nonnull %610, ptr noundef nonnull %864, i32 noundef %.1966)
  %883 = getelementptr inbounds i8, ptr %.09251265, i64 3716
  store i8 1, ptr %883, align 4, !tbaa !166
  br label %884

884:                                              ; preds = %._crit_edge.thread, %881, %._crit_edge
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %864)
  br label %.thread1199

.thread1199:                                      ; preds = %788, %.critedge1136, %858, %884, %801, %803, %793, %799, %794, %789, %698, %727, %720, %740, %753, %780, %808, %857, %850, %854, %806, %762, %747, %732, %706, %712, %693
  %.0963 = phi i1 [ false, %693 ], [ false, %698 ], [ false, %706 ], [ false, %712 ], [ false, %720 ], [ false, %727 ], [ false, %732 ], [ false, %740 ], [ false, %747 ], [ false, %753 ], [ false, %806 ], [ false, %808 ], [ false, %854 ], [ false, %850 ], [ false, %857 ], [ false, %780 ], [ false, %762 ], [ false, %789 ], [ false, %794 ], [ false, %799 ], [ false, %793 ], [ %.not1039, %803 ], [ true, %801 ], [ false, %884 ], [ false, %858 ], [ false, %.critedge1136 ], [ false, %788 ]
  %.1959 = phi i8 [ 0, %693 ], [ 0, %698 ], [ 0, %706 ], [ 0, %712 ], [ 0, %720 ], [ 0, %727 ], [ 0, %732 ], [ 0, %740 ], [ 0, %747 ], [ 0, %753 ], [ 0, %806 ], [ 0, %808 ], [ 0, %854 ], [ 0, %850 ], [ 0, %857 ], [ 0, %780 ], [ 0, %762 ], [ 1, %789 ], [ 0, %794 ], [ 0, %799 ], [ 1, %793 ], [ 0, %803 ], [ 0, %801 ], [ 0, %884 ], [ 0, %858 ], [ 1, %.critedge1136 ], [ 1, %788 ]
  %.1941 = phi i1 [ %.0940.in, %693 ], [ %.0940.in, %698 ], [ %.0940.in, %706 ], [ %.0940.in, %712 ], [ %.0940.in, %720 ], [ %.0940.in, %727 ], [ %.0940.in, %732 ], [ %.0940.in, %740 ], [ %.0940.in, %747 ], [ %.0940.in, %753 ], [ %.0940.in, %806 ], [ %.0940.in, %808 ], [ %.0940.in, %854 ], [ %.0940.in, %850 ], [ %.0940.in, %857 ], [ %.0940.in, %780 ], [ %.0940.in, %762 ], [ %.0940.in, %789 ], [ %.0940.in, %794 ], [ %.0940.in, %799 ], [ %.0940.in, %793 ], [ %..0940.in, %803 ], [ false, %801 ], [ %.0940.in, %884 ], [ %.0940.in, %858 ], [ %.0940.in, %.critedge1136 ], [ %.0940.in, %788 ]
  %.0938 = phi i8 [ %351, %693 ], [ %351, %698 ], [ %351, %706 ], [ %351, %712 ], [ %351, %720 ], [ %351, %727 ], [ %351, %732 ], [ %351, %740 ], [ %351, %747 ], [ %351, %753 ], [ %351, %806 ], [ %351, %808 ], [ %351, %854 ], [ %351, %850 ], [ %351, %857 ], [ %351, %780 ], [ %351, %762 ], [ %351, %789 ], [ %351, %794 ], [ %351, %799 ], [ %351, %793 ], [ %.1140, %803 ], [ 0, %801 ], [ %351, %884 ], [ %351, %858 ], [ %351, %.critedge1136 ], [ %351, %788 ]
  %.0934 = phi float [ %219, %693 ], [ %219, %698 ], [ %219, %706 ], [ %219, %712 ], [ %219, %720 ], [ %219, %727 ], [ %737, %732 ], [ %744, %740 ], [ %219, %747 ], [ %219, %753 ], [ %219, %806 ], [ %219, %808 ], [ %219, %854 ], [ %219, %850 ], [ %219, %857 ], [ %219, %780 ], [ %219, %762 ], [ %219, %789 ], [ %219, %794 ], [ %219, %799 ], [ %219, %793 ], [ %219, %803 ], [ %219, %801 ], [ %219, %884 ], [ %219, %858 ], [ %219, %.critedge1136 ], [ %219, %788 ]
  %.2928 = phi i8 [ %.09261190, %693 ], [ %.09261190, %698 ], [ %.09261190, %706 ], [ %.09261190, %712 ], [ %.09261190, %720 ], [ %.09261190, %727 ], [ %.09261190, %732 ], [ %.09261190, %740 ], [ %.09261190, %747 ], [ %.09261190, %753 ], [ %.09261190, %806 ], [ %.09261190, %808 ], [ %.09261190, %854 ], [ %.09261190, %850 ], [ %.09261190, %857 ], [ %.09261190, %780 ], [ %.09261190, %762 ], [ 1, %789 ], [ %.09261190, %794 ], [ %.09261190, %799 ], [ %.09261190, %793 ], [ %..0926, %803 ], [ 1, %801 ], [ %.09261190, %884 ], [ %.09261190, %858 ], [ 1, %.critedge1136 ], [ 1, %788 ]
  %885 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  %886 = select i1 %885, i8 %.0938, i8 0
  %887 = zext i1 %.1941 to i8
  %888 = or i8 %886, %887
  %.pre1242 = load i32, ptr %177, align 4, !tbaa !114
  br label %889

889:                                              ; preds = %.thread1199, %590
  %890 = phi i32 [ %.pre1242, %.thread1199 ], [ %592, %590 ]
  %.1964 = phi i1 [ %.0963, %.thread1199 ], [ false, %590 ]
  %.2960 = phi i8 [ %.1959, %.thread1199 ], [ 0, %590 ]
  %.2942 = phi i8 [ %888, %.thread1199 ], [ %.0940, %590 ]
  %.1939 = phi i8 [ %.0938, %.thread1199 ], [ %351, %590 ]
  %.1935 = phi float [ %.0934, %.thread1199 ], [ %219, %590 ]
  %.3929 = phi i8 [ %.2928, %.thread1199 ], [ %.09261190, %590 ]
  %891 = icmp eq i32 %890, %90
  br i1 %891, label %.thread1275, label %1095

.thread1275:                                      ; preds = %598, %594, %889
  %.39291294 = phi i8 [ %.3929, %889 ], [ %.09261190, %594 ], [ %.09261190, %598 ]
  %.19351292 = phi float [ %.1935, %889 ], [ %219, %594 ], [ %219, %598 ]
  %.19391290 = phi i8 [ %.1939, %889 ], [ %351, %594 ], [ %351, %598 ]
  %.29421288 = phi i8 [ %.2942, %889 ], [ %.0940, %594 ], [ %.0940, %598 ]
  %.29601285 = phi i8 [ %.2960, %889 ], [ 0, %594 ], [ 0, %598 ]
  %.19641284 = phi i1 [ %.1964, %889 ], [ false, %594 ], [ false, %598 ]
  br i1 %352, label %893, label %892

892:                                              ; preds = %.thread1275
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4606, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

893:                                              ; preds = %.thread1275
  %.1964.not = xor i1 %.19641284, true
  %brmerge1144 = or i1 %80, %.1964.not
  br i1 %brmerge1144, label %931, label %894

894:                                              ; preds = %893
  %895 = and i32 %5, 1048576
  %.not1042 = icmp eq i32 %895, 0
  br i1 %.not1042, label %901, label %896

896:                                              ; preds = %894
  %897 = load i8, ptr %2, align 1, !tbaa !142
  %.not1044 = icmp eq i8 %897, 0
  br i1 %.not1044, label %898, label %899

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

899:                                              ; preds = %896
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %24) #14
  %900 = getelementptr inbounds i8, ptr %.09251265, i64 84
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.09251265, ptr noundef nonnull %900, ptr noundef nonnull %24, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %24) #14
  br label %.thread1203

901:                                              ; preds = %894
  %902 = getelementptr inbounds i8, ptr %.09251265, i64 64
  %903 = load ptr, ptr %902, align 8, !tbaa !130
  %904 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) %903) #15
  %.not1043 = icmp eq i32 %904, 0
  br i1 %.not1043, label %.thread1203, label %905

905:                                              ; preds = %901
  %906 = getelementptr inbounds i8, ptr %.09251265, i64 56
  %907 = load i32, ptr %906, align 8, !tbaa !181
  %908 = add nsw i32 %907, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25)
  %909 = icmp sgt i32 %907, 1
  br i1 %909, label %910, label %923

910:                                              ; preds = %905
  %911 = zext nneg i32 %908 to i64
  %912 = getelementptr inbounds i8, ptr %903, i64 %911
  %913 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %903, ptr noundef %912)
          to label %914 unwind label %921

914:                                              ; preds = %910
  %915 = add nsw i32 %913, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %25, i32 noundef %915)
          to label %916 unwind label %921

916:                                              ; preds = %914
  %917 = getelementptr inbounds i8, ptr %25, i64 8
  %918 = load ptr, ptr %917, align 8, !tbaa !182
  %919 = load i32, ptr %25, align 8, !tbaa !183
  %920 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %918, i32 noundef %919, ptr noundef %903, ptr noundef %912, ptr noundef null)
          to label %923 unwind label %921

921:                                              ; preds = %923, %916, %914, %910
  %922 = 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 } %922

923:                                              ; preds = %916, %905
  %924 = getelementptr inbounds i8, ptr %.09251265, i64 84
  %925 = getelementptr inbounds i8, ptr %25, i64 8
  %926 = load ptr, ptr %925, align 8, !tbaa !182
  %927 = load i32, ptr %25, align 8
  %928 = add nsw i32 %927, -1
  %929 = select i1 %909, i32 %928, i32 0
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.09251265, ptr noundef nonnull %924, ptr noundef %926, i32 noundef %929)
          to label %930 unwind label %921

930:                                              ; preds = %923
  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 %.thread1203

931:                                              ; preds = %893
  br i1 %80, label %944, label %.thread1203

.thread1203:                                      ; preds = %901, %930, %899, %931
  %.09521211 = phi i1 [ false, %931 ], [ false, %901 ], [ true, %930 ], [ true, %899 ]
  %.09681209 = phi ptr [ null, %931 ], [ null, %901 ], [ %903, %930 ], [ @.str, %899 ]
  %.09731207 = phi i32 [ 0, %931 ], [ 0, %901 ], [ %908, %930 ], [ 0, %899 ]
  %932 = getelementptr inbounds i8, ptr %.09251265, i64 72
  store i8 1, ptr %932, align 8, !tbaa !132
  %933 = getelementptr inbounds i8, ptr %.09251265, i64 40
  %934 = getelementptr inbounds i8, ptr %.09251265, i64 24
  %935 = load i32, ptr %934, align 8, !tbaa !141
  %936 = shl nsw i32 %935, 2
  %937 = or disjoint i32 %936, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %933, i32 noundef %937)
  %938 = getelementptr inbounds i8, ptr %.09251265, i64 48
  %939 = load ptr, ptr %938, align 8, !tbaa !133
  %940 = load i32, ptr %933, align 8, !tbaa !184
  %941 = getelementptr inbounds i8, ptr %.09251265, i64 32
  %942 = load ptr, ptr %941, align 8, !tbaa !134
  %943 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %939, i32 noundef %940, ptr noundef %942, ptr noundef null)
  br label %944

944:                                              ; preds = %.thread1203, %931
  %.09521212 = phi i1 [ %.09521211, %.thread1203 ], [ false, %931 ]
  %.09681210 = phi ptr [ %.09681209, %.thread1203 ], [ null, %931 ]
  %.09731208 = phi i32 [ %.09731207, %.thread1203 ], [ 0, %931 ]
  br i1 %.19641284, label %945, label %.critedge1146

945:                                              ; preds = %944
  %946 = trunc nuw i8 %.29601285 to i1
  %947 = and i32 %5, 32
  %948 = icmp ne i32 %947, 0
  %949 = and i1 %948, %946
  br i1 %949, label %.critedge1146, label %1095

.critedge1146:                                    ; preds = %944, %945
  %950 = and i32 %5, 524736
  %.not1045 = icmp eq i32 %950, 0
  br i1 %.not1045, label %1087, label %951

951:                                              ; preds = %.critedge1146
  br i1 %85, label %953, label %952

952:                                              ; preds = %951
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.4, i32 noundef 4661, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

953:                                              ; preds = %951
  br i1 %.not1013, label %956, label %954

954:                                              ; preds = %953
  %955 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %90, i32 noundef 0)
  br i1 %955, label %.thread1214, label %956

956:                                              ; preds = %954, %953
  br i1 %.not1011.not, label %.critedge1148, label %957

957:                                              ; preds = %956
  %958 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %958, label %.thread1214, label %959

959:                                              ; preds = %957
  %960 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %960, label %.thread1214, label %.critedge1148

.critedge1148:                                    ; preds = %956, %959
  %961 = and i32 %5, 524288
  %.not1046 = icmp eq i32 %961, 0
  br i1 %.not1046, label %966, label %962

962:                                              ; preds = %.critedge1148
  %963 = getelementptr inbounds i8, ptr %.09251265, i64 3718
  %964 = load i8, ptr %963, align 2, !tbaa !151, !range !40, !noundef !41
  %965 = trunc nuw i8 %964 to i1
  br i1 %965, label %.thread1214, label %966

966:                                              ; preds = %.critedge1148, %962
  %967 = and i32 %5, 256
  %.not1047 = icmp eq i32 %967, 0
  br i1 %.not1047, label %1087, label %.thread1214

.thread1214:                                      ; preds = %962, %959, %957, %954, %966
  %.09781219 = phi i32 [ 0, %966 ], [ 0, %962 ], [ 516, %959 ], [ 515, %957 ], [ 512, %954 ]
  %.09791218 = phi i32 [ 256, %966 ], [ 524288, %962 ], [ 128, %959 ], [ 128, %957 ], [ 64, %954 ]
  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 !185
  %968 = getelementptr inbounds i8, ptr %26, i64 8
  store i32 %.09791218, ptr %968, align 8, !tbaa !188
  %969 = getelementptr inbounds i8, ptr %26, i64 12
  store i32 %5, ptr %969, align 4, !tbaa !189
  %970 = getelementptr inbounds i8, ptr %26, i64 16
  store ptr %7, ptr %970, align 8, !tbaa !190
  br i1 %80, label %974, label %971

971:                                              ; preds = %.thread1214
  %972 = getelementptr inbounds i8, ptr %.09251265, i64 48
  %973 = load ptr, ptr %972, align 8, !tbaa !133
  br label %974

974:                                              ; preds = %.thread1214, %971
  %975 = phi ptr [ %973, %971 ], [ %2, %.thread1214 ]
  %976 = getelementptr inbounds i8, ptr %26, i64 28
  store i32 %.09781219, ptr %976, align 4, !tbaa !191
  %977 = getelementptr inbounds i8, ptr %26, i64 32
  store ptr %975, ptr %977, align 8, !tbaa !192
  %978 = getelementptr inbounds i8, ptr %.09251265, i64 16
  %979 = load i32, ptr %978, align 8, !tbaa !131
  %980 = getelementptr inbounds i8, ptr %26, i64 40
  store i32 %979, ptr %980, align 8, !tbaa !193
  %981 = getelementptr inbounds i8, ptr %.09251265, i64 76
  %982 = load i32, ptr %981, align 4, !tbaa !152
  %983 = getelementptr inbounds i8, ptr %26, i64 44
  store i32 %982, ptr %983, align 4, !tbaa !194
  %984 = getelementptr inbounds i8, ptr %26, i64 48
  store i8 0, ptr %984, align 8, !tbaa !195
  %985 = getelementptr inbounds i8, ptr %.09251265, i64 24
  %986 = getelementptr inbounds i8, ptr %.09251265, i64 32
  %987 = load ptr, ptr %986, align 8, !tbaa !134
  %988 = getelementptr inbounds i8, ptr %.09251265, i64 84
  %989 = load i32, ptr %988, align 4, !tbaa !163
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds i16, ptr %987, i64 %990
  %992 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %987, ptr noundef %991)
  %993 = getelementptr inbounds i8, ptr %26, i64 52
  store i32 %992, ptr %993, align 4, !tbaa !196
  %994 = getelementptr inbounds i8, ptr %.09251265, i64 88
  %995 = load i32, ptr %994, align 4, !tbaa !164
  %996 = sext i32 %995 to i64
  %997 = getelementptr inbounds i16, ptr %987, i64 %996
  %998 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %987, ptr noundef %997)
  %999 = getelementptr inbounds i8, ptr %26, i64 56
  store i32 %998, ptr %999, align 8, !tbaa !197
  %1000 = getelementptr inbounds i8, ptr %.09251265, i64 92
  %1001 = load i32, ptr %1000, align 4, !tbaa !165
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds i16, ptr %987, i64 %1002
  %1004 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %987, ptr noundef %1003)
  %1005 = getelementptr inbounds i8, ptr %26, i64 60
  store i32 %1004, ptr %1005, align 4, !tbaa !198
  %1006 = call noundef i32 %6(ptr noundef nonnull %26)
  br i1 %80, label %1010, label %1007

1007:                                             ; preds = %974
  %1008 = getelementptr inbounds i8, ptr %.09251265, i64 48
  %1009 = load ptr, ptr %1008, align 8, !tbaa !133
  br label %1010

1010:                                             ; preds = %974, %1007
  %1011 = phi ptr [ %1009, %1007 ], [ %2, %974 ]
  %1012 = load ptr, ptr %977, align 8, !tbaa !192
  %1013 = icmp eq ptr %1012, %1011
  br i1 %1013, label %1015, label %1014

1014:                                             ; preds = %1010
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.4, i32 noundef 4716, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1015:                                             ; preds = %1010
  %1016 = load i32, ptr %983, align 4, !tbaa !194
  %1017 = load i32, ptr %981, align 4, !tbaa !152
  %1018 = icmp eq i32 %1016, %1017
  br i1 %1018, label %1020, label %1019

1019:                                             ; preds = %1015
  call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.4, i32 noundef 4717, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1020:                                             ; preds = %1015
  %1021 = load i32, ptr %969, align 4, !tbaa !189
  %1022 = icmp eq i32 %1021, %5
  br i1 %1022, label %1024, label %1023

1023:                                             ; preds = %1020
  call void @__assert_fail(ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.4, i32 noundef 4718, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1024:                                             ; preds = %1020
  %1025 = load i8, ptr %984, align 8, !tbaa !195, !range !40, !noundef !41
  %1026 = trunc nuw i8 %1025 to i1
  %1027 = load i32, ptr %993, align 4, !tbaa !196
  %.not1049 = icmp ne i32 %1027, %992
  %brmerge1151 = select i1 %.not1049, i1 true, i1 %1026
  br i1 %brmerge1151, label %1028, label %1033

1028:                                             ; preds = %1024
  %1029 = sext i32 %1027 to i64
  %1030 = getelementptr inbounds i8, ptr %1012, i64 %1029
  %1031 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1012, ptr noundef %1030)
  store i32 %1031, ptr %988, align 4, !tbaa !163
  %1032 = getelementptr inbounds i8, ptr %.09251265, i64 3716
  store i8 1, ptr %1032, align 4, !tbaa !166
  br label %1033

1033:                                             ; preds = %1024, %1028
  %1034 = load i32, ptr %999, align 8, !tbaa !197
  %.not1050 = icmp ne i32 %1034, %998
  %brmerge1152 = select i1 %.not1050, i1 true, i1 %1026
  br i1 %brmerge1152, label %1035, label %1047

1035:                                             ; preds = %1033
  %1036 = load i32, ptr %993, align 4, !tbaa !196
  %1037 = icmp eq i32 %1034, %1036
  br i1 %1037, label %1038, label %1040

1038:                                             ; preds = %1035
  %1039 = load i32, ptr %988, align 4, !tbaa !163
  br label %1045

1040:                                             ; preds = %1035
  %1041 = load ptr, ptr %977, align 8, !tbaa !192
  %1042 = sext i32 %1034 to i64
  %1043 = getelementptr inbounds i8, ptr %1041, i64 %1042
  %1044 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1041, ptr noundef %1043)
  br label %1045

1045:                                             ; preds = %1040, %1038
  %1046 = phi i32 [ %1039, %1038 ], [ %1044, %1040 ]
  store i32 %1046, ptr %994, align 4, !tbaa !164
  br label %1047

1047:                                             ; preds = %1033, %1045
  %1048 = load i32, ptr %1005, align 4, !tbaa !198
  %.not1051 = icmp ne i32 %1048, %1004
  %brmerge1153 = select i1 %.not1051, i1 true, i1 %1026
  br i1 %brmerge1153, label %1049, label %1061

1049:                                             ; preds = %1047
  %1050 = load i32, ptr %999, align 8, !tbaa !197
  %1051 = icmp eq i32 %1048, %1050
  br i1 %1051, label %1052, label %1054

1052:                                             ; preds = %1049
  %1053 = load i32, ptr %994, align 4, !tbaa !164
  br label %1059

1054:                                             ; preds = %1049
  %1055 = load ptr, ptr %977, align 8, !tbaa !192
  %1056 = sext i32 %1048 to i64
  %1057 = getelementptr inbounds i8, ptr %1055, i64 %1056
  %1058 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1055, ptr noundef %1057)
  br label %1059

1059:                                             ; preds = %1054, %1052
  %1060 = phi i32 [ %1053, %1052 ], [ %1058, %1054 ]
  store i32 %1060, ptr %1000, align 4, !tbaa !165
  br label %1061

1061:                                             ; preds = %1047, %1059
  br i1 %1026, label %1062, label %1086

1062:                                             ; preds = %1061
  %1063 = icmp eq i32 %79, 0
  br i1 %1063, label %1065, label %1064

1064:                                             ; preds = %1062
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.4, i32 noundef 4725, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1065:                                             ; preds = %1062
  %1066 = load i32, ptr %980, align 8, !tbaa !193
  %1067 = load ptr, ptr %977, align 8, !tbaa !192
  %1068 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1067) #15
  %1069 = trunc i64 %1068 to i32
  %1070 = icmp eq i32 %1066, %1069
  br i1 %1070, label %1072, label %1071

1071:                                             ; preds = %1065
  call void @__assert_fail(ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.4, i32 noundef 4726, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1072:                                             ; preds = %1065
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef nonnull %.09251265, ptr noundef %1067, i32 noundef %1066)
  %1073 = load i32, ptr %980, align 8, !tbaa !193
  %1074 = icmp sle i32 %1073, %.0961
  %brmerge1155 = or i1 %.not1017, %1074
  br i1 %brmerge1155, label %1079, label %1075

1075:                                             ; preds = %1072
  %1076 = load i32, ptr %985, align 8, !tbaa !141
  %1077 = sub i32 %1073, %.0961
  %1078 = add nsw i32 %1077, %1076
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %985, i32 noundef %1078)
  br label %1079

1079:                                             ; preds = %1072, %1075
  %1080 = load ptr, ptr %986, align 8, !tbaa !134
  %1081 = load i32, ptr %985, align 8, !tbaa !141
  %1082 = load ptr, ptr %977, align 8, !tbaa !192
  %1083 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %1080, i32 noundef %1081, ptr noundef %1082, ptr noundef null, ptr noundef null)
  %1084 = getelementptr inbounds i8, ptr %.09251265, i64 12
  store i32 %1083, ptr %1084, align 4, !tbaa !135
  %1085 = load i32, ptr %980, align 8, !tbaa !193
  store i32 %1085, ptr %978, align 8, !tbaa !131
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3724) %.09251265)
  br label %1086

1086:                                             ; preds = %1079, %1061
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %26) #14
  br label %1087

1087:                                             ; preds = %966, %1086, %.critedge1146
  br i1 %80, label %1095, label %1088

1088:                                             ; preds = %1087
  %1089 = getelementptr inbounds i8, ptr %.09251265, i64 48
  %1090 = load ptr, ptr %1089, align 8, !tbaa !133
  %1091 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1090, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1052 = icmp eq i32 %1091, 0
  br i1 %.not1052, label %1095, label %1092

1092:                                             ; preds = %1088
  %1093 = getelementptr inbounds i8, ptr %.09251265, i64 16
  %1094 = load i32, ptr %1093, align 8, !tbaa !131
  br label %1095

1095:                                             ; preds = %945, %1092, %1088, %1087, %889
  %.39291293 = phi i8 [ %.3929, %889 ], [ %.39291294, %1087 ], [ %.39291294, %1092 ], [ %.39291294, %1088 ], [ %.39291294, %945 ]
  %.19351291 = phi float [ %.1935, %889 ], [ %.19351292, %1087 ], [ %.19351292, %1092 ], [ %.19351292, %1088 ], [ %.19351292, %945 ]
  %.19391289 = phi i8 [ %.1939, %889 ], [ %.19391290, %1087 ], [ %.19391290, %1092 ], [ %.19391290, %1088 ], [ %.19391290, %945 ]
  %.29421287 = phi i8 [ %.2942, %889 ], [ %.29421288, %1087 ], [ %.29421288, %1092 ], [ %.29421288, %1088 ], [ %.29421288, %945 ]
  %.29601286 = phi i8 [ %.2960, %889 ], [ %.29601285, %1087 ], [ %.29601285, %1092 ], [ %.29601285, %1088 ], [ %.29601285, %945 ]
  %.2975 = phi i32 [ 0, %889 ], [ %.09731208, %1087 ], [ %1094, %1092 ], [ %.09731208, %1088 ], [ %.09731208, %945 ]
  %.2970 = phi ptr [ null, %889 ], [ %.09681210, %1087 ], [ %1090, %1092 ], [ %.09681210, %1088 ], [ %.09681210, %945 ]
  %.2954 = phi i1 [ false, %889 ], [ %.09521212, %1087 ], [ true, %1092 ], [ %.09521212, %1088 ], [ %.09521212, %945 ]
  %1096 = getelementptr inbounds i8, ptr %77, i64 24296
  %1097 = load i32, ptr %1096, align 8, !tbaa !199
  %1098 = icmp eq i32 %1097, %90
  br i1 %1098, label %1099, label %1112

1099:                                             ; preds = %1095
  %1100 = load i32, ptr %177, align 4, !tbaa !114
  %.not1053 = icmp eq i32 %1100, %90
  br i1 %.not1053, label %1111, label %1101

1101:                                             ; preds = %1099
  %1102 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  %.not1156 = xor i1 %1102, true
  %brmerge1157 = or i1 %80, %.not1156
  br i1 %brmerge1157, label %1111, label %1103

1103:                                             ; preds = %1101
  %1104 = getelementptr inbounds i8, ptr %77, i64 24312
  %1105 = load ptr, ptr %1104, align 8, !tbaa !200
  %1106 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1105, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1054 = icmp eq i32 %1106, 0
  br i1 %.not1054, label %1111, label %1107

1107:                                             ; preds = %1103
  %1108 = getelementptr inbounds i8, ptr %77, i64 24304
  %1109 = load i32, ptr %1108, align 8, !tbaa !201
  %1110 = add nsw i32 %1109, -1
  br label %1111

1111:                                             ; preds = %1101, %1107, %1103, %1099
  %.3976 = phi i32 [ %1110, %1107 ], [ %.2975, %1103 ], [ %.2975, %1101 ], [ %.2975, %1099 ]
  %.3971 = phi ptr [ %1105, %1107 ], [ %.2970, %1103 ], [ %.2970, %1101 ], [ %.2970, %1099 ]
  %.3955 = phi i1 [ true, %1107 ], [ %.2954, %1103 ], [ %.2954, %1101 ], [ %.2954, %1099 ]
  store i32 0, ptr %1096, align 8, !tbaa !199
  br label %1112

1112:                                             ; preds = %1111, %1095
  %.4977 = phi i32 [ %.3976, %1111 ], [ %.2975, %1095 ]
  %.4972 = phi ptr [ %.3971, %1111 ], [ %.2970, %1095 ]
  %.4956 = phi i1 [ %.3955, %1111 ], [ %.2954, %1095 ]
  %.not1055 = icmp eq ptr %.4972, null
  br i1 %.not1055, label %1138, label %1113

1113:                                             ; preds = %1112
  %1114 = icmp sgt i32 %.4977, -1
  br i1 %1114, label %1116, label %1115

1115:                                             ; preds = %1113
  call void @__assert_fail(ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.4, i32 noundef 4766, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1116:                                             ; preds = %1113
  br i1 %.not1017, label %1134, label %1117

1117:                                             ; preds = %1116
  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 !185
  %1118 = getelementptr inbounds i8, ptr %27, i64 8
  store i32 262144, ptr %1118, align 8, !tbaa !188
  %1119 = getelementptr inbounds i8, ptr %27, i64 12
  store i32 %5, ptr %1119, align 4, !tbaa !189
  %1120 = getelementptr inbounds i8, ptr %27, i64 32
  store ptr %2, ptr %1120, align 8, !tbaa !192
  %1121 = getelementptr inbounds i8, ptr %27, i64 40
  store i32 %.4977, ptr %1121, align 8, !tbaa !193
  %1122 = add nuw nsw i32 %.4977, 1
  %1123 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3, i32 noundef %1122)
  %1124 = getelementptr inbounds i8, ptr %27, i64 44
  store i32 %1123, ptr %1124, align 4, !tbaa !194
  %1125 = getelementptr inbounds i8, ptr %27, i64 16
  store ptr %7, ptr %1125, align 8, !tbaa !190
  %1126 = call noundef i32 %6(ptr noundef nonnull %27)
  %1127 = load ptr, ptr %1120, align 8, !tbaa !192
  %1128 = load i32, ptr %1124, align 4, !tbaa !194
  %1129 = load i32, ptr %1121, align 8, !tbaa !193
  %1130 = add nsw i32 %1128, -1
  %1131 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1129, i32 noundef %1130)
  %.not1056 = icmp sgt i32 %1131, %1128
  br i1 %.not1056, label %1132, label %1133

1132:                                             ; preds = %1117
  call void @__assert_fail(ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.4, i32 noundef 4781, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1133:                                             ; preds = %1117
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #14
  br label %1134

1134:                                             ; preds = %1133, %1116
  %.5 = phi i32 [ %1131, %1133 ], [ %.4977, %1116 ]
  %.0917 = phi i32 [ %1128, %1133 ], [ %3, %1116 ]
  %.0915 = phi ptr [ %1127, %1133 ], [ %2, %1116 ]
  %1135 = add nsw i32 %.5, 1
  %1136 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1135, i32 noundef %.0917)
  %1137 = sext i32 %1136 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %.0915, ptr noundef nonnull %.4972, i64 noundef %1137)
  br label %1138

1138:                                             ; preds = %1134, %1112
  %.1916 = phi ptr [ %.0915, %1134 ], [ %2, %1112 ]
  %1139 = load i32, ptr %177, align 4, !tbaa !114
  %1140 = icmp eq i32 %1139, %90
  br i1 %1140, label %1141, label %1146

1141:                                             ; preds = %1138
  %1142 = trunc nuw i8 %.39291293 to i1
  br i1 %1142, label %1143, label %1144

1143:                                             ; preds = %1141
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %1146

1144:                                             ; preds = %1141
  %1145 = getelementptr inbounds i8, ptr %77, i64 25532
  store i32 1, ptr %1145, align 4, !tbaa !202
  br label %1146

1146:                                             ; preds = %1138, %1144, %1143
  br i1 %68, label %1152, label %1147

1147:                                             ; preds = %1146
  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
  %1148 = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.090.0.copyload = load <2 x float>, ptr %1148, align 8
  %1149 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %1150 = getelementptr inbounds i8, ptr %77, i64 14916
  %1151 = load float, ptr %1150, align 4, !tbaa !115
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.091.0.copyload, <2 x float> %.sroa.090.0.copyload, i32 noundef %1149, i1 noundef zeroext true, float noundef %1151)
  br label %1152

1152:                                             ; preds = %1147, %1146
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #14
  %1153 = load float, ptr %11, align 8, !tbaa !156
  %1154 = getelementptr inbounds i8, ptr %11, i64 4
  %1155 = load float, ptr %1154, align 4, !tbaa !203
  %1156 = fadd float %.sroa.0505.2, %1153
  %1157 = fadd float %.sroa.11.0.copyload, %1155
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %28, float noundef %1153, float noundef %1155, float noundef %1156, float noundef %1157)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  br i1 %68, label %1158, label %1161

1158:                                             ; preds = %1152
  %1159 = getelementptr inbounds i8, ptr %.2922, i64 320
  %1160 = load i64, ptr %1159, align 8
  br label %1164

1161:                                             ; preds = %1152
  %1162 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %100)
  %1163 = bitcast <2 x float> %1162 to i64
  br label %1164

1164:                                             ; preds = %1161, %1158
  %storemerge = phi i64 [ %1160, %1158 ], [ %1163, %1161 ]
  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 %386, label %1165, label %1168

1165:                                             ; preds = %1164
  %1166 = getelementptr inbounds i8, ptr %.09251265, i64 48
  %1167 = load ptr, ptr %1166, align 8, !tbaa !133
  br label %1168

1168:                                             ; preds = %1164, %1165
  %1169 = phi ptr [ %1167, %1165 ], [ %.1916, %1164 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  store ptr null, ptr %31, align 8, !tbaa !42
  br i1 %396, label %1170, label %1173

1170:                                             ; preds = %1168
  %1171 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #15
  %1172 = getelementptr inbounds i8, ptr %1, i64 %1171
  store ptr %1172, ptr %31, align 8, !tbaa !42
  br label %1173

1173:                                             ; preds = %1170, %1168
  %1174 = phi ptr [ %1172, %1170 ], [ null, %1168 ]
  %.0957 = phi ptr [ %1, %1170 ], [ %1169, %1168 ]
  %1175 = trunc nuw i8 %.19391289 to i1
  br i1 %1175, label %1178, label %1176

1176:                                             ; preds = %1173
  %1177 = trunc nuw i8 %.29421287 to i1
  br i1 %1177, label %1178, label %1444

1178:                                             ; preds = %1176, %1173
  br i1 %352, label %1180, label %1179

1179:                                             ; preds = %1178
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4823, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1180:                                             ; preds = %1178
  br i1 %396, label %1186, label %1181

1181:                                             ; preds = %1180
  %1182 = getelementptr inbounds i8, ptr %.09251265, i64 16
  %1183 = load i32, ptr %1182, align 8, !tbaa !131
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds i8, ptr %.0957, i64 %1184
  store ptr %1185, ptr %31, align 8, !tbaa !42
  br label %1186

1186:                                             ; preds = %1181, %1180
  %.pre12481250 = phi ptr [ %1185, %1181 ], [ %1174, %1180 ]
  %1187 = getelementptr inbounds i8, ptr %.09251265, i64 32
  %1188 = load ptr, ptr %1187, align 8, !tbaa !134
  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 %1175, label %1189, label %1194

1189:                                             ; preds = %1186
  %1190 = getelementptr inbounds i8, ptr %.09251265, i64 84
  %1191 = load i32, ptr %1190, align 4, !tbaa !163
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds i16, ptr %1188, i64 %1192
  br label %1194

1194:                                             ; preds = %1189, %1186
  %.sroa.068.0 = phi ptr [ %1193, %1189 ], [ null, %1186 ]
  %.sroa.062.0 = phi i32 [ -1, %1189 ], [ %.sroa.062.0.copyload, %1186 ]
  %.0947 = phi i32 [ 1, %1189 ], [ 0, %1186 ]
  %1195 = trunc nuw i8 %.29421287 to i1
  br i1 %1195, label %1196, label %1205

1196:                                             ; preds = %1194
  %1197 = getelementptr inbounds i8, ptr %.09251265, i64 88
  %1198 = load i32, ptr %1197, align 4, !tbaa !164
  %1199 = getelementptr inbounds i8, ptr %.09251265, i64 92
  %1200 = load i32, ptr %1199, align 4, !tbaa !165
  %1201 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1198, i32 noundef %1200)
  %1202 = sext i32 %1201 to i64
  %1203 = getelementptr inbounds i16, ptr %1188, i64 %1202
  %1204 = add nuw nsw i32 %.0947, 1
  br label %1205

1205:                                             ; preds = %1196, %1194
  %.sroa.7.0 = phi ptr [ %1203, %1196 ], [ null, %1194 ]
  %.sroa.9.0 = phi i32 [ -1, %1196 ], [ %.sroa.9.0.copyload, %1194 ]
  %.1948 = phi i32 [ %1204, %1196 ], [ %.0947, %1194 ]
  %.lobit = lshr exact i32 %67, 26
  %1206 = add nuw nsw i32 %.1948, %.lobit
  br label %1207

1207:                                             ; preds = %1222, %1205
  %.sroa.9.1 = phi i32 [ %.sroa.9.0, %1205 ], [ %.sroa.9.2, %1222 ]
  %.sroa.062.1 = phi i32 [ %.sroa.062.0, %1205 ], [ %.sroa.062.3, %1222 ]
  %.2949 = phi i32 [ %1206, %1205 ], [ %.4951, %1222 ]
  %.0944 = phi i32 [ 0, %1205 ], [ %.1945, %1222 ]
  %.0943 = phi ptr [ %1188, %1205 ], [ %1223, %1222 ]
  %1208 = load i16, ptr %.0943, align 2, !tbaa !161
  switch i16 %1208, label %1222 [
    i16 0, label %1224
    i16 10, label %1209
  ]

1209:                                             ; preds = %1207
  %1210 = add nsw i32 %.0944, 1
  %1211 = icmp eq i32 %.sroa.062.1, -1
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1209
  %.not1058 = icmp ult ptr %.0943, %.sroa.068.0
  br i1 %.not1058, label %1216, label %1213

1213:                                             ; preds = %1212
  %1214 = add nsw i32 %.2949, -1
  %1215 = icmp slt i32 %.2949, 2
  br i1 %1215, label %1224, label %1216

1216:                                             ; preds = %1213, %1212, %1209
  %.sroa.062.2 = phi i32 [ %1210, %1213 ], [ -1, %1212 ], [ %.sroa.062.1, %1209 ]
  %.3950 = phi i32 [ %1214, %1213 ], [ %.2949, %1212 ], [ %.2949, %1209 ]
  %1217 = icmp eq i32 %.sroa.9.1, -1
  br i1 %1217, label %1218, label %1222

1218:                                             ; preds = %1216
  %.not1059 = icmp ult ptr %.0943, %.sroa.7.0
  br i1 %.not1059, label %1222, label %1219

1219:                                             ; preds = %1218
  %1220 = add nsw i32 %.3950, -1
  %1221 = icmp slt i32 %.3950, 2
  br i1 %1221, label %1224, label %1222

1222:                                             ; preds = %1207, %1219, %1218, %1216
  %.sroa.9.2 = phi i32 [ %1210, %1219 ], [ -1, %1218 ], [ %.sroa.9.1, %1216 ], [ %.sroa.9.1, %1207 ]
  %.sroa.062.3 = phi i32 [ %.sroa.062.2, %1219 ], [ %.sroa.062.2, %1218 ], [ %.sroa.062.2, %1216 ], [ %.sroa.062.1, %1207 ]
  %.4951 = phi i32 [ %1220, %1219 ], [ %.3950, %1218 ], [ %.3950, %1216 ], [ %.2949, %1207 ]
  %.1945 = phi i32 [ %1210, %1219 ], [ %1210, %1218 ], [ %1210, %1216 ], [ %.0944, %1207 ]
  %1223 = getelementptr inbounds i8, ptr %.0943, i64 2
  br label %1207, !llvm.loop !204

1224:                                             ; preds = %1219, %1213, %1207
  %.sroa.9.3 = phi i32 [ %.sroa.9.1, %1207 ], [ %.sroa.9.1, %1213 ], [ %1210, %1219 ]
  %.sroa.062.4 = phi i32 [ %.sroa.062.1, %1207 ], [ %1210, %1213 ], [ %.sroa.062.2, %1219 ]
  %.2946 = phi i32 [ %.0944, %1207 ], [ %1210, %1213 ], [ %1210, %1219 ]
  %1225 = add nsw i32 %.2946, 1
  %1226 = icmp eq i32 %.sroa.062.4, -1
  %spec.select1158 = select i1 %1226, i32 %1225, i32 %.sroa.062.4
  %1227 = icmp eq i32 %.sroa.9.3, -1
  %.sroa.9.4 = select i1 %1227, i32 %1225, i32 %.sroa.9.3
  %1228 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.068.0, ptr noundef %1188)
  %1229 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %77, ptr noundef %1228, ptr noundef %.sroa.068.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.044.0.vec.extract = extractelement <2 x float> %1229, i64 0
  store float %.sroa.044.0.vec.extract, ptr %32, align 4, !tbaa !205
  %1230 = sitofp i32 %spec.select1158 to float
  %1231 = getelementptr inbounds i8, ptr %77, i64 16000
  %1232 = load float, ptr %1231, align 8, !tbaa !43
  %1233 = fmul float %1232, %1230
  %1234 = getelementptr inbounds i8, ptr %32, i64 4
  store float %1233, ptr %1234, align 4, !tbaa !206
  %1235 = icmp sgt i32 %.sroa.9.4, -1
  br i1 %1235, label %1236, label %1243

1236:                                             ; preds = %1224
  %1237 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.7.0, ptr noundef %1188)
  %1238 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %77, ptr noundef %1237, ptr noundef %.sroa.7.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.043.0.vec.extract = extractelement <2 x float> %1238, i64 0
  store float %.sroa.043.0.vec.extract, ptr %33, align 4, !tbaa !205
  %1239 = uitofp nneg i32 %.sroa.9.4 to float
  %1240 = load float, ptr %1231, align 8, !tbaa !43
  %1241 = fmul float %1240, %1239
  %1242 = getelementptr inbounds i8, ptr %33, i64 4
  store float %1241, ptr %1242, align 4, !tbaa !206
  br label %1243

1243:                                             ; preds = %1236, %1224
  %1244 = phi float [ %1240, %1236 ], [ %1232, %1224 ]
  br i1 %68, label %1245, label %1249

1245:                                             ; preds = %1243
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  %1246 = sitofp i32 %1225 to float
  %1247 = fmul float %1244, %1246
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %.sroa.0505.2, float noundef %1247)
  %1248 = load i64, ptr %34, align 8
  store i64 %1248, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  br label %1249

1249:                                             ; preds = %1245, %1243
  br i1 %1175, label %1250, label %1310

1250:                                             ; preds = %1249
  %1251 = getelementptr inbounds i8, ptr %.09251265, i64 3716
  %1252 = load i8, ptr %1251, align 4, !tbaa !166, !range !40, !noundef !41
  %1253 = trunc nuw i8 %1252 to i1
  br i1 %1253, label %1254, label %1310

1254:                                             ; preds = %1250
  %1255 = and i32 %5, 4096
  %.not1060 = icmp eq i32 %1255, 0
  br i1 %.not1060, label %1256, label %1276

1256:                                             ; preds = %1254
  %1257 = fmul float %.sroa.0505.2, 2.500000e-01
  %1258 = load float, ptr %32, align 4, !tbaa !205
  %1259 = getelementptr inbounds i8, ptr %.09251265, i64 80
  %1260 = load float, ptr %1259, align 8, !tbaa !136
  %1261 = fcmp olt float %1258, %1260
  br i1 %1261, label %1262, label %1267

1262:                                             ; preds = %1256
  %1263 = fsub float %1258, %1257
  %1264 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1263)
  %1265 = fptosi float %1264 to i32
  %1266 = sitofp i32 %1265 to float
  store float %1266, ptr %1259, align 8, !tbaa !136
  br label %1278

1267:                                             ; preds = %1256
  %1268 = load float, ptr %100, align 4, !tbaa !157
  %1269 = fsub float %.sroa.0505.2, %1268
  %1270 = fsub float %1258, %1269
  %1271 = fcmp ult float %1270, %1260
  br i1 %1271, label %1278, label %1272

1272:                                             ; preds = %1267
  %1273 = fadd float %1257, %1270
  %1274 = fptosi float %1273 to i32
  %1275 = sitofp i32 %1274 to float
  store float %1275, ptr %1259, align 8, !tbaa !136
  br label %1278

1276:                                             ; preds = %1254
  %1277 = getelementptr inbounds i8, ptr %.09251265, i64 80
  store float 0.000000e+00, ptr %1277, align 8, !tbaa !136
  br label %1278

1278:                                             ; preds = %1262, %1272, %1267, %1276
  br i1 %68, label %1279, label %1309

1279:                                             ; preds = %1278
  %1280 = load float, ptr %1234, align 4, !tbaa !206
  %1281 = load float, ptr %1231, align 8, !tbaa !43
  %1282 = fsub float %1280, %1281
  %1283 = fcmp olt float %1282, %.19351291
  br i1 %1283, label %1284, label %1286

1284:                                             ; preds = %1279
  %1285 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1282)
  %.pre1243 = load float, ptr %101, align 4, !tbaa !107
  br label %1295

1286:                                             ; preds = %1279
  %1287 = load float, ptr %101, align 4, !tbaa !107
  %1288 = fneg float %1287
  %1289 = call float @llvm.fmuladd.f32(float %1288, float 2.000000e+00, float %.sroa.11.0.copyload)
  %1290 = fsub float %1280, %1289
  %1291 = fcmp ult float %1290, %.19351291
  br i1 %1291, label %1295, label %1292

1292:                                             ; preds = %1286
  %1293 = fsub float %1280, %.sroa.11.0.copyload
  %1294 = call float @llvm.fmuladd.f32(float %1287, float 2.000000e+00, float %1293)
  br label %1295

1295:                                             ; preds = %1286, %1292, %1284
  %1296 = phi float [ %.pre1243, %1284 ], [ %1287, %1292 ], [ %1287, %1286 ]
  %.2936 = phi float [ %1285, %1284 ], [ %1294, %1292 ], [ %.19351291, %1286 ]
  %1297 = getelementptr inbounds i8, ptr %30, i64 4
  %1298 = load float, ptr %1297, align 4, !tbaa !206
  %1299 = call float @llvm.fmuladd.f32(float %1296, float 2.000000e+00, float %1298)
  %1300 = fsub float %1299, %.sroa.11.0.copyload
  %1301 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1300, float noundef 0.000000e+00)
  %1302 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %.2936, float noundef 0.000000e+00, float noundef %1301)
  %1303 = getelementptr inbounds i8, ptr %.2922, i64 196
  %1304 = load float, ptr %1303, align 4, !tbaa !127
  %1305 = fsub float %1304, %1302
  %1306 = getelementptr inbounds i8, ptr %29, i64 4
  %1307 = load float, ptr %1306, align 4, !tbaa !206
  %1308 = fadd float %1307, %1305
  store float %1308, ptr %1306, align 4, !tbaa !206
  store float %1302, ptr %1303, align 4, !tbaa !127
  br label %1309

1309:                                             ; preds = %1295, %1278
  store i8 0, ptr %1251, align 4, !tbaa !166
  br label %1310

1310:                                             ; preds = %1309, %1250, %1249
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  %1311 = getelementptr inbounds i8, ptr %.09251265, i64 80
  %1312 = load float, ptr %1311, align 8, !tbaa !136
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %1312, float noundef 0.000000e+00)
  br i1 %1195, label %1313, label %1382

1313:                                             ; preds = %1310
  %1314 = getelementptr inbounds i8, ptr %.09251265, i64 88
  %1315 = load i32, ptr %1314, align 4, !tbaa !164
  %1316 = getelementptr inbounds i8, ptr %.09251265, i64 92
  %1317 = load i32, ptr %1316, align 4, !tbaa !165
  %1318 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1315, i32 noundef %1317)
  %1319 = sext i32 %1318 to i64
  %1320 = getelementptr inbounds i16, ptr %1188, i64 %1319
  %1321 = load i32, ptr %1314, align 4, !tbaa !164
  %1322 = load i32, ptr %1316, align 4, !tbaa !165
  %1323 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1321, i32 noundef %1322)
  %1324 = sext i32 %1323 to i64
  %1325 = getelementptr inbounds i16, ptr %1188, i64 %1324
  %1326 = select i1 %1175, float 1.000000e+00, float 0x3FE3333340000000
  %1327 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 49, float noundef %1326)
  %1328 = select i1 %68, float 0.000000e+00, float -1.000000e+00
  %1329 = 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
  %1330 = 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> %1330, ptr %37, align 8
  %1331 = 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> %1331, 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 %1320, ptr %38, align 8, !tbaa !42
  %1332 = getelementptr inbounds i8, ptr %36, i64 4
  %1333 = icmp slt i32 %1318, %1323
  br i1 %1333, label %.lr.ph1235, label %._crit_edge1236

.lr.ph1235:                                       ; preds = %1313
  %1334 = extractelement <2 x float> %1331, i64 1
  %1335 = getelementptr inbounds i8, ptr %28, i64 12
  %1336 = getelementptr inbounds i8, ptr %28, i64 4
  %1337 = getelementptr inbounds i8, ptr %77, i64 15992
  %1338 = getelementptr inbounds i8, ptr %.2922, i64 736
  %1339 = getelementptr inbounds i8, ptr %39, i64 8
  %.pre1244 = load float, ptr %1231, align 8, !tbaa !43
  br label %1340

1340:                                             ; preds = %.lr.ph1235, %.loopexit
  %1341 = phi ptr [ %1320, %.lr.ph1235 ], [ %1374, %.loopexit ]
  %1342 = phi float [ %1334, %.lr.ph1235 ], [ %1380, %.loopexit ]
  %1343 = phi float [ %.pre1244, %.lr.ph1235 ], [ %1376, %.loopexit ]
  %1344 = load float, ptr %1335, align 4, !tbaa !207
  %1345 = fadd float %1344, %1343
  %1346 = fcmp ogt float %1342, %1345
  br i1 %1346, label %._crit_edge1236.loopexit, label %1347

1347:                                             ; preds = %1340
  %1348 = load float, ptr %1336, align 4, !tbaa !208
  %1349 = fcmp olt float %1342, %1348
  br i1 %1349, label %.preheader, label %1356

.preheader:                                       ; preds = %1347, %1352
  %1350 = phi ptr [ %1353, %1352 ], [ %1341, %1347 ]
  %1351 = icmp ult ptr %1350, %1325
  br i1 %1351, label %1352, label %.loopexit

1352:                                             ; preds = %.preheader
  %1353 = getelementptr inbounds i8, ptr %1350, i64 2
  store ptr %1353, ptr %38, align 8, !tbaa !42
  %1354 = load i16, ptr %1350, align 2, !tbaa !161
  %1355 = icmp eq i16 %1354, 10
  br i1 %1355, label %.loopexit, label %.preheader, !llvm.loop !209

1356:                                             ; preds = %1347
  %1357 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %77, ptr noundef %1341, ptr noundef nonnull %1325, ptr noundef nonnull %38, ptr noundef null, i1 noundef zeroext true)
  %.sroa.028.0.vec.extract = extractelement <2 x float> %1357, i64 0
  %1358 = fcmp ugt float %.sroa.028.0.vec.extract, 0.000000e+00
  br i1 %1358, label %1365, label %1359

1359:                                             ; preds = %1356
  %1360 = load ptr, ptr %1337, align 8, !tbaa !143
  %1361 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %1360, i16 noundef zeroext 32)
  %1362 = fmul float %1361, 5.000000e-01
  %1363 = fptosi float %1362 to i32
  %1364 = sitofp i32 %1363 to float
  br label %1365

1365:                                             ; preds = %1359, %1356
  %.sroa.028.0.vec.extract31.pre-phi = phi float [ %1364, %1359 ], [ %.sroa.028.0.vec.extract, %1356 ]
  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
  %1366 = load float, ptr %1231, align 8, !tbaa !43
  %1367 = fsub float %1328, %1366
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef 0.000000e+00, float noundef %1367)
  %1368 = 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> %1368, 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 %1329)
  %1369 = 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> %1369, 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)
  %1370 = 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 %1370, label %1371, label %1373

1371:                                             ; preds = %1365
  %1372 = load ptr, ptr %1338, align 8, !tbaa !210
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1372, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %1339, i32 noundef %1327, float noundef 0.000000e+00, i32 noundef 0)
  br label %1373

1373:                                             ; preds = %1371, %1365
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #14
  %.pre1245 = load float, ptr %1231, align 8, !tbaa !43
  %.pre1246 = load float, ptr %1332, align 4, !tbaa !206
  %.pre1247 = load ptr, ptr %38, align 8, !tbaa !42
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader, %1352, %1373
  %1374 = phi ptr [ %.pre1247, %1373 ], [ %1350, %.preheader ], [ %1353, %1352 ]
  %1375 = phi float [ %.pre1246, %1373 ], [ %1342, %1352 ], [ %1342, %.preheader ]
  %1376 = phi float [ %.pre1245, %1373 ], [ %1343, %1352 ], [ %1343, %.preheader ]
  %1377 = load float, ptr %29, align 8, !tbaa !205
  %1378 = load float, ptr %35, align 4, !tbaa !205
  %1379 = fsub float %1377, %1378
  store float %1379, ptr %36, align 8, !tbaa !205
  %1380 = fadd float %1376, %1375
  store float %1380, ptr %1332, align 4, !tbaa !206
  %1381 = icmp ult ptr %1374, %1325
  br i1 %1381, label %1340, label %._crit_edge1236.loopexit, !llvm.loop !211

._crit_edge1236.loopexit:                         ; preds = %1340, %.loopexit
  %.pre1248.pre.pre = load ptr, ptr %31, align 8, !tbaa !42
  br label %._crit_edge1236

._crit_edge1236:                                  ; preds = %._crit_edge1236.loopexit, %1313
  %.pre1248.pre = phi ptr [ %.pre1248.pre.pre, %._crit_edge1236.loopexit ], [ %.pre12481250, %1313 ]
  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 %1382

1382:                                             ; preds = %._crit_edge1236, %1310
  %.pre1248 = phi ptr [ %.pre1248.pre, %._crit_edge1236 ], [ %.pre12481250, %1310 ]
  br i1 %68, label %1388, label %1383

1383:                                             ; preds = %1382
  %1384 = ptrtoint ptr %.pre1248 to i64
  %1385 = ptrtoint ptr %.0957 to i64
  %1386 = sub i64 %1384, %1385
  %1387 = icmp slt i64 %1386, 2097152
  br i1 %1387, label %1388, label %1397

1388:                                             ; preds = %1383, %1382
  %. = phi ptr [ %28, %1383 ], [ null, %1382 ]
  %1389 = zext i1 %396 to i32
  %1390 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1389, float noundef 1.000000e+00)
  %1391 = getelementptr inbounds i8, ptr %.2922, i64 736
  %1392 = load ptr, ptr %1391, align 8, !tbaa !210
  %1393 = getelementptr inbounds i8, ptr %77, i64 15992
  %1394 = load ptr, ptr %1393, align 8, !tbaa !143
  %1395 = load float, ptr %1231, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  %1396 = 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> %1396, ptr %46, align 8
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1392, ptr noundef %1394, float noundef %1395, ptr noundef nonnull align 4 dereferenceable(8) %46, i32 noundef %1390, ptr noundef %.0957, ptr noundef %.pre1248, float noundef 0.000000e+00, ptr noundef %.)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  br label %1397

1397:                                             ; preds = %1388, %1383
  br i1 %1175, label %1398, label %1443

1398:                                             ; preds = %1397
  %1399 = getelementptr inbounds i8, ptr %77, i64 24
  %1400 = load float, ptr %1399, align 8, !tbaa !212
  %1401 = getelementptr inbounds i8, ptr %.09251265, i64 3712
  %1402 = load float, ptr %1401, align 8, !tbaa !213
  %1403 = fadd float %1400, %1402
  store float %1403, ptr %1401, align 8, !tbaa !213
  %1404 = getelementptr inbounds i8, ptr %77, i64 99
  %1405 = load i8, ptr %1404, align 1, !tbaa !214, !range !40, !noundef !41
  %1406 = trunc nuw i8 %1405 to i1
  %1407 = fcmp ugt float %1403, 0.000000e+00
  %or.cond1159 = select i1 %1406, i1 %1407, i1 false
  br i1 %or.cond1159, label %1408, label %1411

1408:                                             ; preds = %1398
  %1409 = call float @fmodf(float noundef %1403, float noundef 0x3FF3333340000000) #14
  %1410 = fcmp ole float %1409, 0x3FE99999A0000000
  br label %1411

1411:                                             ; preds = %1408, %1398
  %1412 = phi i1 [ true, %1398 ], [ %1410, %1408 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  %1413 = 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> %1413, ptr %48, align 8
  %1414 = 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> %1414, ptr %47, align 8
  %1415 = call <2 x float> @_ZL7ImTruncRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %47)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %49) #14
  %.sroa.0.0.vec.extract = extractelement <2 x float> %1415, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1415, i64 1
  %1416 = load float, ptr %1231, align 8, !tbaa !43
  %1417 = fsub float %.sroa.0.4.vec.extract, %1416
  %1418 = fadd float %1417, 5.000000e-01
  %1419 = fadd float %.sroa.0.0.vec.extract, 1.000000e+00
  %1420 = 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 %1418, float noundef %1419, float noundef %1420)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #14
  br i1 %1412, label %1421, label %.critedge13

1421:                                             ; preds = %1411
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %50, ptr noundef nonnull align 4 dereferenceable(16) %28)
  %1422 = 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 %1422, label %1423, label %1428

1423:                                             ; preds = %1421
  %1424 = getelementptr inbounds i8, ptr %.2922, i64 736
  %1425 = load ptr, ptr %1424, align 8, !tbaa !210
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  %1426 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %49)
  store <2 x float> %1426, ptr %51, align 8
  %1427 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1425, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %51, i32 noundef %1427, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  br label %1428

.critedge13:                                      ; preds = %1411
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #14
  br label %1428

1428:                                             ; preds = %.critedge13, %1423, %1421
  br i1 %80, label %1442, label %1429

1429:                                             ; preds = %1428
  %1430 = getelementptr inbounds i8, ptr %77, i64 24728
  store i8 1, ptr %1430, align 8, !tbaa !215
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  %1431 = fadd float %.sroa.0.0.vec.extract, -1.000000e+00
  %1432 = load float, ptr %1231, align 8, !tbaa !43
  %1433 = fsub float %.sroa.0.4.vec.extract, %1432
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef %1431, float noundef %1433)
  %1434 = getelementptr inbounds i8, ptr %77, i64 24732
  %1435 = load i64, ptr %52, align 8
  store i64 %1435, ptr %1434, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  %1436 = load float, ptr %1231, align 8, !tbaa !43
  %1437 = getelementptr inbounds i8, ptr %77, i64 24740
  store float %1436, ptr %1437, align 4, !tbaa !216
  %1438 = getelementptr inbounds i8, ptr %56, i64 64
  %1439 = load ptr, ptr %1438, align 8, !tbaa !217
  %1440 = load i32, ptr %1439, align 8, !tbaa !218
  %1441 = getelementptr inbounds i8, ptr %77, i64 24760
  store i32 %1440, ptr %1441, align 8, !tbaa !220
  br label %1442

1442:                                             ; preds = %1429, %1428
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #14
  br label %1443

1443:                                             ; preds = %1442, %1397
  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 %1479

1444:                                             ; preds = %1176
  br i1 %68, label %.critedge1161, label %1445

1445:                                             ; preds = %1444
  br i1 %396, label %1463, label %1446

1446:                                             ; preds = %1445
  %1447 = load i32, ptr %177, align 4, !tbaa !114
  %1448 = icmp eq i32 %1447, %90
  br i1 %1448, label %1449, label %1454

1449:                                             ; preds = %1446
  %1450 = getelementptr inbounds i8, ptr %.09251265, i64 16
  %1451 = load i32, ptr %1450, align 8, !tbaa !131
  %1452 = sext i32 %1451 to i64
  %1453 = getelementptr inbounds i8, ptr %.0957, i64 %1452
  store ptr %1453, ptr %31, align 8, !tbaa !42
  br label %1463

1454:                                             ; preds = %1446
  %1455 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.0957) #15
  %1456 = getelementptr inbounds i8, ptr %.0957, i64 %1455
  store ptr %1456, ptr %31, align 8, !tbaa !42
  br label %1463

.critedge1161:                                    ; preds = %1444
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  %1457 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %.0957, ptr noundef nonnull %31)
  %1458 = sitofp i32 %1457 to float
  %1459 = getelementptr inbounds i8, ptr %77, i64 16000
  %1460 = load float, ptr %1459, align 8, !tbaa !43
  %1461 = fmul float %1460, %1458
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef %.sroa.0505.2, float noundef %1461)
  %1462 = load i64, ptr %53, align 8
  store i64 %1462, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  br label %1469

1463:                                             ; preds = %1445, %1449, %1454
  %1464 = phi ptr [ %1174, %1445 ], [ %1453, %1449 ], [ %1456, %1454 ]
  %1465 = ptrtoint ptr %1464 to i64
  %1466 = ptrtoint ptr %.0957 to i64
  %1467 = sub i64 %1465, %1466
  %1468 = icmp slt i64 %1467, 2097152
  br i1 %1468, label %1469, label %1479

1469:                                             ; preds = %.critedge1161, %1463
  %.14 = phi ptr [ %28, %1463 ], [ null, %.critedge1161 ]
  %1470 = zext i1 %396 to i32
  %1471 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1470, float noundef 1.000000e+00)
  %1472 = getelementptr inbounds i8, ptr %.2922, i64 736
  %1473 = load ptr, ptr %1472, align 8, !tbaa !210
  %1474 = getelementptr inbounds i8, ptr %77, i64 15992
  %1475 = load ptr, ptr %1474, align 8, !tbaa !143
  %1476 = getelementptr inbounds i8, ptr %77, i64 16000
  %1477 = load float, ptr %1476, align 8, !tbaa !43
  %1478 = load ptr, ptr %31, align 8, !tbaa !42
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1473, ptr noundef %1475, float noundef %1477, ptr noundef nonnull align 4 dereferenceable(8) %29, i32 noundef %1471, ptr noundef %.0957, ptr noundef %1478, float noundef 0.000000e+00, ptr noundef %.14)
  br label %1479

1479:                                             ; preds = %1463, %1469, %1443
  br i1 %brmerge1073, label %1481, label %1480

1480:                                             ; preds = %1479
  call void @_ZN5ImGui7PopFontEv()
  br label %1481

1481:                                             ; preds = %1479, %1480
  br i1 %68, label %1482, label %1502

1482:                                             ; preds = %1481
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  %1483 = load float, ptr %30, align 8, !tbaa !205
  %1484 = getelementptr inbounds i8, ptr %30, i64 4
  %1485 = load float, ptr %1484, align 4, !tbaa !206
  %1486 = load float, ptr %101, align 4, !tbaa !107
  %1487 = fadd float %1485, %1486
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %54, float noundef %1483, float noundef %1487)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #14
  %1488 = getelementptr inbounds i8, ptr %77, i64 19100
  %1489 = load i32, ptr %1488, align 4, !tbaa !221
  %1490 = or i32 %1489, 1025
  store i32 %1490, ptr %1488, align 4, !tbaa !221
  call void @_ZN5ImGui8EndChildEv()
  %1491 = getelementptr inbounds i8, ptr %77, i64 19136
  %1492 = load i32, ptr %1491, align 8, !tbaa !110
  %1493 = and i32 %1492, 128
  %1494 = getelementptr inbounds i8, ptr %15, i64 8
  %1495 = load i32, ptr %1494, align 4, !tbaa !222
  %1496 = or i32 %1495, %1493
  store i32 %1496, ptr %1494, align 4, !tbaa !222
  call void @_ZN5ImGui8EndGroupEv()
  %1497 = load i32, ptr %167, align 8, !tbaa !223
  %1498 = icmp eq i32 %1497, 0
  br i1 %1498, label %1499, label %1502

1499:                                             ; preds = %1482
  store i32 %90, ptr %167, align 8, !tbaa !223
  %1500 = getelementptr inbounds i8, ptr %15, i64 4
  %1501 = load <2 x i32>, ptr %1500, align 4, !tbaa !112
  store <2 x i32> %1501, ptr %168, align 4, !tbaa !112
  br label %1502

1502:                                             ; preds = %1482, %1499, %1481
  %1503 = getelementptr inbounds i8, ptr %77, i64 25016
  %1504 = load i8, ptr %1503, align 8, !tbaa !224, !range !40, !noundef !41
  %1505 = trunc nuw i8 %1504 to i1
  %or.cond1167 = and i1 %brmerge1073, %1505
  br i1 %or.cond1167, label %1506, label %1508

1506:                                             ; preds = %1502
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.26)
  %1507 = load ptr, ptr %31, align 8, !tbaa !42
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef nonnull %29, ptr noundef %.0957, ptr noundef %1507)
  br label %1508

1508:                                             ; preds = %1506, %1502
  br i1 %106, label %1509, label %1519

1509:                                             ; preds = %1508
  %1510 = getelementptr inbounds i8, ptr %11, i64 8
  %1511 = load float, ptr %1510, align 8, !tbaa !225
  %1512 = getelementptr inbounds i8, ptr %77, i64 14932
  %1513 = load float, ptr %1512, align 4, !tbaa !108
  %1514 = fadd float %1511, %1513
  %1515 = load float, ptr %1154, align 4, !tbaa !203
  %1516 = load float, ptr %101, align 4, !tbaa !107
  %1517 = fadd float %1515, %1516
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef %1514, float noundef %1517)
  %1518 = load <2 x float>, ptr %55, align 8
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %1518, ptr noundef %0, ptr noundef null, i1 noundef zeroext true)
  br label %1519

1519:                                             ; preds = %1509, %1508
  %1520 = and i32 %5, 134217728
  %.not1061 = icmp eq i32 %1520, 0
  %or.cond1164 = and i1 %.not1061, %.4956
  br i1 %or.cond1164, label %1521, label %1522

1521:                                             ; preds = %1519
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %90)
  br label %1522

1522:                                             ; preds = %1521, %1519
  %1523 = and i32 %5, 32
  %.not1062 = icmp eq i32 %1523, 0
  %1524 = trunc nuw i8 %.29601286 to i1
  %.2 = select i1 %.not1062, i1 %.4956, i1 %1524
  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 = %142, %123, %161, %1522
  %.3 = phi i1 [ %.2, %1522 ], [ false, %161 ], [ false, %123 ], [ false, %142 ]
  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 %1525

1525:                                             ; 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 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2ii(ptr noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui8EndChildEv() local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare 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 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #10

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

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

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

declare noundef float @_ZN5ImGui13GetScrollMaxYEv() local_unnamed_addr #4

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

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

declare noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef) local_unnamed_addr #4

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

declare void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef) local_unnamed_addr #4

declare void @_ZN5ImGui7MemFreeEPv(ptr noundef) local_unnamed_addr #4

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

declare noundef ptr @_ZN5ImGui16GetClipboardTextEv() local_unnamed_addr #4

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

declare noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv() local_unnamed_addr #4

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118), i16 noundef zeroext) local_unnamed_addr #10 align 2

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare float @fmodf(float noundef, float noundef) local_unnamed_addr #12

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

declare void @_ZN5ImGui7PopFontEv() local_unnamed_addr #4

declare void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr) local_unnamed_addr

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !12, i64 248}
!6 = !{!"_ZTS11ImGuiWindow", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !11, i64 32, !7, i64 64, !10, i64 72, !13, i64 76, !10, i64 84, !13, i64 88, !13, i64 96, !13, i64 104, !13, i64 112, !13, i64 120, !13, i64 128, !13, i64 136, !14, i64 144, !14, i64 148, !14, i64 152, !14, i64 156, !14, i64 160, !14, i64 164, !14, i64 168, !14, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !13, i64 192, !13, i64 200, !13, i64 208, !13, i64 216, !13, i64 224, !13, i64 232, !12, i64 240, !12, i64 241, !12, i64 242, !12, i64 243, !12, i64 244, !12, i64 245, !12, i64 246, !12, i64 247, !12, i64 248, !12, i64 249, !12, i64 250, !12, i64 251, !12, i64 252, !12, i64 253, !8, i64 254, !8, i64 255, !15, i64 256, !15, i64 258, !15, i64 260, !15, i64 262, !15, i64 264, !10, i64 268, !8, i64 272, !8, i64 273, !12, i64 274, !10, i64 276, !8, i64 280, !8, i64 281, !8, i64 282, !8, i64 283, !10, i64 284, !10, i64 285, !10, i64 286, !10, i64 287, !13, i64 288, !13, i64 296, !16, i64 304, !17, i64 320, !23, i64 552, !23, i64 568, !23, i64 584, !23, i64 600, !23, i64 616, !23, i64 632, !23, i64 648, !24, i64 664, !24, i64 668, !10, i64 672, !10, i64 676, !14, i64 680, !14, i64 684, !25, i64 688, !27, i64 704, !14, i64 720, !14, i64 724, !10, i64 728, !7, i64 736, !28, i64 744, !7, i64 944, !7, i64 952, !7, i64 960, !7, i64 968, !7, i64 976, !7, i64 984, !7, i64 992, !7, i64 1000, !8, i64 1008, !8, i64 1016, !8, i64 1048, !10, i64 1064, !10, i64 1068, !10, i64 1072, !12, i64 1076, !12, i64 1077, !12, i64 1077, !12, i64 1077, !12, i64 1077, !15, i64 1078, !39, i64 1080, !7, i64 1104, !7, i64 1112, !10, i64 1120, !10, i64 1124, !23, i64 1128}
!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 16000}
!44 = !{!"_ZTS12ImGuiContext", !12, i64 0, !12, i64 1, !45, i64 8, !47, i64 14632, !50, i64 14848, !10, i64 15980, !10, i64 15984, !7, i64 15992, !14, i64 16000, !14, i64 16004, !51, i64 16008, !52, i64 16536, !10, i64 16544, !10, i64 16548, !10, i64 16552, !10, i64 16556, !12, i64 16560, !12, i64 16561, !12, i64 16562, !12, i64 16563, !12, i64 16564, !7, i64 16568, !53, i64 16576, !53, i64 16592, !46, i64 16608, !10, i64 16612, !21, i64 16616, !21, i64 16632, !21, i64 16648, !54, i64 16664, !25, i64 16680, !10, i64 16696, !13, i64 16700, !7, i64 16712, !7, i64 16720, !7, i64 16728, !7, i64 16736, !7, i64 16744, !13, i64 16752, !10, i64 16760, !10, i64 16764, !14, i64 16768, !13, i64 16772, !13, i64 16780, !10, i64 16788, !10, i64 16792, !10, i64 16796, !12, i64 16800, !12, i64 16801, !14, i64 16804, !14, i64 16808, !10, i64 16812, !10, i64 16816, !14, i64 16820, !12, i64 16824, !12, i64 16825, !12, i64 16826, !12, i64 16827, !12, i64 16828, !12, i64 16829, !13, i64 16832, !7, i64 16840, !55, i64 16848, !10, i64 16852, !10, i64 16856, !12, i64 16860, !12, i64 16861, !7, i64 16864, !10, i64 16872, !14, i64 16876, !8, i64 16880, !56, i64 18728, !10, i64 19072, !12, i64 19076, !10, i64 19080, !10, i64 19084, !10, i64 19088, !10, i64 19092, !58, i64 19096, !60, i64 19128, !61, i64 19192, !12, i64 19344, !62, i64 19352, !63, i64 19368, !64, i64 19384, !16, i64 19400, !65, i64 19416, !66, i64 19432, !67, i64 19448, !67, i64 19464, !68, i64 19480, !10, i64 19496, !69, i64 19504, !14, i64 19520, !7, i64 19528, !7, i64 19536, !7, i64 19544, !10, i64 19552, !70, i64 19560, !10, i64 19608, !10, i64 19612, !10, i64 19616, !7, i64 19624, !10, i64 19632, !10, i64 19636, !10, i64 19640, !10, i64 19644, !10, i64 19648, !10, i64 19652, !10, i64 19656, !10, i64 19660, !10, i64 19664, !10, i64 19668, !10, i64 19672, !55, i64 19676, !19, i64 19680, !59, i64 19688, !12, i64 19696, !12, i64 19697, !12, i64 19698, !12, i64 19699, !12, i64 19700, !12, i64 19701, !12, i64 19702, !71, i64 19704, !12, i64 19768, !12, i64 19769, !12, i64 19770, !10, i64 19772, !10, i64 19776, !10, i64 19780, !10, i64 19784, !10, i64 19788, !10, i64 19792, !23, i64 19796, !23, i64 19812, !10, i64 19828, !10, i64 19832, !10, i64 19836, !71, i64 19840, !71, i64 19904, !71, i64 19968, !71, i64 20032, !10, i64 20096, !10, i64 20100, !7, i64 20104, !7, i64 20112, !7, i64 20120, !14, i64 20128, !14, i64 20132, !12, i64 20136, !13, i64 20140, !13, i64 20148, !14, i64 20156, !12, i64 20160, !12, i64 20161, !12, i64 20162, !10, i64 20164, !10, i64 20168, !10, i64 20172, !72, i64 20176, !23, i64 20240, !10, i64 20256, !10, i64 20260, !14, i64 20264, !10, i64 20268, !10, i64 20272, !10, i64 20276, !10, i64 20280, !73, i64 20288, !8, i64 20304, !10, i64 20320, !74, i64 20328, !7, i64 20344, !10, i64 20352, !75, i64 20360, !76, i64 20376, !22, i64 20416, !38, i64 20432, !7, i64 20448, !78, i64 20456, !80, i64 20496, !81, i64 20512, !10, i64 20528, !10, i64 20532, !14, i64 20536, !14, i64 20540, !10, i64 20544, !10, i64 20548, !10, i64 20552, !14, i64 20556, !13, i64 20560, !82, i64 20568, !86, i64 24296, !87, i64 24320, !10, i64 24440, !10, i64 24444, !10, i64 24448, !10, i64 24452, !14, i64 24456, !14, i64 24460, !10, i64 24464, !36, i64 24468, !89, i64 24484, !23, i64 24532, !12, i64 24548, !14, i64 24552, !14, i64 24556, !12, i64 24560, !12, i64 24561, !14, i64 24564, !14, i64 24568, !14, i64 24572, !14, i64 24576, !15, i64 24580, !15, i64 24582, !15, i64 24584, !83, i64 24592, !16, i64 24608, !90, i64 24624, !92, i64 24728, !92, i64 24744, !10, i64 24760, !93, i64 24768, !7, i64 24824, !12, i64 24832, !14, i64 24836, !96, i64 24840, !97, i64 24856, !98, i64 24872, !99, i64 24888, !100, i64 24904, !10, i64 24920, !8, i64 24928, !12, i64 25016, !101, i64 25020, !7, i64 25024, !96, i64 25032, !7, i64 25048, !7, i64 25056, !14, i64 25064, !12, i64 25068, !10, i64 25072, !10, i64 25076, !10, i64 25080, !10, i64 25084, !96, i64 25088, !102, i64 25104, !8, i64 25128, !8, i64 25129, !8, i64 25130, !12, i64 25131, !8, i64 25132, !10, i64 25136, !103, i64 25140, !104, i64 25160, !106, i64 25200, !7, i64 25264, !8, i64 25272, !10, i64 25512, !10, i64 25516, !14, i64 25520, !10, i64 25524, !10, i64 25528, !10, i64 25532, !83, i64 25536}
!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, !15, i64 200, !12, i64 202, !12, i64 203, !12, i64 204, !12, i64 205, !12, i64 206, !12, i64 207, !12, i64 208, !14, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !13, i64 232, !8, i64 240, !8, i64 2904, !8, i64 3572, !7, i64 3640, !7, i64 3648, !13, i64 3656, !8, i64 3664, !14, i64 3672, !14, i64 3676, !46, i64 3680, !10, i64 3684, !12, i64 3688, !12, i64 3689, !12, i64 3690, !12, i64 3691, !10, i64 3692, !8, i64 3696, !12, i64 14352, !13, i64 14356, !8, i64 14364, !8, i64 14408, !8, i64 14448, !8, i64 14453, !8, i64 14458, !8, i64 14468, !8, i64 14478, !8, i64 14483, !8, i64 14488, !12, i64 14493, !8, i64 14496, !8, i64 14516, !8, i64 14536, !8, i64 14576, !14, i64 14596, !12, i64 14600, !12, i64 14601, !8, i64 14602, !12, i64 14603, !15, i64 14604, !30, i64 14608}
!46 = !{!"_ZTS16ImGuiMouseSource", !8, i64 0}
!47 = !{!"_ZTS15ImGuiPlatformIO", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !48, i64 184, !49, i64 200}
!48 = !{!"_ZTS8ImVectorI20ImGuiPlatformMonitorE", !10, i64 0, !10, i64 4, !7, i64 8}
!49 = !{!"_ZTS8ImVectorIP13ImGuiViewportE", !10, i64 0, !10, i64 4, !7, i64 8}
!50 = !{!"_ZTS10ImGuiStyle", !14, i64 0, !14, i64 4, !13, i64 8, !14, i64 16, !14, i64 20, !13, i64 24, !13, i64 32, !10, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56, !13, i64 60, !14, i64 68, !14, i64 72, !13, i64 76, !13, i64 84, !13, i64 92, !13, i64 100, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !14, i64 128, !14, i64 132, !14, i64 136, !14, i64 140, !14, i64 144, !14, i64 148, !14, i64 152, !10, i64 156, !13, i64 160, !13, i64 168, !14, i64 176, !13, i64 180, !13, i64 188, !13, i64 196, !13, i64 204, !14, i64 212, !14, i64 216, !12, i64 220, !12, i64 221, !12, i64 222, !14, i64 224, !14, i64 228, !8, i64 232, !14, i64 1112, !14, i64 1116, !14, i64 1120, !10, i64 1124, !10, i64 1128}
!51 = !{!"_ZTS20ImDrawListSharedData", !13, i64 0, !7, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !36, i64 28, !10, i64 44, !34, i64 48, !8, i64 64, !14, i64 448, !8, i64 452, !7, i64 520}
!52 = !{!"double", !8, i64 0}
!53 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !10, i64 0, !10, i64 4, !7, i64 8}
!54 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!55 = !{!"_ZTS16ImGuiInputSource", !8, i64 0}
!56 = !{!"_ZTS20ImGuiKeyRoutingTable", !8, i64 0, !57, i64 312, !57, i64 328}
!57 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!58 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !14, i64 8, !59, i64 16, !10, i64 24, !12, i64 28}
!59 = !{!"long long", !8, i64 0}
!60 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !23, i64 12, !23, i64 28, !23, i64 44}
!61 = !{!"_ZTS19ImGuiNextWindowData", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !13, i64 20, !13, i64 28, !13, i64 36, !13, i64 44, !13, i64 52, !10, i64 60, !12, i64 64, !12, i64 65, !23, i64 68, !7, i64 88, !7, i64 96, !14, i64 104, !10, i64 108, !10, i64 112, !11, i64 116, !13, i64 144}
!62 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !7, i64 8}
!63 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !7, i64 8}
!64 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !7, i64 8}
!65 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !7, i64 8}
!66 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!67 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!68 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!69 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !7, i64 8}
!70 = !{!"_ZTS20ImGuiPlatformMonitor", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !14, i64 32, !7, i64 40}
!71 = !{!"_ZTS16ImGuiNavItemData", !7, i64 0, !10, i64 8, !10, i64 12, !23, i64 16, !10, i64 32, !59, i64 40, !14, i64 48, !14, i64 52, !14, i64 56}
!72 = !{!"_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}
!73 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !7, i64 8}
!74 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!75 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!76 = !{!"_ZTS6ImPoolI10ImGuiTableE", !77, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!77 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !7, i64 8}
!78 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !79, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!79 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !7, i64 8}
!80 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !7, i64 8}
!81 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !7, i64 8}
!82 = !{!"_ZTS19ImGuiInputTextState", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !30, i64 24, !83, i64 40, !83, i64 56, !12, i64 72, !10, i64 76, !14, i64 80, !84, i64 84, !14, i64 3712, !12, i64 3716, !12, i64 3717, !12, i64 3718, !10, i64 3720}
!83 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !7, i64 8}
!84 = !{!"_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, !85, i64 32}
!85 = !{!"_ZTSN5ImStb12StbUndoStateE", !8, i64 0, !8, i64 1584, !15, i64 3582, !15, i64 3584, !10, i64 3588, !10, i64 3592}
!86 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !83, i64 8}
!87 = !{!"_ZTS6ImFont", !22, i64 0, !14, i64 16, !14, i64 20, !30, i64 24, !88, 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}
!88 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !7, i64 8}
!89 = !{!"_ZTS21ImGuiComboPreviewData", !23, i64 0, !13, i64 16, !13, i64 24, !13, i64 32, !14, i64 40, !10, i64 44}
!90 = !{!"_ZTS22ImGuiTypingSelectState", !91, i64 0, !8, i64 24, !10, i64 88, !10, i64 92, !14, i64 96, !12, i64 100}
!91 = !{!"_ZTS24ImGuiTypingSelectRequest", !10, i64 0, !10, i64 4, !7, i64 8, !12, i64 16, !12, i64 17, !8, i64 18}
!92 = !{!"_ZTS20ImGuiPlatformImeData", !12, i64 0, !13, i64 4, !14, i64 12}
!93 = !{!"_ZTS16ImGuiDockContext", !25, i64 0, !94, i64 16, !95, i64 32, !12, i64 48}
!94 = !{!"_ZTS8ImVectorI16ImGuiDockRequestE", !10, i64 0, !10, i64 4, !7, i64 8}
!95 = !{!"_ZTS8ImVectorI21ImGuiDockNodeSettingsE", !10, i64 0, !10, i64 4, !7, i64 8}
!96 = !{!"_ZTS15ImGuiTextBuffer", !83, i64 0}
!97 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !7, i64 8}
!98 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !83, i64 0}
!99 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !83, i64 0}
!100 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !7, i64 8}
!101 = !{!"_ZTS12ImGuiLogType", !8, i64 0}
!102 = !{!"_ZTS14ImGuiTextIndex", !65, i64 0, !10, i64 16}
!103 = !{!"_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}
!104 = !{!"_ZTS16ImGuiIDStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !105, i64 16, !12, i64 32, !14, i64 36}
!105 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !7, i64 8}
!106 = !{!"_ZTS19ImGuiDebugAllocInfo", !10, i64 0, !10, i64 4, !15, i64 8, !8, i64 12}
!107 = !{!50, !14, i64 64}
!108 = !{!50, !14, i64 84}
!109 = !{!14, !14, i64 0}
!110 = !{!44, !10, i64 19136}
!111 = !{i64 0, i64 4, !112, i64 4, i64 4, !112, i64 8, i64 4, !112, i64 12, i64 4, !109, i64 16, i64 4, !109, i64 20, i64 4, !109, i64 24, i64 4, !109, i64 28, i64 4, !109, i64 32, i64 4, !109, i64 36, i64 4, !109, i64 40, i64 4, !109, i64 44, i64 4, !109, i64 48, i64 4, !109, i64 52, i64 4, !109, i64 56, i64 4, !109}
!112 = !{!10, !10, i64 0}
!113 = !{!44, !10, i64 19640}
!114 = !{!44, !10, i64 16812}
!115 = !{!50, !14, i64 68}
!116 = !{!50, !14, i64 72}
!117 = !{!44, !7, i64 16712}
!118 = !{!6, !19, i64 408}
!119 = !{!6, !15, i64 414}
!120 = !{!6, !14, i64 232}
!121 = !{!44, !10, i64 19132}
!122 = !{!44, !10, i64 20552}
!123 = !{!44, !10, i64 19652}
!124 = !{!44, !55, i64 19676}
!125 = !{!12, !12, i64 0}
!126 = !{!44, !10, i64 16856}
!127 = !{!6, !14, i64 196}
!128 = !{!82, !8, i64 107}
!129 = !{!82, !10, i64 8}
!130 = !{!82, !7, i64 64}
!131 = !{!82, !10, i64 16}
!132 = !{!82, !12, i64 72}
!133 = !{!82, !7, i64 48}
!134 = !{!82, !7, i64 32}
!135 = !{!82, !10, i64 12}
!136 = !{!82, !14, i64 80}
!137 = !{!45, !12, i64 3688}
!138 = !{!82, !8, i64 96}
!139 = !{!45, !12, i64 89}
!140 = !{!44, !10, i64 19072}
!141 = !{!82, !10, i64 24}
!142 = !{!8, !8, i64 0}
!143 = !{!44, !7, i64 15992}
!144 = !{!87, !14, i64 20}
!145 = !{!87, !14, i64 108}
!146 = !{!87, !7, i64 64}
!147 = !{!87, !7, i64 56}
!148 = !{!149, !14, i64 4}
!149 = !{!"_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}
!150 = !{!87, !14, i64 16}
!151 = !{!82, !12, i64 3718}
!152 = !{!82, !10, i64 76}
!153 = !{!82, !10, i64 3720}
!154 = !{!44, !12, i64 16825}
!155 = !{!45, !14, i64 3656}
!156 = !{!23, !14, i64 0}
!157 = !{!50, !14, i64 60}
!158 = !{!45, !14, i64 3660}
!159 = !{!6, !14, i64 324}
!160 = !{!82, !12, i64 3717}
!161 = !{!15, !15, i64 0}
!162 = !{!45, !12, i64 3689}
!163 = !{!82, !10, i64 84}
!164 = !{!82, !10, i64 88}
!165 = !{!82, !10, i64 92}
!166 = !{!82, !12, i64 3716}
!167 = !{!45, !14, i64 232}
!168 = !{!45, !14, i64 236}
!169 = !{!45, !12, i64 3690}
!170 = !{!45, !12, i64 3691}
!171 = !{!45, !10, i64 14608}
!172 = distinct !{!172, !173}
!173 = !{!"llvm.loop.mustprogress"}
!174 = !{!44, !12, i64 16824}
!175 = !{!82, !10, i64 100}
!176 = !{!45, !10, i64 0}
!177 = !{!45, !10, i64 4}
!178 = !{!45, !12, i64 92}
!179 = !{!45, !7, i64 176}
!180 = distinct !{!180, !173}
!181 = !{!82, !10, i64 56}
!182 = !{!30, !7, i64 8}
!183 = !{!30, !10, i64 0}
!184 = !{!82, !10, i64 40}
!185 = !{!186, !7, i64 0}
!186 = !{!"_ZTS26ImGuiInputTextCallbackData", !7, i64 0, !10, i64 8, !10, i64 12, !7, i64 16, !15, i64 24, !187, i64 28, !7, i64 32, !10, i64 40, !10, i64 44, !12, i64 48, !10, i64 52, !10, i64 56, !10, i64 60}
!187 = !{!"_ZTS8ImGuiKey", !8, i64 0}
!188 = !{!186, !10, i64 8}
!189 = !{!186, !10, i64 12}
!190 = !{!186, !7, i64 16}
!191 = !{!186, !187, i64 28}
!192 = !{!186, !7, i64 32}
!193 = !{!186, !10, i64 40}
!194 = !{!186, !10, i64 44}
!195 = !{!186, !12, i64 48}
!196 = !{!186, !10, i64 52}
!197 = !{!186, !10, i64 56}
!198 = !{!186, !10, i64 60}
!199 = !{!44, !10, i64 24296}
!200 = !{!44, !7, i64 24312}
!201 = !{!44, !10, i64 24304}
!202 = !{!44, !10, i64 25532}
!203 = !{!23, !14, i64 4}
!204 = distinct !{!204, !173}
!205 = !{!13, !14, i64 0}
!206 = !{!13, !14, i64 4}
!207 = !{!36, !14, i64 12}
!208 = !{!36, !14, i64 4}
!209 = distinct !{!209, !173}
!210 = !{!6, !7, i64 736}
!211 = distinct !{!211, !173}
!212 = !{!45, !14, i64 16}
!213 = !{!82, !14, i64 3712}
!214 = !{!44, !12, i64 99}
!215 = !{!44, !12, i64 24728}
!216 = !{!44, !14, i64 24740}
!217 = !{!6, !7, i64 64}
!218 = !{!219, !10, i64 0}
!219 = !{!"_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}
!220 = !{!44, !10, i64 24760}
!221 = !{!44, !10, i64 19100}
!222 = !{!60, !10, i64 8}
!223 = !{!44, !10, i64 19128}
!224 = !{!44, !12, i64 25016}
!225 = !{!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