; LLVM IR from Adeon18/Shift :: Source/Graphics/UI/imgui (imgui_widgets)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) #4

declare noundef float @_ZN5ImGui13CalcItemWidthEv() #4

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

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

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

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

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

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

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

declare void @_ZN5ImGui13ClearActiveIDEv() #4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) #4

declare void @_ZN5ImGui14MarkItemEditedEj(i32 noundef) #4

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

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

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

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

declare void @_ZN5ImGui10BeginGroupEv() #4

declare void @_ZN5ImGui8EndGroupEv() #4

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

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

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

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

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

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

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

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

194:                                              ; preds = %192
  br label %197

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

196:                                              ; No predecessors!
  br label %197

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

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

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

208:                                              ; preds = %205
  br label %211

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

210:                                              ; No predecessors!
  br label %211

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

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

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

222:                                              ; preds = %219
  br label %225

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

224:                                              ; No predecessors!
  br label %225

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

237:                                              ; preds = %225
  call void @_ZN5ImGui10BeginGroupEv()
  br label %238

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

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

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

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

270:                                              ; preds = %256
  %271 = load ptr, ptr %22, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.ImGuiStyle, ptr %271, i32 0, i32 16
  %273 = getelementptr inbounds %struct.ImVec2, ptr %272, i32 0, i32 0
  %274 = load float, ptr %273, align 4, !tbaa !108
  %275 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %276 = load float, ptr %275, align 4, !tbaa !107
  %277 = fadd float %274, %276
  br label %279

278:                                              ; preds = %256
  br label %279

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

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

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

308:                                              ; preds = %297
  %309 = load ptr, ptr %20, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.ImGuiContext, ptr %309, i32 0, i32 83
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %36, ptr align 8 %310, i64 76, i1 false), !tbaa.struct !109
  %311 = load ptr, ptr %18, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.ImGuiWindow, ptr %311, i32 0, i32 68
  %313 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %312, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %313, ptr align 4 %37, i64 8, i1 false), !tbaa.struct !43
  %314 = load ptr, ptr %20, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.ImGuiContext, ptr %314, i32 0, i32 102
  %316 = load i32, ptr %315, align 8, !tbaa !110
  %317 = load i32, ptr %25, align 4, !tbaa !9
  %318 = icmp eq i32 %316, %317
  br i1 %318, label %319, label %332

319:                                              ; preds = %308
  %320 = load ptr, ptr %20, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.ImGuiContext, ptr %320, i32 0, i32 105
  %322 = load i32, ptr %321, align 4, !tbaa !111
  %323 = and i32 %322, 8
  %324 = icmp ne i32 %323, 0
  br i1 %324, label %325, label %332

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

329:                                              ; preds = %325
  %330 = load ptr, ptr %20, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.ImGuiContext, ptr %330, i32 0, i32 102
  store i32 0, ptr %331, align 8, !tbaa !110
  br label %332

332:                                              ; preds = %329, %325, %319, %308
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #14
  %333 = load ptr, ptr %20, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.ImGuiContext, ptr %333, i32 0, i32 102
  %335 = load i32, ptr %334, align 8, !tbaa !110
  store i32 %335, ptr %38, align 4, !tbaa !9
  %336 = load ptr, ptr %20, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.ImGuiContext, ptr %336, i32 0, i32 48
  %338 = load i32, ptr %337, align 4, !tbaa !112
  %339 = load i32, ptr %25, align 4, !tbaa !9
  %340 = icmp eq i32 %338, %339
  br i1 %340, label %341, label %344

341:                                              ; preds = %332
  %342 = load ptr, ptr %20, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.ImGuiContext, ptr %342, i32 0, i32 102
  store i32 0, ptr %343, align 8, !tbaa !110
  br label %344

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

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

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

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

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

397:                                              ; preds = %395
  br label %412

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

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

409:                                              ; preds = %406
  store i1 false, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3631

410:                                              ; preds = %406
  br label %411

411:                                              ; preds = %410, %398
  br label %412

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

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

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

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

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

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

459:                                              ; preds = %456
  br label %462

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

461:                                              ; No predecessors!
  br label %462

462:                                              ; preds = %461, %459
  br label %463

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

469:                                              ; preds = %463
  %470 = load ptr, ptr %20, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.ImGuiContext, ptr %470, i32 0, i32 102
  %472 = load i32, ptr %471, align 8, !tbaa !110
  %473 = load i32, ptr %25, align 4, !tbaa !9
  %474 = icmp eq i32 %472, %473
  br i1 %474, label %475, label %488

475:                                              ; preds = %469
  %476 = load ptr, ptr %20, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.ImGuiContext, ptr %476, i32 0, i32 105
  %478 = load i32, ptr %477, align 4, !tbaa !111
  %479 = and i32 %478, 1
  %480 = icmp ne i32 %479, 0
  br i1 %480, label %486, label %481

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

486:                                              ; preds = %481, %475
  %487 = phi i1 [ true, %475 ], [ %485, %481 ]
  br label %488

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

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

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

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

506:                                              ; preds = %501
  %507 = load ptr, ptr %43, align 8, !tbaa !5
  %508 = icmp ne ptr %507, null
  br i1 %508, label %509, label %521

509:                                              ; preds = %506
  %510 = load ptr, ptr %20, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.ImGuiContext, ptr %510, i32 0, i32 48
  %512 = load i32, ptr %511, align 4, !tbaa !112
  %513 = icmp eq i32 %512, 0
  br i1 %513, label %514, label %521

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

521:                                              ; preds = %514, %509, %506, %501
  %522 = phi i1 [ false, %509 ], [ false, %506 ], [ false, %501 ], [ %520, %514 ]
  %523 = zext i1 %522 to i8
  store i8 %523, ptr %50, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #14
  %524 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %525 = trunc i8 %524 to i1
  br i1 %525, label %526, label %536

526:                                              ; preds = %521
  %527 = load ptr, ptr %43, align 8, !tbaa !5
  %528 = icmp ne ptr %527, null
  br i1 %528, label %529, label %536

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

536:                                              ; preds = %529, %526, %521
  %537 = phi i1 [ false, %526 ], [ false, %521 ], [ %535, %529 ]
  %538 = zext i1 %537 to i8
  store i8 %538, ptr %51, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #14
  store i8 0, ptr %52, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #14
  store i8 0, ptr %53, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #14
  %539 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %540 = trunc i8 %539 to i1
  br i1 %540, label %541, label %546

541:                                              ; preds = %536
  %542 = load ptr, ptr %34, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.ImGuiWindow, ptr %542, i32 0, i32 25
  %544 = getelementptr inbounds %struct.ImVec2, ptr %543, i32 0, i32 1
  %545 = load float, ptr %544, align 4, !tbaa !123
  br label %547

546:                                              ; preds = %536
  br label %547

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

551:                                              ; preds = %547
  %552 = load ptr, ptr %43, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %552, i32 0, i32 16
  %554 = load i8, ptr %553, align 4, !tbaa !124, !range !40, !noundef !41
  %555 = trunc i8 %554 to i1
  br label %556

556:                                              ; preds = %551, %547
  %557 = phi i1 [ false, %547 ], [ %555, %551 ]
  %558 = zext i1 %557 to i8
  store i8 %558, ptr %55, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #14
  %559 = load ptr, ptr %43, align 8, !tbaa !5
  %560 = icmp ne ptr %559, null
  br i1 %560, label %561, label %572

561:                                              ; preds = %556
  %562 = load ptr, ptr %43, align 8, !tbaa !5
  %563 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %562, i32 0, i32 10
  %564 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %563, i32 0, i32 8
  %565 = load i8, ptr %564, align 1, !tbaa !125
  %566 = zext i8 %565 to i32
  %567 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %568 = trunc i8 %567 to i1
  %569 = xor i1 %568, true
  %570 = zext i1 %569 to i32
  %571 = icmp ne i32 %566, %570
  br label %572

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

577:                                              ; preds = %572
  %578 = load i8, ptr %50, align 1, !tbaa !42, !range !40, !noundef !41
  %579 = trunc i8 %578 to i1
  br i1 %579, label %583, label %580

580:                                              ; preds = %577
  %581 = load i8, ptr %48, align 1, !tbaa !42, !range !40, !noundef !41
  %582 = trunc i8 %581 to i1
  br label %583

583:                                              ; preds = %580, %577, %572
  %584 = phi i1 [ true, %577 ], [ true, %572 ], [ %582, %580 ]
  %585 = zext i1 %584 to i8
  store i8 %585, ptr %57, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #14
  %586 = load i8, ptr %57, align 1, !tbaa !42, !range !40, !noundef !41
  %587 = trunc i8 %586 to i1
  br i1 %587, label %591, label %588

588:                                              ; preds = %583
  %589 = load i8, ptr %51, align 1, !tbaa !42, !range !40, !noundef !41
  %590 = trunc i8 %589 to i1
  br label %591

591:                                              ; preds = %588, %583
  %592 = phi i1 [ true, %583 ], [ %590, %588 ]
  %593 = zext i1 %592 to i8
  store i8 %593, ptr %58, align 1, !tbaa !42
  %594 = load i8, ptr %58, align 1, !tbaa !42, !range !40, !noundef !41
  %595 = trunc i8 %594 to i1
  br i1 %595, label %596, label %602

596:                                              ; preds = %591
  %597 = load ptr, ptr %20, align 8, !tbaa !5
  %598 = getelementptr inbounds %struct.ImGuiContext, ptr %597, i32 0, i32 48
  %599 = load i32, ptr %598, align 4, !tbaa !112
  %600 = load i32, ptr %25, align 4, !tbaa !9
  %601 = icmp ne i32 %599, %600
  br i1 %601, label %608, label %602

602:                                              ; preds = %596, %591
  %603 = load i8, ptr %56, align 1, !tbaa !42, !range !40, !noundef !41
  %604 = trunc i8 %603 to i1
  br i1 %604, label %608, label %605

605:                                              ; preds = %602
  %606 = load i8, ptr %55, align 1, !tbaa !42, !range !40, !noundef !41
  %607 = trunc i8 %606 to i1
  br i1 %607, label %608, label %778

608:                                              ; preds = %605, %602, %596
  %609 = load ptr, ptr %20, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.ImGuiContext, ptr %609, i32 0, i32 196
  store ptr %610, ptr %43, align 8, !tbaa !5
  %611 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %611)
  %612 = load ptr, ptr %43, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %612, i32 0, i32 16
  store i8 0, ptr %613, align 4, !tbaa !124
  %614 = load ptr, ptr %43, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %614, i32 0, i32 1
  %616 = load i32, ptr %615, align 8, !tbaa !126
  call void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef %616)
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #14
  %617 = load ptr, ptr %12, align 8, !tbaa !5
  %618 = call i64 @strlen(ptr noundef %617) #16
  %619 = trunc i64 %618 to i32
  store i32 %619, ptr %59, align 4, !tbaa !9
  %620 = load i8, ptr %55, align 1, !tbaa !42, !range !40, !noundef !41
  %621 = trunc i8 %620 to i1
  br i1 %621, label %635, label %622

622:                                              ; preds = %608
  %623 = load ptr, ptr %43, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %623, i32 0, i32 6
  %625 = load i32, ptr %59, align 4, !tbaa !9
  %626 = add nsw i32 %625, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %624, i32 noundef %626)
  %627 = load ptr, ptr %43, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %627, i32 0, i32 6
  %629 = getelementptr inbounds %struct.ImVector.31, ptr %628, i32 0, i32 2
  %630 = load ptr, ptr %629, align 8, !tbaa !127
  %631 = load ptr, ptr %12, align 8, !tbaa !5
  %632 = load i32, ptr %59, align 4, !tbaa !9
  %633 = add nsw i32 %632, 1
  %634 = sext i32 %633 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %630, ptr align 1 %631, i64 %634, i1 false)
  br label %635

635:                                              ; preds = %622, %608
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #14
  %636 = load ptr, ptr %43, align 8, !tbaa !5
  %637 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %636, i32 0, i32 1
  %638 = load i32, ptr %637, align 8, !tbaa !126
  %639 = load i32, ptr %25, align 4, !tbaa !9
  %640 = icmp eq i32 %638, %639
  br i1 %640, label %641, label %648

641:                                              ; preds = %635
  %642 = load i8, ptr %56, align 1, !tbaa !42, !range !40, !noundef !41
  %643 = trunc i8 %642 to i1
  br i1 %643, label %648, label %644

644:                                              ; preds = %641
  %645 = load i8, ptr %55, align 1, !tbaa !42, !range !40, !noundef !41
  %646 = trunc i8 %645 to i1
  %647 = xor i1 %646, true
  br label %648

648:                                              ; preds = %644, %641, %635
  %649 = phi i1 [ false, %641 ], [ false, %635 ], [ %647, %644 ]
  %650 = zext i1 %649 to i8
  store i8 %650, ptr %60, align 1, !tbaa !42
  %651 = load i8, ptr %60, align 1, !tbaa !42, !range !40, !noundef !41
  %652 = trunc i8 %651 to i1
  br i1 %652, label %653, label %675

653:                                              ; preds = %648
  %654 = load ptr, ptr %43, align 8, !tbaa !5
  %655 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %654, i32 0, i32 3
  %656 = load i32, ptr %655, align 8, !tbaa !128
  %657 = load i32, ptr %59, align 4, !tbaa !9
  %658 = icmp ne i32 %656, %657
  br i1 %658, label %674, label %659

659:                                              ; preds = %653
  %660 = load ptr, ptr %43, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %660, i32 0, i32 7
  %662 = load i8, ptr %661, align 8, !tbaa !129, !range !40, !noundef !41
  %663 = trunc i8 %662 to i1
  br i1 %663, label %664, label %675

664:                                              ; preds = %659
  %665 = load ptr, ptr %43, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %665, i32 0, i32 5
  %667 = getelementptr inbounds %struct.ImVector.31, ptr %666, i32 0, i32 2
  %668 = load ptr, ptr %667, align 8, !tbaa !130
  %669 = load ptr, ptr %12, align 8, !tbaa !5
  %670 = load i32, ptr %59, align 4, !tbaa !9
  %671 = sext i32 %670 to i64
  %672 = call i32 @strncmp(ptr noundef %668, ptr noundef %669, i64 noundef %671) #16
  %673 = icmp ne i32 %672, 0
  br i1 %673, label %674, label %675

674:                                              ; preds = %664, %653
  store i8 0, ptr %60, align 1, !tbaa !42
  br label %675

675:                                              ; preds = %674, %664, %659, %648
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #14
  store ptr null, ptr %61, align 8, !tbaa !5
  %676 = load i32, ptr %25, align 4, !tbaa !9
  %677 = load ptr, ptr %43, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %677, i32 0, i32 1
  store i32 %676, ptr %678, align 8, !tbaa !126
  %679 = load ptr, ptr %43, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %679, i32 0, i32 4
  %681 = load i32, ptr %13, align 4, !tbaa !9
  %682 = add nsw i32 %681, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %680, i32 noundef %682)
  %683 = load ptr, ptr %43, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %683, i32 0, i32 5
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %684, i32 noundef 0)
  %685 = load ptr, ptr %43, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %685, i32 0, i32 7
  store i8 0, ptr %686, align 8, !tbaa !129
  %687 = load ptr, ptr %43, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %687, i32 0, i32 4
  %689 = getelementptr inbounds %struct.ImVector.5, ptr %688, i32 0, i32 2
  %690 = load ptr, ptr %689, align 8, !tbaa !131
  %691 = load i32, ptr %13, align 4, !tbaa !9
  %692 = load ptr, ptr %12, align 8, !tbaa !5
  %693 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %690, i32 noundef %691, ptr noundef %692, ptr noundef null, ptr noundef %61)
  %694 = load ptr, ptr %43, align 8, !tbaa !5
  %695 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %694, i32 0, i32 2
  store i32 %693, ptr %695, align 4, !tbaa !132
  %696 = load ptr, ptr %61, align 8, !tbaa !5
  %697 = load ptr, ptr %12, align 8, !tbaa !5
  %698 = ptrtoint ptr %696 to i64
  %699 = ptrtoint ptr %697 to i64
  %700 = sub i64 %698, %699
  %701 = trunc i64 %700 to i32
  %702 = load ptr, ptr %43, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %702, i32 0, i32 3
  store i32 %701, ptr %703, align 8, !tbaa !128
  %704 = load i8, ptr %60, align 1, !tbaa !42, !range !40, !noundef !41
  %705 = trunc i8 %704 to i1
  br i1 %705, label %706, label %708

706:                                              ; preds = %675
  %707 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %707)
  br label %717

708:                                              ; preds = %675
  %709 = load ptr, ptr %43, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %709, i32 0, i32 9
  store float 0.000000e+00, ptr %710, align 8, !tbaa !133
  %711 = load ptr, ptr %43, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %711, i32 0, i32 10
  %713 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %714 = trunc i8 %713 to i1
  %715 = xor i1 %714, true
  %716 = zext i1 %715 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef %712, i32 noundef %716)
  br label %717

717:                                              ; preds = %708, %706
  %718 = load i8, ptr %55, align 1, !tbaa !42, !range !40, !noundef !41
  %719 = trunc i8 %718 to i1
  br i1 %719, label %720, label %737

720:                                              ; preds = %717
  %721 = load ptr, ptr %43, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %721, i32 0, i32 17
  %723 = load i32, ptr %722, align 8, !tbaa !134
  %724 = load ptr, ptr %43, align 8, !tbaa !5
  %725 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %724, i32 0, i32 10
  %726 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %725, i32 0, i32 1
  store i32 %723, ptr %726, align 4, !tbaa !135
  %727 = load ptr, ptr %43, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %727, i32 0, i32 18
  %729 = load i32, ptr %728, align 4, !tbaa !136
  %730 = load ptr, ptr %43, align 8, !tbaa !5
  %731 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %730, i32 0, i32 10
  %732 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %731, i32 0, i32 2
  store i32 %729, ptr %732, align 4, !tbaa !137
  %733 = load ptr, ptr %43, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %733, i32 0, i32 10
  %735 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %734, i32 0, i32 0
  store i32 %729, ptr %735, align 4, !tbaa !138
  %736 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %736)
  br label %769

737:                                              ; preds = %717
  %738 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %739 = trunc i8 %738 to i1
  br i1 %739, label %768, label %740

740:                                              ; preds = %737
  %741 = load i32, ptr %15, align 4, !tbaa !9
  %742 = and i32 %741, 16
  %743 = icmp ne i32 %742, 0
  br i1 %743, label %744, label %745

744:                                              ; preds = %740
  store i8 1, ptr %53, align 1, !tbaa !42
  br label %745

745:                                              ; preds = %744, %740
  %746 = load i8, ptr %48, align 1, !tbaa !42, !range !40, !noundef !41
  %747 = trunc i8 %746 to i1
  br i1 %747, label %748, label %758

748:                                              ; preds = %745
  %749 = load i8, ptr %60, align 1, !tbaa !42, !range !40, !noundef !41
  %750 = trunc i8 %749 to i1
  br i1 %750, label %751, label %757

751:                                              ; preds = %748
  %752 = load ptr, ptr %20, align 8, !tbaa !5
  %753 = getelementptr inbounds %struct.ImGuiContext, ptr %752, i32 0, i32 105
  %754 = load i32, ptr %753, align 4, !tbaa !111
  %755 = and i32 %754, 4
  %756 = icmp ne i32 %755, 0
  br i1 %756, label %758, label %757

757:                                              ; preds = %751, %748
  store i8 1, ptr %53, align 1, !tbaa !42
  br label %758

758:                                              ; preds = %757, %751, %745
  %759 = load i8, ptr %49, align 1, !tbaa !42, !range !40, !noundef !41
  %760 = trunc i8 %759 to i1
  br i1 %760, label %761, label %767

761:                                              ; preds = %758
  %762 = load ptr, ptr %21, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.ImGuiIO, ptr %762, i32 0, i32 64
  %764 = load i8, ptr %763, align 4, !tbaa !139, !range !40, !noundef !41
  %765 = trunc i8 %764 to i1
  br i1 %765, label %766, label %767

766:                                              ; preds = %761
  store i8 1, ptr %53, align 1, !tbaa !42
  br label %767

767:                                              ; preds = %766, %761, %758
  br label %768

768:                                              ; preds = %767, %737
  br label %769

769:                                              ; preds = %768, %720
  %770 = load i32, ptr %15, align 4, !tbaa !9
  %771 = and i32 %770, 8192
  %772 = icmp ne i32 %771, 0
  br i1 %772, label %773, label %777

773:                                              ; preds = %769
  %774 = load ptr, ptr %43, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %774, i32 0, i32 10
  %776 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %775, i32 0, i32 3
  store i8 1, ptr %776, align 4, !tbaa !140
  br label %777

777:                                              ; preds = %773, %769
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #14
  br label %778

778:                                              ; preds = %777, %605
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #14
  %779 = load ptr, ptr %21, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.ImGuiIO, ptr %779, i32 0, i32 14
  %781 = load i8, ptr %780, align 1, !tbaa !141, !range !40, !noundef !41
  %782 = trunc i8 %781 to i1
  %783 = zext i1 %782 to i8
  store i8 %783, ptr %62, align 1, !tbaa !42
  %784 = load ptr, ptr %20, align 8, !tbaa !5
  %785 = getelementptr inbounds %struct.ImGuiContext, ptr %784, i32 0, i32 48
  %786 = load i32, ptr %785, align 4, !tbaa !112
  %787 = load i32, ptr %25, align 4, !tbaa !9
  %788 = icmp ne i32 %786, %787
  br i1 %788, label %789, label %812

789:                                              ; preds = %778
  %790 = load i8, ptr %57, align 1, !tbaa !42, !range !40, !noundef !41
  %791 = trunc i8 %790 to i1
  br i1 %791, label %792, label %812

792:                                              ; preds = %789
  %793 = load ptr, ptr %43, align 8, !tbaa !5
  %794 = icmp ne ptr %793, null
  br i1 %794, label %795, label %801

795:                                              ; preds = %792
  %796 = load ptr, ptr %43, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %796, i32 0, i32 1
  %798 = load i32, ptr %797, align 8, !tbaa !126
  %799 = load i32, ptr %25, align 4, !tbaa !9
  %800 = icmp eq i32 %798, %799
  br label %801

801:                                              ; preds = %795, %792
  %802 = phi i1 [ false, %792 ], [ %800, %795 ]
  br i1 %802, label %803, label %804

803:                                              ; preds = %801
  br label %806

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

805:                                              ; No predecessors!
  br label %806

806:                                              ; preds = %805, %803
  %807 = load i32, ptr %25, align 4, !tbaa !9
  %808 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %807, ptr noundef %808)
  %809 = load i32, ptr %25, align 4, !tbaa !9
  %810 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %809, ptr noundef %810)
  %811 = load ptr, ptr %18, align 8, !tbaa !5
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef %811, i32 noundef 0)
  br label %812

812:                                              ; preds = %806, %789, %778
  %813 = load ptr, ptr %20, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.ImGuiContext, ptr %813, i32 0, i32 48
  %815 = load i32, ptr %814, align 4, !tbaa !112
  %816 = load i32, ptr %25, align 4, !tbaa !9
  %817 = icmp eq i32 %815, %816
  br i1 %817, label %818, label %855

818:                                              ; preds = %812
  %819 = load i8, ptr %49, align 1, !tbaa !42, !range !40, !noundef !41
  %820 = trunc i8 %819 to i1
  br i1 %820, label %821, label %823

821:                                              ; preds = %818
  %822 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 655, i32 noundef %822, i32 noundef 0)
  br label %823

823:                                              ; preds = %821, %818
  %824 = load ptr, ptr %20, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.ImGuiContext, ptr %824, i32 0, i32 74
  %826 = load i32, ptr %825, align 8, !tbaa !142
  %827 = or i32 %826, 3
  store i32 %827, ptr %825, align 8, !tbaa !142
  %828 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %829 = trunc i8 %828 to i1
  br i1 %829, label %834, label %830

830:                                              ; preds = %823
  %831 = load i32, ptr %15, align 4, !tbaa !9
  %832 = and i32 %831, 128
  %833 = icmp ne i32 %832, 0
  br i1 %833, label %834, label %839

834:                                              ; preds = %830, %823
  %835 = load ptr, ptr %20, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.ImGuiContext, ptr %835, i32 0, i32 74
  %837 = load i32, ptr %836, align 8, !tbaa !142
  %838 = or i32 %837, 12
  store i32 %838, ptr %836, align 8, !tbaa !142
  br label %839

839:                                              ; preds = %834, %830
  %840 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 525, i32 noundef %840, i32 noundef 0)
  %841 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 627, i32 noundef %841, i32 noundef 0)
  %842 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 519, i32 noundef %842, i32 noundef 0)
  %843 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 520, i32 noundef %843, i32 noundef 0)
  %844 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %845 = trunc i8 %844 to i1
  br i1 %845, label %846, label %849

846:                                              ; preds = %839
  %847 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 517, i32 noundef %847, i32 noundef 0)
  %848 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 518, i32 noundef %848, i32 noundef 0)
  br label %849

849:                                              ; preds = %846, %839
  %850 = load i8, ptr %62, align 1, !tbaa !42, !range !40, !noundef !41
  %851 = trunc i8 %850 to i1
  br i1 %851, label %852, label %854

852:                                              ; preds = %849
  %853 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 16384, i32 noundef %853, i32 noundef 0)
  br label %854

854:                                              ; preds = %852, %849
  br label %855

855:                                              ; preds = %854, %812
  %856 = load ptr, ptr %20, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.ImGuiContext, ptr %856, i32 0, i32 48
  %858 = load i32, ptr %857, align 4, !tbaa !112
  %859 = load i32, ptr %25, align 4, !tbaa !9
  %860 = icmp eq i32 %858, %859
  br i1 %860, label %861, label %865

861:                                              ; preds = %855
  %862 = load ptr, ptr %43, align 8, !tbaa !5
  %863 = icmp eq ptr %862, null
  br i1 %863, label %864, label %865

864:                                              ; preds = %861
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %865

865:                                              ; preds = %864, %861, %855
  %866 = load ptr, ptr %20, align 8, !tbaa !5
  %867 = getelementptr inbounds %struct.ImGuiContext, ptr %866, i32 0, i32 48
  %868 = load i32, ptr %867, align 4, !tbaa !112
  %869 = load i32, ptr %25, align 4, !tbaa !9
  %870 = icmp eq i32 %868, %869
  br i1 %870, label %871, label %884

871:                                              ; preds = %865
  %872 = load ptr, ptr %21, align 8, !tbaa !5
  %873 = getelementptr inbounds %struct.ImGuiIO, ptr %872, i32 0, i32 74
  %874 = getelementptr inbounds [5 x i8], ptr %873, i64 0, i64 0
  %875 = load i8, ptr %874, align 8, !tbaa !42, !range !40, !noundef !41
  %876 = trunc i8 %875 to i1
  br i1 %876, label %877, label %884

877:                                              ; preds = %871
  %878 = load i8, ptr %58, align 1, !tbaa !42, !range !40, !noundef !41
  %879 = trunc i8 %878 to i1
  br i1 %879, label %884, label %880

880:                                              ; preds = %877
  %881 = load i8, ptr %57, align 1, !tbaa !42, !range !40, !noundef !41
  %882 = trunc i8 %881 to i1
  br i1 %882, label %884, label %883

883:                                              ; preds = %880
  store i8 1, ptr %52, align 1, !tbaa !42
  br label %884

884:                                              ; preds = %883, %880, %877, %871, %865
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #14
  %885 = load ptr, ptr %20, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.ImGuiContext, ptr %885, i32 0, i32 48
  %887 = load i32, ptr %886, align 4, !tbaa !112
  %888 = load i32, ptr %25, align 4, !tbaa !9
  %889 = icmp eq i32 %887, %888
  br i1 %889, label %898, label %890

890:                                              ; preds = %884
  %891 = load ptr, ptr %43, align 8, !tbaa !5
  %892 = icmp ne ptr %891, null
  br i1 %892, label %893, label %896

893:                                              ; preds = %890
  %894 = load i8, ptr %51, align 1, !tbaa !42, !range !40, !noundef !41
  %895 = trunc i8 %894 to i1
  br label %896

896:                                              ; preds = %893, %890
  %897 = phi i1 [ false, %890 ], [ %895, %893 ]
  br label %898

898:                                              ; preds = %896, %884
  %899 = phi i1 [ true, %884 ], [ %897, %896 ]
  %900 = zext i1 %899 to i8
  store i8 %900, ptr %63, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #14
  %901 = load ptr, ptr %43, align 8, !tbaa !5
  %902 = icmp ne ptr %901, null
  br i1 %902, label %903, label %912

903:                                              ; preds = %898
  %904 = load ptr, ptr %43, align 8, !tbaa !5
  %905 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %904)
  br i1 %905, label %909, label %906

906:                                              ; preds = %903
  %907 = load i8, ptr %53, align 1, !tbaa !42, !range !40, !noundef !41
  %908 = trunc i8 %907 to i1
  br i1 %908, label %909, label %912

909:                                              ; preds = %906, %903
  %910 = load i8, ptr %63, align 1, !tbaa !42, !range !40, !noundef !41
  %911 = trunc i8 %910 to i1
  br label %912

912:                                              ; preds = %909, %906, %898
  %913 = phi i1 [ false, %906 ], [ false, %898 ], [ %911, %909 ]
  %914 = zext i1 %913 to i8
  store i8 %914, ptr %64, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #14
  store i8 0, ptr %65, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #14
  store i8 0, ptr %66, align 1, !tbaa !42
  %915 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %916 = trunc i8 %915 to i1
  br i1 %916, label %917, label %961

917:                                              ; preds = %912
  %918 = load ptr, ptr %43, align 8, !tbaa !5
  %919 = icmp ne ptr %918, null
  br i1 %919, label %920, label %961

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

923:                                              ; preds = %920
  %924 = load i8, ptr %64, align 1, !tbaa !42, !range !40, !noundef !41
  %925 = trunc i8 %924 to i1
  br i1 %925, label %926, label %961

926:                                              ; preds = %923, %920
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #14
  store ptr null, ptr %67, align 8, !tbaa !5
  %927 = load ptr, ptr %43, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %927, i32 0, i32 4
  %929 = load i32, ptr %13, align 4, !tbaa !9
  %930 = add nsw i32 %929, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %928, i32 noundef %930)
  %931 = load ptr, ptr %43, align 8, !tbaa !5
  %932 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %931, i32 0, i32 4
  %933 = getelementptr inbounds %struct.ImVector.5, ptr %932, i32 0, i32 2
  %934 = load ptr, ptr %933, align 8, !tbaa !131
  %935 = load ptr, ptr %43, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %935, i32 0, i32 4
  %937 = getelementptr inbounds %struct.ImVector.5, ptr %936, i32 0, i32 0
  %938 = load i32, ptr %937, align 8, !tbaa !143
  %939 = load ptr, ptr %12, align 8, !tbaa !5
  %940 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %934, i32 noundef %938, ptr noundef %939, ptr noundef null, ptr noundef %67)
  %941 = load ptr, ptr %43, align 8, !tbaa !5
  %942 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %941, i32 0, i32 2
  store i32 %940, ptr %942, align 4, !tbaa !132
  %943 = load ptr, ptr %67, align 8, !tbaa !5
  %944 = load ptr, ptr %12, align 8, !tbaa !5
  %945 = ptrtoint ptr %943 to i64
  %946 = ptrtoint ptr %944 to i64
  %947 = sub i64 %945, %946
  %948 = trunc i64 %947 to i32
  %949 = load ptr, ptr %43, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %949, i32 0, i32 3
  store i32 %948, ptr %950, align 8, !tbaa !128
  %951 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %951)
  %952 = load ptr, ptr %43, align 8, !tbaa !5
  %953 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %952)
  %954 = zext i1 %953 to i32
  %955 = load i8, ptr %64, align 1, !tbaa !42, !range !40, !noundef !41
  %956 = trunc i8 %955 to i1
  %957 = zext i1 %956 to i32
  %958 = and i32 %957, %954
  %959 = icmp ne i32 %958, 0
  %960 = zext i1 %959 to i8
  store i8 %960, ptr %64, align 1, !tbaa !42
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #14
  br label %961

961:                                              ; preds = %926, %923, %917, %912
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #14
  %962 = load i8, ptr %63, align 1, !tbaa !42, !range !40, !noundef !41
  %963 = trunc i8 %962 to i1
  br i1 %963, label %973, label %964

964:                                              ; preds = %961
  %965 = load i8, ptr %64, align 1, !tbaa !42, !range !40, !noundef !41
  %966 = trunc i8 %965 to i1
  br i1 %966, label %973, label %967

967:                                              ; preds = %964
  %968 = load ptr, ptr %20, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.ImGuiContext, ptr %968, i32 0, i32 48
  %970 = load i32, ptr %969, align 4, !tbaa !112
  %971 = load i32, ptr %25, align 4, !tbaa !9
  %972 = icmp eq i32 %970, %971
  br i1 %972, label %973, label %984

973:                                              ; preds = %967, %964, %961
  %974 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %975 = trunc i8 %974 to i1
  br i1 %975, label %984, label %976

976:                                              ; preds = %973
  %977 = load ptr, ptr %43, align 8, !tbaa !5
  %978 = icmp ne ptr %977, null
  br i1 %978, label %979, label %984

979:                                              ; preds = %976
  %980 = load ptr, ptr %43, align 8, !tbaa !5
  %981 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %980, i32 0, i32 7
  %982 = load i8, ptr %981, align 8, !tbaa !129, !range !40, !noundef !41
  %983 = trunc i8 %982 to i1
  br label %984

984:                                              ; preds = %979, %976, %973, %967
  %985 = phi i1 [ false, %976 ], [ false, %973 ], [ false, %967 ], [ %983, %979 ]
  %986 = zext i1 %985 to i8
  store i8 %986, ptr %68, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #14
  %987 = load ptr, ptr %11, align 8, !tbaa !5
  %988 = icmp ne ptr %987, null
  br i1 %988, label %989, label %1005

989:                                              ; preds = %984
  %990 = load i8, ptr %68, align 1, !tbaa !42, !range !40, !noundef !41
  %991 = trunc i8 %990 to i1
  br i1 %991, label %992, label %997

992:                                              ; preds = %989
  %993 = load ptr, ptr %43, align 8, !tbaa !5
  %994 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %993, i32 0, i32 5
  %995 = getelementptr inbounds %struct.ImVector.31, ptr %994, i32 0, i32 2
  %996 = load ptr, ptr %995, align 8, !tbaa !130
  br label %999

997:                                              ; preds = %989
  %998 = load ptr, ptr %12, align 8, !tbaa !5
  br label %999

999:                                              ; preds = %997, %992
  %1000 = phi ptr [ %996, %992 ], [ %998, %997 ]
  %1001 = getelementptr inbounds i8, ptr %1000, i64 0
  %1002 = load i8, ptr %1001, align 1, !tbaa !144
  %1003 = sext i8 %1002 to i32
  %1004 = icmp eq i32 %1003, 0
  br label %1005

1005:                                             ; preds = %999, %984
  %1006 = phi i1 [ false, %984 ], [ %1004, %999 ]
  %1007 = zext i1 %1006 to i8
  store i8 %1007, ptr %69, align 1, !tbaa !42
  %1008 = load i8, ptr %45, align 1, !tbaa !42, !range !40, !noundef !41
  %1009 = trunc i8 %1008 to i1
  br i1 %1009, label %1010, label %1081

1010:                                             ; preds = %1005
  %1011 = load i8, ptr %69, align 1, !tbaa !42, !range !40, !noundef !41
  %1012 = trunc i8 %1011 to i1
  br i1 %1012, label %1081, label %1013

1013:                                             ; preds = %1010
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #14
  %1014 = load ptr, ptr %20, align 8, !tbaa !5
  %1015 = getelementptr inbounds %struct.ImGuiContext, ptr %1014, i32 0, i32 4
  %1016 = load ptr, ptr %1015, align 8, !tbaa !145
  %1017 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118) %1016, i16 noundef zeroext 42)
  store ptr %1017, ptr %70, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #14
  %1018 = load ptr, ptr %20, align 8, !tbaa !5
  %1019 = getelementptr inbounds %struct.ImGuiContext, ptr %1018, i32 0, i32 198
  store ptr %1019, ptr %71, align 8, !tbaa !5
  %1020 = load ptr, ptr %20, align 8, !tbaa !5
  %1021 = getelementptr inbounds %struct.ImGuiContext, ptr %1020, i32 0, i32 4
  %1022 = load ptr, ptr %1021, align 8, !tbaa !145
  %1023 = getelementptr inbounds %struct.ImFont, ptr %1022, i32 0, i32 2
  %1024 = load float, ptr %1023, align 4, !tbaa !146
  %1025 = load ptr, ptr %71, align 8, !tbaa !5
  %1026 = getelementptr inbounds %struct.ImFont, ptr %1025, i32 0, i32 2
  store float %1024, ptr %1026, align 4, !tbaa !146
  %1027 = load ptr, ptr %20, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.ImGuiContext, ptr %1027, i32 0, i32 4
  %1029 = load ptr, ptr %1028, align 8, !tbaa !145
  %1030 = getelementptr inbounds %struct.ImFont, ptr %1029, i32 0, i32 16
  %1031 = load float, ptr %1030, align 4, !tbaa !147
  %1032 = load ptr, ptr %71, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.ImFont, ptr %1032, i32 0, i32 16
  store float %1031, ptr %1033, align 4, !tbaa !147
  %1034 = load ptr, ptr %20, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.ImGuiContext, ptr %1034, i32 0, i32 4
  %1036 = load ptr, ptr %1035, align 8, !tbaa !145
  %1037 = getelementptr inbounds %struct.ImFont, ptr %1036, i32 0, i32 17
  %1038 = load float, ptr %1037, align 8, !tbaa !148
  %1039 = load ptr, ptr %71, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.ImFont, ptr %1039, i32 0, i32 17
  store float %1038, ptr %1040, align 8, !tbaa !148
  %1041 = load ptr, ptr %20, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.ImGuiContext, ptr %1041, i32 0, i32 4
  %1043 = load ptr, ptr %1042, align 8, !tbaa !145
  %1044 = getelementptr inbounds %struct.ImFont, ptr %1043, i32 0, i32 18
  %1045 = load float, ptr %1044, align 4, !tbaa !149
  %1046 = load ptr, ptr %71, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.ImFont, ptr %1046, i32 0, i32 18
  store float %1045, ptr %1047, align 4, !tbaa !149
  %1048 = load ptr, ptr %20, align 8, !tbaa !5
  %1049 = getelementptr inbounds %struct.ImGuiContext, ptr %1048, i32 0, i32 4
  %1050 = load ptr, ptr %1049, align 8, !tbaa !145
  %1051 = getelementptr inbounds %struct.ImFont, ptr %1050, i32 0, i32 6
  %1052 = load ptr, ptr %1051, align 8, !tbaa !150
  %1053 = load ptr, ptr %71, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.ImFont, ptr %1053, i32 0, i32 6
  store ptr %1052, ptr %1054, align 8, !tbaa !150
  %1055 = load ptr, ptr %70, align 8, !tbaa !5
  %1056 = load ptr, ptr %71, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.ImFont, ptr %1056, i32 0, i32 5
  store ptr %1055, ptr %1057, align 8, !tbaa !151
  %1058 = load ptr, ptr %70, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.ImFontGlyph, ptr %1058, i32 0, i32 1
  %1060 = load float, ptr %1059, align 4, !tbaa !152
  %1061 = load ptr, ptr %71, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.ImFont, ptr %1061, i32 0, i32 1
  store float %1060, ptr %1062, align 8, !tbaa !154
  %1063 = load ptr, ptr %71, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct.ImFont, ptr %1063, i32 0, i32 4
  %1065 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1064)
  br i1 %1065, label %1066, label %1074

1066:                                             ; preds = %1013
  %1067 = load ptr, ptr %71, align 8, !tbaa !5
  %1068 = getelementptr inbounds %struct.ImFont, ptr %1067, i32 0, i32 0
  %1069 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1068)
  br i1 %1069, label %1070, label %1074

1070:                                             ; preds = %1066
  %1071 = load ptr, ptr %71, align 8, !tbaa !5
  %1072 = getelementptr inbounds %struct.ImFont, ptr %1071, i32 0, i32 3
  %1073 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1072)
  br label %1074

1074:                                             ; preds = %1070, %1066, %1013
  %1075 = phi i1 [ false, %1066 ], [ false, %1013 ], [ %1073, %1070 ]
  br i1 %1075, label %1076, label %1077

1076:                                             ; preds = %1074
  br label %1079

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

1078:                                             ; No predecessors!
  br label %1079

1079:                                             ; preds = %1078, %1076
  %1080 = load ptr, ptr %71, align 8, !tbaa !5
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef %1080)
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #14
  br label %1081

1081:                                             ; preds = %1079, %1010, %1005
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #14
  store i32 0, ptr %72, align 4, !tbaa !9
  %1082 = load ptr, ptr %20, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.ImGuiContext, ptr %1082, i32 0, i32 48
  %1084 = load i32, ptr %1083, align 4, !tbaa !112
  %1085 = load i32, ptr %25, align 4, !tbaa !9
  %1086 = icmp eq i32 %1084, %1085
  br i1 %1086, label %1087, label %1471

1087:                                             ; preds = %1081
  %1088 = load ptr, ptr %43, align 8, !tbaa !5
  %1089 = icmp ne ptr %1088, null
  br i1 %1089, label %1090, label %1091

1090:                                             ; preds = %1087
  br label %1093

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

1092:                                             ; No predecessors!
  br label %1093

1093:                                             ; preds = %1092, %1090
  %1094 = load ptr, ptr %43, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1094, i32 0, i32 3
  %1096 = load i32, ptr %1095, align 8, !tbaa !128
  store i32 %1096, ptr %72, align 4, !tbaa !9
  %1097 = load ptr, ptr %43, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1097, i32 0, i32 14
  store i8 0, ptr %1098, align 2, !tbaa !155
  %1099 = load i32, ptr %13, align 4, !tbaa !9
  %1100 = load ptr, ptr %43, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1100, i32 0, i32 8
  store i32 %1099, ptr %1101, align 4, !tbaa !156
  %1102 = load i32, ptr %15, align 4, !tbaa !9
  %1103 = load ptr, ptr %43, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1103, i32 0, i32 15
  store i32 %1102, ptr %1104, align 8, !tbaa !157
  %1105 = load ptr, ptr %21, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.ImGuiIO, ptr %1105, i32 0, i32 60
  %1107 = getelementptr inbounds [5 x i8], ptr %1106, i64 0, i64 0
  %1108 = load i8, ptr %1107, align 8, !tbaa !42, !range !40, !noundef !41
  %1109 = trunc i8 %1108 to i1
  %1110 = xor i1 %1109, true
  %1111 = load ptr, ptr %20, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.ImGuiContext, ptr %1111, i32 0, i32 52
  %1113 = zext i1 %1110 to i8
  store i8 %1113, ptr %1112, align 1, !tbaa !158
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #14
  %1114 = load ptr, ptr %21, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.ImGuiIO, ptr %1114, i32 0, i32 59
  %1116 = getelementptr inbounds %struct.ImVec2, ptr %1115, i32 0, i32 0
  %1117 = load float, ptr %1116, align 8, !tbaa !159
  %1118 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %1119 = getelementptr inbounds %struct.ImVec2, ptr %1118, i32 0, i32 0
  %1120 = load float, ptr %1119, align 4, !tbaa !160
  %1121 = fsub float %1117, %1120
  %1122 = load ptr, ptr %22, align 8, !tbaa !5
  %1123 = getelementptr inbounds %struct.ImGuiStyle, ptr %1122, i32 0, i32 12
  %1124 = getelementptr inbounds %struct.ImVec2, ptr %1123, i32 0, i32 0
  %1125 = load float, ptr %1124, align 4, !tbaa !161
  %1126 = fsub float %1121, %1125
  %1127 = load ptr, ptr %43, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1127, i32 0, i32 9
  %1129 = load float, ptr %1128, align 8, !tbaa !133
  %1130 = fadd float %1126, %1129
  store float %1130, ptr %73, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #14
  %1131 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1132 = trunc i8 %1131 to i1
  br i1 %1132, label %1133, label %1144

1133:                                             ; preds = %1093
  %1134 = load ptr, ptr %21, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.ImGuiIO, ptr %1134, i32 0, i32 59
  %1136 = getelementptr inbounds %struct.ImVec2, ptr %1135, i32 0, i32 1
  %1137 = load float, ptr %1136, align 4, !tbaa !162
  %1138 = load ptr, ptr %34, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.ImGuiWindow, ptr %1138, i32 0, i32 68
  %1140 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %1139, i32 0, i32 0
  %1141 = getelementptr inbounds %struct.ImVec2, ptr %1140, i32 0, i32 1
  %1142 = load float, ptr %1141, align 4, !tbaa !163
  %1143 = fsub float %1137, %1142
  br label %1149

1144:                                             ; preds = %1093
  %1145 = load ptr, ptr %20, align 8, !tbaa !5
  %1146 = getelementptr inbounds %struct.ImGuiContext, ptr %1145, i32 0, i32 5
  %1147 = load float, ptr %1146, align 8, !tbaa !45
  %1148 = fmul float %1147, 5.000000e-01
  br label %1149

1149:                                             ; preds = %1144, %1133
  %1150 = phi float [ %1143, %1133 ], [ %1148, %1144 ]
  store float %1150, ptr %74, align 4, !tbaa !44
  %1151 = load i8, ptr %53, align 1, !tbaa !42, !range !40, !noundef !41
  %1152 = trunc i8 %1151 to i1
  br i1 %1152, label %1153, label %1157

1153:                                             ; preds = %1149
  %1154 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %1154)
  %1155 = load ptr, ptr %43, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1155, i32 0, i32 13
  store i8 1, ptr %1156, align 1, !tbaa !164
  br label %1359

1157:                                             ; preds = %1149
  %1158 = load i8, ptr %42, align 1, !tbaa !42, !range !40, !noundef !41
  %1159 = trunc i8 %1158 to i1
  br i1 %1159, label %1160, label %1290

1160:                                             ; preds = %1157
  %1161 = load ptr, ptr %21, align 8, !tbaa !5
  %1162 = getelementptr inbounds %struct.ImGuiIO, ptr %1161, i32 0, i32 76
  %1163 = getelementptr inbounds [5 x i16], ptr %1162, i64 0, i64 0
  %1164 = load i16, ptr %1163, align 2, !tbaa !165
  %1165 = zext i16 %1164 to i32
  %1166 = icmp sge i32 %1165, 2
  br i1 %1166, label %1167, label %1290

1167:                                             ; preds = %1160
  %1168 = load ptr, ptr %21, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.ImGuiIO, ptr %1168, i32 0, i32 65
  %1170 = load i8, ptr %1169, align 1, !tbaa !166, !range !40, !noundef !41
  %1171 = trunc i8 %1170 to i1
  br i1 %1171, label %1290, label %1172

1172:                                             ; preds = %1167
  %1173 = load ptr, ptr %43, align 8, !tbaa !5
  %1174 = load ptr, ptr %43, align 8, !tbaa !5
  %1175 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1174, i32 0, i32 10
  %1176 = load float, ptr %73, align 4, !tbaa !44
  %1177 = load float, ptr %74, align 4, !tbaa !44
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1173, ptr noundef %1175, float noundef %1176, float noundef %1177)
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #14
  %1178 = load ptr, ptr %21, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.ImGuiIO, ptr %1178, i32 0, i32 76
  %1180 = getelementptr inbounds [5 x i16], ptr %1179, i64 0, i64 0
  %1181 = load i16, ptr %1180, align 2, !tbaa !165
  %1182 = zext i16 %1181 to i32
  %1183 = sub nsw i32 %1182, 2
  store i32 %1183, ptr %75, align 4, !tbaa !9
  %1184 = load i32, ptr %75, align 4, !tbaa !9
  %1185 = srem i32 %1184, 2
  %1186 = icmp eq i32 %1185, 0
  br i1 %1186, label %1187, label %1253

1187:                                             ; preds = %1172
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #14
  %1188 = load ptr, ptr %43, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1188, i32 0, i32 10
  %1190 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1189, i32 0, i32 0
  %1191 = load i32, ptr %1190, align 4, !tbaa !138
  %1192 = icmp eq i32 %1191, 0
  br i1 %1192, label %1203, label %1193

1193:                                             ; preds = %1187
  %1194 = load ptr, ptr %43, align 8, !tbaa !5
  %1195 = load ptr, ptr %43, align 8, !tbaa !5
  %1196 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1195, i32 0, i32 10
  %1197 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1196, i32 0, i32 0
  %1198 = load i32, ptr %1197, align 4, !tbaa !138
  %1199 = sub nsw i32 %1198, 1
  %1200 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef %1194, i32 noundef %1199)
  %1201 = zext i16 %1200 to i32
  %1202 = icmp eq i32 %1201, 10
  br label %1203

1203:                                             ; preds = %1193, %1187
  %1204 = phi i1 [ true, %1187 ], [ %1202, %1193 ]
  %1205 = zext i1 %1204 to i8
  store i8 %1205, ptr %76, align 1, !tbaa !42
  %1206 = load ptr, ptr %43, align 8, !tbaa !5
  %1207 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1206, i32 0, i32 10
  %1208 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1207, i32 0, i32 1
  %1209 = load i32, ptr %1208, align 4, !tbaa !135
  %1210 = load ptr, ptr %43, align 8, !tbaa !5
  %1211 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1210, i32 0, i32 10
  %1212 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1211, i32 0, i32 2
  %1213 = load i32, ptr %1212, align 4, !tbaa !137
  %1214 = icmp ne i32 %1209, %1213
  br i1 %1214, label %1218, label %1215

1215:                                             ; preds = %1203
  %1216 = load i8, ptr %76, align 1, !tbaa !42, !range !40, !noundef !41
  %1217 = trunc i8 %1216 to i1
  br i1 %1217, label %1220, label %1218

1218:                                             ; preds = %1215, %1203
  %1219 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1219, i32 noundef 2097164)
  br label %1220

1220:                                             ; preds = %1218, %1215
  %1221 = load ptr, ptr %43, align 8, !tbaa !5
  %1222 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1221, i32 0, i32 10
  %1223 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1222, i32 0, i32 1
  %1224 = load i32, ptr %1223, align 4, !tbaa !135
  %1225 = load ptr, ptr %43, align 8, !tbaa !5
  %1226 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1225, i32 0, i32 10
  %1227 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1226, i32 0, i32 2
  %1228 = load i32, ptr %1227, align 4, !tbaa !137
  %1229 = icmp ne i32 %1224, %1228
  br i1 %1229, label %1233, label %1230

1230:                                             ; preds = %1220
  %1231 = load ptr, ptr %43, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1231, i32 0, i32 10
  call void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef %1232)
  br label %1233

1233:                                             ; preds = %1230, %1220
  %1234 = load ptr, ptr %43, align 8, !tbaa !5
  %1235 = load ptr, ptr %43, align 8, !tbaa !5
  %1236 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1235, i32 0, i32 10
  %1237 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1236, i32 0, i32 0
  %1238 = load i32, ptr %1237, align 4, !tbaa !138
  %1239 = call noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef %1234, i32 noundef %1238)
  %1240 = load ptr, ptr %43, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1240, i32 0, i32 10
  %1242 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1241, i32 0, i32 0
  store i32 %1239, ptr %1242, align 4, !tbaa !138
  %1243 = load ptr, ptr %43, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1243, i32 0, i32 10
  %1245 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1244, i32 0, i32 0
  %1246 = load i32, ptr %1245, align 4, !tbaa !138
  %1247 = load ptr, ptr %43, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1247, i32 0, i32 10
  %1249 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1248, i32 0, i32 2
  store i32 %1246, ptr %1249, align 4, !tbaa !137
  %1250 = load ptr, ptr %43, align 8, !tbaa !5
  %1251 = load ptr, ptr %43, align 8, !tbaa !5
  %1252 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1251, i32 0, i32 10
  call void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %1250, ptr noundef %1252)
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #14
  br label %1288

1253:                                             ; preds = %1172
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #14
  %1254 = load ptr, ptr %43, align 8, !tbaa !5
  %1255 = load ptr, ptr %43, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1255, i32 0, i32 10
  %1257 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1256, i32 0, i32 0
  %1258 = load i32, ptr %1257, align 4, !tbaa !138
  %1259 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef %1254, i32 noundef %1258)
  %1260 = zext i16 %1259 to i32
  %1261 = icmp eq i32 %1260, 10
  %1262 = zext i1 %1261 to i8
  store i8 %1262, ptr %77, align 1, !tbaa !42
  %1263 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1263, i32 noundef 2097156)
  %1264 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1264, i32 noundef 6291461)
  %1265 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1265, i32 noundef 6291457)
  %1266 = load i8, ptr %77, align 1, !tbaa !42, !range !40, !noundef !41
  %1267 = trunc i8 %1266 to i1
  br i1 %1267, label %1285, label %1268

1268:                                             ; preds = %1253
  %1269 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1270 = trunc i8 %1269 to i1
  br i1 %1270, label %1271, label %1285

1271:                                             ; preds = %1268
  %1272 = load ptr, ptr %43, align 8, !tbaa !5
  %1273 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1272, i32 0, i32 10
  %1274 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1273, i32 0, i32 1
  %1275 = load ptr, ptr %43, align 8, !tbaa !5
  %1276 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1275, i32 0, i32 10
  %1277 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1276, i32 0, i32 2
  call void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4) %1274, ptr noundef nonnull align 4 dereferenceable(4) %1277)
  %1278 = load ptr, ptr %43, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1278, i32 0, i32 10
  %1280 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1279, i32 0, i32 2
  %1281 = load i32, ptr %1280, align 4, !tbaa !137
  %1282 = load ptr, ptr %43, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1282, i32 0, i32 10
  %1284 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1283, i32 0, i32 0
  store i32 %1281, ptr %1284, align 4, !tbaa !138
  br label %1285

1285:                                             ; preds = %1271, %1268, %1253
  %1286 = load ptr, ptr %43, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1286, i32 0, i32 12
  store i8 0, ptr %1287, align 4, !tbaa !167
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #14
  br label %1288

1288:                                             ; preds = %1285, %1233
  %1289 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %1289)
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #14
  br label %1358

1290:                                             ; preds = %1167, %1160, %1157
  %1291 = load ptr, ptr %21, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.ImGuiIO, ptr %1291, i32 0, i32 74
  %1293 = getelementptr inbounds [5 x i8], ptr %1292, i64 0, i64 0
  %1294 = load i8, ptr %1293, align 8, !tbaa !42, !range !40, !noundef !41
  %1295 = trunc i8 %1294 to i1
  br i1 %1295, label %1296, label %1324

1296:                                             ; preds = %1290
  %1297 = load ptr, ptr %43, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1297, i32 0, i32 13
  %1299 = load i8, ptr %1298, align 1, !tbaa !164, !range !40, !noundef !41
  %1300 = trunc i8 %1299 to i1
  br i1 %1300, label %1324, label %1301

1301:                                             ; preds = %1296
  %1302 = load i8, ptr %42, align 1, !tbaa !42, !range !40, !noundef !41
  %1303 = trunc i8 %1302 to i1
  br i1 %1303, label %1304, label %1323

1304:                                             ; preds = %1301
  %1305 = load ptr, ptr %21, align 8, !tbaa !5
  %1306 = getelementptr inbounds %struct.ImGuiIO, ptr %1305, i32 0, i32 65
  %1307 = load i8, ptr %1306, align 1, !tbaa !166, !range !40, !noundef !41
  %1308 = trunc i8 %1307 to i1
  br i1 %1308, label %1309, label %1315

1309:                                             ; preds = %1304
  %1310 = load ptr, ptr %43, align 8, !tbaa !5
  %1311 = load ptr, ptr %43, align 8, !tbaa !5
  %1312 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1311, i32 0, i32 10
  %1313 = load float, ptr %73, align 4, !tbaa !44
  %1314 = load float, ptr %74, align 4, !tbaa !44
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1310, ptr noundef %1312, float noundef %1313, float noundef %1314)
  br label %1321

1315:                                             ; preds = %1304
  %1316 = load ptr, ptr %43, align 8, !tbaa !5
  %1317 = load ptr, ptr %43, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1317, i32 0, i32 10
  %1319 = load float, ptr %73, align 4, !tbaa !44
  %1320 = load float, ptr %74, align 4, !tbaa !44
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1316, ptr noundef %1318, float noundef %1319, float noundef %1320)
  br label %1321

1321:                                             ; preds = %1315, %1309
  %1322 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %1322)
  br label %1323

1323:                                             ; preds = %1321, %1301
  br label %1357

1324:                                             ; preds = %1296, %1290
  %1325 = load ptr, ptr %21, align 8, !tbaa !5
  %1326 = getelementptr inbounds %struct.ImGuiIO, ptr %1325, i32 0, i32 60
  %1327 = getelementptr inbounds [5 x i8], ptr %1326, i64 0, i64 0
  %1328 = load i8, ptr %1327, align 8, !tbaa !42, !range !40, !noundef !41
  %1329 = trunc i8 %1328 to i1
  br i1 %1329, label %1330, label %1356

1330:                                             ; preds = %1324
  %1331 = load ptr, ptr %43, align 8, !tbaa !5
  %1332 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1331, i32 0, i32 13
  %1333 = load i8, ptr %1332, align 1, !tbaa !164, !range !40, !noundef !41
  %1334 = trunc i8 %1333 to i1
  br i1 %1334, label %1356, label %1335

1335:                                             ; preds = %1330
  %1336 = load ptr, ptr %21, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.ImGuiIO, ptr %1336, i32 0, i32 54
  %1338 = getelementptr inbounds %struct.ImVec2, ptr %1337, i32 0, i32 0
  %1339 = load float, ptr %1338, align 8, !tbaa !168
  %1340 = fcmp une float %1339, 0.000000e+00
  br i1 %1340, label %1347, label %1341

1341:                                             ; preds = %1335
  %1342 = load ptr, ptr %21, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.ImGuiIO, ptr %1342, i32 0, i32 54
  %1344 = getelementptr inbounds %struct.ImVec2, ptr %1343, i32 0, i32 1
  %1345 = load float, ptr %1344, align 4, !tbaa !169
  %1346 = fcmp une float %1345, 0.000000e+00
  br i1 %1346, label %1347, label %1356

1347:                                             ; preds = %1341, %1335
  %1348 = load ptr, ptr %43, align 8, !tbaa !5
  %1349 = load ptr, ptr %43, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1349, i32 0, i32 10
  %1351 = load float, ptr %73, align 4, !tbaa !44
  %1352 = load float, ptr %74, align 4, !tbaa !44
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef %1348, ptr noundef %1350, float noundef %1351, float noundef %1352)
  %1353 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %1353)
  %1354 = load ptr, ptr %43, align 8, !tbaa !5
  %1355 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1354, i32 0, i32 12
  store i8 1, ptr %1355, align 4, !tbaa !167
  br label %1356

1356:                                             ; preds = %1347, %1341, %1330, %1324
  br label %1357

1357:                                             ; preds = %1356, %1323
  br label %1358

1358:                                             ; preds = %1357, %1288
  br label %1359

1359:                                             ; preds = %1358, %1153
  %1360 = load ptr, ptr %43, align 8, !tbaa !5
  %1361 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1360, i32 0, i32 13
  %1362 = load i8, ptr %1361, align 1, !tbaa !164, !range !40, !noundef !41
  %1363 = trunc i8 %1362 to i1
  br i1 %1363, label %1364, label %1373

1364:                                             ; preds = %1359
  %1365 = load ptr, ptr %21, align 8, !tbaa !5
  %1366 = getelementptr inbounds %struct.ImGuiIO, ptr %1365, i32 0, i32 60
  %1367 = getelementptr inbounds [5 x i8], ptr %1366, i64 0, i64 0
  %1368 = load i8, ptr %1367, align 8, !tbaa !42, !range !40, !noundef !41
  %1369 = trunc i8 %1368 to i1
  br i1 %1369, label %1373, label %1370

1370:                                             ; preds = %1364
  %1371 = load ptr, ptr %43, align 8, !tbaa !5
  %1372 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1371, i32 0, i32 13
  store i8 0, ptr %1372, align 1, !tbaa !164
  br label %1373

1373:                                             ; preds = %1370, %1364, %1359
  %1374 = load i32, ptr %15, align 4, !tbaa !9
  %1375 = and i32 %1374, 1024
  %1376 = icmp ne i32 %1375, 0
  br i1 %1376, label %1377, label %1394

1377:                                             ; preds = %1373
  %1378 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %1379 = trunc i8 %1378 to i1
  br i1 %1379, label %1394, label %1380

1380:                                             ; preds = %1377
  %1381 = load i32, ptr %25, align 4, !tbaa !9
  %1382 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %1381, i32 noundef 1)
  br i1 %1382, label %1383, label %1393

1383:                                             ; preds = %1380
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #14
  store i32 9, ptr %78, align 4, !tbaa !9
  %1384 = load ptr, ptr %20, align 8, !tbaa !5
  %1385 = load i32, ptr %15, align 4, !tbaa !9
  %1386 = load ptr, ptr %16, align 8, !tbaa !5
  %1387 = load ptr, ptr %17, align 8, !tbaa !5
  %1388 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %1384, ptr noundef %78, i32 noundef %1385, ptr noundef %1386, ptr noundef %1387, i32 noundef 2)
  br i1 %1388, label %1389, label %1392

1389:                                             ; preds = %1383
  %1390 = load ptr, ptr %43, align 8, !tbaa !5
  %1391 = load i32, ptr %78, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1390, i32 noundef %1391)
  br label %1392

1392:                                             ; preds = %1389, %1383
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #14
  br label %1393

1393:                                             ; preds = %1392, %1380
  br label %1394

1394:                                             ; preds = %1393, %1377, %1373
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #14
  %1395 = load ptr, ptr %21, align 8, !tbaa !5
  %1396 = getelementptr inbounds %struct.ImGuiIO, ptr %1395, i32 0, i32 64
  %1397 = load i8, ptr %1396, align 4, !tbaa !139, !range !40, !noundef !41
  %1398 = trunc i8 %1397 to i1
  br i1 %1398, label %1399, label %1404

1399:                                             ; preds = %1394
  %1400 = load ptr, ptr %21, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.ImGuiIO, ptr %1400, i32 0, i32 66
  %1402 = load i8, ptr %1401, align 2, !tbaa !170, !range !40, !noundef !41
  %1403 = trunc i8 %1402 to i1
  br i1 %1403, label %1404, label %1414

1404:                                             ; preds = %1399, %1394
  %1405 = load i8, ptr %62, align 1, !tbaa !42, !range !40, !noundef !41
  %1406 = trunc i8 %1405 to i1
  br i1 %1406, label %1407, label %1412

1407:                                             ; preds = %1404
  %1408 = load ptr, ptr %21, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.ImGuiIO, ptr %1408, i32 0, i32 67
  %1410 = load i8, ptr %1409, align 1, !tbaa !171, !range !40, !noundef !41
  %1411 = trunc i8 %1410 to i1
  br label %1412

1412:                                             ; preds = %1407, %1404
  %1413 = phi i1 [ false, %1404 ], [ %1411, %1407 ]
  br label %1414

1414:                                             ; preds = %1412, %1399
  %1415 = phi i1 [ true, %1399 ], [ %1413, %1412 ]
  %1416 = zext i1 %1415 to i8
  store i8 %1416, ptr %79, align 1, !tbaa !42
  %1417 = load ptr, ptr %21, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.ImGuiIO, ptr %1417, i32 0, i32 91
  %1419 = getelementptr inbounds %struct.ImVector.5, ptr %1418, i32 0, i32 0
  %1420 = load i32, ptr %1419, align 8, !tbaa !172
  %1421 = icmp sgt i32 %1420, 0
  br i1 %1421, label %1422, label %1470

1422:                                             ; preds = %1414
  %1423 = load i8, ptr %79, align 1, !tbaa !42, !range !40, !noundef !41
  %1424 = trunc i8 %1423 to i1
  br i1 %1424, label %1467, label %1425

1425:                                             ; preds = %1422
  %1426 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %1427 = trunc i8 %1426 to i1
  br i1 %1427, label %1467, label %1428

1428:                                             ; preds = %1425
  %1429 = load i8, ptr %48, align 1, !tbaa !42, !range !40, !noundef !41
  %1430 = trunc i8 %1429 to i1
  br i1 %1430, label %1467, label %1431

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

1432:                                             ; preds = %1463, %1431
  %1433 = load i32, ptr %80, align 4, !tbaa !9
  %1434 = load ptr, ptr %21, align 8, !tbaa !5
  %1435 = getelementptr inbounds %struct.ImGuiIO, ptr %1434, i32 0, i32 91
  %1436 = getelementptr inbounds %struct.ImVector.5, ptr %1435, i32 0, i32 0
  %1437 = load i32, ptr %1436, align 8, !tbaa !172
  %1438 = icmp slt i32 %1433, %1437
  br i1 %1438, label %1440, label %1439

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

1440:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #14
  %1441 = load ptr, ptr %21, align 8, !tbaa !5
  %1442 = getelementptr inbounds %struct.ImGuiIO, ptr %1441, i32 0, i32 91
  %1443 = load i32, ptr %80, align 4, !tbaa !9
  %1444 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %1442, i32 noundef %1443)
  %1445 = load i16, ptr %1444, align 2, !tbaa !165
  %1446 = zext i16 %1445 to i32
  store i32 %1446, ptr %81, align 4, !tbaa !9
  %1447 = load i32, ptr %81, align 4, !tbaa !9
  %1448 = icmp eq i32 %1447, 9
  br i1 %1448, label %1449, label %1450

1449:                                             ; preds = %1440
  store i32 4, ptr %19, align 4
  br label %1460

1450:                                             ; preds = %1440
  %1451 = load ptr, ptr %20, align 8, !tbaa !5
  %1452 = load i32, ptr %15, align 4, !tbaa !9
  %1453 = load ptr, ptr %16, align 8, !tbaa !5
  %1454 = load ptr, ptr %17, align 8, !tbaa !5
  %1455 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %1451, ptr noundef %81, i32 noundef %1452, ptr noundef %1453, ptr noundef %1454, i32 noundef 2)
  br i1 %1455, label %1456, label %1459

1456:                                             ; preds = %1450
  %1457 = load ptr, ptr %43, align 8, !tbaa !5
  %1458 = load i32, ptr %81, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1457, i32 noundef %1458)
  br label %1459

1459:                                             ; preds = %1456, %1450
  store i32 0, ptr %19, align 4
  br label %1460

1460:                                             ; preds = %1459, %1449
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #14
  %1461 = load i32, ptr %19, align 4
  switch i32 %1461, label %3639 [
    i32 0, label %1462
    i32 4, label %1463
  ]

1462:                                             ; preds = %1460
  br label %1463

1463:                                             ; preds = %1462, %1460
  %1464 = load i32, ptr %80, align 4, !tbaa !9
  %1465 = add nsw i32 %1464, 1
  store i32 %1465, ptr %80, align 4, !tbaa !9
  br label %1432, !llvm.loop !173

1466:                                             ; preds = %1439
  br label %1467

1467:                                             ; preds = %1466, %1428, %1425, %1422
  %1468 = load ptr, ptr %21, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.ImGuiIO, ptr %1468, i32 0, i32 91
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %1469, i32 noundef 0)
  br label %1470

1470:                                             ; preds = %1467, %1414
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #14
  br label %1471

1471:                                             ; preds = %1470, %1081
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #14
  store i8 0, ptr %82, align 1, !tbaa !42
  %1472 = load ptr, ptr %20, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.ImGuiContext, ptr %1472, i32 0, i32 48
  %1474 = load i32, ptr %1473, align 4, !tbaa !112
  %1475 = load i32, ptr %25, align 4, !tbaa !9
  %1476 = icmp eq i32 %1474, %1475
  br i1 %1476, label %1477, label %2188

1477:                                             ; preds = %1471
  %1478 = load ptr, ptr %20, align 8, !tbaa !5
  %1479 = getelementptr inbounds %struct.ImGuiContext, ptr %1478, i32 0, i32 51
  %1480 = load i8, ptr %1479, align 8, !tbaa !175, !range !40, !noundef !41
  %1481 = trunc i8 %1480 to i1
  br i1 %1481, label %2188, label %1482

1482:                                             ; preds = %1477
  %1483 = load i8, ptr %52, align 1, !tbaa !42, !range !40, !noundef !41
  %1484 = trunc i8 %1483 to i1
  br i1 %1484, label %2188, label %1485

1485:                                             ; preds = %1482
  %1486 = load ptr, ptr %43, align 8, !tbaa !5
  %1487 = icmp ne ptr %1486, null
  br i1 %1487, label %1488, label %1489

1488:                                             ; preds = %1485
  br label %1491

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

1490:                                             ; No predecessors!
  br label %1491

1491:                                             ; preds = %1490, %1488
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #14
  %1492 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %1493 = load float, ptr %1492, align 4, !tbaa !105
  %1494 = load ptr, ptr %22, align 8, !tbaa !5
  %1495 = getelementptr inbounds %struct.ImGuiStyle, ptr %1494, i32 0, i32 12
  %1496 = getelementptr inbounds %struct.ImVec2, ptr %1495, i32 0, i32 1
  %1497 = load float, ptr %1496, align 4, !tbaa !106
  %1498 = fsub float %1493, %1497
  %1499 = load ptr, ptr %20, align 8, !tbaa !5
  %1500 = getelementptr inbounds %struct.ImGuiContext, ptr %1499, i32 0, i32 5
  %1501 = load float, ptr %1500, align 8, !tbaa !45
  %1502 = fdiv float %1498, %1501
  %1503 = fptosi float %1502 to i32
  %1504 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1503, i32 noundef 1)
  store i32 %1504, ptr %83, align 4, !tbaa !9
  %1505 = load i32, ptr %83, align 4, !tbaa !9
  %1506 = load ptr, ptr %43, align 8, !tbaa !5
  %1507 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1506, i32 0, i32 10
  %1508 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %1507, i32 0, i32 4
  store i32 %1505, ptr %1508, align 4, !tbaa !176
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #14
  %1509 = load ptr, ptr %21, align 8, !tbaa !5
  %1510 = getelementptr inbounds %struct.ImGuiIO, ptr %1509, i32 0, i32 65
  %1511 = load i8, ptr %1510, align 1, !tbaa !166, !range !40, !noundef !41
  %1512 = trunc i8 %1511 to i1
  %1513 = zext i1 %1512 to i64
  %1514 = select i1 %1512, i32 4194304, i32 0
  store i32 %1514, ptr %84, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #14
  %1515 = load i8, ptr %62, align 1, !tbaa !42, !range !40, !noundef !41
  %1516 = trunc i8 %1515 to i1
  br i1 %1516, label %1517, label %1522

1517:                                             ; preds = %1491
  %1518 = load ptr, ptr %21, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.ImGuiIO, ptr %1518, i32 0, i32 66
  %1520 = load i8, ptr %1519, align 2, !tbaa !170, !range !40, !noundef !41
  %1521 = trunc i8 %1520 to i1
  br label %1527

1522:                                             ; preds = %1491
  %1523 = load ptr, ptr %21, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.ImGuiIO, ptr %1523, i32 0, i32 64
  %1525 = load i8, ptr %1524, align 4, !tbaa !139, !range !40, !noundef !41
  %1526 = trunc i8 %1525 to i1
  br label %1527

1527:                                             ; preds = %1522, %1517
  %1528 = phi i1 [ %1521, %1517 ], [ %1526, %1522 ]
  %1529 = zext i1 %1528 to i8
  store i8 %1529, ptr %85, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #14
  %1530 = load i8, ptr %62, align 1, !tbaa !42, !range !40, !noundef !41
  %1531 = trunc i8 %1530 to i1
  br i1 %1531, label %1532, label %1548

1532:                                             ; preds = %1527
  %1533 = load ptr, ptr %21, align 8, !tbaa !5
  %1534 = getelementptr inbounds %struct.ImGuiIO, ptr %1533, i32 0, i32 67
  %1535 = load i8, ptr %1534, align 1, !tbaa !171, !range !40, !noundef !41
  %1536 = trunc i8 %1535 to i1
  br i1 %1536, label %1537, label %1548

1537:                                             ; preds = %1532
  %1538 = load ptr, ptr %21, align 8, !tbaa !5
  %1539 = getelementptr inbounds %struct.ImGuiIO, ptr %1538, i32 0, i32 64
  %1540 = load i8, ptr %1539, align 4, !tbaa !139, !range !40, !noundef !41
  %1541 = trunc i8 %1540 to i1
  br i1 %1541, label %1548, label %1542

1542:                                             ; preds = %1537
  %1543 = load ptr, ptr %21, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.ImGuiIO, ptr %1543, i32 0, i32 66
  %1545 = load i8, ptr %1544, align 2, !tbaa !170, !range !40, !noundef !41
  %1546 = trunc i8 %1545 to i1
  %1547 = xor i1 %1546, true
  br label %1548

1548:                                             ; preds = %1542, %1537, %1532, %1527
  %1549 = phi i1 [ false, %1537 ], [ false, %1532 ], [ false, %1527 ], [ %1547, %1542 ]
  %1550 = zext i1 %1549 to i8
  store i8 %1550, ptr %86, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #14
  store i32 1, ptr %87, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #14
  %1551 = load i32, ptr %25, align 4, !tbaa !9
  %1552 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2617, i32 noundef %1551, i32 noundef 1)
  br i1 %1552, label %1556, label %1553

1553:                                             ; preds = %1548
  %1554 = load i32, ptr %25, align 4, !tbaa !9
  %1555 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8714, i32 noundef %1554, i32 noundef 1)
  br i1 %1555, label %1556, label %1570

1556:                                             ; preds = %1553, %1548
  %1557 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %1558 = trunc i8 %1557 to i1
  br i1 %1558, label %1570, label %1559

1559:                                             ; preds = %1556
  %1560 = load i8, ptr %45, align 1, !tbaa !42, !range !40, !noundef !41
  %1561 = trunc i8 %1560 to i1
  br i1 %1561, label %1570, label %1562

1562:                                             ; preds = %1559
  %1563 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1564 = trunc i8 %1563 to i1
  br i1 %1564, label %1565, label %1568

1565:                                             ; preds = %1562
  %1566 = load ptr, ptr %43, align 8, !tbaa !5
  %1567 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1566)
  br label %1568

1568:                                             ; preds = %1565, %1562
  %1569 = phi i1 [ true, %1562 ], [ %1567, %1565 ]
  br label %1570

1570:                                             ; preds = %1568, %1559, %1556, %1553
  %1571 = phi i1 [ false, %1559 ], [ false, %1556 ], [ false, %1553 ], [ %1569, %1568 ]
  %1572 = zext i1 %1571 to i8
  store i8 %1572, ptr %88, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #14
  %1573 = load i32, ptr %25, align 4, !tbaa !9
  %1574 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2596, i32 noundef %1573, i32 noundef 0)
  br i1 %1574, label %1578, label %1575

1575:                                             ; preds = %1570
  %1576 = load i32, ptr %25, align 4, !tbaa !9
  %1577 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 4617, i32 noundef %1576, i32 noundef 0)
  br i1 %1577, label %1578, label %1589

1578:                                             ; preds = %1575, %1570
  %1579 = load i8, ptr %45, align 1, !tbaa !42, !range !40, !noundef !41
  %1580 = trunc i8 %1579 to i1
  br i1 %1580, label %1589, label %1581

1581:                                             ; preds = %1578
  %1582 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1583 = trunc i8 %1582 to i1
  br i1 %1583, label %1584, label %1587

1584:                                             ; preds = %1581
  %1585 = load ptr, ptr %43, align 8, !tbaa !5
  %1586 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1585)
  br label %1587

1587:                                             ; preds = %1584, %1581
  %1588 = phi i1 [ true, %1581 ], [ %1586, %1584 ]
  br label %1589

1589:                                             ; preds = %1587, %1578, %1575
  %1590 = phi i1 [ false, %1578 ], [ false, %1575 ], [ %1588, %1587 ]
  %1591 = zext i1 %1590 to i8
  store i8 %1591, ptr %89, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #14
  %1592 = load i32, ptr %25, align 4, !tbaa !9
  %1593 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2615, i32 noundef %1592, i32 noundef 1)
  br i1 %1593, label %1597, label %1594

1594:                                             ; preds = %1589
  %1595 = load i32, ptr %25, align 4, !tbaa !9
  %1596 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8713, i32 noundef %1595, i32 noundef 1)
  br i1 %1596, label %1597, label %1601

1597:                                             ; preds = %1594, %1589
  %1598 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %1599 = trunc i8 %1598 to i1
  %1600 = xor i1 %1599, true
  br label %1601

1601:                                             ; preds = %1597, %1594
  %1602 = phi i1 [ false, %1594 ], [ %1600, %1597 ]
  %1603 = zext i1 %1602 to i8
  store i8 %1603, ptr %90, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #14
  %1604 = load i32, ptr %25, align 4, !tbaa !9
  %1605 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2619, i32 noundef %1604, i32 noundef 1)
  br i1 %1605, label %1606, label %1612

1606:                                             ; preds = %1601
  %1607 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %1608 = trunc i8 %1607 to i1
  br i1 %1608, label %1612, label %1609

1609:                                             ; preds = %1606
  %1610 = load i8, ptr %46, align 1, !tbaa !42, !range !40, !noundef !41
  %1611 = trunc i8 %1610 to i1
  br label %1612

1612:                                             ; preds = %1609, %1606, %1601
  %1613 = phi i1 [ false, %1606 ], [ false, %1601 ], [ %1611, %1609 ]
  %1614 = zext i1 %1613 to i8
  store i8 %1614, ptr %91, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #14
  %1615 = load i32, ptr %25, align 4, !tbaa !9
  %1616 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2618, i32 noundef %1615, i32 noundef 1)
  br i1 %1616, label %1623, label %1617

1617:                                             ; preds = %1612
  %1618 = load i8, ptr %62, align 1, !tbaa !42, !range !40, !noundef !41
  %1619 = trunc i8 %1618 to i1
  br i1 %1619, label %1620, label %1629

1620:                                             ; preds = %1617
  %1621 = load i32, ptr %25, align 4, !tbaa !9
  %1622 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 10811, i32 noundef %1621, i32 noundef 1)
  br i1 %1622, label %1623, label %1629

1623:                                             ; preds = %1620, %1612
  %1624 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %1625 = trunc i8 %1624 to i1
  br i1 %1625, label %1629, label %1626

1626:                                             ; preds = %1623
  %1627 = load i8, ptr %46, align 1, !tbaa !42, !range !40, !noundef !41
  %1628 = trunc i8 %1627 to i1
  br label %1629

1629:                                             ; preds = %1626, %1623, %1620, %1617
  %1630 = phi i1 [ false, %1623 ], [ false, %1620 ], [ false, %1617 ], [ %1628, %1626 ]
  %1631 = zext i1 %1630 to i8
  store i8 %1631, ptr %92, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #14
  %1632 = load i32, ptr %25, align 4, !tbaa !9
  %1633 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2594, i32 noundef %1632, i32 noundef 0)
  %1634 = zext i1 %1633 to i8
  store i8 %1634, ptr %93, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #14
  %1635 = load ptr, ptr %21, align 8, !tbaa !5
  %1636 = getelementptr inbounds %struct.ImGuiIO, ptr %1635, i32 0, i32 0
  %1637 = load i32, ptr %1636, align 8, !tbaa !177
  %1638 = and i32 %1637, 2
  %1639 = icmp ne i32 %1638, 0
  br i1 %1639, label %1640, label %1646

1640:                                             ; preds = %1629
  %1641 = load ptr, ptr %21, align 8, !tbaa !5
  %1642 = getelementptr inbounds %struct.ImGuiIO, ptr %1641, i32 0, i32 1
  %1643 = load i32, ptr %1642, align 4, !tbaa !178
  %1644 = and i32 %1643, 1
  %1645 = icmp ne i32 %1644, 0
  br label %1646

1646:                                             ; preds = %1640, %1629
  %1647 = phi i1 [ false, %1629 ], [ %1645, %1640 ]
  %1648 = zext i1 %1647 to i8
  store i8 %1648, ptr %94, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #14
  %1649 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 525, i1 noundef zeroext true)
  br i1 %1649, label %1652, label %1650

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

1652:                                             ; preds = %1650, %1646
  %1653 = phi i1 [ true, %1646 ], [ %1651, %1650 ]
  %1654 = zext i1 %1653 to i8
  store i8 %1654, ptr %95, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #14
  %1655 = load i8, ptr %94, align 1, !tbaa !42, !range !40, !noundef !41
  %1656 = trunc i8 %1655 to i1
  br i1 %1656, label %1657, label %1663

1657:                                             ; preds = %1652
  %1658 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 636, i1 noundef zeroext false)
  br i1 %1658, label %1661, label %1659

1659:                                             ; preds = %1657
  %1660 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 635, i1 noundef zeroext false)
  br label %1661

1661:                                             ; preds = %1659, %1657
  %1662 = phi i1 [ true, %1657 ], [ %1660, %1659 ]
  br label %1663

1663:                                             ; preds = %1661, %1652
  %1664 = phi i1 [ false, %1652 ], [ %1662, %1661 ]
  %1665 = zext i1 %1664 to i8
  store i8 %1665, ptr %96, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #14
  %1666 = load i32, ptr %25, align 4, !tbaa !9
  %1667 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 526, i32 noundef %1666, i32 noundef 1)
  br i1 %1667, label %1676, label %1668

1668:                                             ; preds = %1663
  %1669 = load i8, ptr %94, align 1, !tbaa !42, !range !40, !noundef !41
  %1670 = trunc i8 %1669 to i1
  br i1 %1670, label %1671, label %1674

1671:                                             ; preds = %1668
  %1672 = load i32, ptr %25, align 4, !tbaa !9
  %1673 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 634, i32 noundef %1672, i32 noundef 1)
  br label %1674

1674:                                             ; preds = %1671, %1668
  %1675 = phi i1 [ false, %1668 ], [ %1673, %1671 ]
  br label %1676

1676:                                             ; preds = %1674, %1663
  %1677 = phi i1 [ true, %1663 ], [ %1675, %1674 ]
  %1678 = zext i1 %1677 to i8
  store i8 %1678, ptr %97, align 1, !tbaa !42
  %1679 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %1679, label %1680, label %1694

1680:                                             ; preds = %1676
  %1681 = load ptr, ptr %43, align 8, !tbaa !5
  %1682 = load i8, ptr %86, align 1, !tbaa !42, !range !40, !noundef !41
  %1683 = trunc i8 %1682 to i1
  br i1 %1683, label %1684, label %1685

1684:                                             ; preds = %1680
  br label %1690

1685:                                             ; preds = %1680
  %1686 = load i8, ptr %85, align 1, !tbaa !42, !range !40, !noundef !41
  %1687 = trunc i8 %1686 to i1
  %1688 = zext i1 %1687 to i64
  %1689 = select i1 %1687, i32 2097164, i32 2097152
  br label %1690

1690:                                             ; preds = %1685, %1684
  %1691 = phi i32 [ 2097156, %1684 ], [ %1689, %1685 ]
  %1692 = load i32, ptr %84, align 4, !tbaa !9
  %1693 = or i32 %1691, %1692
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1681, i32 noundef %1693)
  br label %2173

1694:                                             ; preds = %1676
  %1695 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %1695, label %1696, label %1710

1696:                                             ; preds = %1694
  %1697 = load ptr, ptr %43, align 8, !tbaa !5
  %1698 = load i8, ptr %86, align 1, !tbaa !42, !range !40, !noundef !41
  %1699 = trunc i8 %1698 to i1
  br i1 %1699, label %1700, label %1701

1700:                                             ; preds = %1696
  br label %1706

1701:                                             ; preds = %1696
  %1702 = load i8, ptr %85, align 1, !tbaa !42, !range !40, !noundef !41
  %1703 = trunc i8 %1702 to i1
  %1704 = zext i1 %1703 to i64
  %1705 = select i1 %1703, i32 2097165, i32 2097153
  br label %1706

1706:                                             ; preds = %1701, %1700
  %1707 = phi i32 [ 2097157, %1700 ], [ %1705, %1701 ]
  %1708 = load i32, ptr %84, align 4, !tbaa !9
  %1709 = or i32 %1707, %1708
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1697, i32 noundef %1709)
  br label %2172

1710:                                             ; preds = %1694
  %1711 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %1711, label %1712, label %1740

1712:                                             ; preds = %1710
  %1713 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1714 = trunc i8 %1713 to i1
  br i1 %1714, label %1715, label %1740

1715:                                             ; preds = %1712
  %1716 = load ptr, ptr %21, align 8, !tbaa !5
  %1717 = getelementptr inbounds %struct.ImGuiIO, ptr %1716, i32 0, i32 64
  %1718 = load i8, ptr %1717, align 4, !tbaa !139, !range !40, !noundef !41
  %1719 = trunc i8 %1718 to i1
  br i1 %1719, label %1720, label %1731

1720:                                             ; preds = %1715
  %1721 = load ptr, ptr %34, align 8, !tbaa !5
  %1722 = load ptr, ptr %34, align 8, !tbaa !5
  %1723 = getelementptr inbounds %struct.ImGuiWindow, ptr %1722, i32 0, i32 25
  %1724 = getelementptr inbounds %struct.ImVec2, ptr %1723, i32 0, i32 1
  %1725 = load float, ptr %1724, align 4, !tbaa !123
  %1726 = load ptr, ptr %20, align 8, !tbaa !5
  %1727 = getelementptr inbounds %struct.ImGuiContext, ptr %1726, i32 0, i32 5
  %1728 = load float, ptr %1727, align 8, !tbaa !45
  %1729 = fsub float %1725, %1728
  %1730 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1729, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1721, float noundef %1730)
  br label %1739

1731:                                             ; preds = %1715
  %1732 = load ptr, ptr %43, align 8, !tbaa !5
  %1733 = load i8, ptr %86, align 1, !tbaa !42, !range !40, !noundef !41
  %1734 = trunc i8 %1733 to i1
  %1735 = zext i1 %1734 to i64
  %1736 = select i1 %1734, i32 2097158, i32 2097154
  %1737 = load i32, ptr %84, align 4, !tbaa !9
  %1738 = or i32 %1736, %1737
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1732, i32 noundef %1738)
  br label %1739

1739:                                             ; preds = %1731, %1720
  br label %2171

1740:                                             ; preds = %1712, %1710
  %1741 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %1741, label %1742, label %1771

1742:                                             ; preds = %1740
  %1743 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1744 = trunc i8 %1743 to i1
  br i1 %1744, label %1745, label %1771

1745:                                             ; preds = %1742
  %1746 = load ptr, ptr %21, align 8, !tbaa !5
  %1747 = getelementptr inbounds %struct.ImGuiIO, ptr %1746, i32 0, i32 64
  %1748 = load i8, ptr %1747, align 4, !tbaa !139, !range !40, !noundef !41
  %1749 = trunc i8 %1748 to i1
  br i1 %1749, label %1750, label %1762

1750:                                             ; preds = %1745
  %1751 = load ptr, ptr %34, align 8, !tbaa !5
  %1752 = load ptr, ptr %34, align 8, !tbaa !5
  %1753 = getelementptr inbounds %struct.ImGuiWindow, ptr %1752, i32 0, i32 25
  %1754 = getelementptr inbounds %struct.ImVec2, ptr %1753, i32 0, i32 1
  %1755 = load float, ptr %1754, align 4, !tbaa !123
  %1756 = load ptr, ptr %20, align 8, !tbaa !5
  %1757 = getelementptr inbounds %struct.ImGuiContext, ptr %1756, i32 0, i32 5
  %1758 = load float, ptr %1757, align 8, !tbaa !45
  %1759 = fadd float %1755, %1758
  %1760 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %1761 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1759, float noundef %1760)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1751, float noundef %1761)
  br label %1770

1762:                                             ; preds = %1745
  %1763 = load ptr, ptr %43, align 8, !tbaa !5
  %1764 = load i8, ptr %86, align 1, !tbaa !42, !range !40, !noundef !41
  %1765 = trunc i8 %1764 to i1
  %1766 = zext i1 %1765 to i64
  %1767 = select i1 %1765, i32 2097159, i32 2097155
  %1768 = load i32, ptr %84, align 4, !tbaa !9
  %1769 = or i32 %1767, %1768
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1763, i32 noundef %1769)
  br label %1770

1770:                                             ; preds = %1762, %1750
  br label %2170

1771:                                             ; preds = %1742, %1740
  %1772 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  br i1 %1772, label %1773, label %1788

1773:                                             ; preds = %1771
  %1774 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1775 = trunc i8 %1774 to i1
  br i1 %1775, label %1776, label %1788

1776:                                             ; preds = %1773
  %1777 = load ptr, ptr %43, align 8, !tbaa !5
  %1778 = load i32, ptr %84, align 4, !tbaa !9
  %1779 = or i32 2097166, %1778
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1777, i32 noundef %1779)
  %1780 = load i32, ptr %83, align 4, !tbaa !9
  %1781 = sitofp i32 %1780 to float
  %1782 = load ptr, ptr %20, align 8, !tbaa !5
  %1783 = getelementptr inbounds %struct.ImGuiContext, ptr %1782, i32 0, i32 5
  %1784 = load float, ptr %1783, align 8, !tbaa !45
  %1785 = load float, ptr %54, align 4, !tbaa !44
  %1786 = fneg float %1781
  %1787 = call float @llvm.fmuladd.f32(float %1786, float %1784, float %1785)
  store float %1787, ptr %54, align 4, !tbaa !44
  br label %2169

1788:                                             ; preds = %1773, %1771
  %1789 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  br i1 %1789, label %1790, label %1804

1790:                                             ; preds = %1788
  %1791 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1792 = trunc i8 %1791 to i1
  br i1 %1792, label %1793, label %1804

1793:                                             ; preds = %1790
  %1794 = load ptr, ptr %43, align 8, !tbaa !5
  %1795 = load i32, ptr %84, align 4, !tbaa !9
  %1796 = or i32 2097167, %1795
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1794, i32 noundef %1796)
  %1797 = load i32, ptr %83, align 4, !tbaa !9
  %1798 = sitofp i32 %1797 to float
  %1799 = load ptr, ptr %20, align 8, !tbaa !5
  %1800 = getelementptr inbounds %struct.ImGuiContext, ptr %1799, i32 0, i32 5
  %1801 = load float, ptr %1800, align 8, !tbaa !45
  %1802 = load float, ptr %54, align 4, !tbaa !44
  %1803 = call float @llvm.fmuladd.f32(float %1798, float %1801, float %1802)
  store float %1803, ptr %54, align 4, !tbaa !44
  br label %2168

1804:                                             ; preds = %1790, %1788
  %1805 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %1805, label %1806, label %1820

1806:                                             ; preds = %1804
  %1807 = load ptr, ptr %43, align 8, !tbaa !5
  %1808 = load ptr, ptr %21, align 8, !tbaa !5
  %1809 = getelementptr inbounds %struct.ImGuiIO, ptr %1808, i32 0, i32 64
  %1810 = load i8, ptr %1809, align 4, !tbaa !139, !range !40, !noundef !41
  %1811 = trunc i8 %1810 to i1
  br i1 %1811, label %1812, label %1815

1812:                                             ; preds = %1806
  %1813 = load i32, ptr %84, align 4, !tbaa !9
  %1814 = or i32 2097158, %1813
  br label %1818

1815:                                             ; preds = %1806
  %1816 = load i32, ptr %84, align 4, !tbaa !9
  %1817 = or i32 2097156, %1816
  br label %1818

1818:                                             ; preds = %1815, %1812
  %1819 = phi i32 [ %1814, %1812 ], [ %1817, %1815 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1807, i32 noundef %1819)
  br label %2167

1820:                                             ; preds = %1804
  %1821 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %1821, label %1822, label %1836

1822:                                             ; preds = %1820
  %1823 = load ptr, ptr %43, align 8, !tbaa !5
  %1824 = load ptr, ptr %21, align 8, !tbaa !5
  %1825 = getelementptr inbounds %struct.ImGuiIO, ptr %1824, i32 0, i32 64
  %1826 = load i8, ptr %1825, align 4, !tbaa !139, !range !40, !noundef !41
  %1827 = trunc i8 %1826 to i1
  br i1 %1827, label %1828, label %1831

1828:                                             ; preds = %1822
  %1829 = load i32, ptr %84, align 4, !tbaa !9
  %1830 = or i32 2097159, %1829
  br label %1834

1831:                                             ; preds = %1822
  %1832 = load i32, ptr %84, align 4, !tbaa !9
  %1833 = or i32 2097157, %1832
  br label %1834

1834:                                             ; preds = %1831, %1828
  %1835 = phi i32 [ %1830, %1828 ], [ %1833, %1831 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1823, i32 noundef %1835)
  br label %2166

1836:                                             ; preds = %1820
  %1837 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  br i1 %1837, label %1838, label %1857

1838:                                             ; preds = %1836
  %1839 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %1840 = trunc i8 %1839 to i1
  br i1 %1840, label %1857, label %1841

1841:                                             ; preds = %1838
  %1842 = load i8, ptr %88, align 1, !tbaa !42, !range !40, !noundef !41
  %1843 = trunc i8 %1842 to i1
  br i1 %1843, label %1857, label %1844

1844:                                             ; preds = %1841
  %1845 = load ptr, ptr %43, align 8, !tbaa !5
  %1846 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1845)
  br i1 %1846, label %1853, label %1847

1847:                                             ; preds = %1844
  %1848 = load i8, ptr %85, align 1, !tbaa !42, !range !40, !noundef !41
  %1849 = trunc i8 %1848 to i1
  br i1 %1849, label %1850, label %1852

1850:                                             ; preds = %1847
  %1851 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1851, i32 noundef 6291469)
  br label %1852

1852:                                             ; preds = %1850, %1847
  br label %1853

1853:                                             ; preds = %1852, %1844
  %1854 = load ptr, ptr %43, align 8, !tbaa !5
  %1855 = load i32, ptr %84, align 4, !tbaa !9
  %1856 = or i32 2097160, %1855
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1854, i32 noundef %1856)
  br label %2165

1857:                                             ; preds = %1841, %1838, %1836
  %1858 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  br i1 %1858, label %1859, label %1896

1859:                                             ; preds = %1857
  %1860 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %1861 = trunc i8 %1860 to i1
  br i1 %1861, label %1896, label %1862

1862:                                             ; preds = %1859
  %1863 = load ptr, ptr %43, align 8, !tbaa !5
  %1864 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1863)
  br i1 %1864, label %1892, label %1865

1865:                                             ; preds = %1862
  %1866 = load i8, ptr %85, align 1, !tbaa !42, !range !40, !noundef !41
  %1867 = trunc i8 %1866 to i1
  br i1 %1867, label %1868, label %1870

1868:                                             ; preds = %1865
  %1869 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1869, i32 noundef 6291468)
  br label %1891

1870:                                             ; preds = %1865
  %1871 = load i8, ptr %62, align 1, !tbaa !42, !range !40, !noundef !41
  %1872 = trunc i8 %1871 to i1
  br i1 %1872, label %1873, label %1890

1873:                                             ; preds = %1870
  %1874 = load ptr, ptr %21, align 8, !tbaa !5
  %1875 = getelementptr inbounds %struct.ImGuiIO, ptr %1874, i32 0, i32 67
  %1876 = load i8, ptr %1875, align 1, !tbaa !171, !range !40, !noundef !41
  %1877 = trunc i8 %1876 to i1
  br i1 %1877, label %1878, label %1890

1878:                                             ; preds = %1873
  %1879 = load ptr, ptr %21, align 8, !tbaa !5
  %1880 = getelementptr inbounds %struct.ImGuiIO, ptr %1879, i32 0, i32 66
  %1881 = load i8, ptr %1880, align 2, !tbaa !170, !range !40, !noundef !41
  %1882 = trunc i8 %1881 to i1
  br i1 %1882, label %1890, label %1883

1883:                                             ; preds = %1878
  %1884 = load ptr, ptr %21, align 8, !tbaa !5
  %1885 = getelementptr inbounds %struct.ImGuiIO, ptr %1884, i32 0, i32 64
  %1886 = load i8, ptr %1885, align 4, !tbaa !139, !range !40, !noundef !41
  %1887 = trunc i8 %1886 to i1
  br i1 %1887, label %1890, label %1888

1888:                                             ; preds = %1883
  %1889 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1889, i32 noundef 6291460)
  br label %1890

1890:                                             ; preds = %1888, %1883, %1878, %1873, %1870
  br label %1891

1891:                                             ; preds = %1890, %1868
  br label %1892

1892:                                             ; preds = %1891, %1862
  %1893 = load ptr, ptr %43, align 8, !tbaa !5
  %1894 = load i32, ptr %84, align 4, !tbaa !9
  %1895 = or i32 2097161, %1894
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1893, i32 noundef %1895)
  br label %2164

1896:                                             ; preds = %1859, %1857
  %1897 = load i8, ptr %95, align 1, !tbaa !42, !range !40, !noundef !41
  %1898 = trunc i8 %1897 to i1
  br i1 %1898, label %1902, label %1899

1899:                                             ; preds = %1896
  %1900 = load i8, ptr %96, align 1, !tbaa !42, !range !40, !noundef !41
  %1901 = trunc i8 %1900 to i1
  br i1 %1901, label %1902, label %1955

1902:                                             ; preds = %1899, %1896
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #14
  %1903 = load i32, ptr %15, align 4, !tbaa !9
  %1904 = and i32 %1903, 2048
  %1905 = icmp ne i32 %1904, 0
  %1906 = zext i1 %1905 to i8
  store i8 %1906, ptr %98, align 1, !tbaa !42
  %1907 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1908 = trunc i8 %1907 to i1
  br i1 %1908, label %1909, label %1928

1909:                                             ; preds = %1902
  %1910 = load i8, ptr %96, align 1, !tbaa !42, !range !40, !noundef !41
  %1911 = trunc i8 %1910 to i1
  br i1 %1911, label %1928, label %1912

1912:                                             ; preds = %1909
  %1913 = load i8, ptr %98, align 1, !tbaa !42, !range !40, !noundef !41
  %1914 = trunc i8 %1913 to i1
  br i1 %1914, label %1915, label %1920

1915:                                             ; preds = %1912
  %1916 = load ptr, ptr %21, align 8, !tbaa !5
  %1917 = getelementptr inbounds %struct.ImGuiIO, ptr %1916, i32 0, i32 64
  %1918 = load i8, ptr %1917, align 4, !tbaa !139, !range !40, !noundef !41
  %1919 = trunc i8 %1918 to i1
  br i1 %1919, label %1920, label %1928

1920:                                             ; preds = %1915, %1912
  %1921 = load i8, ptr %98, align 1, !tbaa !42, !range !40, !noundef !41
  %1922 = trunc i8 %1921 to i1
  br i1 %1922, label %1940, label %1923

1923:                                             ; preds = %1920
  %1924 = load ptr, ptr %21, align 8, !tbaa !5
  %1925 = getelementptr inbounds %struct.ImGuiIO, ptr %1924, i32 0, i32 64
  %1926 = load i8, ptr %1925, align 4, !tbaa !139, !range !40, !noundef !41
  %1927 = trunc i8 %1926 to i1
  br i1 %1927, label %1928, label %1940

1928:                                             ; preds = %1923, %1915, %1909, %1902
  store i8 1, ptr %66, align 1, !tbaa !42
  %1929 = load ptr, ptr %21, align 8, !tbaa !5
  %1930 = getelementptr inbounds %struct.ImGuiIO, ptr %1929, i32 0, i32 17
  %1931 = load i8, ptr %1930, align 4, !tbaa !179, !range !40, !noundef !41
  %1932 = trunc i8 %1931 to i1
  br i1 %1932, label %1933, label %1938

1933:                                             ; preds = %1928
  %1934 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %1935 = trunc i8 %1934 to i1
  br i1 %1935, label %1938, label %1936

1936:                                             ; preds = %1933
  %1937 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %1937)
  br label %1939

1938:                                             ; preds = %1933, %1928
  store i8 1, ptr %52, align 1, !tbaa !42
  br label %1939

1939:                                             ; preds = %1938, %1936
  br label %1954

1940:                                             ; preds = %1923, %1920
  %1941 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %1942 = trunc i8 %1941 to i1
  br i1 %1942, label %1953, label %1943

1943:                                             ; preds = %1940
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #14
  store i32 10, ptr %99, align 4, !tbaa !9
  %1944 = load ptr, ptr %20, align 8, !tbaa !5
  %1945 = load i32, ptr %15, align 4, !tbaa !9
  %1946 = load ptr, ptr %16, align 8, !tbaa !5
  %1947 = load ptr, ptr %17, align 8, !tbaa !5
  %1948 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %1944, ptr noundef %99, i32 noundef %1945, ptr noundef %1946, ptr noundef %1947, i32 noundef 2)
  br i1 %1948, label %1949, label %1952

1949:                                             ; preds = %1943
  %1950 = load ptr, ptr %43, align 8, !tbaa !5
  %1951 = load i32, ptr %99, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1950, i32 noundef %1951)
  br label %1952

1952:                                             ; preds = %1949, %1943
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #14
  br label %1953

1953:                                             ; preds = %1952, %1940
  br label %1954

1954:                                             ; preds = %1953, %1939
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #14
  br label %2163

1955:                                             ; preds = %1899
  %1956 = load i8, ptr %97, align 1, !tbaa !42, !range !40, !noundef !41
  %1957 = trunc i8 %1956 to i1
  br i1 %1957, label %1958, label %1973

1958:                                             ; preds = %1955
  %1959 = load i32, ptr %15, align 4, !tbaa !9
  %1960 = and i32 %1959, 1048576
  %1961 = icmp ne i32 %1960, 0
  br i1 %1961, label %1962, label %1971

1962:                                             ; preds = %1958
  %1963 = load ptr, ptr %12, align 8, !tbaa !5
  %1964 = getelementptr inbounds i8, ptr %1963, i64 0
  %1965 = load i8, ptr %1964, align 1, !tbaa !144
  %1966 = sext i8 %1965 to i32
  %1967 = icmp ne i32 %1966, 0
  br i1 %1967, label %1968, label %1969

1968:                                             ; preds = %1962
  store i8 1, ptr %82, align 1, !tbaa !42
  br label %1970

1969:                                             ; preds = %1962
  store i8 0, ptr %64, align 1, !tbaa !42
  store i8 0, ptr %63, align 1, !tbaa !42
  store i8 1, ptr %52, align 1, !tbaa !42
  br label %1970

1970:                                             ; preds = %1969, %1968
  br label %1972

1971:                                             ; preds = %1958
  store i8 1, ptr %82, align 1, !tbaa !42
  store i8 1, ptr %52, align 1, !tbaa !42
  store i8 0, ptr %64, align 1, !tbaa !42
  store i8 0, ptr %63, align 1, !tbaa !42
  br label %1972

1972:                                             ; preds = %1971, %1970
  br label %2162

1973:                                             ; preds = %1955
  %1974 = load i8, ptr %91, align 1, !tbaa !42, !range !40, !noundef !41
  %1975 = trunc i8 %1974 to i1
  br i1 %1975, label %1979, label %1976

1976:                                             ; preds = %1973
  %1977 = load i8, ptr %92, align 1, !tbaa !42, !range !40, !noundef !41
  %1978 = trunc i8 %1977 to i1
  br i1 %1978, label %1979, label %1986

1979:                                             ; preds = %1976, %1973
  %1980 = load ptr, ptr %43, align 8, !tbaa !5
  %1981 = load i8, ptr %91, align 1, !tbaa !42, !range !40, !noundef !41
  %1982 = trunc i8 %1981 to i1
  %1983 = zext i1 %1982 to i64
  %1984 = select i1 %1982, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1980, i32 noundef %1984)
  %1985 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1985)
  br label %2161

1986:                                             ; preds = %1976
  %1987 = load i8, ptr %93, align 1, !tbaa !42, !range !40, !noundef !41
  %1988 = trunc i8 %1987 to i1
  br i1 %1988, label %1989, label %1993

1989:                                             ; preds = %1986
  %1990 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %1990)
  %1991 = load ptr, ptr %43, align 8, !tbaa !5
  %1992 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %1991, i32 0, i32 12
  store i8 1, ptr %1992, align 4, !tbaa !167
  br label %2160

1993:                                             ; preds = %1986
  %1994 = load i8, ptr %88, align 1, !tbaa !42, !range !40, !noundef !41
  %1995 = trunc i8 %1994 to i1
  br i1 %1995, label %1999, label %1996

1996:                                             ; preds = %1993
  %1997 = load i8, ptr %89, align 1, !tbaa !42, !range !40, !noundef !41
  %1998 = trunc i8 %1997 to i1
  br i1 %1998, label %1999, label %2093

1999:                                             ; preds = %1996, %1993
  %2000 = load ptr, ptr %21, align 8, !tbaa !5
  %2001 = getelementptr inbounds %struct.ImGuiIO, ptr %2000, i32 0, i32 38
  %2002 = load ptr, ptr %2001, align 8, !tbaa !180
  %2003 = icmp ne ptr %2002, null
  br i1 %2003, label %2004, label %2077

2004:                                             ; preds = %1999
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #14
  %2005 = load ptr, ptr %43, align 8, !tbaa !5
  %2006 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %2005)
  br i1 %2006, label %2007, label %2017

2007:                                             ; preds = %2004
  %2008 = load ptr, ptr %43, align 8, !tbaa !5
  %2009 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2008, i32 0, i32 10
  %2010 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2009, i32 0, i32 1
  %2011 = load i32, ptr %2010, align 4, !tbaa !135
  %2012 = load ptr, ptr %43, align 8, !tbaa !5
  %2013 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2012, i32 0, i32 10
  %2014 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2013, i32 0, i32 2
  %2015 = load i32, ptr %2014, align 4, !tbaa !137
  %2016 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2011, i32 noundef %2015)
  br label %2018

2017:                                             ; preds = %2004
  br label %2018

2018:                                             ; preds = %2017, %2007
  %2019 = phi i32 [ %2016, %2007 ], [ 0, %2017 ]
  store i32 %2019, ptr %100, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #14
  %2020 = load ptr, ptr %43, align 8, !tbaa !5
  %2021 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %2020)
  br i1 %2021, label %2022, label %2032

2022:                                             ; preds = %2018
  %2023 = load ptr, ptr %43, align 8, !tbaa !5
  %2024 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2023, i32 0, i32 10
  %2025 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2024, i32 0, i32 1
  %2026 = load i32, ptr %2025, align 4, !tbaa !135
  %2027 = load ptr, ptr %43, align 8, !tbaa !5
  %2028 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2027, i32 0, i32 10
  %2029 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2028, i32 0, i32 2
  %2030 = load i32, ptr %2029, align 4, !tbaa !137
  %2031 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2026, i32 noundef %2030)
  br label %2036

2032:                                             ; preds = %2018
  %2033 = load ptr, ptr %43, align 8, !tbaa !5
  %2034 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2033, i32 0, i32 2
  %2035 = load i32, ptr %2034, align 4, !tbaa !132
  br label %2036

2036:                                             ; preds = %2032, %2022
  %2037 = phi i32 [ %2031, %2022 ], [ %2035, %2032 ]
  store i32 %2037, ptr %101, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #14
  %2038 = load ptr, ptr %43, align 8, !tbaa !5
  %2039 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2038, i32 0, i32 4
  %2040 = getelementptr inbounds %struct.ImVector.5, ptr %2039, i32 0, i32 2
  %2041 = load ptr, ptr %2040, align 8, !tbaa !131
  %2042 = load i32, ptr %100, align 4, !tbaa !9
  %2043 = sext i32 %2042 to i64
  %2044 = getelementptr inbounds i16, ptr %2041, i64 %2043
  %2045 = load ptr, ptr %43, align 8, !tbaa !5
  %2046 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2045, i32 0, i32 4
  %2047 = getelementptr inbounds %struct.ImVector.5, ptr %2046, i32 0, i32 2
  %2048 = load ptr, ptr %2047, align 8, !tbaa !131
  %2049 = load i32, ptr %101, align 4, !tbaa !9
  %2050 = sext i32 %2049 to i64
  %2051 = getelementptr inbounds i16, ptr %2048, i64 %2050
  %2052 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2044, ptr noundef %2051)
  %2053 = add nsw i32 %2052, 1
  store i32 %2053, ptr %102, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #14
  %2054 = load i32, ptr %102, align 4, !tbaa !9
  %2055 = sext i32 %2054 to i64
  %2056 = mul i64 %2055, 1
  %2057 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %2056)
  store ptr %2057, ptr %103, align 8, !tbaa !5
  %2058 = load ptr, ptr %103, align 8, !tbaa !5
  %2059 = load i32, ptr %102, align 4, !tbaa !9
  %2060 = load ptr, ptr %43, align 8, !tbaa !5
  %2061 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2060, i32 0, i32 4
  %2062 = getelementptr inbounds %struct.ImVector.5, ptr %2061, i32 0, i32 2
  %2063 = load ptr, ptr %2062, align 8, !tbaa !131
  %2064 = load i32, ptr %100, align 4, !tbaa !9
  %2065 = sext i32 %2064 to i64
  %2066 = getelementptr inbounds i16, ptr %2063, i64 %2065
  %2067 = load ptr, ptr %43, align 8, !tbaa !5
  %2068 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2067, i32 0, i32 4
  %2069 = getelementptr inbounds %struct.ImVector.5, ptr %2068, i32 0, i32 2
  %2070 = load ptr, ptr %2069, align 8, !tbaa !131
  %2071 = load i32, ptr %101, align 4, !tbaa !9
  %2072 = sext i32 %2071 to i64
  %2073 = getelementptr inbounds i16, ptr %2070, i64 %2072
  %2074 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2058, i32 noundef %2059, ptr noundef %2066, ptr noundef %2073)
  %2075 = load ptr, ptr %103, align 8, !tbaa !5
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %2075)
  %2076 = load ptr, ptr %103, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2076)
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #14
  br label %2077

2077:                                             ; preds = %2036, %1999
  %2078 = load i8, ptr %88, align 1, !tbaa !42, !range !40, !noundef !41
  %2079 = trunc i8 %2078 to i1
  br i1 %2079, label %2080, label %2092

2080:                                             ; preds = %2077
  %2081 = load ptr, ptr %43, align 8, !tbaa !5
  %2082 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %2081)
  br i1 %2082, label %2085, label %2083

2083:                                             ; preds = %2080
  %2084 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %2084)
  br label %2085

2085:                                             ; preds = %2083, %2080
  %2086 = load ptr, ptr %43, align 8, !tbaa !5
  %2087 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2086, i32 0, i32 12
  store i8 1, ptr %2087, align 4, !tbaa !167
  %2088 = load ptr, ptr %43, align 8, !tbaa !5
  %2089 = load ptr, ptr %43, align 8, !tbaa !5
  %2090 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2089, i32 0, i32 10
  %2091 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %2088, ptr noundef %2090)
  br label %2092

2092:                                             ; preds = %2085, %2077
  br label %2159

2093:                                             ; preds = %1996
  %2094 = load i8, ptr %90, align 1, !tbaa !42, !range !40, !noundef !41
  %2095 = trunc i8 %2094 to i1
  br i1 %2095, label %2096, label %2158

2096:                                             ; preds = %2093
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #14
  %2097 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  store ptr %2097, ptr %104, align 8, !tbaa !5
  %2098 = load ptr, ptr %104, align 8, !tbaa !5
  %2099 = icmp ne ptr %2098, null
  br i1 %2099, label %2100, label %2157

2100:                                             ; preds = %2096
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #14
  %2101 = load ptr, ptr %104, align 8, !tbaa !5
  %2102 = call i64 @strlen(ptr noundef %2101) #16
  %2103 = trunc i64 %2102 to i32
  store i32 %2103, ptr %105, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #14
  %2104 = load i32, ptr %105, align 4, !tbaa !9
  %2105 = add nsw i32 %2104, 1
  %2106 = sext i32 %2105 to i64
  %2107 = mul i64 %2106, 2
  %2108 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %2107)
  store ptr %2108, ptr %106, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #14
  store i32 0, ptr %107, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #14
  %2109 = load ptr, ptr %104, align 8, !tbaa !5
  store ptr %2109, ptr %108, align 8, !tbaa !5
  br label %2110

2110:                                             ; preds = %2138, %2136, %2100
  %2111 = load ptr, ptr %108, align 8, !tbaa !5
  %2112 = load i8, ptr %2111, align 1, !tbaa !144
  %2113 = sext i8 %2112 to i32
  %2114 = icmp ne i32 %2113, 0
  br i1 %2114, label %2116, label %2115

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

2116:                                             ; preds = %2110
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #14
  %2117 = load ptr, ptr %108, align 8, !tbaa !5
  %2118 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef %109, ptr noundef %2117, ptr noundef null)
  %2119 = load ptr, ptr %108, align 8, !tbaa !5
  %2120 = sext i32 %2118 to i64
  %2121 = getelementptr inbounds i8, ptr %2119, i64 %2120
  store ptr %2121, ptr %108, align 8, !tbaa !5
  %2122 = load ptr, ptr %20, align 8, !tbaa !5
  %2123 = load i32, ptr %15, align 4, !tbaa !9
  %2124 = load ptr, ptr %16, align 8, !tbaa !5
  %2125 = load ptr, ptr %17, align 8, !tbaa !5
  %2126 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %2122, ptr noundef %109, i32 noundef %2123, ptr noundef %2124, ptr noundef %2125, i32 noundef 4)
  br i1 %2126, label %2128, label %2127

2127:                                             ; preds = %2116
  store i32 6, ptr %19, align 4
  br label %2136, !llvm.loop !181

2128:                                             ; preds = %2116
  %2129 = load i32, ptr %109, align 4, !tbaa !9
  %2130 = trunc i32 %2129 to i16
  %2131 = load ptr, ptr %106, align 8, !tbaa !5
  %2132 = load i32, ptr %107, align 4, !tbaa !9
  %2133 = add nsw i32 %2132, 1
  store i32 %2133, ptr %107, align 4, !tbaa !9
  %2134 = sext i32 %2132 to i64
  %2135 = getelementptr inbounds i16, ptr %2131, i64 %2134
  store i16 %2130, ptr %2135, align 2, !tbaa !165
  store i32 0, ptr %19, align 4
  br label %2136

2136:                                             ; preds = %2128, %2127
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #14
  %2137 = load i32, ptr %19, align 4
  switch i32 %2137, label %3639 [
    i32 0, label %2138
    i32 6, label %2110
  ]

2138:                                             ; preds = %2136
  br label %2110, !llvm.loop !181

2139:                                             ; preds = %2115
  %2140 = load ptr, ptr %106, align 8, !tbaa !5
  %2141 = load i32, ptr %107, align 4, !tbaa !9
  %2142 = sext i32 %2141 to i64
  %2143 = getelementptr inbounds i16, ptr %2140, i64 %2142
  store i16 0, ptr %2143, align 2, !tbaa !165
  %2144 = load i32, ptr %107, align 4, !tbaa !9
  %2145 = icmp sgt i32 %2144, 0
  br i1 %2145, label %2146, label %2155

2146:                                             ; preds = %2139
  %2147 = load ptr, ptr %43, align 8, !tbaa !5
  %2148 = load ptr, ptr %43, align 8, !tbaa !5
  %2149 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2148, i32 0, i32 10
  %2150 = load ptr, ptr %106, align 8, !tbaa !5
  %2151 = load i32, ptr %107, align 4, !tbaa !9
  %2152 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2147, ptr noundef %2149, ptr noundef %2150, i32 noundef %2151)
  %2153 = load ptr, ptr %43, align 8, !tbaa !5
  %2154 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2153, i32 0, i32 12
  store i8 1, ptr %2154, align 4, !tbaa !167
  br label %2155

2155:                                             ; preds = %2146, %2139
  %2156 = load ptr, ptr %106, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2156)
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #14
  br label %2157

2157:                                             ; preds = %2155, %2096
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #14
  br label %2158

2158:                                             ; preds = %2157, %2093
  br label %2159

2159:                                             ; preds = %2158, %2092
  br label %2160

2160:                                             ; preds = %2159, %1989
  br label %2161

2161:                                             ; preds = %2160, %1979
  br label %2162

2162:                                             ; preds = %2161, %1972
  br label %2163

2163:                                             ; preds = %2162, %1954
  br label %2164

2164:                                             ; preds = %2163, %1892
  br label %2165

2165:                                             ; preds = %2164, %1853
  br label %2166

2166:                                             ; preds = %2165, %1834
  br label %2167

2167:                                             ; preds = %2166, %1818
  br label %2168

2168:                                             ; preds = %2167, %1793
  br label %2169

2169:                                             ; preds = %2168, %1776
  br label %2170

2170:                                             ; preds = %2169, %1770
  br label %2171

2171:                                             ; preds = %2170, %1739
  br label %2172

2172:                                             ; preds = %2171, %1706
  br label %2173

2173:                                             ; preds = %2172, %1690
  %2174 = load ptr, ptr %43, align 8, !tbaa !5
  %2175 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %2174)
  br i1 %2175, label %2176, label %2179

2176:                                             ; preds = %2173
  %2177 = load i8, ptr %63, align 1, !tbaa !42, !range !40, !noundef !41
  %2178 = trunc i8 %2177 to i1
  br label %2179

2179:                                             ; preds = %2176, %2173
  %2180 = phi i1 [ false, %2173 ], [ %2178, %2176 ]
  %2181 = zext i1 %2180 to i32
  %2182 = load i8, ptr %64, align 1, !tbaa !42, !range !40, !noundef !41
  %2183 = trunc i8 %2182 to i1
  %2184 = zext i1 %2183 to i32
  %2185 = or i32 %2184, %2181
  %2186 = icmp ne i32 %2185, 0
  %2187 = zext i1 %2186 to i8
  store i8 %2187, ptr %64, align 1, !tbaa !42
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #14
  br label %2188

2188:                                             ; preds = %2179, %1482, %1477, %1471
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #14
  store ptr null, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #14
  store i32 0, ptr %111, align 4, !tbaa !9
  %2189 = load ptr, ptr %20, align 8, !tbaa !5
  %2190 = getelementptr inbounds %struct.ImGuiContext, ptr %2189, i32 0, i32 48
  %2191 = load i32, ptr %2190, align 4, !tbaa !112
  %2192 = load i32, ptr %25, align 4, !tbaa !9
  %2193 = icmp eq i32 %2191, %2192
  br i1 %2193, label %2194, label %2672

2194:                                             ; preds = %2188
  %2195 = load ptr, ptr %43, align 8, !tbaa !5
  %2196 = icmp ne ptr %2195, null
  br i1 %2196, label %2197, label %2198

2197:                                             ; preds = %2194
  br label %2200

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

2199:                                             ; No predecessors!
  br label %2200

2200:                                             ; preds = %2199, %2197
  %2201 = load i8, ptr %82, align 1, !tbaa !42, !range !40, !noundef !41
  %2202 = trunc i8 %2201 to i1
  br i1 %2202, label %2203, label %2286

2203:                                             ; preds = %2200
  %2204 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %2205 = trunc i8 %2204 to i1
  br i1 %2205, label %2286, label %2206

2206:                                             ; preds = %2203
  %2207 = load i32, ptr %15, align 4, !tbaa !9
  %2208 = and i32 %2207, 1048576
  %2209 = icmp ne i32 %2208, 0
  br i1 %2209, label %2210, label %2223

2210:                                             ; preds = %2206
  %2211 = load ptr, ptr %12, align 8, !tbaa !5
  %2212 = getelementptr inbounds i8, ptr %2211, i64 0
  %2213 = load i8, ptr %2212, align 1, !tbaa !144
  %2214 = sext i8 %2213 to i32
  %2215 = icmp ne i32 %2214, 0
  br i1 %2215, label %2216, label %2217

2216:                                             ; preds = %2210
  br label %2219

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

2218:                                             ; No predecessors!
  br label %2219

2219:                                             ; preds = %2218, %2216
  store ptr @.str, ptr %110, align 8, !tbaa !5
  store i32 0, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 2, ptr %112) #14
  %2220 = load ptr, ptr %43, align 8, !tbaa !5
  %2221 = load ptr, ptr %43, align 8, !tbaa !5
  %2222 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2221, i32 0, i32 10
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2220, ptr noundef %2222, ptr noundef %112, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr %112) #14
  br label %2285

2223:                                             ; preds = %2206
  %2224 = load ptr, ptr %12, align 8, !tbaa !5
  %2225 = load ptr, ptr %43, align 8, !tbaa !5
  %2226 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2225, i32 0, i32 6
  %2227 = getelementptr inbounds %struct.ImVector.31, ptr %2226, i32 0, i32 2
  %2228 = load ptr, ptr %2227, align 8, !tbaa !127
  %2229 = call i32 @strcmp(ptr noundef %2224, ptr noundef %2228) #16
  %2230 = icmp ne i32 %2229, 0
  br i1 %2230, label %2231, label %2284

2231:                                             ; preds = %2223
  %2232 = load ptr, ptr %43, align 8, !tbaa !5
  %2233 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2232, i32 0, i32 6
  %2234 = getelementptr inbounds %struct.ImVector.31, ptr %2233, i32 0, i32 2
  %2235 = load ptr, ptr %2234, align 8, !tbaa !127
  store ptr %2235, ptr %110, align 8, !tbaa !5
  %2236 = load ptr, ptr %43, align 8, !tbaa !5
  %2237 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2236, i32 0, i32 6
  %2238 = getelementptr inbounds %struct.ImVector.31, ptr %2237, i32 0, i32 0
  %2239 = load i32, ptr %2238, align 8, !tbaa !182
  %2240 = sub nsw i32 %2239, 1
  store i32 %2240, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113)
  %2241 = load i32, ptr %111, align 4, !tbaa !9
  %2242 = icmp sgt i32 %2241, 0
  br i1 %2242, label %2243, label %2268

2243:                                             ; preds = %2231
  %2244 = load ptr, ptr %110, align 8, !tbaa !5
  %2245 = load ptr, ptr %110, align 8, !tbaa !5
  %2246 = load i32, ptr %111, align 4, !tbaa !9
  %2247 = sext i32 %2246 to i64
  %2248 = getelementptr inbounds i8, ptr %2245, i64 %2247
  %2249 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2244, ptr noundef %2248)
          to label %2250 unwind label %2264

2250:                                             ; preds = %2243
  %2251 = add nsw i32 %2249, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %113, i32 noundef %2251)
          to label %2252 unwind label %2264

2252:                                             ; preds = %2250
  %2253 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 2
  %2254 = load ptr, ptr %2253, align 8, !tbaa !183
  %2255 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 0
  %2256 = load i32, ptr %2255, align 8, !tbaa !184
  %2257 = load ptr, ptr %110, align 8, !tbaa !5
  %2258 = load ptr, ptr %110, align 8, !tbaa !5
  %2259 = load i32, ptr %111, align 4, !tbaa !9
  %2260 = sext i32 %2259 to i64
  %2261 = getelementptr inbounds i8, ptr %2258, i64 %2260
  %2262 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2254, i32 noundef %2256, ptr noundef %2257, ptr noundef %2261, ptr noundef null)
          to label %2263 unwind label %2264

2263:                                             ; preds = %2252
  br label %2268

2264:                                             ; preds = %2281, %2252, %2250, %2243
  %2265 = landingpad { ptr, i32 }
          cleanup
  %2266 = extractvalue { ptr, i32 } %2265, 0
  store ptr %2266, ptr %114, align 8
  %2267 = extractvalue { ptr, i32 } %2265, 1
  store i32 %2267, ptr %115, align 4
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #14
  call void @llvm.lifetime.end.p0(i64 76, ptr %36) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #14
  br label %3634

2268:                                             ; preds = %2263, %2231
  %2269 = load ptr, ptr %43, align 8, !tbaa !5
  %2270 = load ptr, ptr %43, align 8, !tbaa !5
  %2271 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2270, i32 0, i32 10
  %2272 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 2
  %2273 = load ptr, ptr %2272, align 8, !tbaa !183
  %2274 = load i32, ptr %111, align 4, !tbaa !9
  %2275 = icmp sgt i32 %2274, 0
  br i1 %2275, label %2276, label %2280

2276:                                             ; preds = %2268
  %2277 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 0
  %2278 = load i32, ptr %2277, align 8, !tbaa !184
  %2279 = sub nsw i32 %2278, 1
  br label %2281

2280:                                             ; preds = %2268
  br label %2281

2281:                                             ; preds = %2280, %2276
  %2282 = phi i32 [ %2279, %2276 ], [ 0, %2280 ]
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2269, ptr noundef %2271, ptr noundef %2273, i32 noundef %2282)
          to label %2283 unwind label %2264

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

2284:                                             ; preds = %2283, %2223
  br label %2285

2285:                                             ; preds = %2284, %2219
  br label %2286

2286:                                             ; preds = %2285, %2203, %2200
  %2287 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %2288 = trunc i8 %2287 to i1
  br i1 %2288, label %2313, label %2289

2289:                                             ; preds = %2286
  %2290 = load ptr, ptr %43, align 8, !tbaa !5
  %2291 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2290, i32 0, i32 7
  store i8 1, ptr %2291, align 8, !tbaa !129
  %2292 = load ptr, ptr %43, align 8, !tbaa !5
  %2293 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2292, i32 0, i32 5
  %2294 = load ptr, ptr %43, align 8, !tbaa !5
  %2295 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2294, i32 0, i32 4
  %2296 = getelementptr inbounds %struct.ImVector.5, ptr %2295, i32 0, i32 0
  %2297 = load i32, ptr %2296, align 8, !tbaa !143
  %2298 = mul nsw i32 %2297, 4
  %2299 = add nsw i32 %2298, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2293, i32 noundef %2299)
  %2300 = load ptr, ptr %43, align 8, !tbaa !5
  %2301 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2300, i32 0, i32 5
  %2302 = getelementptr inbounds %struct.ImVector.31, ptr %2301, i32 0, i32 2
  %2303 = load ptr, ptr %2302, align 8, !tbaa !130
  %2304 = load ptr, ptr %43, align 8, !tbaa !5
  %2305 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2304, i32 0, i32 5
  %2306 = getelementptr inbounds %struct.ImVector.31, ptr %2305, i32 0, i32 0
  %2307 = load i32, ptr %2306, align 8, !tbaa !185
  %2308 = load ptr, ptr %43, align 8, !tbaa !5
  %2309 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2308, i32 0, i32 4
  %2310 = getelementptr inbounds %struct.ImVector.5, ptr %2309, i32 0, i32 2
  %2311 = load ptr, ptr %2310, align 8, !tbaa !131
  %2312 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2303, i32 noundef %2307, ptr noundef %2311, ptr noundef null)
  br label %2313

2313:                                             ; preds = %2289, %2286
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #14
  %2314 = load i8, ptr %82, align 1, !tbaa !42, !range !40, !noundef !41
  %2315 = trunc i8 %2314 to i1
  br i1 %2315, label %2316, label %2325

2316:                                             ; preds = %2313
  %2317 = load i8, ptr %66, align 1, !tbaa !42, !range !40, !noundef !41
  %2318 = trunc i8 %2317 to i1
  br i1 %2318, label %2319, label %2323

2319:                                             ; preds = %2316
  %2320 = load i32, ptr %15, align 4, !tbaa !9
  %2321 = and i32 %2320, 32
  %2322 = icmp ne i32 %2321, 0
  br label %2323

2323:                                             ; preds = %2319, %2316
  %2324 = phi i1 [ false, %2316 ], [ %2322, %2319 ]
  br label %2325

2325:                                             ; preds = %2323, %2313
  %2326 = phi i1 [ true, %2313 ], [ %2324, %2323 ]
  %2327 = zext i1 %2326 to i8
  store i8 %2327, ptr %116, align 1, !tbaa !42
  %2328 = load i8, ptr %116, align 1, !tbaa !42, !range !40, !noundef !41
  %2329 = trunc i8 %2328 to i1
  br i1 %2329, label %2330, label %2671

2330:                                             ; preds = %2325
  %2331 = load i32, ptr %15, align 4, !tbaa !9
  %2332 = and i32 %2331, 524736
  %2333 = icmp ne i32 %2332, 0
  br i1 %2333, label %2334, label %2651

2334:                                             ; preds = %2330
  %2335 = load ptr, ptr %16, align 8, !tbaa !5
  %2336 = icmp ne ptr %2335, null
  br i1 %2336, label %2337, label %2338

2337:                                             ; preds = %2334
  br label %2340

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

2339:                                             ; No predecessors!
  br label %2340

2340:                                             ; preds = %2339, %2337
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #14
  store i32 0, ptr %117, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #14
  store i32 0, ptr %118, align 4, !tbaa !186
  %2341 = load i32, ptr %15, align 4, !tbaa !9
  %2342 = and i32 %2341, 64
  %2343 = icmp ne i32 %2342, 0
  br i1 %2343, label %2344, label %2348

2344:                                             ; preds = %2340
  %2345 = load i32, ptr %25, align 4, !tbaa !9
  %2346 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %2345, i32 noundef 0)
  br i1 %2346, label %2347, label %2348

2347:                                             ; preds = %2344
  store i32 64, ptr %117, align 4, !tbaa !9
  store i32 512, ptr %118, align 4, !tbaa !186
  br label %2381

2348:                                             ; preds = %2344, %2340
  %2349 = load i32, ptr %15, align 4, !tbaa !9
  %2350 = and i32 %2349, 128
  %2351 = icmp ne i32 %2350, 0
  br i1 %2351, label %2352, label %2355

2352:                                             ; preds = %2348
  %2353 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %2353, label %2354, label %2355

2354:                                             ; preds = %2352
  store i32 128, ptr %117, align 4, !tbaa !9
  store i32 515, ptr %118, align 4, !tbaa !186
  br label %2380

2355:                                             ; preds = %2352, %2348
  %2356 = load i32, ptr %15, align 4, !tbaa !9
  %2357 = and i32 %2356, 128
  %2358 = icmp ne i32 %2357, 0
  br i1 %2358, label %2359, label %2362

2359:                                             ; preds = %2355
  %2360 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %2360, label %2361, label %2362

2361:                                             ; preds = %2359
  store i32 128, ptr %117, align 4, !tbaa !9
  store i32 516, ptr %118, align 4, !tbaa !186
  br label %2379

2362:                                             ; preds = %2359, %2355
  %2363 = load i32, ptr %15, align 4, !tbaa !9
  %2364 = and i32 %2363, 524288
  %2365 = icmp ne i32 %2364, 0
  br i1 %2365, label %2366, label %2372

2366:                                             ; preds = %2362
  %2367 = load ptr, ptr %43, align 8, !tbaa !5
  %2368 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2367, i32 0, i32 14
  %2369 = load i8, ptr %2368, align 2, !tbaa !155, !range !40, !noundef !41
  %2370 = trunc i8 %2369 to i1
  br i1 %2370, label %2371, label %2372

2371:                                             ; preds = %2366
  store i32 524288, ptr %117, align 4, !tbaa !9
  br label %2378

2372:                                             ; preds = %2366, %2362
  %2373 = load i32, ptr %15, align 4, !tbaa !9
  %2374 = and i32 %2373, 256
  %2375 = icmp ne i32 %2374, 0
  br i1 %2375, label %2376, label %2377

2376:                                             ; preds = %2372
  store i32 256, ptr %117, align 4, !tbaa !9
  br label %2377

2377:                                             ; preds = %2376, %2372
  br label %2378

2378:                                             ; preds = %2377, %2371
  br label %2379

2379:                                             ; preds = %2378, %2361
  br label %2380

2380:                                             ; preds = %2379, %2354
  br label %2381

2381:                                             ; preds = %2380, %2347
  %2382 = load i32, ptr %117, align 4, !tbaa !9
  %2383 = icmp ne i32 %2382, 0
  br i1 %2383, label %2384, label %2650

2384:                                             ; preds = %2381
  call void @llvm.lifetime.start.p0(i64 64, ptr %119) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %119)
  %2385 = load ptr, ptr %20, align 8, !tbaa !5
  %2386 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 0
  store ptr %2385, ptr %2386, align 8, !tbaa !187
  %2387 = load i32, ptr %117, align 4, !tbaa !9
  %2388 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 1
  store i32 %2387, ptr %2388, align 8, !tbaa !189
  %2389 = load i32, ptr %15, align 4, !tbaa !9
  %2390 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 2
  store i32 %2389, ptr %2390, align 4, !tbaa !190
  %2391 = load ptr, ptr %17, align 8, !tbaa !5
  %2392 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 3
  store ptr %2391, ptr %2392, align 8, !tbaa !191
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #14
  %2393 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %2394 = trunc i8 %2393 to i1
  br i1 %2394, label %2395, label %2397

2395:                                             ; preds = %2384
  %2396 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2402

2397:                                             ; preds = %2384
  %2398 = load ptr, ptr %43, align 8, !tbaa !5
  %2399 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2398, i32 0, i32 5
  %2400 = getelementptr inbounds %struct.ImVector.31, ptr %2399, i32 0, i32 2
  %2401 = load ptr, ptr %2400, align 8, !tbaa !130
  br label %2402

2402:                                             ; preds = %2397, %2395
  %2403 = phi ptr [ %2396, %2395 ], [ %2401, %2397 ]
  store ptr %2403, ptr %120, align 8, !tbaa !5
  %2404 = load i32, ptr %118, align 4, !tbaa !186
  %2405 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 5
  store i32 %2404, ptr %2405, align 4, !tbaa !192
  %2406 = load ptr, ptr %120, align 8, !tbaa !5
  %2407 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  store ptr %2406, ptr %2407, align 8, !tbaa !193
  %2408 = load ptr, ptr %43, align 8, !tbaa !5
  %2409 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2408, i32 0, i32 3
  %2410 = load i32, ptr %2409, align 8, !tbaa !128
  %2411 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  store i32 %2410, ptr %2411, align 8, !tbaa !194
  %2412 = load ptr, ptr %43, align 8, !tbaa !5
  %2413 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2412, i32 0, i32 8
  %2414 = load i32, ptr %2413, align 4, !tbaa !156
  %2415 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 8
  store i32 %2414, ptr %2415, align 4, !tbaa !195
  %2416 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 9
  store i8 0, ptr %2416, align 8, !tbaa !196
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #14
  %2417 = load ptr, ptr %43, align 8, !tbaa !5
  %2418 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2417, i32 0, i32 4
  %2419 = getelementptr inbounds %struct.ImVector.5, ptr %2418, i32 0, i32 2
  %2420 = load ptr, ptr %2419, align 8, !tbaa !131
  store ptr %2420, ptr %121, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #14
  %2421 = load ptr, ptr %121, align 8, !tbaa !5
  %2422 = load ptr, ptr %121, align 8, !tbaa !5
  %2423 = load ptr, ptr %43, align 8, !tbaa !5
  %2424 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2423, i32 0, i32 10
  %2425 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2424, i32 0, i32 0
  %2426 = load i32, ptr %2425, align 4, !tbaa !138
  %2427 = sext i32 %2426 to i64
  %2428 = getelementptr inbounds i16, ptr %2422, i64 %2427
  %2429 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2421, ptr noundef %2428)
  %2430 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  store i32 %2429, ptr %2430, align 4, !tbaa !197
  store i32 %2429, ptr %122, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #14
  %2431 = load ptr, ptr %121, align 8, !tbaa !5
  %2432 = load ptr, ptr %121, align 8, !tbaa !5
  %2433 = load ptr, ptr %43, align 8, !tbaa !5
  %2434 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2433, i32 0, i32 10
  %2435 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2434, i32 0, i32 1
  %2436 = load i32, ptr %2435, align 4, !tbaa !135
  %2437 = sext i32 %2436 to i64
  %2438 = getelementptr inbounds i16, ptr %2432, i64 %2437
  %2439 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2431, ptr noundef %2438)
  %2440 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  store i32 %2439, ptr %2440, align 8, !tbaa !198
  store i32 %2439, ptr %123, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #14
  %2441 = load ptr, ptr %121, align 8, !tbaa !5
  %2442 = load ptr, ptr %121, align 8, !tbaa !5
  %2443 = load ptr, ptr %43, align 8, !tbaa !5
  %2444 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2443, i32 0, i32 10
  %2445 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2444, i32 0, i32 2
  %2446 = load i32, ptr %2445, align 4, !tbaa !137
  %2447 = sext i32 %2446 to i64
  %2448 = getelementptr inbounds i16, ptr %2442, i64 %2447
  %2449 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2441, ptr noundef %2448)
  %2450 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  store i32 %2449, ptr %2450, align 4, !tbaa !199
  store i32 %2449, ptr %124, align 4, !tbaa !9
  %2451 = load ptr, ptr %16, align 8, !tbaa !5
  %2452 = call noundef i32 %2451(ptr noundef %119)
  %2453 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %2454 = trunc i8 %2453 to i1
  br i1 %2454, label %2455, label %2457

2455:                                             ; preds = %2402
  %2456 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2462

2457:                                             ; preds = %2402
  %2458 = load ptr, ptr %43, align 8, !tbaa !5
  %2459 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2458, i32 0, i32 5
  %2460 = getelementptr inbounds %struct.ImVector.31, ptr %2459, i32 0, i32 2
  %2461 = load ptr, ptr %2460, align 8, !tbaa !130
  br label %2462

2462:                                             ; preds = %2457, %2455
  %2463 = phi ptr [ %2456, %2455 ], [ %2461, %2457 ]
  store ptr %2463, ptr %120, align 8, !tbaa !5
  %2464 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2465 = load ptr, ptr %2464, align 8, !tbaa !193
  %2466 = load ptr, ptr %120, align 8, !tbaa !5
  %2467 = icmp eq ptr %2465, %2466
  br i1 %2467, label %2468, label %2469

2468:                                             ; preds = %2462
  br label %2471

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

2470:                                             ; No predecessors!
  br label %2471

2471:                                             ; preds = %2470, %2468
  %2472 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 8
  %2473 = load i32, ptr %2472, align 4, !tbaa !195
  %2474 = load ptr, ptr %43, align 8, !tbaa !5
  %2475 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2474, i32 0, i32 8
  %2476 = load i32, ptr %2475, align 4, !tbaa !156
  %2477 = icmp eq i32 %2473, %2476
  br i1 %2477, label %2478, label %2479

2478:                                             ; preds = %2471
  br label %2481

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

2480:                                             ; No predecessors!
  br label %2481

2481:                                             ; preds = %2480, %2478
  %2482 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 2
  %2483 = load i32, ptr %2482, align 4, !tbaa !190
  %2484 = load i32, ptr %15, align 4, !tbaa !9
  %2485 = icmp eq i32 %2483, %2484
  br i1 %2485, label %2486, label %2487

2486:                                             ; preds = %2481
  br label %2489

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

2488:                                             ; No predecessors!
  br label %2489

2489:                                             ; preds = %2488, %2486
  call void @llvm.lifetime.start.p0(i64 1, ptr %125) #14
  %2490 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 9
  %2491 = load i8, ptr %2490, align 8, !tbaa !196, !range !40, !noundef !41
  %2492 = trunc i8 %2491 to i1
  %2493 = zext i1 %2492 to i8
  store i8 %2493, ptr %125, align 1, !tbaa !42
  %2494 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  %2495 = load i32, ptr %2494, align 4, !tbaa !197
  %2496 = load i32, ptr %122, align 4, !tbaa !9
  %2497 = icmp ne i32 %2495, %2496
  br i1 %2497, label %2501, label %2498

2498:                                             ; preds = %2489
  %2499 = load i8, ptr %125, align 1, !tbaa !42, !range !40, !noundef !41
  %2500 = trunc i8 %2499 to i1
  br i1 %2500, label %2501, label %2516

2501:                                             ; preds = %2498, %2489
  %2502 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2503 = load ptr, ptr %2502, align 8, !tbaa !193
  %2504 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2505 = load ptr, ptr %2504, align 8, !tbaa !193
  %2506 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  %2507 = load i32, ptr %2506, align 4, !tbaa !197
  %2508 = sext i32 %2507 to i64
  %2509 = getelementptr inbounds i8, ptr %2505, i64 %2508
  %2510 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2503, ptr noundef %2509)
  %2511 = load ptr, ptr %43, align 8, !tbaa !5
  %2512 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2511, i32 0, i32 10
  %2513 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2512, i32 0, i32 0
  store i32 %2510, ptr %2513, align 4, !tbaa !138
  %2514 = load ptr, ptr %43, align 8, !tbaa !5
  %2515 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2514, i32 0, i32 12
  store i8 1, ptr %2515, align 4, !tbaa !167
  br label %2516

2516:                                             ; preds = %2501, %2498
  %2517 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2518 = load i32, ptr %2517, align 8, !tbaa !198
  %2519 = load i32, ptr %123, align 4, !tbaa !9
  %2520 = icmp ne i32 %2518, %2519
  br i1 %2520, label %2524, label %2521

2521:                                             ; preds = %2516
  %2522 = load i8, ptr %125, align 1, !tbaa !42, !range !40, !noundef !41
  %2523 = trunc i8 %2522 to i1
  br i1 %2523, label %2524, label %2550

2524:                                             ; preds = %2521, %2516
  %2525 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2526 = load i32, ptr %2525, align 8, !tbaa !198
  %2527 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  %2528 = load i32, ptr %2527, align 4, !tbaa !197
  %2529 = icmp eq i32 %2526, %2528
  br i1 %2529, label %2530, label %2535

2530:                                             ; preds = %2524
  %2531 = load ptr, ptr %43, align 8, !tbaa !5
  %2532 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2531, i32 0, i32 10
  %2533 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2532, i32 0, i32 0
  %2534 = load i32, ptr %2533, align 4, !tbaa !138
  br label %2545

2535:                                             ; preds = %2524
  %2536 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2537 = load ptr, ptr %2536, align 8, !tbaa !193
  %2538 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2539 = load ptr, ptr %2538, align 8, !tbaa !193
  %2540 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2541 = load i32, ptr %2540, align 8, !tbaa !198
  %2542 = sext i32 %2541 to i64
  %2543 = getelementptr inbounds i8, ptr %2539, i64 %2542
  %2544 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2537, ptr noundef %2543)
  br label %2545

2545:                                             ; preds = %2535, %2530
  %2546 = phi i32 [ %2534, %2530 ], [ %2544, %2535 ]
  %2547 = load ptr, ptr %43, align 8, !tbaa !5
  %2548 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2547, i32 0, i32 10
  %2549 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2548, i32 0, i32 1
  store i32 %2546, ptr %2549, align 4, !tbaa !135
  br label %2550

2550:                                             ; preds = %2545, %2521
  %2551 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  %2552 = load i32, ptr %2551, align 4, !tbaa !199
  %2553 = load i32, ptr %124, align 4, !tbaa !9
  %2554 = icmp ne i32 %2552, %2553
  br i1 %2554, label %2558, label %2555

2555:                                             ; preds = %2550
  %2556 = load i8, ptr %125, align 1, !tbaa !42, !range !40, !noundef !41
  %2557 = trunc i8 %2556 to i1
  br i1 %2557, label %2558, label %2584

2558:                                             ; preds = %2555, %2550
  %2559 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  %2560 = load i32, ptr %2559, align 4, !tbaa !199
  %2561 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2562 = load i32, ptr %2561, align 8, !tbaa !198
  %2563 = icmp eq i32 %2560, %2562
  br i1 %2563, label %2564, label %2569

2564:                                             ; preds = %2558
  %2565 = load ptr, ptr %43, align 8, !tbaa !5
  %2566 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2565, i32 0, i32 10
  %2567 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2566, i32 0, i32 1
  %2568 = load i32, ptr %2567, align 4, !tbaa !135
  br label %2579

2569:                                             ; preds = %2558
  %2570 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2571 = load ptr, ptr %2570, align 8, !tbaa !193
  %2572 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2573 = load ptr, ptr %2572, align 8, !tbaa !193
  %2574 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  %2575 = load i32, ptr %2574, align 4, !tbaa !199
  %2576 = sext i32 %2575 to i64
  %2577 = getelementptr inbounds i8, ptr %2573, i64 %2576
  %2578 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2571, ptr noundef %2577)
  br label %2579

2579:                                             ; preds = %2569, %2564
  %2580 = phi i32 [ %2568, %2564 ], [ %2578, %2569 ]
  %2581 = load ptr, ptr %43, align 8, !tbaa !5
  %2582 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2581, i32 0, i32 10
  %2583 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2582, i32 0, i32 2
  store i32 %2580, ptr %2583, align 4, !tbaa !137
  br label %2584

2584:                                             ; preds = %2579, %2555
  %2585 = load i8, ptr %125, align 1, !tbaa !42, !range !40, !noundef !41
  %2586 = trunc i8 %2585 to i1
  br i1 %2586, label %2587, label %2649

2587:                                             ; preds = %2584
  %2588 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %2589 = trunc i8 %2588 to i1
  %2590 = xor i1 %2589, true
  br i1 %2590, label %2591, label %2592

2591:                                             ; preds = %2587
  br label %2594

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

2593:                                             ; No predecessors!
  br label %2594

2594:                                             ; preds = %2593, %2591
  %2595 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2596 = load i32, ptr %2595, align 8, !tbaa !194
  %2597 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2598 = load ptr, ptr %2597, align 8, !tbaa !193
  %2599 = call i64 @strlen(ptr noundef %2598) #16
  %2600 = trunc i64 %2599 to i32
  %2601 = icmp eq i32 %2596, %2600
  br i1 %2601, label %2602, label %2603

2602:                                             ; preds = %2594
  br label %2605

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

2604:                                             ; No predecessors!
  br label %2605

2605:                                             ; preds = %2604, %2602
  %2606 = load ptr, ptr %43, align 8, !tbaa !5
  %2607 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2608 = load ptr, ptr %2607, align 8, !tbaa !193
  %2609 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2610 = load i32, ptr %2609, align 8, !tbaa !194
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef %2606, ptr noundef %2608, i32 noundef %2610)
  %2611 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2612 = load i32, ptr %2611, align 8, !tbaa !194
  %2613 = load i32, ptr %72, align 4, !tbaa !9
  %2614 = icmp sgt i32 %2612, %2613
  br i1 %2614, label %2615, label %2630

2615:                                             ; preds = %2605
  %2616 = load i8, ptr %47, align 1, !tbaa !42, !range !40, !noundef !41
  %2617 = trunc i8 %2616 to i1
  br i1 %2617, label %2618, label %2630

2618:                                             ; preds = %2615
  %2619 = load ptr, ptr %43, align 8, !tbaa !5
  %2620 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2619, i32 0, i32 4
  %2621 = load ptr, ptr %43, align 8, !tbaa !5
  %2622 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2621, i32 0, i32 4
  %2623 = getelementptr inbounds %struct.ImVector.5, ptr %2622, i32 0, i32 0
  %2624 = load i32, ptr %2623, align 8, !tbaa !143
  %2625 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2626 = load i32, ptr %2625, align 8, !tbaa !194
  %2627 = load i32, ptr %72, align 4, !tbaa !9
  %2628 = sub nsw i32 %2626, %2627
  %2629 = add nsw i32 %2624, %2628
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2620, i32 noundef %2629)
  br label %2630

2630:                                             ; preds = %2618, %2615, %2605
  %2631 = load ptr, ptr %43, align 8, !tbaa !5
  %2632 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2631, i32 0, i32 4
  %2633 = getelementptr inbounds %struct.ImVector.5, ptr %2632, i32 0, i32 2
  %2634 = load ptr, ptr %2633, align 8, !tbaa !131
  %2635 = load ptr, ptr %43, align 8, !tbaa !5
  %2636 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2635, i32 0, i32 4
  %2637 = getelementptr inbounds %struct.ImVector.5, ptr %2636, i32 0, i32 0
  %2638 = load i32, ptr %2637, align 8, !tbaa !143
  %2639 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2640 = load ptr, ptr %2639, align 8, !tbaa !193
  %2641 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2634, i32 noundef %2638, ptr noundef %2640, ptr noundef null, ptr noundef null)
  %2642 = load ptr, ptr %43, align 8, !tbaa !5
  %2643 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2642, i32 0, i32 2
  store i32 %2641, ptr %2643, align 4, !tbaa !132
  %2644 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2645 = load i32, ptr %2644, align 8, !tbaa !194
  %2646 = load ptr, ptr %43, align 8, !tbaa !5
  %2647 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2646, i32 0, i32 3
  store i32 %2645, ptr %2647, align 8, !tbaa !128
  %2648 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %2648)
  br label %2649

2649:                                             ; preds = %2630, %2584
  call void @llvm.lifetime.end.p0(i64 1, ptr %125) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #14
  call void @llvm.lifetime.end.p0(i64 64, ptr %119) #14
  br label %2650

2650:                                             ; preds = %2649, %2381
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #14
  br label %2651

2651:                                             ; preds = %2650, %2330
  %2652 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %2653 = trunc i8 %2652 to i1
  br i1 %2653, label %2670, label %2654

2654:                                             ; preds = %2651
  %2655 = load ptr, ptr %43, align 8, !tbaa !5
  %2656 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2655, i32 0, i32 5
  %2657 = getelementptr inbounds %struct.ImVector.31, ptr %2656, i32 0, i32 2
  %2658 = load ptr, ptr %2657, align 8, !tbaa !130
  %2659 = load ptr, ptr %12, align 8, !tbaa !5
  %2660 = call i32 @strcmp(ptr noundef %2658, ptr noundef %2659) #16
  %2661 = icmp ne i32 %2660, 0
  br i1 %2661, label %2662, label %2670

2662:                                             ; preds = %2654
  %2663 = load ptr, ptr %43, align 8, !tbaa !5
  %2664 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2663, i32 0, i32 5
  %2665 = getelementptr inbounds %struct.ImVector.31, ptr %2664, i32 0, i32 2
  %2666 = load ptr, ptr %2665, align 8, !tbaa !130
  store ptr %2666, ptr %110, align 8, !tbaa !5
  %2667 = load ptr, ptr %43, align 8, !tbaa !5
  %2668 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2667, i32 0, i32 3
  %2669 = load i32, ptr %2668, align 8, !tbaa !128
  store i32 %2669, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !42
  br label %2670

2670:                                             ; preds = %2662, %2654, %2651
  br label %2671

2671:                                             ; preds = %2670, %2325
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #14
  br label %2672

2672:                                             ; preds = %2671, %2188
  %2673 = load ptr, ptr %20, align 8, !tbaa !5
  %2674 = getelementptr inbounds %struct.ImGuiContext, ptr %2673, i32 0, i32 197
  %2675 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2674, i32 0, i32 0
  %2676 = load i32, ptr %2675, align 8, !tbaa !200
  %2677 = load i32, ptr %25, align 4, !tbaa !9
  %2678 = icmp eq i32 %2676, %2677
  br i1 %2678, label %2679, label %2715

2679:                                             ; preds = %2672
  %2680 = load ptr, ptr %20, align 8, !tbaa !5
  %2681 = getelementptr inbounds %struct.ImGuiContext, ptr %2680, i32 0, i32 48
  %2682 = load i32, ptr %2681, align 4, !tbaa !112
  %2683 = load i32, ptr %25, align 4, !tbaa !9
  %2684 = icmp ne i32 %2682, %2683
  br i1 %2684, label %2685, label %2711

2685:                                             ; preds = %2679
  %2686 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  br i1 %2686, label %2687, label %2711

2687:                                             ; preds = %2685
  %2688 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %2689 = trunc i8 %2688 to i1
  br i1 %2689, label %2711, label %2690

2690:                                             ; preds = %2687
  %2691 = load ptr, ptr %20, align 8, !tbaa !5
  %2692 = getelementptr inbounds %struct.ImGuiContext, ptr %2691, i32 0, i32 197
  %2693 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2692, i32 0, i32 1
  %2694 = getelementptr inbounds %struct.ImVector.31, ptr %2693, i32 0, i32 2
  %2695 = load ptr, ptr %2694, align 8, !tbaa !201
  %2696 = load ptr, ptr %12, align 8, !tbaa !5
  %2697 = call i32 @strcmp(ptr noundef %2695, ptr noundef %2696) #16
  %2698 = icmp ne i32 %2697, 0
  br i1 %2698, label %2699, label %2711

2699:                                             ; preds = %2690
  %2700 = load ptr, ptr %20, align 8, !tbaa !5
  %2701 = getelementptr inbounds %struct.ImGuiContext, ptr %2700, i32 0, i32 197
  %2702 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2701, i32 0, i32 1
  %2703 = getelementptr inbounds %struct.ImVector.31, ptr %2702, i32 0, i32 2
  %2704 = load ptr, ptr %2703, align 8, !tbaa !201
  store ptr %2704, ptr %110, align 8, !tbaa !5
  %2705 = load ptr, ptr %20, align 8, !tbaa !5
  %2706 = getelementptr inbounds %struct.ImGuiContext, ptr %2705, i32 0, i32 197
  %2707 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2706, i32 0, i32 1
  %2708 = getelementptr inbounds %struct.ImVector.31, ptr %2707, i32 0, i32 0
  %2709 = load i32, ptr %2708, align 8, !tbaa !202
  %2710 = sub nsw i32 %2709, 1
  store i32 %2710, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !42
  br label %2711

2711:                                             ; preds = %2699, %2690, %2687, %2685, %2679
  %2712 = load ptr, ptr %20, align 8, !tbaa !5
  %2713 = getelementptr inbounds %struct.ImGuiContext, ptr %2712, i32 0, i32 197
  %2714 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2713, i32 0, i32 0
  store i32 0, ptr %2714, align 8, !tbaa !200
  br label %2715

2715:                                             ; preds = %2711, %2672
  %2716 = load ptr, ptr %110, align 8, !tbaa !5
  %2717 = icmp ne ptr %2716, null
  br i1 %2717, label %2718, label %2770

2718:                                             ; preds = %2715
  %2719 = load i32, ptr %111, align 4, !tbaa !9
  %2720 = icmp sge i32 %2719, 0
  br i1 %2720, label %2721, label %2722

2721:                                             ; preds = %2718
  br label %2724

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

2723:                                             ; No predecessors!
  br label %2724

2724:                                             ; preds = %2723, %2721
  %2725 = load i8, ptr %47, align 1, !tbaa !42, !range !40, !noundef !41
  %2726 = trunc i8 %2725 to i1
  br i1 %2726, label %2727, label %2762

2727:                                             ; preds = %2724
  call void @llvm.lifetime.start.p0(i64 64, ptr %126) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %126)
  %2728 = load ptr, ptr %20, align 8, !tbaa !5
  %2729 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 0
  store ptr %2728, ptr %2729, align 8, !tbaa !187
  %2730 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 1
  store i32 262144, ptr %2730, align 8, !tbaa !189
  %2731 = load i32, ptr %15, align 4, !tbaa !9
  %2732 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 2
  store i32 %2731, ptr %2732, align 4, !tbaa !190
  %2733 = load ptr, ptr %12, align 8, !tbaa !5
  %2734 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 6
  store ptr %2733, ptr %2734, align 8, !tbaa !193
  %2735 = load i32, ptr %111, align 4, !tbaa !9
  %2736 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 7
  store i32 %2735, ptr %2736, align 8, !tbaa !194
  %2737 = load i32, ptr %13, align 4, !tbaa !9
  %2738 = load i32, ptr %111, align 4, !tbaa !9
  %2739 = add nsw i32 %2738, 1
  %2740 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2737, i32 noundef %2739)
  %2741 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 8
  store i32 %2740, ptr %2741, align 4, !tbaa !195
  %2742 = load ptr, ptr %17, align 8, !tbaa !5
  %2743 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 3
  store ptr %2742, ptr %2743, align 8, !tbaa !191
  %2744 = load ptr, ptr %16, align 8, !tbaa !5
  %2745 = call noundef i32 %2744(ptr noundef %126)
  %2746 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 6
  %2747 = load ptr, ptr %2746, align 8, !tbaa !193
  store ptr %2747, ptr %12, align 8, !tbaa !5
  %2748 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 8
  %2749 = load i32, ptr %2748, align 4, !tbaa !195
  store i32 %2749, ptr %13, align 4, !tbaa !9
  %2750 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 7
  %2751 = load i32, ptr %2750, align 8, !tbaa !194
  %2752 = load i32, ptr %13, align 4, !tbaa !9
  %2753 = sub nsw i32 %2752, 1
  %2754 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2751, i32 noundef %2753)
  store i32 %2754, ptr %111, align 4, !tbaa !9
  %2755 = load i32, ptr %111, align 4, !tbaa !9
  %2756 = load i32, ptr %13, align 4, !tbaa !9
  %2757 = icmp sle i32 %2755, %2756
  br i1 %2757, label %2758, label %2759

2758:                                             ; preds = %2727
  br label %2761

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

2760:                                             ; No predecessors!
  br label %2761

2761:                                             ; preds = %2760, %2758
  call void @llvm.lifetime.end.p0(i64 64, ptr %126) #14
  br label %2762

2762:                                             ; preds = %2761, %2724
  %2763 = load ptr, ptr %12, align 8, !tbaa !5
  %2764 = load ptr, ptr %110, align 8, !tbaa !5
  %2765 = load i32, ptr %111, align 4, !tbaa !9
  %2766 = add nsw i32 %2765, 1
  %2767 = load i32, ptr %13, align 4, !tbaa !9
  %2768 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2766, i32 noundef %2767)
  %2769 = sext i32 %2768 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %2763, ptr noundef %2764, i64 noundef %2769)
  br label %2770

2770:                                             ; preds = %2762, %2715
  %2771 = load ptr, ptr %20, align 8, !tbaa !5
  %2772 = getelementptr inbounds %struct.ImGuiContext, ptr %2771, i32 0, i32 48
  %2773 = load i32, ptr %2772, align 4, !tbaa !112
  %2774 = load i32, ptr %25, align 4, !tbaa !9
  %2775 = icmp eq i32 %2773, %2774
  br i1 %2775, label %2776, label %2780

2776:                                             ; preds = %2770
  %2777 = load i8, ptr %52, align 1, !tbaa !42, !range !40, !noundef !41
  %2778 = trunc i8 %2777 to i1
  br i1 %2778, label %2779, label %2780

2779:                                             ; preds = %2776
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %2790

2780:                                             ; preds = %2776, %2770
  %2781 = load ptr, ptr %20, align 8, !tbaa !5
  %2782 = getelementptr inbounds %struct.ImGuiContext, ptr %2781, i32 0, i32 48
  %2783 = load i32, ptr %2782, align 4, !tbaa !112
  %2784 = load i32, ptr %25, align 4, !tbaa !9
  %2785 = icmp eq i32 %2783, %2784
  br i1 %2785, label %2786, label %2789

2786:                                             ; preds = %2780
  %2787 = load ptr, ptr %20, align 8, !tbaa !5
  %2788 = getelementptr inbounds %struct.ImGuiContext, ptr %2787, i32 0, i32 271
  store i32 1, ptr %2788, align 8, !tbaa !203
  br label %2789

2789:                                             ; preds = %2786, %2780
  br label %2790

2790:                                             ; preds = %2789, %2779
  %2791 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %2792 = trunc i8 %2791 to i1
  br i1 %2792, label %2803, label %2793

2793:                                             ; preds = %2790
  %2794 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %30, i32 noundef %2794, i32 noundef 0)
  %2795 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %127, ptr align 4 %2795, i64 8, i1 false), !tbaa.struct !43
  %2796 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 %2796, i64 8, i1 false), !tbaa.struct !43
  %2797 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %2798 = load ptr, ptr %22, align 8, !tbaa !5
  %2799 = getelementptr inbounds %struct.ImGuiStyle, ptr %2798, i32 0, i32 13
  %2800 = load float, ptr %2799, align 4, !tbaa !113
  %2801 = load <2 x float>, ptr %127, align 4
  %2802 = load <2 x float>, ptr %128, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %2801, <2 x float> %2802, i32 noundef %2797, i1 noundef zeroext true, float noundef %2800)
  br label %2803

2803:                                             ; preds = %2793, %2790
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #14
  %2804 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2805 = getelementptr inbounds %struct.ImVec2, ptr %2804, i32 0, i32 0
  %2806 = load float, ptr %2805, align 4, !tbaa !160
  %2807 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2808 = getelementptr inbounds %struct.ImVec2, ptr %2807, i32 0, i32 1
  %2809 = load float, ptr %2808, align 4, !tbaa !204
  %2810 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2811 = getelementptr inbounds %struct.ImVec2, ptr %2810, i32 0, i32 0
  %2812 = load float, ptr %2811, align 4, !tbaa !160
  %2813 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %2814 = load float, ptr %2813, align 4, !tbaa !107
  %2815 = fadd float %2812, %2814
  %2816 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2817 = getelementptr inbounds %struct.ImVec2, ptr %2816, i32 0, i32 1
  %2818 = load float, ptr %2817, align 4, !tbaa !204
  %2819 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %2820 = load float, ptr %2819, align 4, !tbaa !105
  %2821 = fadd float %2818, %2820
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %129, float noundef %2806, float noundef %2809, float noundef %2815, float noundef %2821)
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #14
  %2822 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %2823 = trunc i8 %2822 to i1
  br i1 %2823, label %2824, label %2828

2824:                                             ; preds = %2803
  %2825 = load ptr, ptr %34, align 8, !tbaa !5
  %2826 = getelementptr inbounds %struct.ImGuiWindow, ptr %2825, i32 0, i32 68
  %2827 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2826, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %130, ptr align 8 %2827, i64 8, i1 false), !tbaa.struct !43
  br label %2833

2828:                                             ; preds = %2803
  %2829 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2830 = load ptr, ptr %22, align 8, !tbaa !5
  %2831 = getelementptr inbounds %struct.ImGuiStyle, ptr %2830, i32 0, i32 12
  %2832 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2829, ptr noundef nonnull align 4 dereferenceable(8) %2831)
  store <2 x float> %2832, ptr %130, align 4
  br label %2833

2833:                                             ; preds = %2828, %2824
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %131, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #14
  store i32 2097152, ptr %132, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #14
  %2834 = load i8, ptr %68, align 1, !tbaa !42, !range !40, !noundef !41
  %2835 = trunc i8 %2834 to i1
  br i1 %2835, label %2836, label %2841

2836:                                             ; preds = %2833
  %2837 = load ptr, ptr %43, align 8, !tbaa !5
  %2838 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2837, i32 0, i32 5
  %2839 = getelementptr inbounds %struct.ImVector.31, ptr %2838, i32 0, i32 2
  %2840 = load ptr, ptr %2839, align 8, !tbaa !130
  br label %2843

2841:                                             ; preds = %2833
  %2842 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2843

2843:                                             ; preds = %2841, %2836
  %2844 = phi ptr [ %2840, %2836 ], [ %2842, %2841 ]
  store ptr %2844, ptr %133, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #14
  store ptr null, ptr %134, align 8, !tbaa !5
  %2845 = load i8, ptr %69, align 1, !tbaa !42, !range !40, !noundef !41
  %2846 = trunc i8 %2845 to i1
  br i1 %2846, label %2847, label %2853

2847:                                             ; preds = %2843
  %2848 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %2848, ptr %133, align 8, !tbaa !5
  %2849 = load ptr, ptr %11, align 8, !tbaa !5
  %2850 = load ptr, ptr %11, align 8, !tbaa !5
  %2851 = call i64 @strlen(ptr noundef %2850) #16
  %2852 = getelementptr inbounds i8, ptr %2849, i64 %2851
  store ptr %2852, ptr %134, align 8, !tbaa !5
  br label %2853

2853:                                             ; preds = %2847, %2843
  %2854 = load i8, ptr %63, align 1, !tbaa !42, !range !40, !noundef !41
  %2855 = trunc i8 %2854 to i1
  br i1 %2855, label %2859, label %2856

2856:                                             ; preds = %2853
  %2857 = load i8, ptr %64, align 1, !tbaa !42, !range !40, !noundef !41
  %2858 = trunc i8 %2857 to i1
  br i1 %2858, label %2859, label %3445

2859:                                             ; preds = %2856, %2853
  %2860 = load ptr, ptr %43, align 8, !tbaa !5
  %2861 = icmp ne ptr %2860, null
  br i1 %2861, label %2862, label %2863

2862:                                             ; preds = %2859
  br label %2865

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

2864:                                             ; No predecessors!
  br label %2865

2865:                                             ; preds = %2864, %2862
  %2866 = load i8, ptr %69, align 1, !tbaa !42, !range !40, !noundef !41
  %2867 = trunc i8 %2866 to i1
  br i1 %2867, label %2875, label %2868

2868:                                             ; preds = %2865
  %2869 = load ptr, ptr %133, align 8, !tbaa !5
  %2870 = load ptr, ptr %43, align 8, !tbaa !5
  %2871 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2870, i32 0, i32 3
  %2872 = load i32, ptr %2871, align 8, !tbaa !128
  %2873 = sext i32 %2872 to i64
  %2874 = getelementptr inbounds i8, ptr %2869, i64 %2873
  store ptr %2874, ptr %134, align 8, !tbaa !5
  br label %2875

2875:                                             ; preds = %2868, %2865
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #14
  %2876 = load ptr, ptr %43, align 8, !tbaa !5
  %2877 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2876, i32 0, i32 4
  %2878 = getelementptr inbounds %struct.ImVector.5, ptr %2877, i32 0, i32 2
  %2879 = load ptr, ptr %2878, align 8, !tbaa !131
  store ptr %2879, ptr %135, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %136)
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %137)
  call void @llvm.lifetime.start.p0(i64 16, ptr %138) #14
  call void @llvm.memset.p0.i64(ptr align 16 %138, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %139, ptr align 4 @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #14
  store i32 0, ptr %140, align 4, !tbaa !9
  %2880 = load i8, ptr %63, align 1, !tbaa !42, !range !40, !noundef !41
  %2881 = trunc i8 %2880 to i1
  br i1 %2881, label %2882, label %2894

2882:                                             ; preds = %2875
  %2883 = load ptr, ptr %135, align 8, !tbaa !5
  %2884 = load ptr, ptr %43, align 8, !tbaa !5
  %2885 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2884, i32 0, i32 10
  %2886 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2885, i32 0, i32 0
  %2887 = load i32, ptr %2886, align 4, !tbaa !138
  %2888 = sext i32 %2887 to i64
  %2889 = getelementptr inbounds i16, ptr %2883, i64 %2888
  %2890 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  store ptr %2889, ptr %2890, align 16, !tbaa !5
  %2891 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  store i32 -1, ptr %2891, align 4, !tbaa !9
  %2892 = load i32, ptr %140, align 4, !tbaa !9
  %2893 = add nsw i32 %2892, 1
  store i32 %2893, ptr %140, align 4, !tbaa !9
  br label %2894

2894:                                             ; preds = %2882, %2875
  %2895 = load i8, ptr %64, align 1, !tbaa !42, !range !40, !noundef !41
  %2896 = trunc i8 %2895 to i1
  br i1 %2896, label %2897, label %2914

2897:                                             ; preds = %2894
  %2898 = load ptr, ptr %135, align 8, !tbaa !5
  %2899 = load ptr, ptr %43, align 8, !tbaa !5
  %2900 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2899, i32 0, i32 10
  %2901 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2900, i32 0, i32 1
  %2902 = load i32, ptr %2901, align 4, !tbaa !135
  %2903 = load ptr, ptr %43, align 8, !tbaa !5
  %2904 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2903, i32 0, i32 10
  %2905 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2904, i32 0, i32 2
  %2906 = load i32, ptr %2905, align 4, !tbaa !137
  %2907 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2902, i32 noundef %2906)
  %2908 = sext i32 %2907 to i64
  %2909 = getelementptr inbounds i16, ptr %2898, i64 %2908
  %2910 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  store ptr %2909, ptr %2910, align 8, !tbaa !5
  %2911 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  store i32 -1, ptr %2911, align 4, !tbaa !9
  %2912 = load i32, ptr %140, align 4, !tbaa !9
  %2913 = add nsw i32 %2912, 1
  store i32 %2913, ptr %140, align 4, !tbaa !9
  br label %2914

2914:                                             ; preds = %2897, %2894
  %2915 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %2916 = trunc i8 %2915 to i1
  %2917 = zext i1 %2916 to i64
  %2918 = select i1 %2916, i32 1, i32 0
  %2919 = load i32, ptr %140, align 4, !tbaa !9
  %2920 = add nsw i32 %2919, %2918
  store i32 %2920, ptr %140, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #14
  store i32 0, ptr %141, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #14
  %2921 = load ptr, ptr %135, align 8, !tbaa !5
  store ptr %2921, ptr %142, align 8, !tbaa !5
  br label %2922

2922:                                             ; preds = %2971, %2914
  %2923 = load ptr, ptr %142, align 8, !tbaa !5
  %2924 = load i16, ptr %2923, align 2, !tbaa !165
  %2925 = zext i16 %2924 to i32
  %2926 = icmp ne i32 %2925, 0
  br i1 %2926, label %2928, label %2927

2927:                                             ; preds = %2922
  store i32 7, ptr %19, align 4
  br label %2974

2928:                                             ; preds = %2922
  %2929 = load ptr, ptr %142, align 8, !tbaa !5
  %2930 = load i16, ptr %2929, align 2, !tbaa !165
  %2931 = zext i16 %2930 to i32
  %2932 = icmp eq i32 %2931, 10
  br i1 %2932, label %2933, label %2970

2933:                                             ; preds = %2928
  %2934 = load i32, ptr %141, align 4, !tbaa !9
  %2935 = add nsw i32 %2934, 1
  store i32 %2935, ptr %141, align 4, !tbaa !9
  %2936 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  %2937 = load i32, ptr %2936, align 4, !tbaa !9
  %2938 = icmp eq i32 %2937, -1
  br i1 %2938, label %2939, label %2952

2939:                                             ; preds = %2933
  %2940 = load ptr, ptr %142, align 8, !tbaa !5
  %2941 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  %2942 = load ptr, ptr %2941, align 16, !tbaa !5
  %2943 = icmp uge ptr %2940, %2942
  br i1 %2943, label %2944, label %2952

2944:                                             ; preds = %2939
  %2945 = load i32, ptr %141, align 4, !tbaa !9
  %2946 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  store i32 %2945, ptr %2946, align 4, !tbaa !9
  %2947 = load i32, ptr %140, align 4, !tbaa !9
  %2948 = add nsw i32 %2947, -1
  store i32 %2948, ptr %140, align 4, !tbaa !9
  %2949 = icmp sle i32 %2948, 0
  br i1 %2949, label %2950, label %2951

2950:                                             ; preds = %2944
  store i32 7, ptr %19, align 4
  br label %2974

2951:                                             ; preds = %2944
  br label %2952

2952:                                             ; preds = %2951, %2939, %2933
  %2953 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %2954 = load i32, ptr %2953, align 4, !tbaa !9
  %2955 = icmp eq i32 %2954, -1
  br i1 %2955, label %2956, label %2969

2956:                                             ; preds = %2952
  %2957 = load ptr, ptr %142, align 8, !tbaa !5
  %2958 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  %2959 = load ptr, ptr %2958, align 8, !tbaa !5
  %2960 = icmp uge ptr %2957, %2959
  br i1 %2960, label %2961, label %2969

2961:                                             ; preds = %2956
  %2962 = load i32, ptr %141, align 4, !tbaa !9
  %2963 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  store i32 %2962, ptr %2963, align 4, !tbaa !9
  %2964 = load i32, ptr %140, align 4, !tbaa !9
  %2965 = add nsw i32 %2964, -1
  store i32 %2965, ptr %140, align 4, !tbaa !9
  %2966 = icmp sle i32 %2965, 0
  br i1 %2966, label %2967, label %2968

2967:                                             ; preds = %2961
  store i32 7, ptr %19, align 4
  br label %2974

2968:                                             ; preds = %2961
  br label %2969

2969:                                             ; preds = %2968, %2956, %2952
  br label %2970

2970:                                             ; preds = %2969, %2928
  br label %2971

2971:                                             ; preds = %2970
  %2972 = load ptr, ptr %142, align 8, !tbaa !5
  %2973 = getelementptr inbounds i16, ptr %2972, i32 1
  store ptr %2973, ptr %142, align 8, !tbaa !5
  br label %2922, !llvm.loop !205

2974:                                             ; preds = %2967, %2950, %2927
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #14
  br label %2975

2975:                                             ; preds = %2974
  %2976 = load i32, ptr %141, align 4, !tbaa !9
  %2977 = add nsw i32 %2976, 1
  store i32 %2977, ptr %141, align 4, !tbaa !9
  %2978 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  %2979 = load i32, ptr %2978, align 4, !tbaa !9
  %2980 = icmp eq i32 %2979, -1
  br i1 %2980, label %2981, label %2984

2981:                                             ; preds = %2975
  %2982 = load i32, ptr %141, align 4, !tbaa !9
  %2983 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  store i32 %2982, ptr %2983, align 4, !tbaa !9
  br label %2984

2984:                                             ; preds = %2981, %2975
  %2985 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %2986 = load i32, ptr %2985, align 4, !tbaa !9
  %2987 = icmp eq i32 %2986, -1
  br i1 %2987, label %2988, label %2991

2988:                                             ; preds = %2984
  %2989 = load i32, ptr %141, align 4, !tbaa !9
  %2990 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  store i32 %2989, ptr %2990, align 4, !tbaa !9
  br label %2991

2991:                                             ; preds = %2988, %2984
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #14
  %2992 = load ptr, ptr %20, align 8, !tbaa !5
  %2993 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  %2994 = load ptr, ptr %2993, align 16, !tbaa !5
  %2995 = load ptr, ptr %135, align 8, !tbaa !5
  %2996 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %2994, ptr noundef %2995)
  %2997 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  %2998 = load ptr, ptr %2997, align 16, !tbaa !5
  %2999 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %2992, ptr noundef %2996, ptr noundef %2998, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %2999, ptr %143, align 4
  %3000 = getelementptr inbounds %struct.ImVec2, ptr %143, i32 0, i32 0
  %3001 = load float, ptr %3000, align 4, !tbaa !107
  %3002 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  store float %3001, ptr %3002, align 4, !tbaa !107
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #14
  %3003 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  %3004 = load i32, ptr %3003, align 4, !tbaa !9
  %3005 = sitofp i32 %3004 to float
  %3006 = load ptr, ptr %20, align 8, !tbaa !5
  %3007 = getelementptr inbounds %struct.ImGuiContext, ptr %3006, i32 0, i32 5
  %3008 = load float, ptr %3007, align 8, !tbaa !45
  %3009 = fmul float %3005, %3008
  %3010 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  store float %3009, ptr %3010, align 4, !tbaa !105
  %3011 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %3012 = load i32, ptr %3011, align 4, !tbaa !9
  %3013 = icmp sge i32 %3012, 0
  br i1 %3013, label %3014, label %3034

3014:                                             ; preds = %2991
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #14
  %3015 = load ptr, ptr %20, align 8, !tbaa !5
  %3016 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  %3017 = load ptr, ptr %3016, align 8, !tbaa !5
  %3018 = load ptr, ptr %135, align 8, !tbaa !5
  %3019 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %3017, ptr noundef %3018)
  %3020 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  %3021 = load ptr, ptr %3020, align 8, !tbaa !5
  %3022 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %3015, ptr noundef %3019, ptr noundef %3021, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %3022, ptr %144, align 4
  %3023 = getelementptr inbounds %struct.ImVec2, ptr %144, i32 0, i32 0
  %3024 = load float, ptr %3023, align 4, !tbaa !107
  %3025 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 0
  store float %3024, ptr %3025, align 4, !tbaa !107
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #14
  %3026 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %3027 = load i32, ptr %3026, align 4, !tbaa !9
  %3028 = sitofp i32 %3027 to float
  %3029 = load ptr, ptr %20, align 8, !tbaa !5
  %3030 = getelementptr inbounds %struct.ImGuiContext, ptr %3029, i32 0, i32 5
  %3031 = load float, ptr %3030, align 8, !tbaa !45
  %3032 = fmul float %3028, %3031
  %3033 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 1
  store float %3032, ptr %3033, align 4, !tbaa !105
  br label %3034

3034:                                             ; preds = %3014, %2991
  %3035 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3036 = trunc i8 %3035 to i1
  br i1 %3036, label %3037, label %3046

3037:                                             ; preds = %3034
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #14
  %3038 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3039 = load float, ptr %3038, align 4, !tbaa !107
  %3040 = load i32, ptr %141, align 4, !tbaa !9
  %3041 = sitofp i32 %3040 to float
  %3042 = load ptr, ptr %20, align 8, !tbaa !5
  %3043 = getelementptr inbounds %struct.ImGuiContext, ptr %3042, i32 0, i32 5
  %3044 = load float, ptr %3043, align 8, !tbaa !45
  %3045 = fmul float %3041, %3044
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %145, float noundef %3039, float noundef %3045)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %131, ptr align 4 %145, i64 8, i1 false), !tbaa.struct !43
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #14
  br label %3046

3046:                                             ; preds = %3037, %3034
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #14
  %3047 = load i8, ptr %63, align 1, !tbaa !42, !range !40, !noundef !41
  %3048 = trunc i8 %3047 to i1
  br i1 %3048, label %3049, label %3187

3049:                                             ; preds = %3046
  %3050 = load ptr, ptr %43, align 8, !tbaa !5
  %3051 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3050, i32 0, i32 12
  %3052 = load i8, ptr %3051, align 4, !tbaa !167, !range !40, !noundef !41
  %3053 = trunc i8 %3052 to i1
  br i1 %3053, label %3054, label %3187

3054:                                             ; preds = %3049
  %3055 = load i32, ptr %15, align 4, !tbaa !9
  %3056 = and i32 %3055, 4096
  %3057 = icmp ne i32 %3056, 0
  br i1 %3057, label %3107, label %3058

3058:                                             ; preds = %3054
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #14
  %3059 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3060 = load float, ptr %3059, align 4, !tbaa !107
  %3061 = fmul float %3060, 2.500000e-01
  store float %3061, ptr %146, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #14
  %3062 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3063 = load float, ptr %3062, align 4, !tbaa !107
  %3064 = load ptr, ptr %22, align 8, !tbaa !5
  %3065 = getelementptr inbounds %struct.ImGuiStyle, ptr %3064, i32 0, i32 12
  %3066 = getelementptr inbounds %struct.ImVec2, ptr %3065, i32 0, i32 0
  %3067 = load float, ptr %3066, align 4, !tbaa !161
  %3068 = fsub float %3063, %3067
  store float %3068, ptr %147, align 4, !tbaa !44
  %3069 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3070 = load float, ptr %3069, align 4, !tbaa !107
  %3071 = load ptr, ptr %43, align 8, !tbaa !5
  %3072 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3071, i32 0, i32 9
  %3073 = load float, ptr %3072, align 8, !tbaa !133
  %3074 = fcmp olt float %3070, %3073
  br i1 %3074, label %3075, label %3085

3075:                                             ; preds = %3058
  %3076 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3077 = load float, ptr %3076, align 4, !tbaa !107
  %3078 = load float, ptr %146, align 4, !tbaa !44
  %3079 = fsub float %3077, %3078
  %3080 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3079)
  %3081 = fptosi float %3080 to i32
  %3082 = sitofp i32 %3081 to float
  %3083 = load ptr, ptr %43, align 8, !tbaa !5
  %3084 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3083, i32 0, i32 9
  store float %3082, ptr %3084, align 8, !tbaa !133
  br label %3106

3085:                                             ; preds = %3058
  %3086 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3087 = load float, ptr %3086, align 4, !tbaa !107
  %3088 = load float, ptr %147, align 4, !tbaa !44
  %3089 = fsub float %3087, %3088
  %3090 = load ptr, ptr %43, align 8, !tbaa !5
  %3091 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3090, i32 0, i32 9
  %3092 = load float, ptr %3091, align 8, !tbaa !133
  %3093 = fcmp oge float %3089, %3092
  br i1 %3093, label %3094, label %3105

3094:                                             ; preds = %3085
  %3095 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3096 = load float, ptr %3095, align 4, !tbaa !107
  %3097 = load float, ptr %147, align 4, !tbaa !44
  %3098 = fsub float %3096, %3097
  %3099 = load float, ptr %146, align 4, !tbaa !44
  %3100 = fadd float %3098, %3099
  %3101 = fptosi float %3100 to i32
  %3102 = sitofp i32 %3101 to float
  %3103 = load ptr, ptr %43, align 8, !tbaa !5
  %3104 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3103, i32 0, i32 9
  store float %3102, ptr %3104, align 8, !tbaa !133
  br label %3105

3105:                                             ; preds = %3094, %3085
  br label %3106

3106:                                             ; preds = %3105, %3075
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #14
  br label %3110

3107:                                             ; preds = %3054
  %3108 = load ptr, ptr %43, align 8, !tbaa !5
  %3109 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3108, i32 0, i32 9
  store float 0.000000e+00, ptr %3109, align 8, !tbaa !133
  br label %3110

3110:                                             ; preds = %3107, %3106
  %3111 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3112 = trunc i8 %3111 to i1
  br i1 %3112, label %3113, label %3184

3113:                                             ; preds = %3110
  %3114 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3115 = load float, ptr %3114, align 4, !tbaa !105
  %3116 = load ptr, ptr %20, align 8, !tbaa !5
  %3117 = getelementptr inbounds %struct.ImGuiContext, ptr %3116, i32 0, i32 5
  %3118 = load float, ptr %3117, align 8, !tbaa !45
  %3119 = fsub float %3115, %3118
  %3120 = load float, ptr %54, align 4, !tbaa !44
  %3121 = fcmp olt float %3119, %3120
  br i1 %3121, label %3122, label %3130

3122:                                             ; preds = %3113
  %3123 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3124 = load float, ptr %3123, align 4, !tbaa !105
  %3125 = load ptr, ptr %20, align 8, !tbaa !5
  %3126 = getelementptr inbounds %struct.ImGuiContext, ptr %3125, i32 0, i32 5
  %3127 = load float, ptr %3126, align 8, !tbaa !45
  %3128 = fsub float %3124, %3127
  %3129 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3128)
  store float %3129, ptr %54, align 4, !tbaa !44
  br label %3156

3130:                                             ; preds = %3113
  %3131 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3132 = load float, ptr %3131, align 4, !tbaa !105
  %3133 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %3134 = load float, ptr %3133, align 4, !tbaa !105
  %3135 = load ptr, ptr %22, align 8, !tbaa !5
  %3136 = getelementptr inbounds %struct.ImGuiStyle, ptr %3135, i32 0, i32 12
  %3137 = getelementptr inbounds %struct.ImVec2, ptr %3136, i32 0, i32 1
  %3138 = load float, ptr %3137, align 4, !tbaa !106
  %3139 = fneg float %3138
  %3140 = call float @llvm.fmuladd.f32(float %3139, float 2.000000e+00, float %3134)
  %3141 = fsub float %3132, %3140
  %3142 = load float, ptr %54, align 4, !tbaa !44
  %3143 = fcmp oge float %3141, %3142
  br i1 %3143, label %3144, label %3155

3144:                                             ; preds = %3130
  %3145 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3146 = load float, ptr %3145, align 4, !tbaa !105
  %3147 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %3148 = load float, ptr %3147, align 4, !tbaa !105
  %3149 = fsub float %3146, %3148
  %3150 = load ptr, ptr %22, align 8, !tbaa !5
  %3151 = getelementptr inbounds %struct.ImGuiStyle, ptr %3150, i32 0, i32 12
  %3152 = getelementptr inbounds %struct.ImVec2, ptr %3151, i32 0, i32 1
  %3153 = load float, ptr %3152, align 4, !tbaa !106
  %3154 = call float @llvm.fmuladd.f32(float %3153, float 2.000000e+00, float %3149)
  store float %3154, ptr %54, align 4, !tbaa !44
  br label %3155

3155:                                             ; preds = %3144, %3130
  br label %3156

3156:                                             ; preds = %3155, %3122
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #14
  %3157 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 1
  %3158 = load float, ptr %3157, align 4, !tbaa !105
  %3159 = load ptr, ptr %22, align 8, !tbaa !5
  %3160 = getelementptr inbounds %struct.ImGuiStyle, ptr %3159, i32 0, i32 12
  %3161 = getelementptr inbounds %struct.ImVec2, ptr %3160, i32 0, i32 1
  %3162 = load float, ptr %3161, align 4, !tbaa !106
  %3163 = call float @llvm.fmuladd.f32(float %3162, float 2.000000e+00, float %3158)
  %3164 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %3165 = load float, ptr %3164, align 4, !tbaa !105
  %3166 = fsub float %3163, %3165
  %3167 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %3166, float noundef 0.000000e+00)
  store float %3167, ptr %148, align 4, !tbaa !44
  %3168 = load float, ptr %54, align 4, !tbaa !44
  %3169 = load float, ptr %148, align 4, !tbaa !44
  %3170 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %3168, float noundef 0.000000e+00, float noundef %3169)
  store float %3170, ptr %54, align 4, !tbaa !44
  %3171 = load ptr, ptr %34, align 8, !tbaa !5
  %3172 = getelementptr inbounds %struct.ImGuiWindow, ptr %3171, i32 0, i32 25
  %3173 = getelementptr inbounds %struct.ImVec2, ptr %3172, i32 0, i32 1
  %3174 = load float, ptr %3173, align 4, !tbaa !123
  %3175 = load float, ptr %54, align 4, !tbaa !44
  %3176 = fsub float %3174, %3175
  %3177 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 1
  %3178 = load float, ptr %3177, align 4, !tbaa !105
  %3179 = fadd float %3178, %3176
  store float %3179, ptr %3177, align 4, !tbaa !105
  %3180 = load float, ptr %54, align 4, !tbaa !44
  %3181 = load ptr, ptr %34, align 8, !tbaa !5
  %3182 = getelementptr inbounds %struct.ImGuiWindow, ptr %3181, i32 0, i32 25
  %3183 = getelementptr inbounds %struct.ImVec2, ptr %3182, i32 0, i32 1
  store float %3180, ptr %3183, align 4, !tbaa !123
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #14
  br label %3184

3184:                                             ; preds = %3156, %3110
  %3185 = load ptr, ptr %43, align 8, !tbaa !5
  %3186 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3185, i32 0, i32 12
  store i8 0, ptr %3186, align 4, !tbaa !167
  br label %3187

3187:                                             ; preds = %3184, %3049, %3046
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #14
  %3188 = load ptr, ptr %43, align 8, !tbaa !5
  %3189 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3188, i32 0, i32 9
  %3190 = load float, ptr %3189, align 8, !tbaa !133
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %149, float noundef %3190, float noundef 0.000000e+00)
  %3191 = load i8, ptr %64, align 1, !tbaa !42, !range !40, !noundef !41
  %3192 = trunc i8 %3191 to i1
  br i1 %3192, label %3193, label %3322

3193:                                             ; preds = %3187
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #14
  %3194 = load ptr, ptr %135, align 8, !tbaa !5
  %3195 = load ptr, ptr %43, align 8, !tbaa !5
  %3196 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3195, i32 0, i32 10
  %3197 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3196, i32 0, i32 1
  %3198 = load i32, ptr %3197, align 4, !tbaa !135
  %3199 = load ptr, ptr %43, align 8, !tbaa !5
  %3200 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3199, i32 0, i32 10
  %3201 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3200, i32 0, i32 2
  %3202 = load i32, ptr %3201, align 4, !tbaa !137
  %3203 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %3198, i32 noundef %3202)
  %3204 = sext i32 %3203 to i64
  %3205 = getelementptr inbounds i16, ptr %3194, i64 %3204
  store ptr %3205, ptr %150, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #14
  %3206 = load ptr, ptr %135, align 8, !tbaa !5
  %3207 = load ptr, ptr %43, align 8, !tbaa !5
  %3208 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3207, i32 0, i32 10
  %3209 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3208, i32 0, i32 1
  %3210 = load i32, ptr %3209, align 4, !tbaa !135
  %3211 = load ptr, ptr %43, align 8, !tbaa !5
  %3212 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3211, i32 0, i32 10
  %3213 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3212, i32 0, i32 2
  %3214 = load i32, ptr %3213, align 4, !tbaa !137
  %3215 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3210, i32 noundef %3214)
  %3216 = sext i32 %3215 to i64
  %3217 = getelementptr inbounds i16, ptr %3206, i64 %3216
  store ptr %3217, ptr %151, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #14
  %3218 = load i8, ptr %63, align 1, !tbaa !42, !range !40, !noundef !41
  %3219 = trunc i8 %3218 to i1
  %3220 = zext i1 %3219 to i64
  %3221 = select i1 %3219, float 1.000000e+00, float 0x3FE3333340000000
  %3222 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 47, float noundef %3221)
  store i32 %3222, ptr %152, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #14
  %3223 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3224 = trunc i8 %3223 to i1
  %3225 = zext i1 %3224 to i64
  %3226 = select i1 %3224, float 0.000000e+00, float -1.000000e+00
  store float %3226, ptr %153, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #14
  %3227 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3228 = trunc i8 %3227 to i1
  %3229 = zext i1 %3228 to i64
  %3230 = select i1 %3228, float 0.000000e+00, float 2.000000e+00
  store float %3230, ptr %154, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #14
  %3231 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %130, ptr noundef nonnull align 4 dereferenceable(8) %137)
  store <2 x float> %3231, ptr %156, align 4
  %3232 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %156, ptr noundef nonnull align 4 dereferenceable(8) %149)
  store <2 x float> %3232, ptr %155, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #14
  %3233 = load ptr, ptr %150, align 8, !tbaa !5
  store ptr %3233, ptr %157, align 8, !tbaa !5
  br label %3234

3234:                                             ; preds = %3307, %3193
  %3235 = load ptr, ptr %157, align 8, !tbaa !5
  %3236 = load ptr, ptr %151, align 8, !tbaa !5
  %3237 = icmp ult ptr %3235, %3236
  br i1 %3237, label %3239, label %3238

3238:                                             ; preds = %3234
  store i32 10, ptr %19, align 4
  br label %3320

3239:                                             ; preds = %3234
  %3240 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 1
  %3241 = load float, ptr %3240, align 4, !tbaa !105
  %3242 = getelementptr inbounds %struct.ImVec4, ptr %129, i32 0, i32 3
  %3243 = load float, ptr %3242, align 4, !tbaa !206
  %3244 = load ptr, ptr %20, align 8, !tbaa !5
  %3245 = getelementptr inbounds %struct.ImGuiContext, ptr %3244, i32 0, i32 5
  %3246 = load float, ptr %3245, align 8, !tbaa !45
  %3247 = fadd float %3243, %3246
  %3248 = fcmp ogt float %3241, %3247
  br i1 %3248, label %3249, label %3250

3249:                                             ; preds = %3239
  store i32 10, ptr %19, align 4
  br label %3320

3250:                                             ; preds = %3239
  %3251 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 1
  %3252 = load float, ptr %3251, align 4, !tbaa !105
  %3253 = getelementptr inbounds %struct.ImVec4, ptr %129, i32 0, i32 1
  %3254 = load float, ptr %3253, align 4, !tbaa !207
  %3255 = fcmp olt float %3252, %3254
  br i1 %3255, label %3256, label %3270

3256:                                             ; preds = %3250
  br label %3257

3257:                                             ; preds = %3268, %3256
  %3258 = load ptr, ptr %157, align 8, !tbaa !5
  %3259 = load ptr, ptr %151, align 8, !tbaa !5
  %3260 = icmp ult ptr %3258, %3259
  br i1 %3260, label %3261, label %3269

3261:                                             ; preds = %3257
  %3262 = load ptr, ptr %157, align 8, !tbaa !5
  %3263 = getelementptr inbounds i16, ptr %3262, i32 1
  store ptr %3263, ptr %157, align 8, !tbaa !5
  %3264 = load i16, ptr %3262, align 2, !tbaa !165
  %3265 = zext i16 %3264 to i32
  %3266 = icmp eq i32 %3265, 10
  br i1 %3266, label %3267, label %3268

3267:                                             ; preds = %3261
  br label %3269

3268:                                             ; preds = %3261
  br label %3257, !llvm.loop !208

3269:                                             ; preds = %3267, %3257
  br label %3307

3270:                                             ; preds = %3250
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #14
  %3271 = load ptr, ptr %20, align 8, !tbaa !5
  %3272 = load ptr, ptr %157, align 8, !tbaa !5
  %3273 = load ptr, ptr %151, align 8, !tbaa !5
  %3274 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %3271, ptr noundef %3272, ptr noundef %3273, ptr noundef %157, ptr noundef null, i1 noundef zeroext true)
  store <2 x float> %3274, ptr %158, align 4
  %3275 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  %3276 = load float, ptr %3275, align 4, !tbaa !107
  %3277 = fcmp ole float %3276, 0.000000e+00
  br i1 %3277, label %3278, label %3287

3278:                                             ; preds = %3270
  %3279 = load ptr, ptr %20, align 8, !tbaa !5
  %3280 = getelementptr inbounds %struct.ImGuiContext, ptr %3279, i32 0, i32 4
  %3281 = load ptr, ptr %3280, align 8, !tbaa !145
  %3282 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %3281, i16 noundef zeroext 32)
  %3283 = fmul float %3282, 5.000000e-01
  %3284 = fptosi float %3283 to i32
  %3285 = sitofp i32 %3284 to float
  %3286 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  store float %3285, ptr %3286, align 4, !tbaa !107
  br label %3287

3287:                                             ; preds = %3278, %3270
  call void @llvm.lifetime.start.p0(i64 16, ptr %159) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #14
  %3288 = load float, ptr %153, align 4, !tbaa !44
  %3289 = load ptr, ptr %20, align 8, !tbaa !5
  %3290 = getelementptr inbounds %struct.ImGuiContext, ptr %3289, i32 0, i32 5
  %3291 = load float, ptr %3290, align 8, !tbaa !45
  %3292 = fsub float %3288, %3291
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %161, float noundef 0.000000e+00, float noundef %3292)
  %3293 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %155, ptr noundef nonnull align 4 dereferenceable(8) %161)
  store <2 x float> %3293, ptr %160, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #14
  %3294 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  %3295 = load float, ptr %3294, align 4, !tbaa !107
  %3296 = load float, ptr %154, align 4, !tbaa !44
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %163, float noundef %3295, float noundef %3296)
  %3297 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %155, ptr noundef nonnull align 4 dereferenceable(8) %163)
  store <2 x float> %3297, ptr %162, align 4
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %159, ptr noundef nonnull align 4 dereferenceable(8) %160, ptr noundef nonnull align 4 dereferenceable(8) %162)
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %164) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %164, ptr noundef nonnull align 4 dereferenceable(16) %129)
  call void @_ZN6ImRect8ClipWithERKS_(ptr noundef nonnull align 4 dereferenceable(16) %159, ptr noundef nonnull align 4 dereferenceable(16) %164)
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %165) #14
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %165, ptr noundef nonnull align 4 dereferenceable(16) %129)
  %3298 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %159, ptr noundef nonnull align 4 dereferenceable(16) %165)
  call void @llvm.lifetime.end.p0(i64 16, ptr %165) #14
  br i1 %3298, label %3299, label %3306

3299:                                             ; preds = %3287
  %3300 = load ptr, ptr %34, align 8, !tbaa !5
  %3301 = getelementptr inbounds %struct.ImGuiWindow, ptr %3300, i32 0, i32 86
  %3302 = load ptr, ptr %3301, align 8, !tbaa !209
  %3303 = getelementptr inbounds %struct.ImRect, ptr %159, i32 0, i32 0
  %3304 = getelementptr inbounds %struct.ImRect, ptr %159, i32 0, i32 1
  %3305 = load i32, ptr %152, align 4, !tbaa !9
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %3302, ptr noundef nonnull align 4 dereferenceable(8) %3303, ptr noundef nonnull align 4 dereferenceable(8) %3304, i32 noundef %3305, float noundef 0.000000e+00, i32 noundef 0)
  br label %3306

3306:                                             ; preds = %3299, %3287
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #14
  br label %3307

3307:                                             ; preds = %3306, %3269
  %3308 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 0
  %3309 = load float, ptr %3308, align 4, !tbaa !107
  %3310 = getelementptr inbounds %struct.ImVec2, ptr %149, i32 0, i32 0
  %3311 = load float, ptr %3310, align 4, !tbaa !107
  %3312 = fsub float %3309, %3311
  %3313 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 0
  store float %3312, ptr %3313, align 4, !tbaa !107
  %3314 = load ptr, ptr %20, align 8, !tbaa !5
  %3315 = getelementptr inbounds %struct.ImGuiContext, ptr %3314, i32 0, i32 5
  %3316 = load float, ptr %3315, align 8, !tbaa !45
  %3317 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 1
  %3318 = load float, ptr %3317, align 4, !tbaa !105
  %3319 = fadd float %3318, %3316
  store float %3319, ptr %3317, align 4, !tbaa !105
  br label %3234, !llvm.loop !210

3320:                                             ; preds = %3249, %3238
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #14
  br label %3321

3321:                                             ; preds = %3320
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #14
  br label %3322

3322:                                             ; preds = %3321, %3187
  %3323 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3324 = trunc i8 %3323 to i1
  br i1 %3324, label %3332, label %3325

3325:                                             ; preds = %3322
  %3326 = load ptr, ptr %134, align 8, !tbaa !5
  %3327 = load ptr, ptr %133, align 8, !tbaa !5
  %3328 = ptrtoint ptr %3326 to i64
  %3329 = ptrtoint ptr %3327 to i64
  %3330 = sub i64 %3328, %3329
  %3331 = icmp slt i64 %3330, 2097152
  br i1 %3331, label %3332, label %3357

3332:                                             ; preds = %3325, %3322
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #14
  %3333 = load i8, ptr %69, align 1, !tbaa !42, !range !40, !noundef !41
  %3334 = trunc i8 %3333 to i1
  %3335 = zext i1 %3334 to i64
  %3336 = select i1 %3334, i32 1, i32 0
  %3337 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3336, float noundef 1.000000e+00)
  store i32 %3337, ptr %166, align 4, !tbaa !9
  %3338 = load ptr, ptr %34, align 8, !tbaa !5
  %3339 = getelementptr inbounds %struct.ImGuiWindow, ptr %3338, i32 0, i32 86
  %3340 = load ptr, ptr %3339, align 8, !tbaa !209
  %3341 = load ptr, ptr %20, align 8, !tbaa !5
  %3342 = getelementptr inbounds %struct.ImGuiContext, ptr %3341, i32 0, i32 4
  %3343 = load ptr, ptr %3342, align 8, !tbaa !145
  %3344 = load ptr, ptr %20, align 8, !tbaa !5
  %3345 = getelementptr inbounds %struct.ImGuiContext, ptr %3344, i32 0, i32 5
  %3346 = load float, ptr %3345, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #14
  %3347 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %130, ptr noundef nonnull align 4 dereferenceable(8) %149)
  store <2 x float> %3347, ptr %167, align 4
  %3348 = load i32, ptr %166, align 4, !tbaa !9
  %3349 = load ptr, ptr %133, align 8, !tbaa !5
  %3350 = load ptr, ptr %134, align 8, !tbaa !5
  %3351 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3352 = trunc i8 %3351 to i1
  br i1 %3352, label %3353, label %3354

3353:                                             ; preds = %3332
  br label %3355

3354:                                             ; preds = %3332
  br label %3355

3355:                                             ; preds = %3354, %3353
  %3356 = phi ptr [ null, %3353 ], [ %129, %3354 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3340, ptr noundef %3343, float noundef %3346, ptr noundef nonnull align 4 dereferenceable(8) %167, i32 noundef %3348, ptr noundef %3349, ptr noundef %3350, float noundef 0.000000e+00, ptr noundef %3356)
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #14
  br label %3357

3357:                                             ; preds = %3355, %3325
  %3358 = load i8, ptr %63, align 1, !tbaa !42, !range !40, !noundef !41
  %3359 = trunc i8 %3358 to i1
  br i1 %3359, label %3360, label %3444

3360:                                             ; preds = %3357
  %3361 = load ptr, ptr %21, align 8, !tbaa !5
  %3362 = getelementptr inbounds %struct.ImGuiIO, ptr %3361, i32 0, i32 3
  %3363 = load float, ptr %3362, align 8, !tbaa !211
  %3364 = load ptr, ptr %43, align 8, !tbaa !5
  %3365 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3364, i32 0, i32 11
  %3366 = load float, ptr %3365, align 8, !tbaa !212
  %3367 = fadd float %3366, %3363
  store float %3367, ptr %3365, align 8, !tbaa !212
  call void @llvm.lifetime.start.p0(i64 1, ptr %168) #14
  %3368 = load ptr, ptr %20, align 8, !tbaa !5
  %3369 = getelementptr inbounds %struct.ImGuiContext, ptr %3368, i32 0, i32 2
  %3370 = getelementptr inbounds %struct.ImGuiIO, ptr %3369, i32 0, i32 16
  %3371 = load i8, ptr %3370, align 1, !tbaa !213, !range !40, !noundef !41
  %3372 = trunc i8 %3371 to i1
  br i1 %3372, label %3373, label %3384

3373:                                             ; preds = %3360
  %3374 = load ptr, ptr %43, align 8, !tbaa !5
  %3375 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3374, i32 0, i32 11
  %3376 = load float, ptr %3375, align 8, !tbaa !212
  %3377 = fcmp ole float %3376, 0.000000e+00
  br i1 %3377, label %3384, label %3378

3378:                                             ; preds = %3373
  %3379 = load ptr, ptr %43, align 8, !tbaa !5
  %3380 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3379, i32 0, i32 11
  %3381 = load float, ptr %3380, align 8, !tbaa !212
  %3382 = call float @fmodf(float noundef %3381, float noundef 0x3FF3333340000000) #14
  %3383 = fcmp ole float %3382, 0x3FE99999A0000000
  br label %3384

3384:                                             ; preds = %3378, %3373, %3360
  %3385 = phi i1 [ true, %3373 ], [ true, %3360 ], [ %3383, %3378 ]
  %3386 = zext i1 %3385 to i8
  store i8 %3386, ptr %168, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #14
  %3387 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %130, ptr noundef nonnull align 4 dereferenceable(8) %136)
  store <2 x float> %3387, ptr %171, align 4
  %3388 = call <2 x float> @_ZmiRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %171, ptr noundef nonnull align 4 dereferenceable(8) %149)
  store <2 x float> %3388, ptr %170, align 4
  %3389 = call <2 x float> @_ZL7ImTruncRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %170)
  store <2 x float> %3389, ptr %169, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %172) #14
  %3390 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 0
  %3391 = load float, ptr %3390, align 4, !tbaa !107
  %3392 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 1
  %3393 = load float, ptr %3392, align 4, !tbaa !105
  %3394 = load ptr, ptr %20, align 8, !tbaa !5
  %3395 = getelementptr inbounds %struct.ImGuiContext, ptr %3394, i32 0, i32 5
  %3396 = load float, ptr %3395, align 8, !tbaa !45
  %3397 = fsub float %3393, %3396
  %3398 = fadd float %3397, 5.000000e-01
  %3399 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 0
  %3400 = load float, ptr %3399, align 4, !tbaa !107
  %3401 = fadd float %3400, 1.000000e+00
  %3402 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 1
  %3403 = load float, ptr %3402, align 4, !tbaa !105
  %3404 = fsub float %3403, 1.500000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %172, float noundef %3391, float noundef %3398, float noundef %3401, float noundef %3404)
  %3405 = load i8, ptr %168, align 1, !tbaa !42, !range !40, !noundef !41
  %3406 = trunc i8 %3405 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %173) #14
  br i1 %3406, label %3407, label %3409

3407:                                             ; preds = %3384
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %173, ptr noundef nonnull align 4 dereferenceable(16) %129)
  %3408 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %172, ptr noundef nonnull align 4 dereferenceable(16) %173)
  br label %3409

3409:                                             ; preds = %3407, %3384
  %3410 = phi i1 [ false, %3384 ], [ %3408, %3407 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %173) #14
  br i1 %3410, label %3411, label %3418

3411:                                             ; preds = %3409
  %3412 = load ptr, ptr %34, align 8, !tbaa !5
  %3413 = getelementptr inbounds %struct.ImGuiWindow, ptr %3412, i32 0, i32 86
  %3414 = load ptr, ptr %3413, align 8, !tbaa !209
  %3415 = getelementptr inbounds %struct.ImRect, ptr %172, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #14
  %3416 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %172)
  store <2 x float> %3416, ptr %174, align 4
  %3417 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %3414, ptr noundef nonnull align 4 dereferenceable(8) %3415, ptr noundef nonnull align 4 dereferenceable(8) %174, i32 noundef %3417, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #14
  br label %3418

3418:                                             ; preds = %3411, %3409
  %3419 = load i8, ptr %44, align 1, !tbaa !42, !range !40, !noundef !41
  %3420 = trunc i8 %3419 to i1
  br i1 %3420, label %3443, label %3421

3421:                                             ; preds = %3418
  %3422 = load ptr, ptr %20, align 8, !tbaa !5
  %3423 = getelementptr inbounds %struct.ImGuiContext, ptr %3422, i32 0, i32 226
  %3424 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3423, i32 0, i32 0
  store i8 1, ptr %3424, align 8, !tbaa !214
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #14
  %3425 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 0
  %3426 = load float, ptr %3425, align 4, !tbaa !107
  %3427 = fsub float %3426, 1.000000e+00
  %3428 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 1
  %3429 = load float, ptr %3428, align 4, !tbaa !105
  %3430 = load ptr, ptr %20, align 8, !tbaa !5
  %3431 = getelementptr inbounds %struct.ImGuiContext, ptr %3430, i32 0, i32 5
  %3432 = load float, ptr %3431, align 8, !tbaa !45
  %3433 = fsub float %3429, %3432
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %175, float noundef %3427, float noundef %3433)
  %3434 = load ptr, ptr %20, align 8, !tbaa !5
  %3435 = getelementptr inbounds %struct.ImGuiContext, ptr %3434, i32 0, i32 226
  %3436 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3435, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %3436, ptr align 4 %175, i64 8, i1 false), !tbaa.struct !43
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #14
  %3437 = load ptr, ptr %20, align 8, !tbaa !5
  %3438 = getelementptr inbounds %struct.ImGuiContext, ptr %3437, i32 0, i32 5
  %3439 = load float, ptr %3438, align 8, !tbaa !45
  %3440 = load ptr, ptr %20, align 8, !tbaa !5
  %3441 = getelementptr inbounds %struct.ImGuiContext, ptr %3440, i32 0, i32 226
  %3442 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3441, i32 0, i32 2
  store float %3439, ptr %3442, align 4, !tbaa !215
  br label %3443

3443:                                             ; preds = %3421, %3418
  call void @llvm.lifetime.end.p0(i64 16, ptr %172) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %168) #14
  br label %3444

3444:                                             ; preds = %3443, %3357
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #14
  br label %3519

3445:                                             ; preds = %2856
  %3446 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3447 = trunc i8 %3446 to i1
  br i1 %3447, label %3448, label %3458

3448:                                             ; preds = %3445
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #14
  %3449 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3450 = load float, ptr %3449, align 4, !tbaa !107
  %3451 = load ptr, ptr %133, align 8, !tbaa !5
  %3452 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %3451, ptr noundef %134)
  %3453 = sitofp i32 %3452 to float
  %3454 = load ptr, ptr %20, align 8, !tbaa !5
  %3455 = getelementptr inbounds %struct.ImGuiContext, ptr %3454, i32 0, i32 5
  %3456 = load float, ptr %3455, align 8, !tbaa !45
  %3457 = fmul float %3453, %3456
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %176, float noundef %3450, float noundef %3457)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %131, ptr align 4 %176, i64 8, i1 false), !tbaa.struct !43
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #14
  br label %3484

3458:                                             ; preds = %3445
  %3459 = load i8, ptr %69, align 1, !tbaa !42, !range !40, !noundef !41
  %3460 = trunc i8 %3459 to i1
  br i1 %3460, label %3474, label %3461

3461:                                             ; preds = %3458
  %3462 = load ptr, ptr %20, align 8, !tbaa !5
  %3463 = getelementptr inbounds %struct.ImGuiContext, ptr %3462, i32 0, i32 48
  %3464 = load i32, ptr %3463, align 4, !tbaa !112
  %3465 = load i32, ptr %25, align 4, !tbaa !9
  %3466 = icmp eq i32 %3464, %3465
  br i1 %3466, label %3467, label %3474

3467:                                             ; preds = %3461
  %3468 = load ptr, ptr %133, align 8, !tbaa !5
  %3469 = load ptr, ptr %43, align 8, !tbaa !5
  %3470 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3469, i32 0, i32 3
  %3471 = load i32, ptr %3470, align 8, !tbaa !128
  %3472 = sext i32 %3471 to i64
  %3473 = getelementptr inbounds i8, ptr %3468, i64 %3472
  store ptr %3473, ptr %134, align 8, !tbaa !5
  br label %3483

3474:                                             ; preds = %3461, %3458
  %3475 = load i8, ptr %69, align 1, !tbaa !42, !range !40, !noundef !41
  %3476 = trunc i8 %3475 to i1
  br i1 %3476, label %3482, label %3477

3477:                                             ; preds = %3474
  %3478 = load ptr, ptr %133, align 8, !tbaa !5
  %3479 = load ptr, ptr %133, align 8, !tbaa !5
  %3480 = call i64 @strlen(ptr noundef %3479) #16
  %3481 = getelementptr inbounds i8, ptr %3478, i64 %3480
  store ptr %3481, ptr %134, align 8, !tbaa !5
  br label %3482

3482:                                             ; preds = %3477, %3474
  br label %3483

3483:                                             ; preds = %3482, %3467
  br label %3484

3484:                                             ; preds = %3483, %3448
  %3485 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3486 = trunc i8 %3485 to i1
  br i1 %3486, label %3494, label %3487

3487:                                             ; preds = %3484
  %3488 = load ptr, ptr %134, align 8, !tbaa !5
  %3489 = load ptr, ptr %133, align 8, !tbaa !5
  %3490 = ptrtoint ptr %3488 to i64
  %3491 = ptrtoint ptr %3489 to i64
  %3492 = sub i64 %3490, %3491
  %3493 = icmp slt i64 %3492, 2097152
  br i1 %3493, label %3494, label %3518

3494:                                             ; preds = %3487, %3484
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #14
  %3495 = load i8, ptr %69, align 1, !tbaa !42, !range !40, !noundef !41
  %3496 = trunc i8 %3495 to i1
  %3497 = zext i1 %3496 to i64
  %3498 = select i1 %3496, i32 1, i32 0
  %3499 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3498, float noundef 1.000000e+00)
  store i32 %3499, ptr %177, align 4, !tbaa !9
  %3500 = load ptr, ptr %34, align 8, !tbaa !5
  %3501 = getelementptr inbounds %struct.ImGuiWindow, ptr %3500, i32 0, i32 86
  %3502 = load ptr, ptr %3501, align 8, !tbaa !209
  %3503 = load ptr, ptr %20, align 8, !tbaa !5
  %3504 = getelementptr inbounds %struct.ImGuiContext, ptr %3503, i32 0, i32 4
  %3505 = load ptr, ptr %3504, align 8, !tbaa !145
  %3506 = load ptr, ptr %20, align 8, !tbaa !5
  %3507 = getelementptr inbounds %struct.ImGuiContext, ptr %3506, i32 0, i32 5
  %3508 = load float, ptr %3507, align 8, !tbaa !45
  %3509 = load i32, ptr %177, align 4, !tbaa !9
  %3510 = load ptr, ptr %133, align 8, !tbaa !5
  %3511 = load ptr, ptr %134, align 8, !tbaa !5
  %3512 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3513 = trunc i8 %3512 to i1
  br i1 %3513, label %3514, label %3515

3514:                                             ; preds = %3494
  br label %3516

3515:                                             ; preds = %3494
  br label %3516

3516:                                             ; preds = %3515, %3514
  %3517 = phi ptr [ null, %3514 ], [ %129, %3515 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %3502, ptr noundef %3505, float noundef %3508, ptr noundef nonnull align 4 dereferenceable(8) %130, i32 noundef %3509, ptr noundef %3510, ptr noundef %3511, float noundef 0.000000e+00, ptr noundef %3517)
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #14
  br label %3518

3518:                                             ; preds = %3516, %3487
  br label %3519

3519:                                             ; preds = %3518, %3444
  %3520 = load i8, ptr %45, align 1, !tbaa !42, !range !40, !noundef !41
  %3521 = trunc i8 %3520 to i1
  br i1 %3521, label %3522, label %3526

3522:                                             ; preds = %3519
  %3523 = load i8, ptr %69, align 1, !tbaa !42, !range !40, !noundef !41
  %3524 = trunc i8 %3523 to i1
  br i1 %3524, label %3526, label %3525

3525:                                             ; preds = %3522
  call void @_ZN5ImGui7PopFontEv()
  br label %3526

3526:                                             ; preds = %3525, %3522, %3519
  %3527 = load i8, ptr %24, align 1, !tbaa !42, !range !40, !noundef !41
  %3528 = trunc i8 %3527 to i1
  br i1 %3528, label %3529, label %3573

3529:                                             ; preds = %3526
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #14
  %3530 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 0
  %3531 = load float, ptr %3530, align 4, !tbaa !107
  %3532 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 1
  %3533 = load float, ptr %3532, align 4, !tbaa !105
  %3534 = load ptr, ptr %22, align 8, !tbaa !5
  %3535 = getelementptr inbounds %struct.ImGuiStyle, ptr %3534, i32 0, i32 12
  %3536 = getelementptr inbounds %struct.ImVec2, ptr %3535, i32 0, i32 1
  %3537 = load float, ptr %3536, align 4, !tbaa !106
  %3538 = fadd float %3533, %3537
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %178, float noundef %3531, float noundef %3538)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %178)
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #14
  %3539 = load ptr, ptr %20, align 8, !tbaa !5
  %3540 = getelementptr inbounds %struct.ImGuiContext, ptr %3539, i32 0, i32 82
  %3541 = getelementptr inbounds %struct.ImGuiNextItemData, ptr %3540, i32 0, i32 1
  %3542 = load i32, ptr %3541, align 4, !tbaa !216
  %3543 = or i32 %3542, 1025
  store i32 %3543, ptr %3541, align 4, !tbaa !216
  call void @_ZN5ImGui8EndChildEv()
  %3544 = load ptr, ptr %20, align 8, !tbaa !5
  %3545 = getelementptr inbounds %struct.ImGuiContext, ptr %3544, i32 0, i32 83
  %3546 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3545, i32 0, i32 2
  %3547 = load i32, ptr %3546, align 8, !tbaa !217
  %3548 = and i32 %3547, 128
  %3549 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %36, i32 0, i32 2
  %3550 = load i32, ptr %3549, align 4, !tbaa !218
  %3551 = or i32 %3550, %3548
  store i32 %3551, ptr %3549, align 4, !tbaa !218
  call void @_ZN5ImGui8EndGroupEv()
  %3552 = load ptr, ptr %20, align 8, !tbaa !5
  %3553 = getelementptr inbounds %struct.ImGuiContext, ptr %3552, i32 0, i32 83
  %3554 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3553, i32 0, i32 0
  %3555 = load i32, ptr %3554, align 8, !tbaa !219
  %3556 = icmp eq i32 %3555, 0
  br i1 %3556, label %3557, label %3572

3557:                                             ; preds = %3529
  %3558 = load i32, ptr %25, align 4, !tbaa !9
  %3559 = load ptr, ptr %20, align 8, !tbaa !5
  %3560 = getelementptr inbounds %struct.ImGuiContext, ptr %3559, i32 0, i32 83
  %3561 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3560, i32 0, i32 0
  store i32 %3558, ptr %3561, align 8, !tbaa !219
  %3562 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %36, i32 0, i32 1
  %3563 = load i32, ptr %3562, align 4, !tbaa !220
  %3564 = load ptr, ptr %20, align 8, !tbaa !5
  %3565 = getelementptr inbounds %struct.ImGuiContext, ptr %3564, i32 0, i32 83
  %3566 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3565, i32 0, i32 1
  store i32 %3563, ptr %3566, align 4, !tbaa !119
  %3567 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %36, i32 0, i32 2
  %3568 = load i32, ptr %3567, align 4, !tbaa !218
  %3569 = load ptr, ptr %20, align 8, !tbaa !5
  %3570 = getelementptr inbounds %struct.ImGuiContext, ptr %3569, i32 0, i32 83
  %3571 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3570, i32 0, i32 2
  store i32 %3568, ptr %3571, align 8, !tbaa !217
  br label %3572

3572:                                             ; preds = %3557, %3529
  br label %3573

3573:                                             ; preds = %3572, %3526
  %3574 = load ptr, ptr %20, align 8, !tbaa !5
  %3575 = getelementptr inbounds %struct.ImGuiContext, ptr %3574, i32 0, i32 237
  %3576 = load i8, ptr %3575, align 8, !tbaa !221, !range !40, !noundef !41
  %3577 = trunc i8 %3576 to i1
  br i1 %3577, label %3578, label %3587

3578:                                             ; preds = %3573
  %3579 = load i8, ptr %45, align 1, !tbaa !42, !range !40, !noundef !41
  %3580 = trunc i8 %3579 to i1
  br i1 %3580, label %3581, label %3584

3581:                                             ; preds = %3578
  %3582 = load i8, ptr %69, align 1, !tbaa !42, !range !40, !noundef !41
  %3583 = trunc i8 %3582 to i1
  br i1 %3583, label %3584, label %3587

3584:                                             ; preds = %3581, %3578
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef @.str.25, ptr noundef @.str.26)
  %3585 = load ptr, ptr %133, align 8, !tbaa !5
  %3586 = load ptr, ptr %134, align 8, !tbaa !5
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef %130, ptr noundef %3585, ptr noundef %3586)
  br label %3587

3587:                                             ; preds = %3584, %3581, %3573
  %3588 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %3589 = load float, ptr %3588, align 4, !tbaa !107
  %3590 = fcmp ogt float %3589, 0.000000e+00
  br i1 %3590, label %3591, label %3610

3591:                                             ; preds = %3587
  %3592 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 1
  %3593 = getelementptr inbounds %struct.ImVec2, ptr %3592, i32 0, i32 0
  %3594 = load float, ptr %3593, align 4, !tbaa !222
  %3595 = load ptr, ptr %22, align 8, !tbaa !5
  %3596 = getelementptr inbounds %struct.ImGuiStyle, ptr %3595, i32 0, i32 16
  %3597 = getelementptr inbounds %struct.ImVec2, ptr %3596, i32 0, i32 0
  %3598 = load float, ptr %3597, align 4, !tbaa !108
  %3599 = fadd float %3594, %3598
  %3600 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %3601 = getelementptr inbounds %struct.ImVec2, ptr %3600, i32 0, i32 1
  %3602 = load float, ptr %3601, align 4, !tbaa !204
  %3603 = load ptr, ptr %22, align 8, !tbaa !5
  %3604 = getelementptr inbounds %struct.ImGuiStyle, ptr %3603, i32 0, i32 12
  %3605 = getelementptr inbounds %struct.ImVec2, ptr %3604, i32 0, i32 1
  %3606 = load float, ptr %3605, align 4, !tbaa !106
  %3607 = fadd float %3602, %3606
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %179, float noundef %3599, float noundef %3607)
  %3608 = load ptr, ptr %10, align 8, !tbaa !5
  %3609 = load <2 x float>, ptr %179, align 4
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %3609, ptr noundef %3608, ptr noundef null, i1 noundef zeroext true)
  br label %3610

3610:                                             ; preds = %3591, %3587
  %3611 = load i8, ptr %65, align 1, !tbaa !42, !range !40, !noundef !41
  %3612 = trunc i8 %3611 to i1
  br i1 %3612, label %3613, label %3619

3613:                                             ; preds = %3610
  %3614 = load i32, ptr %15, align 4, !tbaa !9
  %3615 = and i32 %3614, 134217728
  %3616 = icmp ne i32 %3615, 0
  br i1 %3616, label %3619, label %3617

3617:                                             ; preds = %3613
  %3618 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %3618)
  br label %3619

3619:                                             ; preds = %3617, %3613, %3610
  %3620 = load ptr, ptr %20, align 8, !tbaa !5
  %3621 = load i32, ptr %15, align 4, !tbaa !9
  %3622 = and i32 %3621, 32
  %3623 = icmp ne i32 %3622, 0
  br i1 %3623, label %3624, label %3627

3624:                                             ; preds = %3619
  %3625 = load i8, ptr %66, align 1, !tbaa !42, !range !40, !noundef !41
  %3626 = trunc i8 %3625 to i1
  store i1 %3626, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3630

3627:                                             ; preds = %3619
  %3628 = load i8, ptr %65, align 1, !tbaa !42, !range !40, !noundef !41
  %3629 = trunc i8 %3628 to i1
  store i1 %3629, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3630

3630:                                             ; preds = %3627, %3624
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #14
  br label %3631

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

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

3634:                                             ; preds = %2264
  %3635 = load ptr, ptr %114, align 8
  %3636 = load i32, ptr %115, align 4
  %3637 = insertvalue { ptr, i32 } poison, ptr %3635, 0
  %3638 = insertvalue { ptr, i32 } %3637, i32 %3636, 1
  resume { ptr, i32 } %3638

3639:                                             ; preds = %2136, %1460
  unreachable
}

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui8EndChildEv() #4

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736)) #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(3736)) #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(3736)) #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, !15, i64 195}
!12 = !{!"_ZTS11ImGuiWindow", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !6, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !14, i64 116, !14, i64 120, !14, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !13, i64 140, !13, i64 148, !13, i64 156, !13, i64 164, !13, i64 172, !13, i64 180, !15, i64 188, !15, i64 189, !15, i64 190, !15, i64 191, !15, i64 192, !15, i64 193, !15, i64 194, !15, i64 195, !15, i64 196, !15, i64 197, !15, i64 198, !15, i64 199, !15, i64 200, !7, i64 201, !7, i64 202, !16, i64 204, !16, i64 206, !16, i64 208, !16, i64 210, !16, i64 212, !10, i64 216, !7, i64 220, !7, i64 221, !15, i64 222, !10, i64 224, !7, i64 228, !7, i64 229, !7, i64 230, !7, i64 231, !10, i64 232, !10, i64 233, !10, i64 234, !13, i64 236, !13, i64 244, !17, i64 256, !18, i64 272, !24, i64 504, !24, i64 520, !24, i64 536, !24, i64 552, !24, i64 568, !24, i64 584, !24, i64 600, !25, i64 616, !25, i64 620, !10, i64 624, !14, i64 628, !14, i64 632, !26, i64 640, !28, i64 656, !14, i64 672, !10, i64 676, !6, i64 680, !29, i64 688, !6, i64 888, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !7, i64 952, !7, i64 960, !7, i64 992, !10, i64 1008, !10, i64 1012, !10, i64 1016, !15, i64 1020}
!13 = !{!"_ZTS6ImVec2", !14, i64 0, !14, i64 4}
!14 = !{!"float", !7, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !6, i64 8}
!18 = !{!"_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, !15, i64 64, !15, i64 65, !19, i64 68, !19, i64 72, !19, i64 76, !13, i64 80, !20, i64 88, !16, i64 92, !16, i64 94, !15, i64 96, !15, i64 97, !15, i64 98, !15, i64 99, !13, i64 100, !21, i64 108, !10, i64 136, !10, i64 140, !22, i64 144, !6, i64 160, !6, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !14, i64 192, !14, i64 196, !23, i64 200, !23, i64 216}
!19 = !{!"_ZTS6ImVec1", !14, i64 0}
!20 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!21 = !{!"_ZTS16ImGuiMenuColumns", !10, i64 0, !10, i64 4, !16, i64 8, !16, i64 10, !16, i64 12, !16, i64 14, !16, i64 16, !7, i64 18}
!22 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !6, i64 8}
!23 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !6, i64 8}
!24 = !{!"_ZTS6ImRect", !13, i64 0, !13, i64 8}
!25 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!26 = !{!"_ZTS12ImGuiStorage", !27, i64 0}
!27 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !10, i64 0, !10, i64 4, !6, i64 8}
!28 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !10, i64 0, !10, i64 4, !6, i64 8}
!29 = !{!"_ZTS10ImDrawList", !30, i64 0, !31, i64 16, !32, i64 32, !10, i64 48, !10, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !33, i64 88, !34, i64 104, !35, i64 120, !36, i64 136, !38, i64 168, !14, i64 192}
!30 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !6, i64 8}
!31 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !6, i64 8}
!35 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !6, i64 8}
!36 = !{!"_ZTS15ImDrawCmdHeader", !37, i64 0, !6, i64 16, !10, i64 24}
!37 = !{!"_ZTS6ImVec4", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12}
!38 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !39, i64 8}
!39 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !6, i64 8}
!40 = !{i8 0, i8 2}
!41 = !{}
!42 = !{!15, !15, i64 0}
!43 = !{i64 0, i64 4, !44, i64 4, i64 4, !44}
!44 = !{!14, !14, i64 0}
!45 = !{!46, !14, i64 15672}
!46 = !{!"_ZTS12ImGuiContext", !15, i64 0, !15, i64 1, !47, i64 8, !49, i64 14568, !6, i64 15664, !14, i64 15672, !14, i64 15676, !50, i64 15680, !51, i64 16208, !10, i64 16216, !10, i64 16220, !10, i64 16224, !15, i64 16228, !15, i64 16229, !15, i64 16230, !15, i64 16231, !15, i64 16232, !6, i64 16240, !52, i64 16248, !52, i64 16264, !48, i64 16280, !10, i64 16284, !22, i64 16288, !22, i64 16304, !22, i64 16320, !53, i64 16336, !26, i64 16352, !10, i64 16368, !13, i64 16372, !10, i64 16380, !6, i64 16384, !6, i64 16392, !6, i64 16400, !6, i64 16408, !6, i64 16416, !13, i64 16424, !10, i64 16432, !10, i64 16436, !14, i64 16440, !13, i64 16444, !13, i64 16452, !10, i64 16460, !10, i64 16464, !10, i64 16468, !15, i64 16472, !15, i64 16473, !14, i64 16476, !14, i64 16480, !10, i64 16484, !10, i64 16488, !14, i64 16492, !15, i64 16496, !15, i64 16497, !15, i64 16498, !15, i64 16499, !15, i64 16500, !15, i64 16501, !15, i64 16502, !10, i64 16503, !13, i64 16504, !6, i64 16512, !54, i64 16520, !10, i64 16524, !15, i64 16528, !15, i64 16529, !6, i64 16536, !10, i64 16544, !14, i64 16548, !51, i64 16552, !51, i64 16560, !51, i64 16568, !55, i64 16576, !7, i64 16596, !56, i64 18448, !10, i64 18792, !15, i64 18796, !10, i64 18800, !10, i64 18804, !10, i64 18808, !10, i64 18812, !10, i64 18816, !58, i64 18824, !60, i64 18856, !61, i64 18936, !15, i64 19048, !10, i64 19052, !62, i64 19056, !63, i64 19072, !64, i64 19088, !65, i64 19104, !66, i64 19120, !67, i64 19136, !68, i64 19152, !68, i64 19168, !69, i64 19184, !70, i64 19200, !6, i64 19216, !10, i64 19224, !10, i64 19228, !65, i64 19232, !10, i64 19248, !10, i64 19252, !10, i64 19256, !10, i64 19260, !10, i64 19264, !14, i64 19268, !10, i64 19272, !10, i64 19276, !10, i64 19280, !10, i64 19284, !10, i64 19288, !54, i64 19292, !20, i64 19296, !59, i64 19304, !15, i64 19312, !15, i64 19313, !15, i64 19314, !15, i64 19315, !15, i64 19316, !15, i64 19317, !15, i64 19318, !71, i64 19320, !15, i64 19384, !15, i64 19385, !15, i64 19386, !10, i64 19388, !10, i64 19392, !10, i64 19396, !10, i64 19400, !10, i64 19404, !10, i64 19408, !24, i64 19412, !24, i64 19428, !10, i64 19444, !10, i64 19448, !10, i64 19452, !71, i64 19456, !71, i64 19520, !71, i64 19584, !71, i64 19648, !10, i64 19712, !10, i64 19716, !6, i64 19720, !6, i64 19728, !6, i64 19736, !14, i64 19744, !14, i64 19748, !15, i64 19752, !72, i64 19756, !13, i64 19760, !13, i64 19768, !14, i64 19776, !15, i64 19780, !15, i64 19781, !15, i64 19782, !10, i64 19784, !10, i64 19788, !10, i64 19792, !73, i64 19800, !24, i64 19864, !24, i64 19880, !10, i64 19896, !10, i64 19900, !14, i64 19904, !10, i64 19908, !10, i64 19912, !10, i64 19916, !10, i64 19920, !74, i64 19928, !7, i64 19944, !10, i64 19960, !75, i64 19968, !6, i64 19984, !10, i64 19992, !10, i64 19996, !76, i64 20000, !77, i64 20016, !23, i64 20056, !39, i64 20072, !6, i64 20088, !79, i64 20096, !81, i64 20136, !82, i64 20152, !10, i64 20168, !10, i64 20172, !14, i64 20176, !14, i64 20180, !10, i64 20184, !10, i64 20188, !10, i64 20192, !14, i64 20196, !13, i64 20200, !83, i64 20208, !87, i64 23944, !88, i64 23968, !10, i64 24088, !10, i64 24092, !10, i64 24096, !10, i64 24100, !10, i64 24104, !10, i64 24108, !14, i64 24112, !14, i64 24116, !10, i64 24120, !37, i64 24124, !90, i64 24140, !24, i64 24188, !15, i64 24204, !14, i64 24208, !14, i64 24212, !15, i64 24216, !15, i64 24217, !14, i64 24220, !14, i64 24224, !14, i64 24228, !14, i64 24232, !16, i64 24236, !16, i64 24238, !16, i64 24240, !84, i64 24248, !17, i64 24264, !91, i64 24280, !93, i64 24384, !93, i64 24400, !15, i64 24416, !14, i64 24420, !94, i64 24424, !95, i64 24440, !96, i64 24456, !97, i64 24472, !98, i64 24488, !10, i64 24504, !7, i64 24512, !15, i64 24576, !99, i64 24580, !6, i64 24584, !94, i64 24592, !6, i64 24608, !6, i64 24616, !14, i64 24624, !15, i64 24628, !10, i64 24632, !10, i64 24636, !10, i64 24640, !10, i64 24644, !94, i64 24648, !100, i64 24664, !10, i64 24688, !7, i64 24692, !7, i64 24693, !15, i64 24694, !10, i64 24696, !7, i64 24700, !15, i64 24701, !7, i64 24702, !10, i64 24704, !14, i64 24708, !37, i64 24712, !101, i64 24728, !102, i64 24760, !104, i64 24800, !7, i64 24860, !10, i64 25100, !10, i64 25104, !14, i64 25108, !10, i64 25112, !10, i64 25116, !10, i64 25120, !84, i64 25128, !7, i64 25144}
!47 = !{!"_ZTS7ImGuiIO", !10, i64 0, !10, i64 4, !13, i64 8, !14, i64 16, !14, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !14, i64 56, !15, i64 60, !6, i64 64, !13, i64 72, !15, i64 80, !15, i64 81, !15, i64 82, !15, i64 83, !15, i64 84, !15, i64 85, !15, i64 86, !15, i64 87, !14, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !15, i64 112, !15, i64 113, !15, i64 114, !15, i64 115, !15, i64 116, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !16, i64 192, !15, i64 194, !15, i64 195, !15, i64 196, !15, i64 197, !15, i64 198, !15, i64 199, !15, i64 200, !14, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !13, i64 224, !7, i64 232, !7, i64 2896, !7, i64 3564, !6, i64 3632, !13, i64 3640, !7, i64 3648, !14, i64 3656, !14, i64 3660, !48, i64 3664, !15, i64 3668, !15, i64 3669, !15, i64 3670, !15, i64 3671, !10, i64 3672, !7, i64 3676, !15, i64 14332, !13, i64 14336, !7, i64 14344, !7, i64 14384, !7, i64 14424, !7, i64 14429, !7, i64 14434, !7, i64 14444, !7, i64 14454, !7, i64 14459, !7, i64 14464, !15, i64 14469, !7, i64 14472, !7, i64 14492, !7, i64 14512, !14, i64 14532, !15, i64 14536, !15, i64 14537, !7, i64 14538, !15, i64 14539, !16, i64 14540, !31, i64 14544}
!48 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!49 = !{!"_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, !15, i64 216, !15, i64 217, !15, i64 218, !14, i64 220, !14, i64 224, !7, i64 228, !14, i64 1076, !14, i64 1080, !14, i64 1084, !10, i64 1088, !10, i64 1092}
!50 = !{!"_ZTS20ImDrawListSharedData", !13, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !37, i64 28, !10, i64 44, !35, i64 48, !7, i64 64, !14, i64 448, !7, i64 452, !6, i64 520}
!51 = !{!"double", !7, i64 0}
!52 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !10, i64 0, !10, i64 4, !6, i64 8}
!53 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!54 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!55 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!56 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !57, i64 312, !57, i64 328}
!57 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!58 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !59, i64 8, !14, i64 16, !10, i64 20, !15, i64 24, !10, i64 25}
!59 = !{!"long long", !7, i64 0}
!60 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !24, i64 12, !24, i64 28, !24, i64 44, !24, i64 60}
!61 = !{!"_ZTS19ImGuiNextWindowData", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !10, i64 56, !15, i64 60, !24, i64 64, !6, i64 80, !6, i64 88, !14, i64 96, !13, i64 100}
!62 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!63 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!64 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !6, i64 8}
!71 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !10, i64 8, !10, i64 12, !24, i64 16, !10, i64 32, !59, i64 40, !14, i64 48, !14, i64 52, !14, i64 56}
!72 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!73 = !{!"_ZTS12ImGuiPayload", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !7, i64 24, !15, i64 57, !15, i64 58}
!74 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!75 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!76 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!77 = !{!"_ZTS6ImPoolI10ImGuiTableE", !78, i64 0, !26, i64 16, !10, i64 32, !10, i64 36}
!78 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !6, i64 8}
!79 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !80, i64 0, !26, i64 16, !10, i64 32, !10, i64 36}
!80 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !6, i64 8}
!81 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !6, i64 8}
!82 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !6, i64 8}
!83 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !31, i64 24, !84, i64 40, !84, i64 56, !15, i64 72, !10, i64 76, !14, i64 80, !85, i64 84, !14, i64 3712, !15, i64 3716, !15, i64 3717, !15, i64 3718, !10, i64 3720, !15, i64 3724, !10, i64 3728, !10, i64 3732}
!84 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!85 = !{!"_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, !14, i64 28, !86, i64 32}
!86 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !10, i64 3588, !10, i64 3592}
!87 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !84, i64 8}
!88 = !{!"_ZTS6ImFont", !23, i64 0, !14, i64 16, !14, i64 20, !31, i64 24, !89, i64 40, !6, i64 56, !6, i64 64, !6, i64 72, !16, i64 80, !16, i64 82, !16, i64 84, !16, i64 86, !14, i64 88, !14, i64 92, !15, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !10, i64 112, !7, i64 116}
!89 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!90 = !{!"_ZTS21ImGuiComboPreviewData", !24, i64 0, !13, i64 16, !13, i64 24, !13, i64 32, !14, i64 40, !10, i64 44}
!91 = !{!"_ZTS22ImGuiTypingSelectState", !92, i64 0, !7, i64 24, !10, i64 88, !10, i64 92, !14, i64 96, !15, i64 100}
!92 = !{!"_ZTS24ImGuiTypingSelectRequest", !10, i64 0, !10, i64 4, !6, i64 8, !15, i64 16, !15, i64 17, !7, i64 18}
!93 = !{!"_ZTS20ImGuiPlatformImeData", !15, i64 0, !13, i64 4, !14, i64 12}
!94 = !{!"_ZTS15ImGuiTextBuffer", !84, i64 0}
!95 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!96 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !84, i64 0}
!97 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !84, i64 0}
!98 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !6, i64 8}
!99 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!100 = !{!"_ZTS14ImGuiTextIndex", !66, i64 0, !10, i64 16}
!101 = !{!"_ZTS18ImGuiMetricsConfig", !15, i64 0, !15, i64 1, !15, i64 2, !15, i64 3, !15, i64 4, !15, i64 5, !15, i64 6, !15, i64 7, !15, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24}
!102 = !{!"_ZTS16ImGuiIDStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !103, i64 16, !15, i64 32, !14, i64 36}
!103 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !6, i64 8}
!104 = !{!"_ZTS19ImGuiDebugAllocInfo", !10, i64 0, !10, i64 4, !16, i64 8, !7, i64 12}
!105 = !{!13, !14, i64 4}
!106 = !{!49, !14, i64 64}
!107 = !{!13, !14, i64 0}
!108 = !{!49, !14, i64 84}
!109 = !{i64 0, i64 4, !9, i64 4, i64 4, !9, i64 8, i64 4, !9, i64 12, i64 4, !44, i64 16, i64 4, !44, i64 20, i64 4, !44, i64 24, i64 4, !44, i64 28, i64 4, !44, i64 32, i64 4, !44, i64 36, i64 4, !44, i64 40, i64 4, !44, i64 44, i64 4, !44, i64 48, i64 4, !44, i64 52, i64 4, !44, i64 56, i64 4, !44, i64 60, i64 4, !44, i64 64, i64 4, !44, i64 68, i64 4, !44, i64 72, i64 4, !44}
!110 = !{!46, !10, i64 19248}
!111 = !{!46, !10, i64 19260}
!112 = !{!46, !10, i64 16484}
!113 = !{!49, !14, i64 68}
!114 = !{!49, !14, i64 72}
!115 = !{!46, !6, i64 16384}
!116 = !{!12, !20, i64 360}
!117 = !{!12, !16, i64 366}
!118 = !{!12, !14, i64 180}
!119 = !{!46, !10, i64 18860}
!120 = !{!46, !10, i64 20192}
!121 = !{!46, !54, i64 19292}
!122 = !{!46, !10, i64 16524}
!123 = !{!12, !14, i64 144}
!124 = !{!83, !15, i64 3724}
!125 = !{!83, !7, i64 107}
!126 = !{!83, !10, i64 8}
!127 = !{!83, !6, i64 64}
!128 = !{!83, !10, i64 16}
!129 = !{!83, !15, i64 72}
!130 = !{!83, !6, i64 48}
!131 = !{!83, !6, i64 32}
!132 = !{!83, !10, i64 12}
!133 = !{!83, !14, i64 80}
!134 = !{!83, !10, i64 3728}
!135 = !{!83, !10, i64 88}
!136 = !{!83, !10, i64 3732}
!137 = !{!83, !10, i64 92}
!138 = !{!83, !10, i64 84}
!139 = !{!47, !15, i64 3668}
!140 = !{!83, !7, i64 96}
!141 = !{!47, !15, i64 81}
!142 = !{!46, !10, i64 18792}
!143 = !{!83, !10, i64 24}
!144 = !{!7, !7, i64 0}
!145 = !{!46, !6, i64 15664}
!146 = !{!88, !14, i64 20}
!147 = !{!88, !14, i64 100}
!148 = !{!88, !14, i64 104}
!149 = !{!88, !14, i64 108}
!150 = !{!88, !6, i64 64}
!151 = !{!88, !6, i64 56}
!152 = !{!153, !14, i64 4}
!153 = !{!"_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}
!154 = !{!88, !14, i64 16}
!155 = !{!83, !15, i64 3718}
!156 = !{!83, !10, i64 76}
!157 = !{!83, !10, i64 3720}
!158 = !{!46, !15, i64 16497}
!159 = !{!47, !14, i64 3640}
!160 = !{!24, !14, i64 0}
!161 = !{!49, !14, i64 60}
!162 = !{!47, !14, i64 3644}
!163 = !{!12, !14, i64 276}
!164 = !{!83, !15, i64 3717}
!165 = !{!16, !16, i64 0}
!166 = !{!47, !15, i64 3669}
!167 = !{!83, !15, i64 3716}
!168 = !{!47, !14, i64 224}
!169 = !{!47, !14, i64 228}
!170 = !{!47, !15, i64 3670}
!171 = !{!47, !15, i64 3671}
!172 = !{!47, !10, i64 14544}
!173 = distinct !{!173, !174}
!174 = !{!"llvm.loop.mustprogress"}
!175 = !{!46, !15, i64 16496}
!176 = !{!83, !10, i64 100}
!177 = !{!47, !10, i64 0}
!178 = !{!47, !10, i64 4}
!179 = !{!47, !15, i64 84}
!180 = !{!47, !6, i64 168}
!181 = distinct !{!181, !174}
!182 = !{!83, !10, i64 56}
!183 = !{!31, !6, i64 8}
!184 = !{!31, !10, i64 0}
!185 = !{!83, !10, i64 40}
!186 = !{!72, !72, i64 0}
!187 = !{!188, !6, i64 0}
!188 = !{!"_ZTS26ImGuiInputTextCallbackData", !6, i64 0, !10, i64 8, !10, i64 12, !6, i64 16, !16, i64 24, !72, i64 28, !6, i64 32, !10, i64 40, !10, i64 44, !15, i64 48, !10, i64 52, !10, i64 56, !10, i64 60}
!189 = !{!188, !10, i64 8}
!190 = !{!188, !10, i64 12}
!191 = !{!188, !6, i64 16}
!192 = !{!188, !72, i64 28}
!193 = !{!188, !6, i64 32}
!194 = !{!188, !10, i64 40}
!195 = !{!188, !10, i64 44}
!196 = !{!188, !15, i64 48}
!197 = !{!188, !10, i64 52}
!198 = !{!188, !10, i64 56}
!199 = !{!188, !10, i64 60}
!200 = !{!46, !10, i64 23944}
!201 = !{!46, !6, i64 23960}
!202 = !{!46, !10, i64 23952}
!203 = !{!46, !10, i64 25120}
!204 = !{!24, !14, i64 4}
!205 = distinct !{!205, !174}
!206 = !{!37, !14, i64 12}
!207 = !{!37, !14, i64 4}
!208 = distinct !{!208, !174}
!209 = !{!12, !6, i64 680}
!210 = distinct !{!210, !174}
!211 = !{!47, !14, i64 16}
!212 = !{!83, !14, i64 3712}
!213 = !{!46, !15, i64 91}
!214 = !{!46, !15, i64 24384}
!215 = !{!46, !14, i64 24396}
!216 = !{!46, !10, i64 18828}
!217 = !{!46, !10, i64 18864}
!218 = !{!60, !10, i64 8}
!219 = !{!46, !10, i64 18856}
!220 = !{!60, !10, i64 4}
!221 = !{!46, !15, i64 24576}
!222 = !{!24, !14, i64 8}


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) local_unnamed_addr #4

declare noundef float @_ZN5ImGui13CalcItemWidthEv() local_unnamed_addr #4

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

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

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

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

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

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

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

declare void @_ZN5ImGui13ClearActiveIDEv() local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui11PopStyleVarEi(i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui14MarkItemEditedEj(i32 noundef) local_unnamed_addr #4

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

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

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

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

declare void @_ZN5ImGui10BeginGroupEv() local_unnamed_addr #4

declare void @_ZN5ImGui8EndGroupEv() local_unnamed_addr #4

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef %3, ptr nocapture noundef nonnull readonly align 4 dereferenceable(8) %4, i32 noundef %5, ptr noundef %6, ptr noundef %7) local_unnamed_addr #9 personality ptr @__gxx_personality_v0 {
  %9 = alloca %struct.ImVec2, align 8
  %10 = alloca %struct.ImVec2, align 4
  %11 = alloca %struct.ImRect, align 8
  %12 = alloca %struct.ImVec2, align 8
  %13 = alloca %struct.ImRect, align 4
  %14 = alloca %struct.ImVec2, align 8
  %15 = alloca %struct.ImGuiLastItemData, align 4
  %16 = alloca %struct.ImVec2, align 4
  %17 = alloca %struct.ImVec2, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i16, align 2
  %25 = alloca %struct.ImVector.5, align 8
  %26 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %27 = alloca %struct.ImGuiInputTextCallbackData, align 8
  %28 = alloca %struct.ImVec4, align 4
  %29 = alloca %struct.ImVec2, align 8
  %30 = alloca %struct.ImVec2, align 8
  %31 = alloca ptr, align 8
  %32 = alloca %struct.ImVec2, align 4
  %33 = alloca %struct.ImVec2, align 4
  %34 = alloca %struct.ImVec2, align 8
  %35 = alloca %struct.ImVec2, align 4
  %36 = alloca %struct.ImVec2, align 8
  %37 = alloca %struct.ImVec2, align 8
  %38 = alloca ptr, align 8
  %39 = alloca %struct.ImRect, align 4
  %40 = alloca %struct.ImVec2, align 8
  %41 = alloca %struct.ImVec2, align 4
  %42 = alloca %struct.ImVec2, align 8
  %43 = alloca %struct.ImVec2, align 4
  %44 = alloca %struct.ImRect, align 4
  %45 = alloca %struct.ImRect, align 4
  %46 = alloca %struct.ImVec2, align 8
  %47 = alloca %struct.ImVec2, align 8
  %48 = alloca %struct.ImVec2, align 8
  %49 = alloca %struct.ImRect, align 4
  %50 = alloca %struct.ImRect, align 4
  %51 = alloca %struct.ImVec2, align 8
  %52 = alloca %struct.ImVec2, align 8
  %53 = alloca %struct.ImVec2, align 8
  %54 = alloca %struct.ImVec2, align 4
  %55 = alloca %struct.ImVec2, align 8
  %56 = tail call noundef ptr @_ZN5ImGui16GetCurrentWindowEv()
  %57 = getelementptr inbounds i8, ptr %56, i64 195
  %58 = load i8, ptr %57, align 1, !tbaa !5, !range !38, !noundef !39
  %59 = trunc nuw i8 %58 to i1
  br i1 %59, label %1524, 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 4092, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

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

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

70:                                               ; preds = %65
  %71 = and i32 %5, 1024
  %.not1025 = icmp eq i32 %71, 0
  %72 = and i32 %5, 1088
  %.not1026 = icmp eq i32 %72, 1088
  br i1 %.not1026, label %73, label %74

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

74:                                               ; preds = %70
  %75 = load ptr, ptr @GImGui, align 8, !tbaa !40
  %76 = getelementptr inbounds i8, ptr %75, i64 8
  br i1 %67, label %77, label %78

77:                                               ; preds = %74
  tail call void @_ZN5ImGui10BeginGroupEv()
  br label %78

78:                                               ; preds = %77, %74
  %79 = tail call noundef i32 @_ZN11ImGuiWindow5GetIDEPKcS1_(ptr noundef nonnull align 8 dereferenceable(1021) %56, ptr noundef %0, ptr noundef null)
  %80 = tail call <2 x float> @_ZN5ImGui12CalcTextSizeEPKcS1_bf(ptr noundef %0, ptr noundef null, i1 noundef zeroext true, float noundef -1.000000e+00)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #14
  %.sroa.0573.0.copyload = load <2 x float>, ptr %4, align 4
  %81 = tail call noundef float @_ZN5ImGui13CalcItemWidthEv()
  br i1 %67, label %82, label %86

82:                                               ; preds = %78
  %83 = getelementptr inbounds i8, ptr %75, i64 15672
  %84 = load float, ptr %83, align 8, !tbaa !41
  %85 = fmul float %84, 8.000000e+00
  br label %87

86:                                               ; preds = %78
  %.sroa.0574.4.vec.extract = extractelement <2 x float> %80, i64 1
  br label %87

87:                                               ; preds = %86, %82
  %88 = phi float [ %85, %82 ], [ %.sroa.0574.4.vec.extract, %86 ]
  %89 = getelementptr inbounds i8, ptr %75, i64 14628
  %90 = getelementptr inbounds i8, ptr %75, i64 14632
  %91 = load float, ptr %90, align 4, !tbaa !101
  %92 = tail call float @llvm.fmuladd.f32(float %91, float 2.000000e+00, float %88)
  %93 = tail call <2 x float> @_ZN5ImGui12CalcItemSizeE6ImVec2ff(<2 x float> %.sroa.0573.0.copyload, float noundef %81, float noundef %92)
  store <2 x float> %93, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  %94 = extractelement <2 x float> %93, i64 0
  %.sroa.0574.0.vec.extract = extractelement <2 x float> %80, i64 0
  %95 = fcmp ogt float %.sroa.0574.0.vec.extract, 0.000000e+00
  %96 = extractelement <2 x float> %93, i64 1
  br i1 %95, label %97, label %101

97:                                               ; preds = %87
  %98 = getelementptr inbounds i8, ptr %75, i64 14652
  %99 = load float, ptr %98, align 4, !tbaa !102
  %100 = fadd float %.sroa.0574.0.vec.extract, %99
  br label %101

101:                                              ; preds = %87, %97
  %102 = phi float [ %100, %97 ], [ 0.000000e+00, %87 ]
  %103 = fadd float %94, %102
  %104 = getelementptr inbounds i8, ptr %9, i64 4
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %103, float noundef %96)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #14
  %105 = getelementptr inbounds i8, ptr %56, i64 272
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #14
  %106 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %105, ptr noundef nonnull align 4 dereferenceable(8) %9)
  store <2 x float> %106, ptr %12, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %11, ptr noundef nonnull align 4 dereferenceable(8) %105, ptr noundef nonnull align 4 dereferenceable(8) %12)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #14
  %107 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %10)
  store <2 x float> %107, ptr %14, align 8
  call void @_ZN6ImRectC2ERK6ImVec2S2_(ptr noundef nonnull align 4 dereferenceable(16) %13, ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %14)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #14
  %.sroa.0544.0.copyload = load float, ptr %9, align 8, !tbaa !103
  %.sroa.11.0.copyload = load float, ptr %104, align 4, !tbaa !103
  call void @llvm.lifetime.start.p0(i64 76, ptr nonnull %15) #14
  call void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(76) %15)
  br i1 %67, label %108, label %153

108:                                              ; preds = %101
  %109 = load i64, ptr %105, align 8
  %110 = load float, ptr %90, align 4, !tbaa !101
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %110)
  %111 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %79, ptr noundef nonnull %11, i32 noundef 1024)
  br i1 %111, label %113, label %112

112:                                              ; preds = %108
  call void @_ZN5ImGui8EndGroupEv()
  br label %.thread

113:                                              ; preds = %108
  %114 = getelementptr inbounds i8, ptr %75, i64 18856
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(76) %15, ptr noundef nonnull align 8 dereferenceable(76) %114, i64 76, i1 false), !tbaa.struct !104
  store i64 %109, ptr %105, align 8
  %115 = getelementptr inbounds i8, ptr %75, i64 19248
  %116 = load i32, ptr %115, align 8, !tbaa !106
  %117 = icmp eq i32 %116, %79
  br i1 %117, label %118, label %123

118:                                              ; preds = %113
  %119 = getelementptr inbounds i8, ptr %75, i64 19260
  %120 = load i32, ptr %119, align 4, !tbaa !107
  %121 = and i32 %120, 8
  %.not1028 = icmp eq i32 %121, 0
  %brmerge = or i1 %.not1025, %.not1028
  br i1 %brmerge, label %123, label %122

122:                                              ; preds = %118
  store i32 0, ptr %115, align 8, !tbaa !106
  br label %123

123:                                              ; preds = %118, %122, %113
  %124 = phi i32 [ %79, %118 ], [ 0, %122 ], [ %116, %113 ]
  %125 = getelementptr inbounds i8, ptr %75, i64 16484
  %126 = load i32, ptr %125, align 4, !tbaa !108
  %127 = icmp eq i32 %126, %79
  br i1 %127, label %128, label %129

128:                                              ; preds = %123
  store i32 0, ptr %115, align 8, !tbaa !106
  br label %129

129:                                              ; preds = %128, %123
  %130 = getelementptr inbounds i8, ptr %75, i64 14908
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %130)
  %131 = getelementptr inbounds i8, ptr %75, i64 14636
  %132 = load float, ptr %131, align 4, !tbaa !109
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %132)
  %133 = getelementptr inbounds i8, ptr %75, i64 14640
  %134 = load float, ptr %133, align 4, !tbaa !110
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 8, float noundef %134)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #14
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef 0.000000e+00, float noundef 0.000000e+00)
  call void @_ZN5ImGui12PushStyleVarEiRK6ImVec2(i32 noundef 2, ptr noundef nonnull align 4 dereferenceable(8) %16)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  %135 = call <2 x float> @_ZNK6ImRect7GetSizeEv(ptr noundef nonnull align 4 dereferenceable(16) %11)
  store <2 x float> %135, ptr %17, align 8
  %136 = call noundef zeroext i1 @_ZN5ImGui12BeginChildExEPKcjRK6ImVec2ii(ptr noundef %0, i32 noundef %79, ptr noundef nonnull align 4 dereferenceable(8) %17, i32 noundef 1, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  store i32 %124, ptr %115, align 8, !tbaa !106
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  br i1 %136, label %138, label %137

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

138:                                              ; preds = %129
  %139 = getelementptr inbounds i8, ptr %75, i64 16384
  %140 = load ptr, ptr %139, align 8, !tbaa !111
  %141 = getelementptr inbounds i8, ptr %140, i64 272
  %142 = getelementptr inbounds i8, ptr %140, i64 360
  %143 = load i32, ptr %142, align 8, !tbaa !112
  %144 = shl nuw i32 1, %143
  %145 = getelementptr inbounds i8, ptr %140, i64 366
  %146 = load i16, ptr %145, align 2, !tbaa !113
  %147 = trunc i32 %144 to i16
  %148 = or i16 %146, %147
  store i16 %148, ptr %145, align 2, !tbaa !113
  %149 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZpLR6ImVec2RKS_(ptr noundef nonnull align 4 dereferenceable(8) %141, ptr noundef nonnull align 4 dereferenceable(8) %89)
  %150 = getelementptr inbounds i8, ptr %140, i64 180
  %151 = load float, ptr %150, align 4, !tbaa !114
  %152 = fsub float %.sroa.0544.0.copyload, %151
  br label %158

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

156:                                              ; preds = %153
  %157 = call noundef zeroext i1 @_ZN5ImGui7ItemAddERK6ImRectjPS1_i(ptr noundef nonnull align 4 dereferenceable(16) %13, i32 noundef %79, ptr noundef nonnull %11, i32 noundef 1024)
  br i1 %157, label %158, label %.thread

158:                                              ; preds = %138, %153, %156
  %.sroa.0544.2 = phi float [ %152, %138 ], [ %.sroa.0544.0.copyload, %153 ], [ %.sroa.0544.0.copyload, %156 ]
  %.2936 = phi ptr [ %140, %138 ], [ %56, %153 ], [ %56, %156 ]
  %159 = getelementptr inbounds i8, ptr %75, i64 18856
  %160 = getelementptr inbounds i8, ptr %75, i64 18860
  %161 = load i32, ptr %160, align 4, !tbaa !115
  %162 = call noundef zeroext i1 @_ZN5ImGui13ItemHoverableERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %79, i32 noundef %161)
  br i1 %162, label %163, label %165

163:                                              ; preds = %158
  %164 = getelementptr inbounds i8, ptr %75, i64 20192
  store i32 1, ptr %164, align 8, !tbaa !116
  br label %165

165:                                              ; preds = %163, %158
  %166 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %79)
  %167 = load i32, ptr %160, align 4, !tbaa !115
  %168 = shl i32 %167, 7
  %169 = and i32 %168, 16384
  %spec.select = or i32 %169, %5
  %170 = and i32 %spec.select, 16384
  %171 = icmp ne i32 %170, 0
  %172 = and i32 %5, 32768
  %.not1030 = icmp eq i32 %172, 0
  %173 = and i32 %5, 65536
  %174 = icmp eq i32 %173, 0
  %175 = and i32 %5, 262144
  %.not1031 = icmp eq i32 %175, 0
  %176 = icmp ne ptr %6, null
  %or.cond17 = or i1 %.not1031, %176
  br i1 %or.cond17, label %178, label %177

177:                                              ; preds = %165
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.4, i32 noundef 4179, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

178:                                              ; preds = %165
  %179 = getelementptr inbounds i8, ptr %75, i64 16484
  %180 = load i32, ptr %179, align 4, !tbaa !108
  %.not1032 = icmp eq i32 %180, %79
  br i1 %.not1032, label %193, label %181

181:                                              ; preds = %178
  %182 = getelementptr inbounds i8, ptr %75, i64 19248
  %183 = load i32, ptr %182, align 8, !tbaa !106
  %184 = icmp eq i32 %183, %79
  br i1 %184, label %185, label %193

185:                                              ; preds = %181
  %186 = getelementptr inbounds i8, ptr %75, i64 19260
  %187 = load i32, ptr %186, align 4, !tbaa !107
  %188 = and i32 %187, 1
  %.not1033 = icmp eq i32 %188, 0
  br i1 %.not1033, label %189, label %193

189:                                              ; preds = %185
  %190 = getelementptr inbounds i8, ptr %75, i64 19292
  %191 = load i32, ptr %190, align 4, !tbaa !117
  %192 = icmp eq i32 %191, 2
  br label %193

193:                                              ; preds = %181, %189, %185, %178
  %194 = phi i1 [ false, %178 ], [ false, %181 ], [ true, %185 ], [ %192, %189 ]
  br i1 %162, label %195, label %199

195:                                              ; preds = %193
  %196 = getelementptr inbounds i8, ptr %75, i64 14432
  %197 = load i8, ptr %196, align 8, !tbaa !118, !range !38, !noundef !39
  %198 = trunc nuw i8 %197 to i1
  br label %199

199:                                              ; preds = %195, %193
  %200 = phi i1 [ false, %193 ], [ %198, %195 ]
  %201 = icmp ne ptr %166, null
  %or.cond = and i1 %67, %201
  br i1 %or.cond, label %202, label %212

202:                                              ; preds = %199
  %203 = icmp eq i32 %180, 0
  br i1 %203, label %204, label %.thread1197

204:                                              ; preds = %202
  %205 = getelementptr inbounds i8, ptr %75, i64 16524
  %206 = load i32, ptr %205, align 4, !tbaa !119
  %207 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.2936, i32 noundef 1)
  %208 = icmp eq i32 %206, %207
  %.pre = load i32, ptr %179, align 4, !tbaa !108
  br label %.thread1197

.thread1197:                                      ; preds = %202, %204
  %209 = phi i32 [ %.pre, %204 ], [ %180, %202 ]
  %.ph = phi i1 [ %208, %204 ], [ false, %202 ]
  %210 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.2936, i32 noundef 1)
  %211 = icmp eq i32 %209, %210
  br label %213

212:                                              ; preds = %199
  br i1 %67, label %213, label %218

213:                                              ; preds = %.thread1197, %212
  %214 = phi i1 [ %211, %.thread1197 ], [ false, %212 ]
  %215 = phi i1 [ %.ph, %.thread1197 ], [ false, %212 ]
  %216 = getelementptr inbounds i8, ptr %.2936, i64 144
  %217 = load float, ptr %216, align 4, !tbaa !120
  br label %218

218:                                              ; preds = %212, %213
  %219 = phi i1 [ %214, %213 ], [ false, %212 ]
  %220 = phi i1 [ %215, %213 ], [ false, %212 ]
  %221 = phi float [ %217, %213 ], [ 0x47EFFFFFE0000000, %212 ]
  br i1 %201, label %222, label %231

222:                                              ; preds = %218
  %223 = getelementptr inbounds i8, ptr %166, i64 3724
  %224 = load i8, ptr %223, align 4, !tbaa !121, !range !38, !noundef !39
  %225 = trunc nuw i8 %224 to i1
  %226 = getelementptr inbounds i8, ptr %166, i64 107
  %227 = load i8, ptr %226, align 1, !tbaa !122
  %228 = xor i1 %67, true
  %229 = zext i1 %228 to i8
  %230 = icmp ne i8 %227, %229
  br label %231

231:                                              ; preds = %218, %222
  %232 = phi i1 [ %225, %222 ], [ false, %218 ]
  %233 = phi i1 [ %230, %222 ], [ false, %218 ]
  %234 = select i1 %200, i1 true, i1 %220
  %spec.select1189 = select i1 %234, i1 true, i1 %194
  %235 = select i1 %spec.select1189, i1 true, i1 %219
  br i1 %235, label %236, label %238

236:                                              ; preds = %231
  %237 = load i32, ptr %179, align 4, !tbaa !108
  %.not1034 = icmp ne i32 %237, %79
  %brmerge1080 = select i1 %.not1034, i1 true, i1 %233
  %brmerge1081 = select i1 %brmerge1080, i1 true, i1 %232
  br i1 %brmerge1081, label %239, label %317

238:                                              ; preds = %231
  %brmerge1082 = select i1 %233, i1 true, i1 %232
  br i1 %brmerge1082, label %239, label %317

239:                                              ; preds = %238, %236
  %240 = getelementptr inbounds i8, ptr %75, i64 20208
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %240)
  %241 = getelementptr inbounds i8, ptr %75, i64 23932
  store i8 0, ptr %241, align 4, !tbaa !121
  %242 = getelementptr inbounds i8, ptr %75, i64 20216
  %243 = load i32, ptr %242, align 8, !tbaa !123
  call void @_ZN5ImGui23InputTextDeactivateHookEj(i32 noundef %243)
  %244 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #15
  %245 = trunc i64 %244 to i32
  br i1 %232, label %.thread1199, label %246

246:                                              ; preds = %239
  %247 = getelementptr inbounds i8, ptr %75, i64 20264
  %248 = add nsw i32 %245, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %247, i32 noundef %248)
  %249 = getelementptr inbounds i8, ptr %75, i64 20272
  %250 = load ptr, ptr %249, align 8, !tbaa !124
  %251 = sext i32 %248 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %250, ptr nonnull align 1 %2, i64 %251, i1 false)
  %252 = load i32, ptr %242, align 8, !tbaa !123
  %253 = icmp ne i32 %252, %79
  %254 = select i1 %253, i1 true, i1 %233
  %or.cond1233.not = select i1 %254, i1 true, i1 %232
  br i1 %or.cond1233.not, label %.thread1199, label %255

255:                                              ; preds = %246
  %256 = getelementptr inbounds i8, ptr %75, i64 20224
  %257 = load i32, ptr %256, align 8, !tbaa !125
  %.not1035 = icmp eq i32 %257, %245
  br i1 %.not1035, label %258, label %267

258:                                              ; preds = %255
  %259 = getelementptr inbounds i8, ptr %75, i64 20280
  %260 = load i8, ptr %259, align 8, !tbaa !126, !range !38, !noundef !39
  %261 = trunc nuw i8 %260 to i1
  br i1 %261, label %262, label %.thread1199

262:                                              ; preds = %258
  %263 = getelementptr inbounds i8, ptr %75, i64 20256
  %264 = load ptr, ptr %263, align 8, !tbaa !127
  %sext = shl i64 %244, 32
  %265 = ashr exact i64 %sext, 32
  %266 = call i32 @strncmp(ptr noundef %264, ptr noundef nonnull %2, i64 noundef %265) #15
  %.not1036 = icmp eq i32 %266, 0
  br i1 %.not1036, label %.thread1199, label %267

267:                                              ; preds = %262, %255
  br label %.thread1199

.thread1199:                                      ; preds = %239, %246, %267, %262, %258
  %.0949.shrunk = phi i1 [ false, %267 ], [ true, %262 ], [ true, %258 ], [ false, %246 ], [ false, %239 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #14
  store ptr null, ptr %18, align 8, !tbaa !40
  store i32 %79, ptr %242, align 8, !tbaa !123
  %268 = getelementptr inbounds i8, ptr %75, i64 20232
  %269 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %268, i32 noundef %269)
  %270 = getelementptr inbounds i8, ptr %75, i64 20248
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %270, i32 noundef 0)
  %271 = getelementptr inbounds i8, ptr %75, i64 20280
  store i8 0, ptr %271, align 8, !tbaa !126
  %272 = getelementptr inbounds i8, ptr %75, i64 20240
  %273 = load ptr, ptr %272, align 8, !tbaa !128
  %274 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %273, i32 noundef %3, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %18)
  %275 = getelementptr inbounds i8, ptr %75, i64 20220
  store i32 %274, ptr %275, align 4, !tbaa !129
  %276 = load ptr, ptr %18, align 8, !tbaa !40
  %277 = ptrtoint ptr %276 to i64
  %278 = ptrtoint ptr %2 to i64
  %279 = sub i64 %277, %278
  %280 = trunc i64 %279 to i32
  %281 = getelementptr inbounds i8, ptr %75, i64 20224
  store i32 %280, ptr %281, align 8, !tbaa !125
  br i1 %.0949.shrunk, label %282, label %283

282:                                              ; preds = %.thread1199
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %240)
  br label %288

283:                                              ; preds = %.thread1199
  %284 = getelementptr inbounds i8, ptr %75, i64 20288
  store float 0.000000e+00, ptr %284, align 8, !tbaa !130
  %285 = getelementptr inbounds i8, ptr %75, i64 20292
  %286 = xor i1 %67, true
  %287 = zext i1 %286 to i32
  call void @_ZN5ImStbL29stb_textedit_initialize_stateEPNS_17STB_TexteditStateEi(ptr noundef nonnull %285, i32 noundef %287)
  br label %288

288:                                              ; preds = %283, %282
  br i1 %232, label %289, label %297

289:                                              ; preds = %288
  %290 = getelementptr inbounds i8, ptr %75, i64 23936
  %291 = load i32, ptr %290, align 8, !tbaa !131
  %292 = getelementptr inbounds i8, ptr %75, i64 20292
  %293 = getelementptr inbounds i8, ptr %75, i64 20296
  store i32 %291, ptr %293, align 4, !tbaa !132
  %294 = getelementptr inbounds i8, ptr %75, i64 23940
  %295 = load i32, ptr %294, align 4, !tbaa !133
  %296 = getelementptr inbounds i8, ptr %75, i64 20300
  store i32 %295, ptr %296, align 4, !tbaa !134
  store i32 %295, ptr %292, align 4, !tbaa !135
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %240)
  br label %312

297:                                              ; preds = %288
  br i1 %67, label %312, label %298

298:                                              ; preds = %297
  %299 = trunc i32 %5 to i8
  %300 = lshr i8 %299, 4
  br i1 %194, label %301, label %307

301:                                              ; preds = %298
  br i1 %.0949.shrunk, label %302, label %306

302:                                              ; preds = %301
  %303 = getelementptr inbounds i8, ptr %75, i64 19260
  %304 = load i32, ptr %303, align 4, !tbaa !107
  %305 = and i32 %304, 4
  %.not1038 = icmp eq i32 %305, 0
  br i1 %.not1038, label %306, label %307

306:                                              ; preds = %302, %301
  br label %307

307:                                              ; preds = %306, %302, %298
  %.1943 = phi i8 [ %300, %302 ], [ 1, %306 ], [ %300, %298 ]
  br i1 %200, label %308, label %312

308:                                              ; preds = %307
  %309 = getelementptr inbounds i8, ptr %75, i64 3676
  %310 = load i8, ptr %309, align 4, !tbaa !136, !range !38, !noundef !39
  %311 = trunc nuw i8 %310 to i1
  %spec.select1085 = select i1 %311, i8 1, i8 %.1943
  br label %312

312:                                              ; preds = %308, %297, %307, %289
  %.2944 = phi i8 [ 0, %289 ], [ 0, %297 ], [ %.1943, %307 ], [ %spec.select1085, %308 ]
  %313 = and i32 %5, 8192
  %.not1039 = icmp eq i32 %313, 0
  br i1 %.not1039, label %316, label %314

314:                                              ; preds = %312
  %315 = getelementptr inbounds i8, ptr %75, i64 20304
  store i8 1, ptr %315, align 4, !tbaa !137
  br label %316

316:                                              ; preds = %314, %312
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  br label %317

317:                                              ; preds = %238, %236, %316
  %.3945 = phi i8 [ %.2944, %316 ], [ 0, %236 ], [ 0, %238 ]
  %.0937 = phi ptr [ %240, %316 ], [ %166, %236 ], [ %166, %238 ]
  %318 = getelementptr inbounds i8, ptr %75, i64 89
  %319 = load i8, ptr %318, align 1, !tbaa !138, !range !38, !noundef !39
  %320 = trunc nuw i8 %319 to i1
  %321 = load i32, ptr %179, align 4, !tbaa !108
  %.not1040 = icmp ne i32 %321, %79
  %brmerge1087.not = and i1 %spec.select1189, %.not1040
  br i1 %brmerge1087.not, label %322, label %328

322:                                              ; preds = %317
  %.not1041 = icmp eq ptr %.0937, null
  br i1 %.not1041, label %.critedge, label %323

323:                                              ; preds = %322
  %324 = getelementptr inbounds i8, ptr %.0937, i64 8
  %325 = load i32, ptr %324, align 8, !tbaa !123
  %326 = icmp eq i32 %325, %79
  br i1 %326, label %327, label %.critedge

.critedge:                                        ; preds = %322, %323
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.4, i32 noundef 4264, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

327:                                              ; preds = %323
  call void @_ZN5ImGui11SetActiveIDEjP11ImGuiWindow(i32 noundef %79, ptr noundef nonnull %56)
  call void @_ZN5ImGui10SetFocusIDEjP11ImGuiWindow(i32 noundef %79, ptr noundef nonnull %56)
  call void @_ZN5ImGui11FocusWindowEP11ImGuiWindowi(ptr noundef nonnull %56, i32 noundef 0)
  %.pre1251 = load i32, ptr %179, align 4, !tbaa !108
  br label %328

328:                                              ; preds = %317, %327
  %329 = phi i32 [ %321, %317 ], [ %.pre1251, %327 ]
  %330 = icmp eq i32 %329, %79
  br i1 %330, label %331, label %339

331:                                              ; preds = %328
  br i1 %200, label %332, label %333

332:                                              ; preds = %331
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 655, i32 noundef %79, i32 noundef 0)
  br label %333

333:                                              ; preds = %332, %331
  %334 = getelementptr inbounds i8, ptr %75, i64 18792
  %335 = load i32, ptr %334, align 8, !tbaa !139
  %or.cond1089.not.not = icmp eq i32 %68, 0
  %spec.select1239.v = select i1 %or.cond1089.not.not, i32 3, i32 15
  %spec.select1239 = or i32 %335, %spec.select1239.v
  store i32 %spec.select1239, ptr %334, align 8, !tbaa !139
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 525, i32 noundef %79, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 627, i32 noundef %79, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 519, i32 noundef %79, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 520, i32 noundef %79, i32 noundef 0)
  br i1 %67, label %336, label %337

336:                                              ; preds = %333
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 517, i32 noundef %79, i32 noundef 0)
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 518, i32 noundef %79, i32 noundef 0)
  br label %337

337:                                              ; preds = %336, %333
  br i1 %320, label %338, label %339

338:                                              ; preds = %337
  call void @_ZN5ImGui11SetKeyOwnerE8ImGuiKeyji(i32 noundef 16384, i32 noundef %79, i32 noundef 0)
  br label %339

339:                                              ; preds = %337, %338, %328
  %340 = load i32, ptr %179, align 4, !tbaa !108
  %341 = icmp eq i32 %340, %79
  %342 = icmp eq ptr %.0937, null
  %or.cond5 = and i1 %342, %341
  br i1 %or.cond5, label %343, label %344

343:                                              ; preds = %339
  call void @_ZN5ImGui13ClearActiveIDEv()
  %.pre1252 = load i32, ptr %179, align 4, !tbaa !108
  br label %344

344:                                              ; preds = %343, %339
  %345 = phi i32 [ %.pre1252, %343 ], [ %340, %339 ]
  %346 = icmp eq i32 %345, %79
  br i1 %346, label %.thread1200, label %350

.thread1200:                                      ; preds = %344
  %347 = getelementptr inbounds i8, ptr %75, i64 14432
  %348 = load i8, ptr %347, align 8, !tbaa !118, !range !38, !noundef !39
  %349 = trunc nuw i8 %348 to i1
  %.not1237 = xor i1 %235, true
  %not.brmerge1091 = and i1 %.not1237, %349
  %spec.select1186 = zext i1 %not.brmerge1091 to i8
  br label %353

350:                                              ; preds = %344
  %351 = icmp ne ptr %.0937, null
  %352 = select i1 %351, i1 %219, i1 false
  br label %353

353:                                              ; preds = %.thread1200, %350
  %.09381202 = phi i8 [ 0, %350 ], [ %spec.select1186, %.thread1200 ]
  %354 = phi i1 [ %352, %350 ], [ true, %.thread1200 ]
  %355 = zext i1 %354 to i8
  %356 = icmp ne ptr %.0937, null
  br i1 %356, label %357, label %.thread1203

357:                                              ; preds = %353
  %358 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br i1 %358, label %361, label %359

359:                                              ; preds = %357
  %360 = trunc i8 %.3945 to i1
  br i1 %360, label %361, label %362

361:                                              ; preds = %359, %357
  br label %362

362:                                              ; preds = %361, %359
  %363 = phi i1 [ false, %359 ], [ %354, %361 ]
  %brmerge1092 = or i1 %354, %363
  %or.cond1187 = select i1 %171, i1 %brmerge1092, i1 false
  br i1 %or.cond1187, label %364, label %.thread1203

364:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  store ptr null, ptr %19, align 8, !tbaa !40
  %365 = getelementptr inbounds i8, ptr %.0937, i64 24
  %366 = add nuw nsw i32 %3, 1
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %365, i32 noundef %366)
  %367 = getelementptr inbounds i8, ptr %.0937, i64 32
  %368 = load ptr, ptr %367, align 8, !tbaa !128
  %369 = load i32, ptr %365, align 8, !tbaa !140
  %370 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %368, i32 noundef %369, ptr noundef nonnull %2, ptr noundef null, ptr noundef nonnull %19)
  %371 = getelementptr inbounds i8, ptr %.0937, i64 12
  store i32 %370, ptr %371, align 4, !tbaa !129
  %372 = load ptr, ptr %19, align 8, !tbaa !40
  %373 = ptrtoint ptr %372 to i64
  %374 = ptrtoint ptr %2 to i64
  %375 = sub i64 %373, %374
  %376 = trunc i64 %375 to i32
  %377 = getelementptr inbounds i8, ptr %.0937, i64 16
  store i32 %376, ptr %377, align 8, !tbaa !125
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  %378 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  %379 = and i1 %363, %378
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  br label %.thread1203

.thread1203:                                      ; preds = %353, %364, %362
  %.0952.in = phi i1 [ %379, %364 ], [ %363, %362 ], [ false, %353 ]
  %.0952 = zext i1 %.0952.in to i8
  %brmerge1093 = select i1 %354, i1 true, i1 %.0952.in
  br i1 %brmerge1093, label %384, label %380

380:                                              ; preds = %.thread1203
  %381 = load i32, ptr %179, align 4, !tbaa !108
  %382 = icmp eq i32 %381, %79
  %.not = xor i1 %171, true
  %383 = and i1 %382, %.not
  %or.cond1094 = and i1 %356, %383
  br i1 %or.cond1094, label %385, label %389

384:                                              ; preds = %.thread1203
  %.not.old = xor i1 %171, true
  %or.cond9.old = and i1 %356, %.not.old
  br i1 %or.cond9.old, label %385, label %389

385:                                              ; preds = %380, %384
  %386 = getelementptr inbounds i8, ptr %.0937, i64 72
  %387 = load i8, ptr %386, align 8, !tbaa !126, !range !38, !noundef !39
  %388 = trunc nuw i8 %387 to i1
  br label %389

389:                                              ; preds = %385, %384, %380
  %390 = phi i1 [ false, %384 ], [ false, %380 ], [ %388, %385 ]
  %.not1043 = icmp eq ptr %1, null
  br i1 %.not1043, label %399, label %391

391:                                              ; preds = %389
  br i1 %390, label %392, label %395

392:                                              ; preds = %391
  %393 = getelementptr inbounds i8, ptr %.0937, i64 48
  %394 = load ptr, ptr %393, align 8, !tbaa !127
  br label %395

395:                                              ; preds = %391, %392
  %396 = phi ptr [ %394, %392 ], [ %2, %391 ]
  %397 = load i8, ptr %396, align 1, !tbaa !141
  %398 = icmp eq i8 %397, 0
  br label %399

399:                                              ; preds = %395, %389
  %400 = phi i1 [ false, %389 ], [ %398, %395 ]
  %brmerge1095 = select i1 %.not1030, i1 true, i1 %400
  br i1 %brmerge1095, label %431, label %401

401:                                              ; preds = %399
  %402 = getelementptr inbounds i8, ptr %75, i64 15664
  %403 = load ptr, ptr %402, align 8, !tbaa !142
  %404 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118) %403, i16 noundef zeroext 42)
  %405 = getelementptr inbounds i8, ptr %75, i64 23968
  %406 = load ptr, ptr %402, align 8, !tbaa !142
  %407 = getelementptr inbounds i8, ptr %406, i64 20
  %408 = load float, ptr %407, align 4, !tbaa !143
  %409 = getelementptr inbounds i8, ptr %75, i64 23988
  store float %408, ptr %409, align 4, !tbaa !143
  %410 = getelementptr inbounds i8, ptr %406, i64 100
  %411 = getelementptr inbounds i8, ptr %75, i64 24068
  %412 = load <2 x float>, ptr %410, align 4, !tbaa !103
  store <2 x float> %412, ptr %411, align 4, !tbaa !103
  %413 = getelementptr inbounds i8, ptr %406, i64 108
  %414 = load float, ptr %413, align 4, !tbaa !144
  %415 = getelementptr inbounds i8, ptr %75, i64 24076
  store float %414, ptr %415, align 4, !tbaa !144
  %416 = getelementptr inbounds i8, ptr %406, i64 64
  %417 = load ptr, ptr %416, align 8, !tbaa !145
  %418 = getelementptr inbounds i8, ptr %75, i64 24032
  store ptr %417, ptr %418, align 8, !tbaa !145
  %419 = getelementptr inbounds i8, ptr %75, i64 24024
  store ptr %404, ptr %419, align 8, !tbaa !146
  %420 = getelementptr inbounds i8, ptr %404, i64 4
  %421 = load float, ptr %420, align 4, !tbaa !147
  %422 = getelementptr inbounds i8, ptr %75, i64 23984
  store float %421, ptr %422, align 8, !tbaa !149
  %423 = getelementptr inbounds i8, ptr %75, i64 24008
  %424 = call noundef zeroext i1 @_ZNK8ImVectorI11ImFontGlyphE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %423)
  br i1 %424, label %425, label %.critedge11

425:                                              ; preds = %401
  %426 = call noundef zeroext i1 @_ZNK8ImVectorIfE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %405)
  br i1 %426, label %427, label %.critedge11

427:                                              ; preds = %425
  %428 = getelementptr inbounds i8, ptr %75, i64 23992
  %429 = call noundef zeroext i1 @_ZNK8ImVectorItE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %428)
  br i1 %429, label %430, label %.critedge11

.critedge11:                                      ; preds = %425, %401, %427
  call void @__assert_fail(ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.4, i32 noundef 4332, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

430:                                              ; preds = %427
  call void @_ZN5ImGui8PushFontEP6ImFont(ptr noundef nonnull %405)
  br label %431

431:                                              ; preds = %399, %430
  %432 = load i32, ptr %179, align 4, !tbaa !108
  %433 = icmp eq i32 %432, %79
  br i1 %433, label %434, label %593

434:                                              ; preds = %431
  br i1 %356, label %436, label %435

435:                                              ; preds = %434
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4340, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

436:                                              ; preds = %434
  %437 = getelementptr inbounds i8, ptr %.0937, i64 16
  %438 = load i32, ptr %437, align 8, !tbaa !125
  %439 = getelementptr inbounds i8, ptr %.0937, i64 3718
  store i8 0, ptr %439, align 2, !tbaa !150
  %440 = getelementptr inbounds i8, ptr %.0937, i64 76
  store i32 %3, ptr %440, align 4, !tbaa !151
  %441 = getelementptr inbounds i8, ptr %.0937, i64 3720
  store i32 %spec.select, ptr %441, align 8, !tbaa !152
  %442 = getelementptr inbounds i8, ptr %75, i64 3656
  %443 = load i8, ptr %442, align 8, !tbaa !118, !range !38, !noundef !39
  %444 = xor i8 %443, 1
  %445 = getelementptr inbounds i8, ptr %75, i64 16497
  store i8 %444, ptr %445, align 1, !tbaa !153
  %446 = getelementptr inbounds i8, ptr %75, i64 3648
  %447 = load float, ptr %446, align 8, !tbaa !154
  %448 = load float, ptr %11, align 8, !tbaa !155
  %449 = fsub float %447, %448
  %450 = load float, ptr %89, align 4, !tbaa !156
  %451 = fsub float %449, %450
  %452 = getelementptr inbounds i8, ptr %.0937, i64 80
  %453 = load float, ptr %452, align 8, !tbaa !130
  %454 = fadd float %451, %453
  br i1 %67, label %455, label %461

455:                                              ; preds = %436
  %456 = getelementptr inbounds i8, ptr %75, i64 3652
  %457 = load float, ptr %456, align 4, !tbaa !157
  %458 = getelementptr inbounds i8, ptr %.2936, i64 276
  %459 = load float, ptr %458, align 4, !tbaa !158
  %460 = fsub float %457, %459
  br label %465

461:                                              ; preds = %436
  %462 = getelementptr inbounds i8, ptr %75, i64 15672
  %463 = load float, ptr %462, align 8, !tbaa !41
  %464 = fmul float %463, 5.000000e-01
  br label %465

465:                                              ; preds = %461, %455
  %466 = phi float [ %460, %455 ], [ %464, %461 ]
  %467 = trunc i8 %.3945 to i1
  br i1 %467, label %468, label %470

468:                                              ; preds = %465
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  %469 = getelementptr inbounds i8, ptr %.0937, i64 3717
  store i8 1, ptr %469, align 1, !tbaa !159
  br label %545

470:                                              ; preds = %465
  br i1 %162, label %471, label %511

471:                                              ; preds = %470
  %472 = getelementptr inbounds i8, ptr %75, i64 14442
  %473 = load i16, ptr %472, align 2, !tbaa !160
  %474 = icmp ugt i16 %473, 1
  br i1 %474, label %475, label %511

475:                                              ; preds = %471
  %476 = getelementptr inbounds i8, ptr %75, i64 3677
  %477 = load i8, ptr %476, align 1, !tbaa !161, !range !38, !noundef !39
  %478 = trunc nuw i8 %477 to i1
  br i1 %478, label %511, label %479

479:                                              ; preds = %475
  %480 = getelementptr inbounds i8, ptr %.0937, i64 84
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.0937, ptr noundef nonnull %480, float noundef %454, float noundef %466)
  %481 = load i16, ptr %472, align 2, !tbaa !160
  %482 = and i16 %481, 1
  %483 = icmp eq i16 %482, 0
  %484 = load i32, ptr %480, align 4, !tbaa !135
  br i1 %483, label %485, label %501

485:                                              ; preds = %479
  %486 = icmp eq i32 %484, 0
  br i1 %486, label %491, label %487

487:                                              ; preds = %485
  %488 = add nsw i32 %484, -1
  %489 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef nonnull %.0937, i32 noundef %488)
  %490 = icmp eq i16 %489, 10
  br label %491

491:                                              ; preds = %487, %485
  %492 = phi i1 [ true, %485 ], [ %490, %487 ]
  %493 = getelementptr inbounds i8, ptr %.0937, i64 88
  %494 = load i32, ptr %493, align 4, !tbaa !132
  %495 = getelementptr inbounds i8, ptr %.0937, i64 92
  %496 = load i32, ptr %495, align 4, !tbaa !134
  %.not1044 = icmp eq i32 %494, %496
  %brmerge1097.not = and i1 %492, %.not1044
  br i1 %brmerge1097.not, label %.thread1274, label %497

497:                                              ; preds = %491
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef 2097164)
  %.pre1253 = load i32, ptr %493, align 4, !tbaa !132
  %.pre1254 = load i32, ptr %495, align 4, !tbaa !134
  %.not1045 = icmp eq i32 %.pre1253, %.pre1254
  br i1 %.not1045, label %.thread1274, label %498

.thread1274:                                      ; preds = %491, %497
  call void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef nonnull %480)
  br label %498

498:                                              ; preds = %.thread1274, %497
  %499 = load i32, ptr %480, align 4, !tbaa !135
  %500 = call noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef nonnull %.0937, i32 noundef %499)
  store i32 %500, ptr %480, align 4, !tbaa !135
  store i32 %500, ptr %495, align 4, !tbaa !134
  call void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.0937, ptr noundef nonnull %480)
  br label %510

501:                                              ; preds = %479
  %502 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef nonnull %.0937, i32 noundef %484)
  %503 = icmp ne i16 %502, 10
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef 2097156)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef 6291461)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef 6291457)
  %brmerge1099.not = and i1 %67, %503
  br i1 %brmerge1099.not, label %504, label %508

504:                                              ; preds = %501
  %505 = getelementptr inbounds i8, ptr %.0937, i64 88
  %506 = getelementptr inbounds i8, ptr %.0937, i64 92
  call void @_ZL6ImSwapIiEvRT_S1_(ptr noundef nonnull align 4 dereferenceable(4) %505, ptr noundef nonnull align 4 dereferenceable(4) %506)
  %507 = load i32, ptr %506, align 4, !tbaa !134
  store i32 %507, ptr %480, align 4, !tbaa !135
  br label %508

508:                                              ; preds = %501, %504
  %509 = getelementptr inbounds i8, ptr %.0937, i64 3716
  store i8 0, ptr %509, align 4, !tbaa !162
  br label %510

510:                                              ; preds = %508, %498
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br label %545

511:                                              ; preds = %475, %471, %470
  %512 = getelementptr inbounds i8, ptr %75, i64 14432
  %513 = load i8, ptr %512, align 8, !tbaa !118, !range !38, !noundef !39
  %514 = trunc nuw i8 %513 to i1
  br i1 %514, label %515, label %528

515:                                              ; preds = %511
  %516 = getelementptr inbounds i8, ptr %.0937, i64 3717
  %517 = load i8, ptr %516, align 1, !tbaa !159, !range !38, !noundef !39
  %518 = trunc nuw i8 %517 to i1
  br i1 %518, label %528, label %519

519:                                              ; preds = %515
  br i1 %162, label %520, label %545

520:                                              ; preds = %519
  %521 = getelementptr inbounds i8, ptr %75, i64 3677
  %522 = load i8, ptr %521, align 1, !tbaa !161, !range !38, !noundef !39
  %523 = trunc nuw i8 %522 to i1
  %524 = getelementptr inbounds i8, ptr %.0937, i64 84
  br i1 %523, label %525, label %526

525:                                              ; preds = %520
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.0937, ptr noundef nonnull %524, float noundef %454, float noundef %466)
  br label %527

526:                                              ; preds = %520
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.0937, ptr noundef nonnull %524, float noundef %454, float noundef %466)
  br label %527

527:                                              ; preds = %526, %525
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br label %545

528:                                              ; preds = %515, %511
  %529 = trunc nuw i8 %443 to i1
  br i1 %529, label %530, label %545

530:                                              ; preds = %528
  %531 = getelementptr inbounds i8, ptr %.0937, i64 3717
  %532 = load i8, ptr %531, align 1, !tbaa !159, !range !38, !noundef !39
  %533 = trunc nuw i8 %532 to i1
  br i1 %533, label %545, label %534

534:                                              ; preds = %530
  %535 = getelementptr inbounds i8, ptr %75, i64 232
  %536 = load float, ptr %535, align 8, !tbaa !163
  %537 = fcmp une float %536, 0.000000e+00
  br i1 %537, label %542, label %538

538:                                              ; preds = %534
  %539 = getelementptr inbounds i8, ptr %75, i64 236
  %540 = load float, ptr %539, align 4, !tbaa !164
  %541 = fcmp une float %540, 0.000000e+00
  br i1 %541, label %542, label %545

542:                                              ; preds = %538, %534
  %543 = getelementptr inbounds i8, ptr %.0937, i64 84
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.0937, ptr noundef nonnull %543, float noundef %454, float noundef %466)
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  %544 = getelementptr inbounds i8, ptr %.0937, i64 3716
  store i8 1, ptr %544, align 4, !tbaa !162
  br label %545

545:                                              ; preds = %510, %528, %530, %538, %542, %519, %527, %468
  %546 = getelementptr inbounds i8, ptr %.0937, i64 3717
  %547 = load i8, ptr %546, align 1, !tbaa !159, !range !38, !noundef !39
  %548 = trunc nuw i8 %547 to i1
  br i1 %548, label %549, label %553

549:                                              ; preds = %545
  %550 = load i8, ptr %442, align 8, !tbaa !118, !range !38, !noundef !39
  %551 = trunc nuw i8 %550 to i1
  br i1 %551, label %553, label %552

552:                                              ; preds = %549
  store i8 0, ptr %546, align 1, !tbaa !159
  br label %553

553:                                              ; preds = %552, %549, %545
  %brmerge1100 = or i1 %.not1025, %171
  br i1 %brmerge1100, label %561, label %554

554:                                              ; preds = %553
  %555 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %79, i32 noundef 1)
  br i1 %555, label %556, label %561

556:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #14
  store i32 9, ptr %20, align 4, !tbaa !105
  %557 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %75, ptr noundef nonnull %20, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %557, label %558, label %560

558:                                              ; preds = %556
  %559 = load i32, ptr %20, align 4, !tbaa !105
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %559)
  br label %560

560:                                              ; preds = %558, %556
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #14
  br label %561

561:                                              ; preds = %553, %554, %560
  %562 = getelementptr inbounds i8, ptr %75, i64 3676
  %563 = load i8, ptr %562, align 4, !tbaa !136, !range !38, !noundef !39
  %564 = trunc nuw i8 %563 to i1
  br i1 %564, label %565, label %570

565:                                              ; preds = %561
  %566 = getelementptr inbounds i8, ptr %75, i64 3678
  %567 = load i8, ptr %566, align 2, !tbaa !165, !range !38, !noundef !39
  %568 = trunc nuw i8 %567 to i1
  %.not1101 = xor i1 %568, true
  %569 = select i1 %568, i1 %320, i1 false
  br i1 %569, label %571, label %575

570:                                              ; preds = %561
  br i1 %320, label %571, label %575

571:                                              ; preds = %565, %570
  %572 = getelementptr inbounds i8, ptr %75, i64 3679
  %573 = load i8, ptr %572, align 1, !tbaa !166, !range !38, !noundef !39
  %574 = trunc nuw i8 %573 to i1
  br label %575

575:                                              ; preds = %565, %570, %571
  %576 = phi i1 [ %.not1101, %565 ], [ false, %570 ], [ %574, %571 ]
  %577 = getelementptr inbounds i8, ptr %75, i64 14552
  %578 = load i32, ptr %577, align 8, !tbaa !167
  %579 = icmp sgt i32 %578, 0
  br i1 %579, label %580, label %593

580:                                              ; preds = %575
  %brmerge1104 = or i1 %171, %576
  %brmerge1105 = select i1 %brmerge1104, i1 true, i1 %194
  br i1 %brmerge1105, label %.loopexit1241, label %.lr.ph

.lr.ph:                                           ; preds = %580, %589
  %.09741242 = phi i32 [ %590, %589 ], [ 0, %580 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #14
  %581 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %577, i32 noundef %.09741242)
  %582 = load i16, ptr %581, align 2, !tbaa !160
  %583 = zext i16 %582 to i32
  store i32 %583, ptr %21, align 4, !tbaa !105
  %584 = icmp eq i16 %582, 9
  br i1 %584, label %589, label %585

585:                                              ; preds = %.lr.ph
  %586 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %75, ptr noundef nonnull %21, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %586, label %587, label %589

587:                                              ; preds = %585
  %588 = load i32, ptr %21, align 4, !tbaa !105
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %588)
  br label %589

589:                                              ; preds = %585, %587, %.lr.ph
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #14
  %590 = add nuw nsw i32 %.09741242, 1
  %591 = load i32, ptr %577, align 8, !tbaa !167
  %592 = icmp slt i32 %590, %591
  br i1 %592, label %.lr.ph, label %.loopexit1241, !llvm.loop !168

.loopexit1241:                                    ; preds = %589, %580
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %577, i32 noundef 0)
  br label %593

593:                                              ; preds = %575, %.loopexit1241, %431
  %.0973 = phi i32 [ 0, %431 ], [ %438, %.loopexit1241 ], [ %438, %575 ]
  %594 = load i32, ptr %179, align 4, !tbaa !108
  %595 = icmp eq i32 %594, %79
  br i1 %595, label %596, label %891

596:                                              ; preds = %593
  %597 = getelementptr inbounds i8, ptr %75, i64 16496
  %598 = load i8, ptr %597, align 8, !tbaa !170, !range !38, !noundef !39
  %599 = trunc nuw i8 %598 to i1
  br i1 %599, label %.thread1277, label %600

600:                                              ; preds = %596
  %601 = trunc nuw i8 %.09381202 to i1
  br i1 %601, label %.thread1277, label %602

602:                                              ; preds = %600
  br i1 %356, label %604, label %603

603:                                              ; preds = %602
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4457, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

604:                                              ; preds = %602
  %605 = load float, ptr %90, align 4, !tbaa !101
  %606 = fsub float %.sroa.11.0.copyload, %605
  %607 = getelementptr inbounds i8, ptr %75, i64 15672
  %608 = load float, ptr %607, align 8, !tbaa !41
  %609 = fdiv float %606, %608
  %610 = fptosi float %609 to i32
  %611 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %610, i32 noundef 1)
  %612 = getelementptr inbounds i8, ptr %.0937, i64 84
  %613 = getelementptr inbounds i8, ptr %.0937, i64 100
  store i32 %611, ptr %613, align 4, !tbaa !171
  %614 = getelementptr inbounds i8, ptr %75, i64 3677
  %615 = load i8, ptr %614, align 1, !tbaa !161, !range !38, !noundef !39
  %616 = trunc nuw i8 %615 to i1
  %617 = select i1 %616, i32 4194304, i32 0
  %618 = getelementptr inbounds i8, ptr %75, i64 3678
  %619 = getelementptr inbounds i8, ptr %75, i64 3676
  %.in.in = select i1 %320, ptr %618, ptr %619
  %.in = load i8, ptr %.in.in, align 2, !tbaa !118, !range !38, !noundef !39
  %620 = trunc nuw i8 %.in to i1
  br i1 %320, label %621, label %632

621:                                              ; preds = %604
  %622 = getelementptr inbounds i8, ptr %75, i64 3679
  %623 = load i8, ptr %622, align 1, !tbaa !166, !range !38, !noundef !39
  %624 = trunc nuw i8 %623 to i1
  br i1 %624, label %625, label %632

625:                                              ; preds = %621
  %626 = load i8, ptr %619, align 4, !tbaa !136, !range !38, !noundef !39
  %627 = trunc nuw i8 %626 to i1
  br i1 %627, label %632, label %628

628:                                              ; preds = %625
  %629 = load i8, ptr %618, align 2, !tbaa !165, !range !38, !noundef !39
  %630 = trunc nuw i8 %629 to i1
  %631 = xor i1 %630, true
  br label %632

632:                                              ; preds = %628, %625, %621, %604
  %633 = phi i1 [ false, %625 ], [ false, %621 ], [ false, %604 ], [ %631, %628 ]
  %634 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2617, i32 noundef %79, i32 noundef 1)
  br i1 %634, label %639, label %635

635:                                              ; preds = %632
  %636 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8714, i32 noundef %79, i32 noundef 1)
  %637 = and i1 %.not1030, %636
  %638 = xor i1 %637, true
  %brmerge1108 = or i1 %171, %638
  %.not1114 = xor i1 %67, true
  %brmerge1115 = or i1 %brmerge1108, %.not1114
  %not.brmerge1108 = xor i1 %brmerge1108, true
  br i1 %brmerge1115, label %642, label %640

639:                                              ; preds = %632
  %.not1030.not1109 = xor i1 %.not1030, true
  %brmerge1110 = or i1 %171, %.not1030.not1109
  %.not1111 = xor i1 %67, true
  %brmerge1112 = or i1 %brmerge1110, %.not1111
  %not.brmerge1110 = xor i1 %brmerge1110, true
  br i1 %brmerge1112, label %642, label %640

640:                                              ; preds = %635, %639
  %641 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br label %642

642:                                              ; preds = %635, %639, %640
  %643 = phi i1 [ %not.brmerge1110, %639 ], [ %not.brmerge1108, %635 ], [ %641, %640 ]
  %644 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2596, i32 noundef %79, i32 noundef 0)
  br i1 %644, label %647, label %645

645:                                              ; preds = %642
  %646 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 4617, i32 noundef %79, i32 noundef 0)
  %brmerge1119.demorgan = and i1 %.not1030, %646
  %brmerge1121.not = and i1 %67, %brmerge1119.demorgan
  br i1 %brmerge1121.not, label %649, label %651

647:                                              ; preds = %642
  %648 = and i32 %5, 67141632
  %brmerge1125.not = icmp eq i32 %648, 67108864
  br i1 %brmerge1125.not, label %649, label %651

649:                                              ; preds = %647, %645
  %650 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br label %651

651:                                              ; preds = %647, %645, %649
  %652 = phi i1 [ %.not1030, %647 ], [ %brmerge1119.demorgan, %645 ], [ %650, %649 ]
  %653 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2615, i32 noundef %79, i32 noundef 1)
  br i1 %653, label %656, label %654

654:                                              ; preds = %651
  %655 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 8713, i32 noundef %79, i32 noundef 1)
  br i1 %655, label %656, label %._crit_edge1266

._crit_edge1266:                                  ; preds = %654
  %.pre1267 = xor i1 %171, true
  br label %658

656:                                              ; preds = %654, %651
  %657 = xor i1 %171, true
  br label %658

658:                                              ; preds = %._crit_edge1266, %656
  %not..pre-phi = phi i1 [ %.pre1267, %._crit_edge1266 ], [ %657, %656 ]
  %659 = phi i1 [ false, %._crit_edge1266 ], [ %657, %656 ]
  %660 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2619, i32 noundef %79, i32 noundef 1)
  %spec.select1127 = and i1 %174, %not..pre-phi
  %spec.select1190 = select i1 %660, i1 %spec.select1127, i1 false
  %661 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2618, i32 noundef %79, i32 noundef 1)
  br i1 %661, label %665, label %662

662:                                              ; preds = %658
  br i1 %320, label %663, label %666

663:                                              ; preds = %662
  %664 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 10811, i32 noundef %79, i32 noundef 1)
  br i1 %664, label %665, label %666

665:                                              ; preds = %663, %658
  br label %666

666:                                              ; preds = %665, %663, %662
  %667 = phi i1 [ false, %663 ], [ false, %662 ], [ %spec.select1127, %665 ]
  %668 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 2594, i32 noundef %79, i32 noundef 0)
  %669 = load i32, ptr %76, align 8, !tbaa !172
  %670 = and i32 %669, 2
  %.not1047 = icmp eq i32 %670, 0
  br i1 %.not1047, label %676, label %671

671:                                              ; preds = %666
  %672 = getelementptr inbounds i8, ptr %75, i64 12
  %673 = load i32, ptr %672, align 4, !tbaa !173
  %674 = and i32 %673, 1
  %675 = icmp ne i32 %674, 0
  br label %676

676:                                              ; preds = %671, %666
  %677 = phi i1 [ false, %666 ], [ %675, %671 ]
  %678 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 525, i1 noundef zeroext true)
  br i1 %678, label %681, label %679

679:                                              ; preds = %676
  %680 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 627, i1 noundef zeroext true)
  br label %681

681:                                              ; preds = %679, %676
  %682 = phi i1 [ true, %676 ], [ %680, %679 ]
  br i1 %677, label %683, label %.sink.split

683:                                              ; preds = %681
  %684 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 636, i1 noundef zeroext false)
  br i1 %684, label %687, label %685

685:                                              ; preds = %683
  %686 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 635, i1 noundef zeroext false)
  br label %687

687:                                              ; preds = %683, %685
  %688 = phi i1 [ true, %683 ], [ %686, %685 ]
  %689 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 526, i32 noundef %79, i32 noundef 1)
  br i1 %689, label %691, label %.sink.split

.sink.split:                                      ; preds = %687, %681
  %.sink = phi i32 [ 526, %681 ], [ 634, %687 ]
  %.ph1296 = phi i1 [ false, %681 ], [ %688, %687 ]
  %690 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef %.sink, i32 noundef %79, i32 noundef 1)
  br label %691

691:                                              ; preds = %.sink.split, %687
  %692 = phi i1 [ %688, %687 ], [ %.ph1296, %.sink.split ]
  %693 = phi i1 [ true, %687 ], [ %690, %.sink.split ]
  %694 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %694, label %695, label %698

695:                                              ; preds = %691
  %696 = select i1 %620, i32 2097164, i32 2097152
  %spec.select1132 = select i1 %633, i32 2097156, i32 %696
  %697 = or disjoint i32 %spec.select1132, %617
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %697)
  br label %.thread1211

698:                                              ; preds = %691
  %699 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %699, label %700, label %703

700:                                              ; preds = %698
  %701 = select i1 %620, i32 2097165, i32 2097153
  %spec.select1133 = select i1 %633, i32 2097157, i32 %701
  %702 = or disjoint i32 %spec.select1133, %617
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %702)
  br label %.thread1211

703:                                              ; preds = %698
  %704 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  %.not1135 = xor i1 %67, true
  %brmerge1136.not = and i1 %67, %704
  br i1 %brmerge1136.not, label %705, label %717

705:                                              ; preds = %703
  %706 = load i8, ptr %619, align 4, !tbaa !136, !range !38, !noundef !39
  %707 = trunc nuw i8 %706 to i1
  br i1 %707, label %708, label %714

708:                                              ; preds = %705
  %709 = getelementptr inbounds i8, ptr %.2936, i64 144
  %710 = load float, ptr %709, align 4, !tbaa !120
  %711 = load float, ptr %607, align 8, !tbaa !41
  %712 = fsub float %710, %711
  %713 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %712, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2936, float noundef %713)
  br label %.thread1211

714:                                              ; preds = %705
  %715 = select i1 %633, i32 2097158, i32 2097154
  %716 = or disjoint i32 %715, %617
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %716)
  br label %.thread1211

717:                                              ; preds = %703
  %718 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  %brmerge1139.not = and i1 %67, %718
  br i1 %brmerge1139.not, label %719, label %732

719:                                              ; preds = %717
  %720 = load i8, ptr %619, align 4, !tbaa !136, !range !38, !noundef !39
  %721 = trunc nuw i8 %720 to i1
  br i1 %721, label %722, label %729

722:                                              ; preds = %719
  %723 = getelementptr inbounds i8, ptr %.2936, i64 144
  %724 = load float, ptr %723, align 4, !tbaa !120
  %725 = load float, ptr %607, align 8, !tbaa !41
  %726 = fadd float %724, %725
  %727 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %728 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %726, float noundef %727)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2936, float noundef %728)
  br label %.thread1211

729:                                              ; preds = %719
  %730 = select i1 %633, i32 2097159, i32 2097155
  %731 = or disjoint i32 %730, %617
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %731)
  br label %.thread1211

732:                                              ; preds = %717
  %733 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  %brmerge1142.not = and i1 %67, %733
  br i1 %brmerge1142.not, label %734, label %740

734:                                              ; preds = %732
  %735 = or disjoint i32 %617, 2097166
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %735)
  %736 = sitofp i32 %611 to float
  %737 = load float, ptr %607, align 8, !tbaa !41
  %738 = fneg float %736
  %739 = call float @llvm.fmuladd.f32(float %738, float %737, float %221)
  br label %.thread1211

740:                                              ; preds = %732
  %741 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  %brmerge1145.not = and i1 %67, %741
  br i1 %brmerge1145.not, label %742, label %747

742:                                              ; preds = %740
  %743 = or disjoint i32 %617, 2097167
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %743)
  %744 = sitofp i32 %611 to float
  %745 = load float, ptr %607, align 8, !tbaa !41
  %746 = call float @llvm.fmuladd.f32(float %744, float %745, float %221)
  br label %.thread1211

747:                                              ; preds = %740
  %748 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %748, label %749, label %753

749:                                              ; preds = %747
  %750 = load i8, ptr %619, align 4, !tbaa !136, !range !38, !noundef !39
  %751 = trunc nuw i8 %750 to i1
  %.v1055 = select i1 %751, i32 2097158, i32 2097156
  %752 = or disjoint i32 %.v1055, %617
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %752)
  br label %.thread1211

753:                                              ; preds = %747
  %754 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %754, label %755, label %759

755:                                              ; preds = %753
  %756 = load i8, ptr %619, align 4, !tbaa !136, !range !38, !noundef !39
  %757 = trunc nuw i8 %756 to i1
  %.v = select i1 %757, i32 2097159, i32 2097157
  %758 = or disjoint i32 %.v, %617
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %758)
  br label %.thread1211

759:                                              ; preds = %753
  %760 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  %.not1146 = xor i1 %760, true
  %brmerge1147 = or i1 %171, %.not1146
  %brmerge1148 = or i1 %643, %brmerge1147
  br i1 %brmerge1148, label %766, label %761

761:                                              ; preds = %759
  %762 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  %.not1149 = xor i1 %620, true
  %brmerge1150 = select i1 %762, i1 true, i1 %.not1149
  br i1 %brmerge1150, label %764, label %763

763:                                              ; preds = %761
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef 6291469)
  br label %764

764:                                              ; preds = %761, %763
  %765 = or disjoint i32 %617, 2097160
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %765)
  br label %.thread1211

766:                                              ; preds = %759
  %767 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  %.not1151 = xor i1 %767, true
  %brmerge1152 = or i1 %171, %.not1151
  br i1 %brmerge1152, label %784, label %768

768:                                              ; preds = %766
  %769 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br i1 %769, label %782, label %770

770:                                              ; preds = %768
  br i1 %620, label %.sink.split1298, label %771

771:                                              ; preds = %770
  br i1 %320, label %772, label %782

772:                                              ; preds = %771
  %773 = getelementptr inbounds i8, ptr %75, i64 3679
  %774 = load i8, ptr %773, align 1, !tbaa !166, !range !38, !noundef !39
  %775 = trunc nuw i8 %774 to i1
  br i1 %775, label %776, label %782

776:                                              ; preds = %772
  %777 = load i8, ptr %618, align 2, !tbaa !165, !range !38, !noundef !39
  %778 = trunc nuw i8 %777 to i1
  br i1 %778, label %782, label %779

779:                                              ; preds = %776
  %780 = load i8, ptr %619, align 4, !tbaa !136, !range !38, !noundef !39
  %781 = trunc nuw i8 %780 to i1
  br i1 %781, label %782, label %.sink.split1298

.sink.split1298:                                  ; preds = %779, %770
  %.sink1299 = phi i32 [ 6291468, %770 ], [ 6291460, %779 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %.sink1299)
  br label %782

782:                                              ; preds = %.sink.split1298, %779, %776, %772, %771, %768
  %783 = or disjoint i32 %617, 2097161
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %783)
  br label %.thread1211

784:                                              ; preds = %766
  %brmerge1153 = or i1 %682, %692
  br i1 %brmerge1153, label %785, label %802

785:                                              ; preds = %784
  %brmerge1155 = or i1 %692, %.not1135
  br i1 %brmerge1155, label %791, label %786

786:                                              ; preds = %785
  %787 = and i32 %5, 2048
  %.not1054 = icmp eq i32 %787, 0
  %788 = load i8, ptr %619, align 4, !tbaa !136, !range !38, !noundef !39
  %789 = trunc nuw i8 %788 to i1
  br i1 %.not1054, label %.critedge1157, label %790

790:                                              ; preds = %786
  br i1 %789, label %796, label %.thread1211

.critedge1157:                                    ; preds = %786
  br i1 %789, label %.thread1211, label %796

791:                                              ; preds = %785
  %792 = getelementptr inbounds i8, ptr %75, i64 92
  %793 = load i8, ptr %792, align 4, !tbaa !174, !range !38, !noundef !39
  %794 = trunc nuw i8 %793 to i1
  %.not1158 = xor i1 %794, true
  %brmerge1159 = or i1 %67, %.not1158
  br i1 %brmerge1159, label %.thread1211, label %795

795:                                              ; preds = %791
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br label %.thread1211

796:                                              ; preds = %790, %.critedge1157
  br i1 %171, label %.thread1211, label %797

797:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #14
  store i32 10, ptr %22, align 4, !tbaa !105
  %798 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef nonnull %75, ptr noundef nonnull %22, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i32 noundef 2)
  br i1 %798, label %799, label %801

799:                                              ; preds = %797
  %800 = load i32, ptr %22, align 4, !tbaa !105
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %800)
  br label %801

801:                                              ; preds = %799, %797
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #14
  br label %.thread1211

802:                                              ; preds = %784
  br i1 %693, label %803, label %807

803:                                              ; preds = %802
  %804 = and i32 %5, 1048576
  %.not1052 = icmp eq i32 %804, 0
  br i1 %.not1052, label %.thread1211, label %805

805:                                              ; preds = %803
  %806 = load i8, ptr %2, align 1, !tbaa !141
  %.not1053 = icmp ne i8 %806, 0
  %..0952.in = select i1 %.not1053, i1 %.0952.in, i1 false
  %.1161 = select i1 %.not1053, i8 %355, i8 0
  %..0938 = select i1 %.not1053, i8 %.09381202, i8 1
  br label %.thread1211

807:                                              ; preds = %802
  %brmerge1162 = or i1 %spec.select1190, %667
  br i1 %brmerge1162, label %808, label %809

808:                                              ; preds = %807
  %.mux1163 = select i1 %spec.select1190, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0937, i32 noundef %.mux1163)
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br label %.thread1211

809:                                              ; preds = %807
  br i1 %668, label %810, label %812

810:                                              ; preds = %809
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  %811 = getelementptr inbounds i8, ptr %.0937, i64 3716
  store i8 1, ptr %811, align 4, !tbaa !162
  br label %.thread1211

812:                                              ; preds = %809
  %brmerge1164 = or i1 %643, %652
  br i1 %brmerge1164, label %813, label %859

813:                                              ; preds = %812
  %814 = getelementptr inbounds i8, ptr %75, i64 176
  %815 = load ptr, ptr %814, align 8, !tbaa !175
  %.not1051 = icmp eq ptr %815, null
  br i1 %.not1051, label %852, label %816

816:                                              ; preds = %813
  %817 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br i1 %817, label %818, label %824

818:                                              ; preds = %816
  %819 = getelementptr inbounds i8, ptr %.0937, i64 88
  %820 = load i32, ptr %819, align 4, !tbaa !132
  %821 = getelementptr inbounds i8, ptr %.0937, i64 92
  %822 = load i32, ptr %821, align 4, !tbaa !134
  %823 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %820, i32 noundef %822)
  br label %824

824:                                              ; preds = %816, %818
  %825 = phi i32 [ %823, %818 ], [ 0, %816 ]
  %826 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br i1 %826, label %827, label %833

827:                                              ; preds = %824
  %828 = getelementptr inbounds i8, ptr %.0937, i64 88
  %829 = load i32, ptr %828, align 4, !tbaa !132
  %830 = getelementptr inbounds i8, ptr %.0937, i64 92
  %831 = load i32, ptr %830, align 4, !tbaa !134
  %832 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %829, i32 noundef %831)
  br label %836

833:                                              ; preds = %824
  %834 = getelementptr inbounds i8, ptr %.0937, i64 12
  %835 = load i32, ptr %834, align 4, !tbaa !129
  br label %836

836:                                              ; preds = %833, %827
  %837 = phi i32 [ %832, %827 ], [ %835, %833 ]
  %838 = getelementptr inbounds i8, ptr %.0937, i64 32
  %839 = load ptr, ptr %838, align 8, !tbaa !128
  %840 = sext i32 %825 to i64
  %841 = getelementptr inbounds i16, ptr %839, i64 %840
  %842 = sext i32 %837 to i64
  %843 = getelementptr inbounds i16, ptr %839, i64 %842
  %844 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %841, ptr noundef %843)
  %845 = add nsw i32 %844, 1
  %846 = sext i32 %845 to i64
  %847 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %846)
  %848 = load ptr, ptr %838, align 8, !tbaa !128
  %849 = getelementptr inbounds i16, ptr %848, i64 %840
  %850 = getelementptr inbounds i16, ptr %848, i64 %842
  %851 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %847, i32 noundef %845, ptr noundef %849, ptr noundef %850)
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %847)
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %847)
  br label %852

852:                                              ; preds = %836, %813
  br i1 %643, label %853, label %.thread1211

853:                                              ; preds = %852
  %854 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br i1 %854, label %856, label %855

855:                                              ; preds = %853
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br label %856

856:                                              ; preds = %855, %853
  %857 = getelementptr inbounds i8, ptr %.0937, i64 3716
  store i8 1, ptr %857, align 4, !tbaa !162
  %858 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.0937, ptr noundef nonnull %612)
  br label %.thread1211

859:                                              ; preds = %812
  br i1 %659, label %860, label %.thread1211

860:                                              ; preds = %859
  %861 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  %.not1048 = icmp eq ptr %861, null
  br i1 %.not1048, label %.thread1211, label %862

862:                                              ; preds = %860
  %863 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %861) #15
  %864 = shl i64 %863, 32
  %sext1049 = add i64 %864, 4294967296
  %865 = ashr exact i64 %sext1049, 31
  %866 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %865)
  %867 = load i8, ptr %861, align 1, !tbaa !141
  %.not10501243 = icmp eq i8 %867, 0
  br i1 %.not10501243, label %._crit_edge.thread, label %.lr.ph1246

._crit_edge.thread:                               ; preds = %862
  store i16 0, ptr %866, align 2, !tbaa !160
  br label %886

._crit_edge:                                      ; preds = %881
  %868 = sext i32 %.1978 to i64
  %869 = getelementptr inbounds i16, ptr %866, i64 %868
  store i16 0, ptr %869, align 2, !tbaa !160
  %870 = icmp sgt i32 %.1978, 0
  br i1 %870, label %883, label %886

.lr.ph1246:                                       ; preds = %862, %881
  %.09771245 = phi i32 [ %.1978, %881 ], [ 0, %862 ]
  %.09791244 = phi ptr [ %873, %881 ], [ %861, %862 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #14
  %871 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef nonnull %23, ptr noundef nonnull %.09791244, ptr noundef null)
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds i8, ptr %.09791244, i64 %872
  %874 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPv16ImGuiInputSource(ptr noundef %75, ptr noundef nonnull %23, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i32 noundef 4)
  br i1 %874, label %875, label %881, !llvm.loop !176

875:                                              ; preds = %.lr.ph1246
  %876 = load i32, ptr %23, align 4, !tbaa !105
  %877 = trunc i32 %876 to i16
  %878 = add nsw i32 %.09771245, 1
  %879 = sext i32 %.09771245 to i64
  %880 = getelementptr inbounds i16, ptr %866, i64 %879
  store i16 %877, ptr %880, align 2, !tbaa !160
  br label %881

881:                                              ; preds = %.lr.ph1246, %875
  %.1978 = phi i32 [ %878, %875 ], [ %.09771245, %.lr.ph1246 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #14
  %882 = load i8, ptr %873, align 1, !tbaa !141
  %.not1050 = icmp eq i8 %882, 0
  br i1 %.not1050, label %._crit_edge, label %.lr.ph1246

883:                                              ; preds = %._crit_edge
  %884 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %.0937, ptr noundef nonnull %612, ptr noundef nonnull %866, i32 noundef %.1978)
  %885 = getelementptr inbounds i8, ptr %.0937, i64 3716
  store i8 1, ptr %885, align 4, !tbaa !162
  br label %886

886:                                              ; preds = %._crit_edge.thread, %883, %._crit_edge
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %866)
  br label %.thread1211

.thread1211:                                      ; preds = %790, %.critedge1157, %860, %886, %803, %805, %795, %801, %796, %791, %700, %729, %722, %742, %755, %782, %810, %859, %852, %856, %808, %764, %749, %734, %708, %714, %695
  %.0975 = phi i1 [ false, %695 ], [ false, %700 ], [ false, %708 ], [ false, %714 ], [ false, %722 ], [ false, %729 ], [ false, %734 ], [ false, %742 ], [ false, %749 ], [ false, %755 ], [ false, %808 ], [ false, %810 ], [ false, %856 ], [ false, %852 ], [ false, %859 ], [ false, %782 ], [ false, %764 ], [ false, %791 ], [ false, %796 ], [ false, %801 ], [ false, %795 ], [ %.not1053, %805 ], [ true, %803 ], [ false, %886 ], [ false, %860 ], [ false, %.critedge1157 ], [ false, %790 ]
  %.1971 = phi i8 [ 0, %695 ], [ 0, %700 ], [ 0, %708 ], [ 0, %714 ], [ 0, %722 ], [ 0, %729 ], [ 0, %734 ], [ 0, %742 ], [ 0, %749 ], [ 0, %755 ], [ 0, %808 ], [ 0, %810 ], [ 0, %856 ], [ 0, %852 ], [ 0, %859 ], [ 0, %782 ], [ 0, %764 ], [ 1, %791 ], [ 0, %796 ], [ 0, %801 ], [ 1, %795 ], [ 0, %805 ], [ 0, %803 ], [ 0, %886 ], [ 0, %860 ], [ 1, %.critedge1157 ], [ 1, %790 ]
  %.1953 = phi i1 [ %.0952.in, %695 ], [ %.0952.in, %700 ], [ %.0952.in, %708 ], [ %.0952.in, %714 ], [ %.0952.in, %722 ], [ %.0952.in, %729 ], [ %.0952.in, %734 ], [ %.0952.in, %742 ], [ %.0952.in, %749 ], [ %.0952.in, %755 ], [ %.0952.in, %808 ], [ %.0952.in, %810 ], [ %.0952.in, %856 ], [ %.0952.in, %852 ], [ %.0952.in, %859 ], [ %.0952.in, %782 ], [ %.0952.in, %764 ], [ %.0952.in, %791 ], [ %.0952.in, %796 ], [ %.0952.in, %801 ], [ %.0952.in, %795 ], [ %..0952.in, %805 ], [ false, %803 ], [ %.0952.in, %886 ], [ %.0952.in, %860 ], [ %.0952.in, %.critedge1157 ], [ %.0952.in, %790 ]
  %.0950 = phi i8 [ %355, %695 ], [ %355, %700 ], [ %355, %708 ], [ %355, %714 ], [ %355, %722 ], [ %355, %729 ], [ %355, %734 ], [ %355, %742 ], [ %355, %749 ], [ %355, %755 ], [ %355, %808 ], [ %355, %810 ], [ %355, %856 ], [ %355, %852 ], [ %355, %859 ], [ %355, %782 ], [ %355, %764 ], [ %355, %791 ], [ %355, %796 ], [ %355, %801 ], [ %355, %795 ], [ %.1161, %805 ], [ 0, %803 ], [ %355, %886 ], [ %355, %860 ], [ %355, %.critedge1157 ], [ %355, %790 ]
  %.0946 = phi float [ %221, %695 ], [ %221, %700 ], [ %221, %708 ], [ %221, %714 ], [ %221, %722 ], [ %221, %729 ], [ %739, %734 ], [ %746, %742 ], [ %221, %749 ], [ %221, %755 ], [ %221, %808 ], [ %221, %810 ], [ %221, %856 ], [ %221, %852 ], [ %221, %859 ], [ %221, %782 ], [ %221, %764 ], [ %221, %791 ], [ %221, %796 ], [ %221, %801 ], [ %221, %795 ], [ %221, %805 ], [ %221, %803 ], [ %221, %886 ], [ %221, %860 ], [ %221, %.critedge1157 ], [ %221, %790 ]
  %.2940 = phi i8 [ %.09381202, %695 ], [ %.09381202, %700 ], [ %.09381202, %708 ], [ %.09381202, %714 ], [ %.09381202, %722 ], [ %.09381202, %729 ], [ %.09381202, %734 ], [ %.09381202, %742 ], [ %.09381202, %749 ], [ %.09381202, %755 ], [ %.09381202, %808 ], [ %.09381202, %810 ], [ %.09381202, %856 ], [ %.09381202, %852 ], [ %.09381202, %859 ], [ %.09381202, %782 ], [ %.09381202, %764 ], [ 1, %791 ], [ %.09381202, %796 ], [ %.09381202, %801 ], [ %.09381202, %795 ], [ %..0938, %805 ], [ 1, %803 ], [ %.09381202, %886 ], [ %.09381202, %860 ], [ 1, %.critedge1157 ], [ 1, %790 ]
  %887 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  %888 = select i1 %887, i8 %.0950, i8 0
  %889 = zext i1 %.1953 to i8
  %890 = or i8 %888, %889
  %.pre1255 = load i32, ptr %179, align 4, !tbaa !108
  br label %891

891:                                              ; preds = %.thread1211, %593
  %892 = phi i32 [ %.pre1255, %.thread1211 ], [ %594, %593 ]
  %.1976 = phi i1 [ %.0975, %.thread1211 ], [ false, %593 ]
  %.2972 = phi i8 [ %.1971, %.thread1211 ], [ 0, %593 ]
  %.2954 = phi i8 [ %890, %.thread1211 ], [ %.0952, %593 ]
  %.1951 = phi i8 [ %.0950, %.thread1211 ], [ %355, %593 ]
  %.1947 = phi float [ %.0946, %.thread1211 ], [ %221, %593 ]
  %.3941 = phi i8 [ %.2940, %.thread1211 ], [ %.09381202, %593 ]
  %893 = icmp eq i32 %892, %79
  br i1 %893, label %.thread1277, label %1098

.thread1277:                                      ; preds = %600, %596, %891
  %.39411294 = phi i8 [ %.3941, %891 ], [ %.09381202, %596 ], [ %.09381202, %600 ]
  %.19471292 = phi float [ %.1947, %891 ], [ %221, %596 ], [ %221, %600 ]
  %.19511290 = phi i8 [ %.1951, %891 ], [ %355, %596 ], [ %355, %600 ]
  %.29541288 = phi i8 [ %.2954, %891 ], [ %.0952, %596 ], [ %.0952, %600 ]
  %.29721285 = phi i8 [ %.2972, %891 ], [ 0, %596 ], [ 0, %600 ]
  %.19761284 = phi i1 [ %.1976, %891 ], [ false, %596 ], [ false, %600 ]
  br i1 %356, label %895, label %894

894:                                              ; preds = %.thread1277
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4617, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

895:                                              ; preds = %.thread1277
  %.1976.not = xor i1 %.19761284, true
  %brmerge1165 = or i1 %171, %.1976.not
  br i1 %brmerge1165, label %933, label %896

896:                                              ; preds = %895
  %897 = and i32 %5, 1048576
  %.not1056 = icmp eq i32 %897, 0
  br i1 %.not1056, label %903, label %898

898:                                              ; preds = %896
  %899 = load i8, ptr %2, align 1, !tbaa !141
  %.not1058 = icmp eq i8 %899, 0
  br i1 %.not1058, label %900, label %901

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

901:                                              ; preds = %898
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %24) #14
  %902 = getelementptr inbounds i8, ptr %.0937, i64 84
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.0937, ptr noundef nonnull %902, ptr noundef nonnull %24, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %24) #14
  br label %.thread1215

903:                                              ; preds = %896
  %904 = getelementptr inbounds i8, ptr %.0937, i64 64
  %905 = load ptr, ptr %904, align 8, !tbaa !124
  %906 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) %905) #15
  %.not1057 = icmp eq i32 %906, 0
  br i1 %.not1057, label %.thread1215, label %907

907:                                              ; preds = %903
  %908 = getelementptr inbounds i8, ptr %.0937, i64 56
  %909 = load i32, ptr %908, align 8, !tbaa !177
  %910 = add nsw i32 %909, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25)
  %911 = icmp sgt i32 %909, 1
  br i1 %911, label %912, label %925

912:                                              ; preds = %907
  %913 = zext nneg i32 %910 to i64
  %914 = getelementptr inbounds i8, ptr %905, i64 %913
  %915 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %905, ptr noundef %914)
          to label %916 unwind label %923

916:                                              ; preds = %912
  %917 = add nsw i32 %915, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %25, i32 noundef %917)
          to label %918 unwind label %923

918:                                              ; preds = %916
  %919 = getelementptr inbounds i8, ptr %25, i64 8
  %920 = load ptr, ptr %919, align 8, !tbaa !178
  %921 = load i32, ptr %25, align 8, !tbaa !179
  %922 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %920, i32 noundef %921, ptr noundef %905, ptr noundef %914, ptr noundef null)
          to label %925 unwind label %923

923:                                              ; preds = %925, %918, %916, %912
  %924 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8ImVectorItED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 76, ptr nonnull %15) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  resume { ptr, i32 } %924

925:                                              ; preds = %918, %907
  %926 = getelementptr inbounds i8, ptr %.0937, i64 84
  %927 = getelementptr inbounds i8, ptr %25, i64 8
  %928 = load ptr, ptr %927, align 8, !tbaa !178
  %929 = load i32, ptr %25, align 8
  %930 = add nsw i32 %929, -1
  %931 = select i1 %911, i32 %930, i32 0
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.0937, ptr noundef nonnull %926, ptr noundef %928, i32 noundef %931)
          to label %932 unwind label %923

932:                                              ; preds = %925
  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 %.thread1215

933:                                              ; preds = %895
  br i1 %171, label %946, label %.thread1215

.thread1215:                                      ; preds = %903, %932, %901, %933
  %.09641223 = phi i1 [ false, %933 ], [ false, %903 ], [ true, %932 ], [ true, %901 ]
  %.09801221 = phi ptr [ null, %933 ], [ null, %903 ], [ %905, %932 ], [ @.str, %901 ]
  %.09851219 = phi i32 [ 0, %933 ], [ 0, %903 ], [ %910, %932 ], [ 0, %901 ]
  %934 = getelementptr inbounds i8, ptr %.0937, i64 72
  store i8 1, ptr %934, align 8, !tbaa !126
  %935 = getelementptr inbounds i8, ptr %.0937, i64 40
  %936 = getelementptr inbounds i8, ptr %.0937, i64 24
  %937 = load i32, ptr %936, align 8, !tbaa !140
  %938 = shl nsw i32 %937, 2
  %939 = or disjoint i32 %938, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %935, i32 noundef %939)
  %940 = getelementptr inbounds i8, ptr %.0937, i64 48
  %941 = load ptr, ptr %940, align 8, !tbaa !127
  %942 = load i32, ptr %935, align 8, !tbaa !180
  %943 = getelementptr inbounds i8, ptr %.0937, i64 32
  %944 = load ptr, ptr %943, align 8, !tbaa !128
  %945 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %941, i32 noundef %942, ptr noundef %944, ptr noundef null)
  br label %946

946:                                              ; preds = %.thread1215, %933
  %.09641224 = phi i1 [ %.09641223, %.thread1215 ], [ false, %933 ]
  %.09801222 = phi ptr [ %.09801221, %.thread1215 ], [ null, %933 ]
  %.09851220 = phi i32 [ %.09851219, %.thread1215 ], [ 0, %933 ]
  br i1 %.19761284, label %947, label %.critedge1167

947:                                              ; preds = %946
  %948 = trunc nuw i8 %.29721285 to i1
  %949 = and i32 %5, 32
  %950 = icmp ne i32 %949, 0
  %951 = and i1 %950, %948
  br i1 %951, label %.critedge1167, label %1098

.critedge1167:                                    ; preds = %946, %947
  %952 = and i32 %5, 524736
  %.not1059 = icmp eq i32 %952, 0
  br i1 %.not1059, label %1090, label %953

953:                                              ; preds = %.critedge1167
  br i1 %176, label %955, label %954

954:                                              ; preds = %953
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.4, i32 noundef 4672, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

955:                                              ; preds = %953
  %956 = and i32 %5, 64
  %.not1060 = icmp eq i32 %956, 0
  br i1 %.not1060, label %959, label %957

957:                                              ; preds = %955
  %958 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiji(i32 noundef 512, i32 noundef %79, i32 noundef 0)
  br i1 %958, label %.thread1226, label %959

959:                                              ; preds = %957, %955
  %960 = and i32 %5, 128
  %.not1061 = icmp eq i32 %960, 0
  br i1 %.not1061, label %.critedge1169, label %961

961:                                              ; preds = %959
  %962 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %962, label %.thread1226, label %963

963:                                              ; preds = %961
  %964 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %964, label %.thread1226, label %.critedge1169

.critedge1169:                                    ; preds = %959, %963
  %965 = and i32 %5, 524288
  %.not1062 = icmp eq i32 %965, 0
  br i1 %.not1062, label %970, label %966

966:                                              ; preds = %.critedge1169
  %967 = getelementptr inbounds i8, ptr %.0937, i64 3718
  %968 = load i8, ptr %967, align 2, !tbaa !150, !range !38, !noundef !39
  %969 = trunc nuw i8 %968 to i1
  br i1 %969, label %.thread1226, label %970

970:                                              ; preds = %.critedge1169, %966
  %971 = and i32 %5, 256
  %.not1063 = icmp eq i32 %971, 0
  br i1 %.not1063, label %1090, label %.thread1226

.thread1226:                                      ; preds = %966, %963, %961, %957, %970
  %.09901231 = phi i32 [ 0, %970 ], [ 0, %966 ], [ 516, %963 ], [ 515, %961 ], [ 512, %957 ]
  %.09911230 = phi i32 [ 256, %970 ], [ 524288, %966 ], [ 128, %963 ], [ 128, %961 ], [ 64, %957 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %26) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %26)
  store ptr %75, ptr %26, align 8, !tbaa !181
  %972 = getelementptr inbounds i8, ptr %26, i64 8
  store i32 %.09911230, ptr %972, align 8, !tbaa !183
  %973 = getelementptr inbounds i8, ptr %26, i64 12
  store i32 %spec.select, ptr %973, align 4, !tbaa !184
  %974 = getelementptr inbounds i8, ptr %26, i64 16
  store ptr %7, ptr %974, align 8, !tbaa !185
  br i1 %171, label %978, label %975

975:                                              ; preds = %.thread1226
  %976 = getelementptr inbounds i8, ptr %.0937, i64 48
  %977 = load ptr, ptr %976, align 8, !tbaa !127
  br label %978

978:                                              ; preds = %.thread1226, %975
  %979 = phi ptr [ %977, %975 ], [ %2, %.thread1226 ]
  %980 = getelementptr inbounds i8, ptr %26, i64 28
  store i32 %.09901231, ptr %980, align 4, !tbaa !186
  %981 = getelementptr inbounds i8, ptr %26, i64 32
  store ptr %979, ptr %981, align 8, !tbaa !187
  %982 = getelementptr inbounds i8, ptr %.0937, i64 16
  %983 = load i32, ptr %982, align 8, !tbaa !125
  %984 = getelementptr inbounds i8, ptr %26, i64 40
  store i32 %983, ptr %984, align 8, !tbaa !188
  %985 = getelementptr inbounds i8, ptr %.0937, i64 76
  %986 = load i32, ptr %985, align 4, !tbaa !151
  %987 = getelementptr inbounds i8, ptr %26, i64 44
  store i32 %986, ptr %987, align 4, !tbaa !189
  %988 = getelementptr inbounds i8, ptr %26, i64 48
  store i8 0, ptr %988, align 8, !tbaa !190
  %989 = getelementptr inbounds i8, ptr %.0937, i64 24
  %990 = getelementptr inbounds i8, ptr %.0937, i64 32
  %991 = load ptr, ptr %990, align 8, !tbaa !128
  %992 = getelementptr inbounds i8, ptr %.0937, i64 84
  %993 = load i32, ptr %992, align 4, !tbaa !135
  %994 = sext i32 %993 to i64
  %995 = getelementptr inbounds i16, ptr %991, i64 %994
  %996 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %991, ptr noundef %995)
  %997 = getelementptr inbounds i8, ptr %26, i64 52
  store i32 %996, ptr %997, align 4, !tbaa !191
  %998 = getelementptr inbounds i8, ptr %.0937, i64 88
  %999 = load i32, ptr %998, align 4, !tbaa !132
  %1000 = sext i32 %999 to i64
  %1001 = getelementptr inbounds i16, ptr %991, i64 %1000
  %1002 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %991, ptr noundef %1001)
  %1003 = getelementptr inbounds i8, ptr %26, i64 56
  store i32 %1002, ptr %1003, align 8, !tbaa !192
  %1004 = getelementptr inbounds i8, ptr %.0937, i64 92
  %1005 = load i32, ptr %1004, align 4, !tbaa !134
  %1006 = sext i32 %1005 to i64
  %1007 = getelementptr inbounds i16, ptr %991, i64 %1006
  %1008 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %991, ptr noundef %1007)
  %1009 = getelementptr inbounds i8, ptr %26, i64 60
  store i32 %1008, ptr %1009, align 4, !tbaa !193
  %1010 = call noundef i32 %6(ptr noundef nonnull %26)
  br i1 %171, label %1014, label %1011

1011:                                             ; preds = %978
  %1012 = getelementptr inbounds i8, ptr %.0937, i64 48
  %1013 = load ptr, ptr %1012, align 8, !tbaa !127
  br label %1014

1014:                                             ; preds = %978, %1011
  %1015 = phi ptr [ %1013, %1011 ], [ %2, %978 ]
  %1016 = load ptr, ptr %981, align 8, !tbaa !187
  %1017 = icmp eq ptr %1016, %1015
  br i1 %1017, label %1019, label %1018

1018:                                             ; preds = %1014
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.4, i32 noundef 4727, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1019:                                             ; preds = %1014
  %1020 = load i32, ptr %987, align 4, !tbaa !189
  %1021 = load i32, ptr %985, align 4, !tbaa !151
  %1022 = icmp eq i32 %1020, %1021
  br i1 %1022, label %1024, label %1023

1023:                                             ; preds = %1019
  call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.4, i32 noundef 4728, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1024:                                             ; preds = %1019
  %1025 = load i32, ptr %973, align 4, !tbaa !184
  %1026 = icmp eq i32 %1025, %spec.select
  br i1 %1026, label %1028, label %1027

1027:                                             ; preds = %1024
  call void @__assert_fail(ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.4, i32 noundef 4729, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1028:                                             ; preds = %1024
  %1029 = load i8, ptr %988, align 8, !tbaa !190, !range !38, !noundef !39
  %1030 = trunc nuw i8 %1029 to i1
  %1031 = load i32, ptr %997, align 4, !tbaa !191
  %.not1065 = icmp ne i32 %1031, %996
  %brmerge1172 = select i1 %.not1065, i1 true, i1 %1030
  br i1 %brmerge1172, label %1032, label %1037

1032:                                             ; preds = %1028
  %1033 = sext i32 %1031 to i64
  %1034 = getelementptr inbounds i8, ptr %1016, i64 %1033
  %1035 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1016, ptr noundef %1034)
  store i32 %1035, ptr %992, align 4, !tbaa !135
  %1036 = getelementptr inbounds i8, ptr %.0937, i64 3716
  store i8 1, ptr %1036, align 4, !tbaa !162
  br label %1037

1037:                                             ; preds = %1028, %1032
  %1038 = load i32, ptr %1003, align 8, !tbaa !192
  %.not1066 = icmp ne i32 %1038, %1002
  %brmerge1173 = select i1 %.not1066, i1 true, i1 %1030
  br i1 %brmerge1173, label %1039, label %1051

1039:                                             ; preds = %1037
  %1040 = load i32, ptr %997, align 4, !tbaa !191
  %1041 = icmp eq i32 %1038, %1040
  br i1 %1041, label %1042, label %1044

1042:                                             ; preds = %1039
  %1043 = load i32, ptr %992, align 4, !tbaa !135
  br label %1049

1044:                                             ; preds = %1039
  %1045 = load ptr, ptr %981, align 8, !tbaa !187
  %1046 = sext i32 %1038 to i64
  %1047 = getelementptr inbounds i8, ptr %1045, i64 %1046
  %1048 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1045, ptr noundef %1047)
  br label %1049

1049:                                             ; preds = %1044, %1042
  %1050 = phi i32 [ %1043, %1042 ], [ %1048, %1044 ]
  store i32 %1050, ptr %998, align 4, !tbaa !132
  br label %1051

1051:                                             ; preds = %1037, %1049
  %1052 = load i32, ptr %1009, align 4, !tbaa !193
  %.not1067 = icmp ne i32 %1052, %1008
  %brmerge1174 = select i1 %.not1067, i1 true, i1 %1030
  br i1 %brmerge1174, label %1053, label %1065

1053:                                             ; preds = %1051
  %1054 = load i32, ptr %1003, align 8, !tbaa !192
  %1055 = icmp eq i32 %1052, %1054
  br i1 %1055, label %1056, label %1058

1056:                                             ; preds = %1053
  %1057 = load i32, ptr %998, align 4, !tbaa !132
  br label %1063

1058:                                             ; preds = %1053
  %1059 = load ptr, ptr %981, align 8, !tbaa !187
  %1060 = sext i32 %1052 to i64
  %1061 = getelementptr inbounds i8, ptr %1059, i64 %1060
  %1062 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1059, ptr noundef %1061)
  br label %1063

1063:                                             ; preds = %1058, %1056
  %1064 = phi i32 [ %1057, %1056 ], [ %1062, %1058 ]
  store i32 %1064, ptr %1004, align 4, !tbaa !134
  br label %1065

1065:                                             ; preds = %1051, %1063
  br i1 %1030, label %1066, label %1089

1066:                                             ; preds = %1065
  br i1 %171, label %1067, label %1068

1067:                                             ; preds = %1066
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.4, i32 noundef 4736, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1068:                                             ; preds = %1066
  %1069 = load i32, ptr %984, align 8, !tbaa !188
  %1070 = load ptr, ptr %981, align 8, !tbaa !187
  %1071 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1070) #15
  %1072 = trunc i64 %1071 to i32
  %1073 = icmp eq i32 %1069, %1072
  br i1 %1073, label %1075, label %1074

1074:                                             ; preds = %1068
  call void @__assert_fail(ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.4, i32 noundef 4737, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1075:                                             ; preds = %1068
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef nonnull %.0937, ptr noundef %1070, i32 noundef %1069)
  %1076 = load i32, ptr %984, align 8, !tbaa !188
  %1077 = icmp sle i32 %1076, %.0973
  %brmerge1176 = or i1 %.not1031, %1077
  br i1 %brmerge1176, label %1082, label %1078

1078:                                             ; preds = %1075
  %1079 = load i32, ptr %989, align 8, !tbaa !140
  %1080 = sub i32 %1076, %.0973
  %1081 = add nsw i32 %1080, %1079
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %989, i32 noundef %1081)
  br label %1082

1082:                                             ; preds = %1075, %1078
  %1083 = load ptr, ptr %990, align 8, !tbaa !128
  %1084 = load i32, ptr %989, align 8, !tbaa !140
  %1085 = load ptr, ptr %981, align 8, !tbaa !187
  %1086 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %1083, i32 noundef %1084, ptr noundef %1085, ptr noundef null, ptr noundef null)
  %1087 = getelementptr inbounds i8, ptr %.0937, i64 12
  store i32 %1086, ptr %1087, align 4, !tbaa !129
  %1088 = load i32, ptr %984, align 8, !tbaa !188
  store i32 %1088, ptr %982, align 8, !tbaa !125
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0937)
  br label %1089

1089:                                             ; preds = %1082, %1065
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %26) #14
  br label %1090

1090:                                             ; preds = %970, %1089, %.critedge1167
  br i1 %171, label %1098, label %1091

1091:                                             ; preds = %1090
  %1092 = getelementptr inbounds i8, ptr %.0937, i64 48
  %1093 = load ptr, ptr %1092, align 8, !tbaa !127
  %1094 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1093, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1068 = icmp eq i32 %1094, 0
  br i1 %.not1068, label %1098, label %1095

1095:                                             ; preds = %1091
  %1096 = getelementptr inbounds i8, ptr %.0937, i64 16
  %1097 = load i32, ptr %1096, align 8, !tbaa !125
  br label %1098

1098:                                             ; preds = %947, %1095, %1091, %1090, %891
  %.39411293 = phi i8 [ %.3941, %891 ], [ %.39411294, %1090 ], [ %.39411294, %1095 ], [ %.39411294, %1091 ], [ %.39411294, %947 ]
  %.19471291 = phi float [ %.1947, %891 ], [ %.19471292, %1090 ], [ %.19471292, %1095 ], [ %.19471292, %1091 ], [ %.19471292, %947 ]
  %.19511289 = phi i8 [ %.1951, %891 ], [ %.19511290, %1090 ], [ %.19511290, %1095 ], [ %.19511290, %1091 ], [ %.19511290, %947 ]
  %.29541287 = phi i8 [ %.2954, %891 ], [ %.29541288, %1090 ], [ %.29541288, %1095 ], [ %.29541288, %1091 ], [ %.29541288, %947 ]
  %.29721286 = phi i8 [ %.2972, %891 ], [ %.29721285, %1090 ], [ %.29721285, %1095 ], [ %.29721285, %1091 ], [ %.29721285, %947 ]
  %.2987 = phi i32 [ 0, %891 ], [ %.09851220, %1090 ], [ %1097, %1095 ], [ %.09851220, %1091 ], [ %.09851220, %947 ]
  %.2982 = phi ptr [ null, %891 ], [ %.09801222, %1090 ], [ %1093, %1095 ], [ %.09801222, %1091 ], [ %.09801222, %947 ]
  %.2966 = phi i1 [ false, %891 ], [ %.09641224, %1090 ], [ true, %1095 ], [ %.09641224, %1091 ], [ %.09641224, %947 ]
  %1099 = getelementptr inbounds i8, ptr %75, i64 23944
  %1100 = load i32, ptr %1099, align 8, !tbaa !194
  %1101 = icmp eq i32 %1100, %79
  br i1 %1101, label %1102, label %1115

1102:                                             ; preds = %1098
  %1103 = load i32, ptr %179, align 4, !tbaa !108
  %.not1069 = icmp eq i32 %1103, %79
  br i1 %.not1069, label %1114, label %1104

1104:                                             ; preds = %1102
  %1105 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  %.not1177 = xor i1 %1105, true
  %brmerge1178 = or i1 %171, %.not1177
  br i1 %brmerge1178, label %1114, label %1106

1106:                                             ; preds = %1104
  %1107 = getelementptr inbounds i8, ptr %75, i64 23960
  %1108 = load ptr, ptr %1107, align 8, !tbaa !195
  %1109 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1108, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1070 = icmp eq i32 %1109, 0
  br i1 %.not1070, label %1114, label %1110

1110:                                             ; preds = %1106
  %1111 = getelementptr inbounds i8, ptr %75, i64 23952
  %1112 = load i32, ptr %1111, align 8, !tbaa !196
  %1113 = add nsw i32 %1112, -1
  br label %1114

1114:                                             ; preds = %1104, %1110, %1106, %1102
  %.3988 = phi i32 [ %1113, %1110 ], [ %.2987, %1106 ], [ %.2987, %1104 ], [ %.2987, %1102 ]
  %.3983 = phi ptr [ %1108, %1110 ], [ %.2982, %1106 ], [ %.2982, %1104 ], [ %.2982, %1102 ]
  %.3967 = phi i1 [ true, %1110 ], [ %.2966, %1106 ], [ %.2966, %1104 ], [ %.2966, %1102 ]
  store i32 0, ptr %1099, align 8, !tbaa !194
  br label %1115

1115:                                             ; preds = %1114, %1098
  %.4989 = phi i32 [ %.3988, %1114 ], [ %.2987, %1098 ]
  %.4984 = phi ptr [ %.3983, %1114 ], [ %.2982, %1098 ]
  %.4968 = phi i1 [ %.3967, %1114 ], [ %.2966, %1098 ]
  %.not1071 = icmp eq ptr %.4984, null
  br i1 %.not1071, label %1141, label %1116

1116:                                             ; preds = %1115
  %1117 = icmp sgt i32 %.4989, -1
  br i1 %1117, label %1119, label %1118

1118:                                             ; preds = %1116
  call void @__assert_fail(ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.4, i32 noundef 4777, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1119:                                             ; preds = %1116
  br i1 %.not1031, label %1137, label %1120

1120:                                             ; preds = %1119
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %27) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %27)
  store ptr %75, ptr %27, align 8, !tbaa !181
  %1121 = getelementptr inbounds i8, ptr %27, i64 8
  store i32 262144, ptr %1121, align 8, !tbaa !183
  %1122 = getelementptr inbounds i8, ptr %27, i64 12
  store i32 %spec.select, ptr %1122, align 4, !tbaa !184
  %1123 = getelementptr inbounds i8, ptr %27, i64 32
  store ptr %2, ptr %1123, align 8, !tbaa !187
  %1124 = getelementptr inbounds i8, ptr %27, i64 40
  store i32 %.4989, ptr %1124, align 8, !tbaa !188
  %1125 = add nuw nsw i32 %.4989, 1
  %1126 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3, i32 noundef %1125)
  %1127 = getelementptr inbounds i8, ptr %27, i64 44
  store i32 %1126, ptr %1127, align 4, !tbaa !189
  %1128 = getelementptr inbounds i8, ptr %27, i64 16
  store ptr %7, ptr %1128, align 8, !tbaa !185
  %1129 = call noundef i32 %6(ptr noundef nonnull %27)
  %1130 = load ptr, ptr %1123, align 8, !tbaa !187
  %1131 = load i32, ptr %1127, align 4, !tbaa !189
  %1132 = load i32, ptr %1124, align 8, !tbaa !188
  %1133 = add nsw i32 %1131, -1
  %1134 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1132, i32 noundef %1133)
  %.not1072 = icmp sgt i32 %1134, %1131
  br i1 %.not1072, label %1135, label %1136

1135:                                             ; preds = %1120
  call void @__assert_fail(ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.4, i32 noundef 4792, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1136:                                             ; preds = %1120
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #14
  br label %1137

1137:                                             ; preds = %1136, %1119
  %.5 = phi i32 [ %1134, %1136 ], [ %.4989, %1119 ]
  %.0930 = phi i32 [ %1131, %1136 ], [ %3, %1119 ]
  %.0928 = phi ptr [ %1130, %1136 ], [ %2, %1119 ]
  %1138 = add nsw i32 %.5, 1
  %1139 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1138, i32 noundef %.0930)
  %1140 = sext i32 %1139 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %.0928, ptr noundef nonnull %.4984, i64 noundef %1140)
  br label %1141

1141:                                             ; preds = %1137, %1115
  %.1929 = phi ptr [ %.0928, %1137 ], [ %2, %1115 ]
  %1142 = load i32, ptr %179, align 4, !tbaa !108
  %1143 = icmp eq i32 %1142, %79
  br i1 %1143, label %1144, label %1149

1144:                                             ; preds = %1141
  %1145 = trunc nuw i8 %.39411293 to i1
  br i1 %1145, label %1146, label %1147

1146:                                             ; preds = %1144
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %1149

1147:                                             ; preds = %1144
  %1148 = getelementptr inbounds i8, ptr %75, i64 25120
  store i32 1, ptr %1148, align 8, !tbaa !197
  br label %1149

1149:                                             ; preds = %1141, %1147, %1146
  br i1 %67, label %1155, label %1150

1150:                                             ; preds = %1149
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %11, i32 noundef %79, i32 noundef 0)
  %.sroa.091.0.copyload = load <2 x float>, ptr %11, align 8
  %1151 = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.090.0.copyload = load <2 x float>, ptr %1151, align 8
  %1152 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %1153 = getelementptr inbounds i8, ptr %75, i64 14636
  %1154 = load float, ptr %1153, align 4, !tbaa !109
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.091.0.copyload, <2 x float> %.sroa.090.0.copyload, i32 noundef %1152, i1 noundef zeroext true, float noundef %1154)
  br label %1155

1155:                                             ; preds = %1150, %1149
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #14
  %1156 = load float, ptr %11, align 8, !tbaa !155
  %1157 = getelementptr inbounds i8, ptr %11, i64 4
  %1158 = load float, ptr %1157, align 4, !tbaa !198
  %1159 = fadd float %.sroa.0544.2, %1156
  %1160 = fadd float %.sroa.11.0.copyload, %1158
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %28, float noundef %1156, float noundef %1158, float noundef %1159, float noundef %1160)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  br i1 %67, label %1161, label %1164

1161:                                             ; preds = %1155
  %1162 = getelementptr inbounds i8, ptr %.2936, i64 272
  %1163 = load i64, ptr %1162, align 8
  br label %1167

1164:                                             ; preds = %1155
  %1165 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %89)
  %1166 = bitcast <2 x float> %1165 to i64
  br label %1167

1167:                                             ; preds = %1164, %1161
  %storemerge = phi i64 [ %1163, %1161 ], [ %1166, %1164 ]
  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 %390, label %1168, label %1171

1168:                                             ; preds = %1167
  %1169 = getelementptr inbounds i8, ptr %.0937, i64 48
  %1170 = load ptr, ptr %1169, align 8, !tbaa !127
  br label %1171

1171:                                             ; preds = %1167, %1168
  %1172 = phi ptr [ %1170, %1168 ], [ %.1929, %1167 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  store ptr null, ptr %31, align 8, !tbaa !40
  br i1 %400, label %1173, label %1176

1173:                                             ; preds = %1171
  %1174 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #15
  %1175 = getelementptr inbounds i8, ptr %1, i64 %1174
  store ptr %1175, ptr %31, align 8, !tbaa !40
  br label %1176

1176:                                             ; preds = %1173, %1171
  %1177 = phi ptr [ %1175, %1173 ], [ null, %1171 ]
  %.0969 = phi ptr [ %1, %1173 ], [ %1172, %1171 ]
  %1178 = trunc nuw i8 %.19511289 to i1
  br i1 %1178, label %1181, label %1179

1179:                                             ; preds = %1176
  %1180 = trunc nuw i8 %.29541287 to i1
  br i1 %1180, label %1181, label %1443

1181:                                             ; preds = %1179, %1176
  br i1 %356, label %1183, label %1182

1182:                                             ; preds = %1181
  call void @__assert_fail(ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.4, i32 noundef 4834, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1183:                                             ; preds = %1181
  br i1 %400, label %1189, label %1184

1184:                                             ; preds = %1183
  %1185 = getelementptr inbounds i8, ptr %.0937, i64 16
  %1186 = load i32, ptr %1185, align 8, !tbaa !125
  %1187 = sext i32 %1186 to i64
  %1188 = getelementptr inbounds i8, ptr %.0969, i64 %1187
  store ptr %1188, ptr %31, align 8, !tbaa !40
  br label %1189

1189:                                             ; preds = %1184, %1183
  %.pre12611263 = phi ptr [ %1188, %1184 ], [ %1177, %1183 ]
  %1190 = getelementptr inbounds i8, ptr %.0937, i64 32
  %1191 = load ptr, ptr %1190, align 8, !tbaa !128
  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 %1178, label %1192, label %1197

1192:                                             ; preds = %1189
  %1193 = getelementptr inbounds i8, ptr %.0937, i64 84
  %1194 = load i32, ptr %1193, align 4, !tbaa !135
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds i16, ptr %1191, i64 %1195
  br label %1197

1197:                                             ; preds = %1192, %1189
  %.sroa.068.0 = phi ptr [ %1196, %1192 ], [ null, %1189 ]
  %.sroa.062.0 = phi i32 [ -1, %1192 ], [ %.sroa.062.0.copyload, %1189 ]
  %.0959 = phi i32 [ 1, %1192 ], [ 0, %1189 ]
  %1198 = trunc nuw i8 %.29541287 to i1
  br i1 %1198, label %1199, label %1208

1199:                                             ; preds = %1197
  %1200 = getelementptr inbounds i8, ptr %.0937, i64 88
  %1201 = load i32, ptr %1200, align 4, !tbaa !132
  %1202 = getelementptr inbounds i8, ptr %.0937, i64 92
  %1203 = load i32, ptr %1202, align 4, !tbaa !134
  %1204 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1201, i32 noundef %1203)
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds i16, ptr %1191, i64 %1205
  %1207 = add nuw nsw i32 %.0959, 1
  br label %1208

1208:                                             ; preds = %1199, %1197
  %.sroa.7.0 = phi ptr [ %1206, %1199 ], [ null, %1197 ]
  %.sroa.9.0 = phi i32 [ -1, %1199 ], [ %.sroa.9.0.copyload, %1197 ]
  %.1960 = phi i32 [ %1207, %1199 ], [ %.0959, %1197 ]
  %.lobit = lshr exact i32 %66, 26
  %1209 = add nuw nsw i32 %.1960, %.lobit
  br label %1210

1210:                                             ; preds = %1225, %1208
  %.sroa.9.1 = phi i32 [ %.sroa.9.0, %1208 ], [ %.sroa.9.2, %1225 ]
  %.sroa.062.1 = phi i32 [ %.sroa.062.0, %1208 ], [ %.sroa.062.3, %1225 ]
  %.2961 = phi i32 [ %1209, %1208 ], [ %.4963, %1225 ]
  %.0956 = phi i32 [ 0, %1208 ], [ %.1957, %1225 ]
  %.0955 = phi ptr [ %1191, %1208 ], [ %1226, %1225 ]
  %1211 = load i16, ptr %.0955, align 2, !tbaa !160
  switch i16 %1211, label %1225 [
    i16 0, label %1227
    i16 10, label %1212
  ]

1212:                                             ; preds = %1210
  %1213 = add nsw i32 %.0956, 1
  %1214 = icmp eq i32 %.sroa.062.1, -1
  br i1 %1214, label %1215, label %1219

1215:                                             ; preds = %1212
  %.not1074 = icmp ult ptr %.0955, %.sroa.068.0
  br i1 %.not1074, label %1219, label %1216

1216:                                             ; preds = %1215
  %1217 = add nsw i32 %.2961, -1
  %1218 = icmp slt i32 %.2961, 2
  br i1 %1218, label %1227, label %1219

1219:                                             ; preds = %1216, %1215, %1212
  %.sroa.062.2 = phi i32 [ %1213, %1216 ], [ -1, %1215 ], [ %.sroa.062.1, %1212 ]
  %.3962 = phi i32 [ %1217, %1216 ], [ %.2961, %1215 ], [ %.2961, %1212 ]
  %1220 = icmp eq i32 %.sroa.9.1, -1
  br i1 %1220, label %1221, label %1225

1221:                                             ; preds = %1219
  %.not1075 = icmp ult ptr %.0955, %.sroa.7.0
  br i1 %.not1075, label %1225, label %1222

1222:                                             ; preds = %1221
  %1223 = add nsw i32 %.3962, -1
  %1224 = icmp slt i32 %.3962, 2
  br i1 %1224, label %1227, label %1225

1225:                                             ; preds = %1210, %1222, %1221, %1219
  %.sroa.9.2 = phi i32 [ %1213, %1222 ], [ -1, %1221 ], [ %.sroa.9.1, %1219 ], [ %.sroa.9.1, %1210 ]
  %.sroa.062.3 = phi i32 [ %.sroa.062.2, %1222 ], [ %.sroa.062.2, %1221 ], [ %.sroa.062.2, %1219 ], [ %.sroa.062.1, %1210 ]
  %.4963 = phi i32 [ %1223, %1222 ], [ %.3962, %1221 ], [ %.3962, %1219 ], [ %.2961, %1210 ]
  %.1957 = phi i32 [ %1213, %1222 ], [ %1213, %1221 ], [ %1213, %1219 ], [ %.0956, %1210 ]
  %1226 = getelementptr inbounds i8, ptr %.0955, i64 2
  br label %1210, !llvm.loop !199

1227:                                             ; preds = %1222, %1216, %1210
  %.sroa.9.3 = phi i32 [ %.sroa.9.1, %1210 ], [ %.sroa.9.1, %1216 ], [ %1213, %1222 ]
  %.sroa.062.4 = phi i32 [ %.sroa.062.1, %1210 ], [ %1213, %1216 ], [ %.sroa.062.2, %1222 ]
  %.2958 = phi i32 [ %.0956, %1210 ], [ %1213, %1216 ], [ %1213, %1222 ]
  %1228 = add nsw i32 %.2958, 1
  %1229 = icmp eq i32 %.sroa.062.4, -1
  %spec.select1179 = select i1 %1229, i32 %1228, i32 %.sroa.062.4
  %1230 = icmp eq i32 %.sroa.9.3, -1
  %.sroa.9.4 = select i1 %1230, i32 %1228, i32 %.sroa.9.3
  %1231 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.068.0, ptr noundef %1191)
  %1232 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %75, ptr noundef %1231, ptr noundef %.sroa.068.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.044.0.vec.extract = extractelement <2 x float> %1232, i64 0
  store float %.sroa.044.0.vec.extract, ptr %32, align 4, !tbaa !200
  %1233 = sitofp i32 %spec.select1179 to float
  %1234 = getelementptr inbounds i8, ptr %75, i64 15672
  %1235 = load float, ptr %1234, align 8, !tbaa !41
  %1236 = fmul float %1235, %1233
  %1237 = getelementptr inbounds i8, ptr %32, i64 4
  store float %1236, ptr %1237, align 4, !tbaa !201
  %1238 = icmp sgt i32 %.sroa.9.4, -1
  br i1 %1238, label %1239, label %1246

1239:                                             ; preds = %1227
  %1240 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.7.0, ptr noundef %1191)
  %1241 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %75, ptr noundef %1240, ptr noundef %.sroa.7.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.043.0.vec.extract = extractelement <2 x float> %1241, i64 0
  store float %.sroa.043.0.vec.extract, ptr %33, align 4, !tbaa !200
  %1242 = uitofp nneg i32 %.sroa.9.4 to float
  %1243 = load float, ptr %1234, align 8, !tbaa !41
  %1244 = fmul float %1243, %1242
  %1245 = getelementptr inbounds i8, ptr %33, i64 4
  store float %1244, ptr %1245, align 4, !tbaa !201
  br label %1246

1246:                                             ; preds = %1239, %1227
  %1247 = phi float [ %1243, %1239 ], [ %1235, %1227 ]
  br i1 %67, label %1248, label %1252

1248:                                             ; preds = %1246
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  %1249 = sitofp i32 %1228 to float
  %1250 = fmul float %1247, %1249
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %.sroa.0544.2, float noundef %1250)
  %1251 = load i64, ptr %34, align 8
  store i64 %1251, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  br label %1252

1252:                                             ; preds = %1248, %1246
  br i1 %1178, label %1253, label %1313

1253:                                             ; preds = %1252
  %1254 = getelementptr inbounds i8, ptr %.0937, i64 3716
  %1255 = load i8, ptr %1254, align 4, !tbaa !162, !range !38, !noundef !39
  %1256 = trunc nuw i8 %1255 to i1
  br i1 %1256, label %1257, label %1313

1257:                                             ; preds = %1253
  %1258 = and i32 %5, 4096
  %.not1076 = icmp eq i32 %1258, 0
  br i1 %.not1076, label %1259, label %1279

1259:                                             ; preds = %1257
  %1260 = fmul float %.sroa.0544.2, 2.500000e-01
  %1261 = load float, ptr %32, align 4, !tbaa !200
  %1262 = getelementptr inbounds i8, ptr %.0937, i64 80
  %1263 = load float, ptr %1262, align 8, !tbaa !130
  %1264 = fcmp olt float %1261, %1263
  br i1 %1264, label %1265, label %1270

1265:                                             ; preds = %1259
  %1266 = fsub float %1261, %1260
  %1267 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1266)
  %1268 = fptosi float %1267 to i32
  %1269 = sitofp i32 %1268 to float
  store float %1269, ptr %1262, align 8, !tbaa !130
  br label %1281

1270:                                             ; preds = %1259
  %1271 = load float, ptr %89, align 4, !tbaa !156
  %1272 = fsub float %.sroa.0544.2, %1271
  %1273 = fsub float %1261, %1272
  %1274 = fcmp ult float %1273, %1263
  br i1 %1274, label %1281, label %1275

1275:                                             ; preds = %1270
  %1276 = fadd float %1260, %1273
  %1277 = fptosi float %1276 to i32
  %1278 = sitofp i32 %1277 to float
  store float %1278, ptr %1262, align 8, !tbaa !130
  br label %1281

1279:                                             ; preds = %1257
  %1280 = getelementptr inbounds i8, ptr %.0937, i64 80
  store float 0.000000e+00, ptr %1280, align 8, !tbaa !130
  br label %1281

1281:                                             ; preds = %1265, %1275, %1270, %1279
  br i1 %67, label %1282, label %1312

1282:                                             ; preds = %1281
  %1283 = load float, ptr %1237, align 4, !tbaa !201
  %1284 = load float, ptr %1234, align 8, !tbaa !41
  %1285 = fsub float %1283, %1284
  %1286 = fcmp olt float %1285, %.19471291
  br i1 %1286, label %1287, label %1289

1287:                                             ; preds = %1282
  %1288 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1285)
  %.pre1256 = load float, ptr %90, align 4, !tbaa !101
  br label %1298

1289:                                             ; preds = %1282
  %1290 = load float, ptr %90, align 4, !tbaa !101
  %1291 = fneg float %1290
  %1292 = call float @llvm.fmuladd.f32(float %1291, float 2.000000e+00, float %.sroa.11.0.copyload)
  %1293 = fsub float %1283, %1292
  %1294 = fcmp ult float %1293, %.19471291
  br i1 %1294, label %1298, label %1295

1295:                                             ; preds = %1289
  %1296 = fsub float %1283, %.sroa.11.0.copyload
  %1297 = call float @llvm.fmuladd.f32(float %1290, float 2.000000e+00, float %1296)
  br label %1298

1298:                                             ; preds = %1289, %1295, %1287
  %1299 = phi float [ %.pre1256, %1287 ], [ %1290, %1295 ], [ %1290, %1289 ]
  %.2948 = phi float [ %1288, %1287 ], [ %1297, %1295 ], [ %.19471291, %1289 ]
  %1300 = getelementptr inbounds i8, ptr %30, i64 4
  %1301 = load float, ptr %1300, align 4, !tbaa !201
  %1302 = call float @llvm.fmuladd.f32(float %1299, float 2.000000e+00, float %1301)
  %1303 = fsub float %1302, %.sroa.11.0.copyload
  %1304 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1303, float noundef 0.000000e+00)
  %1305 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %.2948, float noundef 0.000000e+00, float noundef %1304)
  %1306 = getelementptr inbounds i8, ptr %.2936, i64 144
  %1307 = load float, ptr %1306, align 4, !tbaa !120
  %1308 = fsub float %1307, %1305
  %1309 = getelementptr inbounds i8, ptr %29, i64 4
  %1310 = load float, ptr %1309, align 4, !tbaa !201
  %1311 = fadd float %1310, %1308
  store float %1311, ptr %1309, align 4, !tbaa !201
  store float %1305, ptr %1306, align 4, !tbaa !120
  br label %1312

1312:                                             ; preds = %1298, %1281
  store i8 0, ptr %1254, align 4, !tbaa !162
  br label %1313

1313:                                             ; preds = %1312, %1253, %1252
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  %1314 = getelementptr inbounds i8, ptr %.0937, i64 80
  %1315 = load float, ptr %1314, align 8, !tbaa !130
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %1315, float noundef 0.000000e+00)
  br i1 %1198, label %1316, label %1385

1316:                                             ; preds = %1313
  %1317 = getelementptr inbounds i8, ptr %.0937, i64 88
  %1318 = load i32, ptr %1317, align 4, !tbaa !132
  %1319 = getelementptr inbounds i8, ptr %.0937, i64 92
  %1320 = load i32, ptr %1319, align 4, !tbaa !134
  %1321 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1318, i32 noundef %1320)
  %1322 = sext i32 %1321 to i64
  %1323 = getelementptr inbounds i16, ptr %1191, i64 %1322
  %1324 = load i32, ptr %1317, align 4, !tbaa !132
  %1325 = load i32, ptr %1319, align 4, !tbaa !134
  %1326 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1324, i32 noundef %1325)
  %1327 = sext i32 %1326 to i64
  %1328 = getelementptr inbounds i16, ptr %1191, i64 %1327
  %1329 = select i1 %1178, float 1.000000e+00, float 0x3FE3333340000000
  %1330 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 47, float noundef %1329)
  %1331 = select i1 %67, float 0.000000e+00, float -1.000000e+00
  %1332 = select i1 %67, float 0.000000e+00, float 2.000000e+00
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #14
  %1333 = 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> %1333, ptr %37, align 8
  %1334 = 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> %1334, 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 %1323, ptr %38, align 8, !tbaa !40
  %1335 = getelementptr inbounds i8, ptr %36, i64 4
  %1336 = icmp slt i32 %1321, %1326
  br i1 %1336, label %.lr.ph1248, label %._crit_edge1249

.lr.ph1248:                                       ; preds = %1316
  %1337 = extractelement <2 x float> %1334, i64 1
  %1338 = getelementptr inbounds i8, ptr %28, i64 12
  %1339 = getelementptr inbounds i8, ptr %28, i64 4
  %1340 = getelementptr inbounds i8, ptr %75, i64 15664
  %1341 = getelementptr inbounds i8, ptr %.2936, i64 680
  %1342 = getelementptr inbounds i8, ptr %39, i64 8
  %.pre1257 = load float, ptr %1234, align 8, !tbaa !41
  br label %1343

1343:                                             ; preds = %.lr.ph1248, %.loopexit
  %1344 = phi ptr [ %1323, %.lr.ph1248 ], [ %1377, %.loopexit ]
  %1345 = phi float [ %1337, %.lr.ph1248 ], [ %1383, %.loopexit ]
  %1346 = phi float [ %.pre1257, %.lr.ph1248 ], [ %1379, %.loopexit ]
  %1347 = load float, ptr %1338, align 4, !tbaa !202
  %1348 = fadd float %1347, %1346
  %1349 = fcmp ogt float %1345, %1348
  br i1 %1349, label %._crit_edge1249.loopexit, label %1350

1350:                                             ; preds = %1343
  %1351 = load float, ptr %1339, align 4, !tbaa !203
  %1352 = fcmp olt float %1345, %1351
  br i1 %1352, label %.preheader, label %1359

.preheader:                                       ; preds = %1350, %1355
  %1353 = phi ptr [ %1356, %1355 ], [ %1344, %1350 ]
  %1354 = icmp ult ptr %1353, %1328
  br i1 %1354, label %1355, label %.loopexit

1355:                                             ; preds = %.preheader
  %1356 = getelementptr inbounds i8, ptr %1353, i64 2
  store ptr %1356, ptr %38, align 8, !tbaa !40
  %1357 = load i16, ptr %1353, align 2, !tbaa !160
  %1358 = icmp eq i16 %1357, 10
  br i1 %1358, label %.loopexit, label %.preheader, !llvm.loop !204

1359:                                             ; preds = %1350
  %1360 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %75, ptr noundef %1344, ptr noundef nonnull %1328, ptr noundef nonnull %38, ptr noundef null, i1 noundef zeroext true)
  %.sroa.028.0.vec.extract = extractelement <2 x float> %1360, i64 0
  %1361 = fcmp ugt float %.sroa.028.0.vec.extract, 0.000000e+00
  br i1 %1361, label %1368, label %1362

1362:                                             ; preds = %1359
  %1363 = load ptr, ptr %1340, align 8, !tbaa !142
  %1364 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %1363, i16 noundef zeroext 32)
  %1365 = fmul float %1364, 5.000000e-01
  %1366 = fptosi float %1365 to i32
  %1367 = sitofp i32 %1366 to float
  br label %1368

1368:                                             ; preds = %1362, %1359
  %.sroa.028.0.vec.extract31.pre-phi = phi float [ %1367, %1362 ], [ %.sroa.028.0.vec.extract, %1359 ]
  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
  %1369 = load float, ptr %1234, align 8, !tbaa !41
  %1370 = fsub float %1331, %1369
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef 0.000000e+00, float noundef %1370)
  %1371 = 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> %1371, 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 %1332)
  %1372 = 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> %1372, 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)
  %1373 = 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 %1373, label %1374, label %1376

1374:                                             ; preds = %1368
  %1375 = load ptr, ptr %1341, align 8, !tbaa !205
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(196) %1375, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %1342, i32 noundef %1330, float noundef 0.000000e+00, i32 noundef 0)
  br label %1376

1376:                                             ; preds = %1374, %1368
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #14
  %.pre1258 = load float, ptr %1234, align 8, !tbaa !41
  %.pre1259 = load float, ptr %1335, align 4, !tbaa !201
  %.pre1260 = load ptr, ptr %38, align 8, !tbaa !40
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader, %1355, %1376
  %1377 = phi ptr [ %.pre1260, %1376 ], [ %1353, %.preheader ], [ %1356, %1355 ]
  %1378 = phi float [ %.pre1259, %1376 ], [ %1345, %1355 ], [ %1345, %.preheader ]
  %1379 = phi float [ %.pre1258, %1376 ], [ %1346, %1355 ], [ %1346, %.preheader ]
  %1380 = load float, ptr %29, align 8, !tbaa !200
  %1381 = load float, ptr %35, align 4, !tbaa !200
  %1382 = fsub float %1380, %1381
  store float %1382, ptr %36, align 8, !tbaa !200
  %1383 = fadd float %1379, %1378
  store float %1383, ptr %1335, align 4, !tbaa !201
  %1384 = icmp ult ptr %1377, %1328
  br i1 %1384, label %1343, label %._crit_edge1249.loopexit, !llvm.loop !206

._crit_edge1249.loopexit:                         ; preds = %1343, %.loopexit
  %.pre1261.pre.pre = load ptr, ptr %31, align 8, !tbaa !40
  br label %._crit_edge1249

._crit_edge1249:                                  ; preds = %._crit_edge1249.loopexit, %1316
  %.pre1261.pre = phi ptr [ %.pre1261.pre.pre, %._crit_edge1249.loopexit ], [ %.pre12611263, %1316 ]
  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 %1385

1385:                                             ; preds = %._crit_edge1249, %1313
  %.pre1261 = phi ptr [ %.pre1261.pre, %._crit_edge1249 ], [ %.pre12611263, %1313 ]
  br i1 %67, label %1391, label %1386

1386:                                             ; preds = %1385
  %1387 = ptrtoint ptr %.pre1261 to i64
  %1388 = ptrtoint ptr %.0969 to i64
  %1389 = sub i64 %1387, %1388
  %1390 = icmp slt i64 %1389, 2097152
  br i1 %1390, label %1391, label %1400

1391:                                             ; preds = %1386, %1385
  %. = phi ptr [ %28, %1386 ], [ null, %1385 ]
  %1392 = zext i1 %400 to i32
  %1393 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1392, float noundef 1.000000e+00)
  %1394 = getelementptr inbounds i8, ptr %.2936, i64 680
  %1395 = load ptr, ptr %1394, align 8, !tbaa !205
  %1396 = getelementptr inbounds i8, ptr %75, i64 15664
  %1397 = load ptr, ptr %1396, align 8, !tbaa !142
  %1398 = load float, ptr %1234, align 8, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  %1399 = 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> %1399, ptr %46, align 8
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1395, ptr noundef %1397, float noundef %1398, ptr noundef nonnull align 4 dereferenceable(8) %46, i32 noundef %1393, ptr noundef %.0969, ptr noundef %.pre1261, float noundef 0.000000e+00, ptr noundef %.)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  br label %1400

1400:                                             ; preds = %1391, %1386
  br i1 %1178, label %1401, label %1442

1401:                                             ; preds = %1400
  %1402 = getelementptr inbounds i8, ptr %75, i64 24
  %1403 = load float, ptr %1402, align 8, !tbaa !207
  %1404 = getelementptr inbounds i8, ptr %.0937, i64 3712
  %1405 = load float, ptr %1404, align 8, !tbaa !208
  %1406 = fadd float %1403, %1405
  store float %1406, ptr %1404, align 8, !tbaa !208
  %1407 = getelementptr inbounds i8, ptr %75, i64 91
  %1408 = load i8, ptr %1407, align 1, !tbaa !209, !range !38, !noundef !39
  %1409 = trunc nuw i8 %1408 to i1
  %1410 = fcmp ugt float %1406, 0.000000e+00
  %or.cond1180 = select i1 %1409, i1 %1410, i1 false
  br i1 %or.cond1180, label %1411, label %1414

1411:                                             ; preds = %1401
  %1412 = call float @fmodf(float noundef %1406, float noundef 0x3FF3333340000000) #14
  %1413 = fcmp ole float %1412, 0x3FE99999A0000000
  br label %1414

1414:                                             ; preds = %1411, %1401
  %1415 = phi i1 [ true, %1401 ], [ %1413, %1411 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  %1416 = 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> %1416, ptr %48, align 8
  %1417 = 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> %1417, ptr %47, align 8
  %1418 = 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> %1418, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1418, i64 1
  %1419 = load float, ptr %1234, align 8, !tbaa !41
  %1420 = fsub float %.sroa.0.4.vec.extract, %1419
  %1421 = fadd float %1420, 5.000000e-01
  %1422 = fadd float %.sroa.0.0.vec.extract, 1.000000e+00
  %1423 = 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 %1421, float noundef %1422, float noundef %1423)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #14
  br i1 %1415, label %1424, label %.critedge13

1424:                                             ; preds = %1414
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %50, ptr noundef nonnull align 4 dereferenceable(16) %28)
  %1425 = 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 %1425, label %1426, label %1431

1426:                                             ; preds = %1424
  %1427 = getelementptr inbounds i8, ptr %.2936, i64 680
  %1428 = load ptr, ptr %1427, align 8, !tbaa !205
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  %1429 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %49)
  store <2 x float> %1429, ptr %51, align 8
  %1430 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(196) %1428, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %51, i32 noundef %1430, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  br label %1431

.critedge13:                                      ; preds = %1414
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #14
  br label %1431

1431:                                             ; preds = %.critedge13, %1426, %1424
  br i1 %171, label %1441, label %1432

1432:                                             ; preds = %1431
  %1433 = getelementptr inbounds i8, ptr %75, i64 24384
  store i8 1, ptr %1433, align 8, !tbaa !210
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  %1434 = fadd float %.sroa.0.0.vec.extract, -1.000000e+00
  %1435 = load float, ptr %1234, align 8, !tbaa !41
  %1436 = fsub float %.sroa.0.4.vec.extract, %1435
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef %1434, float noundef %1436)
  %1437 = getelementptr inbounds i8, ptr %75, i64 24388
  %1438 = load i64, ptr %52, align 8
  store i64 %1438, ptr %1437, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  %1439 = load float, ptr %1234, align 8, !tbaa !41
  %1440 = getelementptr inbounds i8, ptr %75, i64 24396
  store float %1439, ptr %1440, align 4, !tbaa !211
  br label %1441

1441:                                             ; preds = %1432, %1431
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #14
  br label %1442

1442:                                             ; preds = %1441, %1400
  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 %1478

1443:                                             ; preds = %1179
  br i1 %67, label %.critedge1182, label %1444

1444:                                             ; preds = %1443
  br i1 %400, label %1462, label %1445

1445:                                             ; preds = %1444
  %1446 = load i32, ptr %179, align 4, !tbaa !108
  %1447 = icmp eq i32 %1446, %79
  br i1 %1447, label %1448, label %1453

1448:                                             ; preds = %1445
  %1449 = getelementptr inbounds i8, ptr %.0937, i64 16
  %1450 = load i32, ptr %1449, align 8, !tbaa !125
  %1451 = sext i32 %1450 to i64
  %1452 = getelementptr inbounds i8, ptr %.0969, i64 %1451
  store ptr %1452, ptr %31, align 8, !tbaa !40
  br label %1462

1453:                                             ; preds = %1445
  %1454 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.0969) #15
  %1455 = getelementptr inbounds i8, ptr %.0969, i64 %1454
  store ptr %1455, ptr %31, align 8, !tbaa !40
  br label %1462

.critedge1182:                                    ; preds = %1443
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  %1456 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %.0969, ptr noundef nonnull %31)
  %1457 = sitofp i32 %1456 to float
  %1458 = getelementptr inbounds i8, ptr %75, i64 15672
  %1459 = load float, ptr %1458, align 8, !tbaa !41
  %1460 = fmul float %1459, %1457
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef %.sroa.0544.2, float noundef %1460)
  %1461 = load i64, ptr %53, align 8
  store i64 %1461, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  br label %1468

1462:                                             ; preds = %1444, %1448, %1453
  %1463 = phi ptr [ %1177, %1444 ], [ %1452, %1448 ], [ %1455, %1453 ]
  %1464 = ptrtoint ptr %1463 to i64
  %1465 = ptrtoint ptr %.0969 to i64
  %1466 = sub i64 %1464, %1465
  %1467 = icmp slt i64 %1466, 2097152
  br i1 %1467, label %1468, label %1478

1468:                                             ; preds = %.critedge1182, %1462
  %.14 = phi ptr [ %28, %1462 ], [ null, %.critedge1182 ]
  %1469 = zext i1 %400 to i32
  %1470 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1469, float noundef 1.000000e+00)
  %1471 = getelementptr inbounds i8, ptr %.2936, i64 680
  %1472 = load ptr, ptr %1471, align 8, !tbaa !205
  %1473 = getelementptr inbounds i8, ptr %75, i64 15664
  %1474 = load ptr, ptr %1473, align 8, !tbaa !142
  %1475 = getelementptr inbounds i8, ptr %75, i64 15672
  %1476 = load float, ptr %1475, align 8, !tbaa !41
  %1477 = load ptr, ptr %31, align 8, !tbaa !40
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(196) %1472, ptr noundef %1474, float noundef %1476, ptr noundef nonnull align 4 dereferenceable(8) %29, i32 noundef %1470, ptr noundef %.0969, ptr noundef %1477, float noundef 0.000000e+00, ptr noundef %.14)
  br label %1478

1478:                                             ; preds = %1462, %1468, %1442
  br i1 %brmerge1095, label %1480, label %1479

1479:                                             ; preds = %1478
  call void @_ZN5ImGui7PopFontEv()
  br label %1480

1480:                                             ; preds = %1478, %1479
  br i1 %67, label %1481, label %1501

1481:                                             ; preds = %1480
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  %1482 = load float, ptr %30, align 8, !tbaa !200
  %1483 = getelementptr inbounds i8, ptr %30, i64 4
  %1484 = load float, ptr %1483, align 4, !tbaa !201
  %1485 = load float, ptr %90, align 4, !tbaa !101
  %1486 = fadd float %1484, %1485
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %54, float noundef %1482, float noundef %1486)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #14
  %1487 = getelementptr inbounds i8, ptr %75, i64 18828
  %1488 = load i32, ptr %1487, align 4, !tbaa !212
  %1489 = or i32 %1488, 1025
  store i32 %1489, ptr %1487, align 4, !tbaa !212
  call void @_ZN5ImGui8EndChildEv()
  %1490 = getelementptr inbounds i8, ptr %75, i64 18864
  %1491 = load i32, ptr %1490, align 8, !tbaa !213
  %1492 = and i32 %1491, 128
  %1493 = getelementptr inbounds i8, ptr %15, i64 8
  %1494 = load i32, ptr %1493, align 4, !tbaa !214
  %1495 = or i32 %1494, %1492
  store i32 %1495, ptr %1493, align 4, !tbaa !214
  call void @_ZN5ImGui8EndGroupEv()
  %1496 = load i32, ptr %159, align 8, !tbaa !215
  %1497 = icmp eq i32 %1496, 0
  br i1 %1497, label %1498, label %1501

1498:                                             ; preds = %1481
  store i32 %79, ptr %159, align 8, !tbaa !215
  %1499 = getelementptr inbounds i8, ptr %15, i64 4
  %1500 = load <2 x i32>, ptr %1499, align 4, !tbaa !105
  store <2 x i32> %1500, ptr %160, align 4, !tbaa !105
  br label %1501

1501:                                             ; preds = %1481, %1498, %1480
  %1502 = getelementptr inbounds i8, ptr %75, i64 24576
  %1503 = load i8, ptr %1502, align 8, !tbaa !216, !range !38, !noundef !39
  %1504 = trunc nuw i8 %1503 to i1
  %or.cond1188 = and i1 %brmerge1095, %1504
  br i1 %or.cond1188, label %1505, label %1507

1505:                                             ; preds = %1501
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.26)
  %1506 = load ptr, ptr %31, align 8, !tbaa !40
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef nonnull %29, ptr noundef %.0969, ptr noundef %1506)
  br label %1507

1507:                                             ; preds = %1505, %1501
  br i1 %95, label %1508, label %1518

1508:                                             ; preds = %1507
  %1509 = getelementptr inbounds i8, ptr %11, i64 8
  %1510 = load float, ptr %1509, align 8, !tbaa !217
  %1511 = getelementptr inbounds i8, ptr %75, i64 14652
  %1512 = load float, ptr %1511, align 4, !tbaa !102
  %1513 = fadd float %1510, %1512
  %1514 = load float, ptr %1157, align 4, !tbaa !198
  %1515 = load float, ptr %90, align 4, !tbaa !101
  %1516 = fadd float %1514, %1515
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef %1513, float noundef %1516)
  %1517 = load <2 x float>, ptr %55, align 8
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %1517, ptr noundef %0, ptr noundef null, i1 noundef zeroext true)
  br label %1518

1518:                                             ; preds = %1508, %1507
  %1519 = and i32 %5, 134217728
  %.not1077 = icmp eq i32 %1519, 0
  %or.cond1185 = and i1 %.not1077, %.4968
  br i1 %or.cond1185, label %1520, label %1521

1520:                                             ; preds = %1518
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %79)
  br label %1521

1521:                                             ; preds = %1520, %1518
  %1522 = and i32 %5, 32
  %.not1078 = icmp eq i32 %1522, 0
  %1523 = trunc nuw i8 %.29721286 to i1
  %.2 = select i1 %.not1078, i1 %.4968, i1 %1523
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #14
  br label %.thread

.thread:                                          ; preds = %137, %112, %156, %1521
  %.3 = phi i1 [ %.2, %1521 ], [ false, %156 ], [ false, %112 ], [ false, %137 ]
  call void @llvm.lifetime.end.p0(i64 76, ptr nonnull %15) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #14
  br label %1524

1524:                                             ; 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(3736), i32 noundef) local_unnamed_addr #10 align 2

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

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

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

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

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

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

declare void @_ZN5ImGui8EndChildEv() local_unnamed_addr #4

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736)) 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(3736)) 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(3736)) 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, !13, i64 195}
!6 = !{!"_ZTS11ImGuiWindow", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !7, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !11, i64 140, !11, i64 148, !11, i64 156, !11, i64 164, !11, i64 172, !11, i64 180, !13, i64 188, !13, i64 189, !13, i64 190, !13, i64 191, !13, i64 192, !13, i64 193, !13, i64 194, !13, i64 195, !13, i64 196, !13, i64 197, !13, i64 198, !13, i64 199, !13, i64 200, !8, i64 201, !8, i64 202, !14, i64 204, !14, i64 206, !14, i64 208, !14, i64 210, !14, i64 212, !10, i64 216, !8, i64 220, !8, i64 221, !13, i64 222, !10, i64 224, !8, i64 228, !8, i64 229, !8, i64 230, !8, i64 231, !10, i64 232, !10, i64 233, !10, i64 234, !11, i64 236, !11, i64 244, !15, i64 256, !16, i64 272, !22, i64 504, !22, i64 520, !22, i64 536, !22, i64 552, !22, i64 568, !22, i64 584, !22, i64 600, !23, i64 616, !23, i64 620, !10, i64 624, !12, i64 628, !12, i64 632, !24, i64 640, !26, i64 656, !12, i64 672, !10, i64 676, !7, i64 680, !27, i64 688, !7, i64 888, !7, i64 896, !7, i64 904, !7, i64 912, !7, i64 920, !7, i64 928, !7, i64 936, !7, i64 944, !8, i64 952, !8, i64 960, !8, i64 992, !10, i64 1008, !10, i64 1012, !10, i64 1016, !13, i64 1020}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTS6ImVec2", !12, i64 0, !12, i64 4}
!12 = !{!"float", !8, i64 0}
!13 = !{!"bool", !8, i64 0}
!14 = !{!"short", !8, i64 0}
!15 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !7, i64 8}
!16 = !{!"_ZTS19ImGuiWindowTempData", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !12, i64 56, !12, i64 60, !13, i64 64, !13, i64 65, !17, i64 68, !17, i64 72, !17, i64 76, !11, i64 80, !18, i64 88, !14, i64 92, !14, i64 94, !13, i64 96, !13, i64 97, !13, i64 98, !13, i64 99, !11, i64 100, !19, i64 108, !10, i64 136, !10, i64 140, !20, i64 144, !7, i64 160, !7, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !12, i64 192, !12, i64 196, !21, i64 200, !21, i64 216}
!17 = !{!"_ZTS6ImVec1", !12, i64 0}
!18 = !{!"_ZTS13ImGuiNavLayer", !8, i64 0}
!19 = !{!"_ZTS16ImGuiMenuColumns", !10, i64 0, !10, i64 4, !14, i64 8, !14, i64 10, !14, i64 12, !14, i64 14, !14, i64 16, !8, i64 18}
!20 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !7, i64 8}
!21 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !7, i64 8}
!22 = !{!"_ZTS6ImRect", !11, i64 0, !11, i64 8}
!23 = !{!"_ZTS8ImVec2ih", !14, i64 0, !14, i64 2}
!24 = !{!"_ZTS12ImGuiStorage", !25, i64 0}
!25 = !{!"_ZTS8ImVectorIN12ImGuiStorage16ImGuiStoragePairEE", !10, i64 0, !10, i64 4, !7, i64 8}
!26 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !10, i64 0, !10, i64 4, !7, i64 8}
!27 = !{!"_ZTS10ImDrawList", !28, i64 0, !29, i64 16, !30, i64 32, !10, i64 48, !10, i64 52, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !31, i64 88, !32, i64 104, !33, i64 120, !34, i64 136, !36, i64 168, !12, i64 192}
!28 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !7, i64 8}
!29 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !7, i64 8}
!30 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !7, i64 8}
!31 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !7, i64 8}
!32 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !7, i64 8}
!33 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !7, i64 8}
!34 = !{!"_ZTS15ImDrawCmdHeader", !35, i64 0, !7, i64 16, !10, i64 24}
!35 = !{!"_ZTS6ImVec4", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12}
!36 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !37, i64 8}
!37 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !7, i64 8}
!38 = !{i8 0, i8 2}
!39 = !{}
!40 = !{!7, !7, i64 0}
!41 = !{!42, !12, i64 15672}
!42 = !{!"_ZTS12ImGuiContext", !13, i64 0, !13, i64 1, !43, i64 8, !45, i64 14568, !7, i64 15664, !12, i64 15672, !12, i64 15676, !46, i64 15680, !47, i64 16208, !10, i64 16216, !10, i64 16220, !10, i64 16224, !13, i64 16228, !13, i64 16229, !13, i64 16230, !13, i64 16231, !13, i64 16232, !7, i64 16240, !48, i64 16248, !48, i64 16264, !44, i64 16280, !10, i64 16284, !20, i64 16288, !20, i64 16304, !20, i64 16320, !49, i64 16336, !24, i64 16352, !10, i64 16368, !11, i64 16372, !10, i64 16380, !7, i64 16384, !7, i64 16392, !7, i64 16400, !7, i64 16408, !7, i64 16416, !11, i64 16424, !10, i64 16432, !10, i64 16436, !12, i64 16440, !11, i64 16444, !11, i64 16452, !10, i64 16460, !10, i64 16464, !10, i64 16468, !13, i64 16472, !13, i64 16473, !12, i64 16476, !12, i64 16480, !10, i64 16484, !10, i64 16488, !12, i64 16492, !13, i64 16496, !13, i64 16497, !13, i64 16498, !13, i64 16499, !13, i64 16500, !13, i64 16501, !13, i64 16502, !10, i64 16503, !11, i64 16504, !7, i64 16512, !50, i64 16520, !10, i64 16524, !13, i64 16528, !13, i64 16529, !7, i64 16536, !10, i64 16544, !12, i64 16548, !47, i64 16552, !47, i64 16560, !47, i64 16568, !51, i64 16576, !8, i64 16596, !52, i64 18448, !10, i64 18792, !13, i64 18796, !10, i64 18800, !10, i64 18804, !10, i64 18808, !10, i64 18812, !10, i64 18816, !54, i64 18824, !56, i64 18856, !57, i64 18936, !13, i64 19048, !10, i64 19052, !58, i64 19056, !59, i64 19072, !60, i64 19088, !61, i64 19104, !62, i64 19120, !63, i64 19136, !64, i64 19152, !64, i64 19168, !65, i64 19184, !66, i64 19200, !7, i64 19216, !10, i64 19224, !10, i64 19228, !61, i64 19232, !10, i64 19248, !10, i64 19252, !10, i64 19256, !10, i64 19260, !10, i64 19264, !12, i64 19268, !10, i64 19272, !10, i64 19276, !10, i64 19280, !10, i64 19284, !10, i64 19288, !50, i64 19292, !18, i64 19296, !55, i64 19304, !13, i64 19312, !13, i64 19313, !13, i64 19314, !13, i64 19315, !13, i64 19316, !13, i64 19317, !13, i64 19318, !67, i64 19320, !13, i64 19384, !13, i64 19385, !13, i64 19386, !10, i64 19388, !10, i64 19392, !10, i64 19396, !10, i64 19400, !10, i64 19404, !10, i64 19408, !22, i64 19412, !22, i64 19428, !10, i64 19444, !10, i64 19448, !10, i64 19452, !67, i64 19456, !67, i64 19520, !67, i64 19584, !67, i64 19648, !10, i64 19712, !10, i64 19716, !7, i64 19720, !7, i64 19728, !7, i64 19736, !12, i64 19744, !12, i64 19748, !13, i64 19752, !68, i64 19756, !11, i64 19760, !11, i64 19768, !12, i64 19776, !13, i64 19780, !13, i64 19781, !13, i64 19782, !10, i64 19784, !10, i64 19788, !10, i64 19792, !69, i64 19800, !22, i64 19864, !22, i64 19880, !10, i64 19896, !10, i64 19900, !12, i64 19904, !10, i64 19908, !10, i64 19912, !10, i64 19916, !10, i64 19920, !70, i64 19928, !8, i64 19944, !10, i64 19960, !71, i64 19968, !7, i64 19984, !10, i64 19992, !10, i64 19996, !72, i64 20000, !73, i64 20016, !21, i64 20056, !37, i64 20072, !7, i64 20088, !75, i64 20096, !77, i64 20136, !78, i64 20152, !10, i64 20168, !10, i64 20172, !12, i64 20176, !12, i64 20180, !10, i64 20184, !10, i64 20188, !10, i64 20192, !12, i64 20196, !11, i64 20200, !79, i64 20208, !83, i64 23944, !84, i64 23968, !10, i64 24088, !10, i64 24092, !10, i64 24096, !10, i64 24100, !10, i64 24104, !10, i64 24108, !12, i64 24112, !12, i64 24116, !10, i64 24120, !35, i64 24124, !86, i64 24140, !22, i64 24188, !13, i64 24204, !12, i64 24208, !12, i64 24212, !13, i64 24216, !13, i64 24217, !12, i64 24220, !12, i64 24224, !12, i64 24228, !12, i64 24232, !14, i64 24236, !14, i64 24238, !14, i64 24240, !80, i64 24248, !15, i64 24264, !87, i64 24280, !89, i64 24384, !89, i64 24400, !13, i64 24416, !12, i64 24420, !90, i64 24424, !91, i64 24440, !92, i64 24456, !93, i64 24472, !94, i64 24488, !10, i64 24504, !8, i64 24512, !13, i64 24576, !95, i64 24580, !7, i64 24584, !90, i64 24592, !7, i64 24608, !7, i64 24616, !12, i64 24624, !13, i64 24628, !10, i64 24632, !10, i64 24636, !10, i64 24640, !10, i64 24644, !90, i64 24648, !96, i64 24664, !10, i64 24688, !8, i64 24692, !8, i64 24693, !13, i64 24694, !10, i64 24696, !8, i64 24700, !13, i64 24701, !8, i64 24702, !10, i64 24704, !12, i64 24708, !35, i64 24712, !97, i64 24728, !98, i64 24760, !100, i64 24800, !8, i64 24860, !10, i64 25100, !10, i64 25104, !12, i64 25108, !10, i64 25112, !10, i64 25116, !10, i64 25120, !80, i64 25128, !8, i64 25144}
!43 = !{!"_ZTS7ImGuiIO", !10, i64 0, !10, i64 4, !11, i64 8, !12, i64 16, !12, i64 20, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !12, i64 56, !13, i64 60, !7, i64 64, !11, i64 72, !13, i64 80, !13, i64 81, !13, i64 82, !13, i64 83, !13, i64 84, !13, i64 85, !13, i64 86, !13, i64 87, !12, i64 88, !12, i64 92, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !13, i64 112, !13, i64 113, !13, i64 114, !13, i64 115, !13, i64 116, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !7, i64 184, !14, i64 192, !13, i64 194, !13, i64 195, !13, i64 196, !13, i64 197, !13, i64 198, !13, i64 199, !13, i64 200, !12, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !11, i64 224, !8, i64 232, !8, i64 2896, !8, i64 3564, !7, i64 3632, !11, i64 3640, !8, i64 3648, !12, i64 3656, !12, i64 3660, !44, i64 3664, !13, i64 3668, !13, i64 3669, !13, i64 3670, !13, i64 3671, !10, i64 3672, !8, i64 3676, !13, i64 14332, !11, i64 14336, !8, i64 14344, !8, i64 14384, !8, i64 14424, !8, i64 14429, !8, i64 14434, !8, i64 14444, !8, i64 14454, !8, i64 14459, !8, i64 14464, !13, i64 14469, !8, i64 14472, !8, i64 14492, !8, i64 14512, !12, i64 14532, !13, i64 14536, !13, i64 14537, !8, i64 14538, !13, i64 14539, !14, i64 14540, !29, i64 14544}
!44 = !{!"_ZTS16ImGuiMouseSource", !8, i64 0}
!45 = !{!"_ZTS10ImGuiStyle", !12, i64 0, !12, i64 4, !11, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !11, i64 32, !10, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !11, i64 60, !12, i64 68, !12, i64 72, !11, i64 76, !11, i64 84, !11, i64 92, !11, i64 100, !12, i64 108, !12, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !12, i64 132, !12, i64 136, !12, i64 140, !12, i64 144, !12, i64 148, !12, i64 152, !10, i64 156, !11, i64 160, !11, i64 168, !12, i64 176, !11, i64 180, !11, i64 188, !11, i64 196, !11, i64 204, !12, i64 212, !13, i64 216, !13, i64 217, !13, i64 218, !12, i64 220, !12, i64 224, !8, i64 228, !12, i64 1076, !12, i64 1080, !12, i64 1084, !10, i64 1088, !10, i64 1092}
!46 = !{!"_ZTS20ImDrawListSharedData", !11, i64 0, !7, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !35, i64 28, !10, i64 44, !33, i64 48, !8, i64 64, !12, i64 448, !8, i64 452, !7, i64 520}
!47 = !{!"double", !8, i64 0}
!48 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !10, i64 0, !10, i64 4, !7, i64 8}
!49 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!50 = !{!"_ZTS16ImGuiInputSource", !8, i64 0}
!51 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !8, i64 0}
!52 = !{!"_ZTS20ImGuiKeyRoutingTable", !8, i64 0, !53, i64 312, !53, i64 328}
!53 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!54 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !55, i64 8, !12, i64 16, !10, i64 20, !13, i64 24, !10, i64 25}
!55 = !{!"long long", !8, i64 0}
!56 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !22, i64 12, !22, i64 28, !22, i64 44, !22, i64 60}
!57 = !{!"_ZTS19ImGuiNextWindowData", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !10, i64 56, !13, i64 60, !22, i64 64, !7, i64 80, !7, i64 88, !12, i64 96, !11, i64 100}
!58 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !7, i64 8}
!59 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !7, i64 8}
!60 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !7, i64 8}
!61 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!62 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !7, i64 8}
!63 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!64 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!65 = !{!"_ZTS8ImVectorI20ImGuiNavTreeNodeDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!66 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !7, i64 8}
!67 = !{!"_ZTS16ImGuiNavItemData", !7, i64 0, !10, i64 8, !10, i64 12, !22, i64 16, !10, i64 32, !55, i64 40, !12, i64 48, !12, i64 52, !12, i64 56}
!68 = !{!"_ZTS8ImGuiKey", !8, i64 0}
!69 = !{!"_ZTS12ImGuiPayload", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !8, i64 24, !13, i64 57, !13, i64 58}
!70 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !7, i64 8}
!71 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!72 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!73 = !{!"_ZTS6ImPoolI10ImGuiTableE", !74, i64 0, !24, i64 16, !10, i64 32, !10, i64 36}
!74 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !7, i64 8}
!75 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !76, i64 0, !24, i64 16, !10, i64 32, !10, i64 36}
!76 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !7, i64 8}
!77 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !7, i64 8}
!78 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !7, i64 8}
!79 = !{!"_ZTS19ImGuiInputTextState", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !29, i64 24, !80, i64 40, !80, i64 56, !13, i64 72, !10, i64 76, !12, i64 80, !81, i64 84, !12, i64 3712, !13, i64 3716, !13, i64 3717, !13, i64 3718, !10, i64 3720, !13, i64 3724, !10, i64 3728, !10, i64 3732}
!80 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !7, i64 8}
!81 = !{!"_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, !12, i64 28, !82, i64 32}
!82 = !{!"_ZTSN5ImStb12StbUndoStateE", !8, i64 0, !8, i64 1584, !14, i64 3582, !14, i64 3584, !10, i64 3588, !10, i64 3592}
!83 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !80, i64 8}
!84 = !{!"_ZTS6ImFont", !21, i64 0, !12, i64 16, !12, i64 20, !29, i64 24, !85, i64 40, !7, i64 56, !7, i64 64, !7, i64 72, !14, i64 80, !14, i64 82, !14, i64 84, !14, i64 86, !12, i64 88, !12, i64 92, !13, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !10, i64 112, !8, i64 116}
!85 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !7, i64 8}
!86 = !{!"_ZTS21ImGuiComboPreviewData", !22, i64 0, !11, i64 16, !11, i64 24, !11, i64 32, !12, i64 40, !10, i64 44}
!87 = !{!"_ZTS22ImGuiTypingSelectState", !88, i64 0, !8, i64 24, !10, i64 88, !10, i64 92, !12, i64 96, !13, i64 100}
!88 = !{!"_ZTS24ImGuiTypingSelectRequest", !10, i64 0, !10, i64 4, !7, i64 8, !13, i64 16, !13, i64 17, !8, i64 18}
!89 = !{!"_ZTS20ImGuiPlatformImeData", !13, i64 0, !11, i64 4, !12, i64 12}
!90 = !{!"_ZTS15ImGuiTextBuffer", !80, i64 0}
!91 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !7, i64 8}
!92 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !80, i64 0}
!93 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !80, i64 0}
!94 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !7, i64 8}
!95 = !{!"_ZTS12ImGuiLogType", !8, i64 0}
!96 = !{!"_ZTS14ImGuiTextIndex", !62, i64 0, !10, i64 16}
!97 = !{!"_ZTS18ImGuiMetricsConfig", !13, i64 0, !13, i64 1, !13, i64 2, !13, i64 3, !13, i64 4, !13, i64 5, !13, i64 6, !13, i64 7, !13, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24}
!98 = !{!"_ZTS16ImGuiIDStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !99, i64 16, !13, i64 32, !12, i64 36}
!99 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !7, i64 8}
!100 = !{!"_ZTS19ImGuiDebugAllocInfo", !10, i64 0, !10, i64 4, !14, i64 8, !8, i64 12}
!101 = !{!45, !12, i64 64}
!102 = !{!45, !12, i64 84}
!103 = !{!12, !12, i64 0}
!104 = !{i64 0, i64 4, !105, i64 4, i64 4, !105, i64 8, i64 4, !105, i64 12, i64 4, !103, i64 16, i64 4, !103, i64 20, i64 4, !103, i64 24, i64 4, !103, i64 28, i64 4, !103, i64 32, i64 4, !103, i64 36, i64 4, !103, i64 40, i64 4, !103, i64 44, i64 4, !103, i64 48, i64 4, !103, i64 52, i64 4, !103, i64 56, i64 4, !103, i64 60, i64 4, !103, i64 64, i64 4, !103, i64 68, i64 4, !103, i64 72, i64 4, !103}
!105 = !{!10, !10, i64 0}
!106 = !{!42, !10, i64 19248}
!107 = !{!42, !10, i64 19260}
!108 = !{!42, !10, i64 16484}
!109 = !{!45, !12, i64 68}
!110 = !{!45, !12, i64 72}
!111 = !{!42, !7, i64 16384}
!112 = !{!6, !18, i64 360}
!113 = !{!6, !14, i64 366}
!114 = !{!6, !12, i64 180}
!115 = !{!42, !10, i64 18860}
!116 = !{!42, !10, i64 20192}
!117 = !{!42, !50, i64 19292}
!118 = !{!13, !13, i64 0}
!119 = !{!42, !10, i64 16524}
!120 = !{!6, !12, i64 144}
!121 = !{!79, !13, i64 3724}
!122 = !{!79, !8, i64 107}
!123 = !{!79, !10, i64 8}
!124 = !{!79, !7, i64 64}
!125 = !{!79, !10, i64 16}
!126 = !{!79, !13, i64 72}
!127 = !{!79, !7, i64 48}
!128 = !{!79, !7, i64 32}
!129 = !{!79, !10, i64 12}
!130 = !{!79, !12, i64 80}
!131 = !{!79, !10, i64 3728}
!132 = !{!79, !10, i64 88}
!133 = !{!79, !10, i64 3732}
!134 = !{!79, !10, i64 92}
!135 = !{!79, !10, i64 84}
!136 = !{!43, !13, i64 3668}
!137 = !{!79, !8, i64 96}
!138 = !{!43, !13, i64 81}
!139 = !{!42, !10, i64 18792}
!140 = !{!79, !10, i64 24}
!141 = !{!8, !8, i64 0}
!142 = !{!42, !7, i64 15664}
!143 = !{!84, !12, i64 20}
!144 = !{!84, !12, i64 108}
!145 = !{!84, !7, i64 64}
!146 = !{!84, !7, i64 56}
!147 = !{!148, !12, i64 4}
!148 = !{!"_ZTS11ImFontGlyph", !10, i64 0, !10, i64 0, !10, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !12, i64 36}
!149 = !{!84, !12, i64 16}
!150 = !{!79, !13, i64 3718}
!151 = !{!79, !10, i64 76}
!152 = !{!79, !10, i64 3720}
!153 = !{!42, !13, i64 16497}
!154 = !{!43, !12, i64 3640}
!155 = !{!22, !12, i64 0}
!156 = !{!45, !12, i64 60}
!157 = !{!43, !12, i64 3644}
!158 = !{!6, !12, i64 276}
!159 = !{!79, !13, i64 3717}
!160 = !{!14, !14, i64 0}
!161 = !{!43, !13, i64 3669}
!162 = !{!79, !13, i64 3716}
!163 = !{!43, !12, i64 224}
!164 = !{!43, !12, i64 228}
!165 = !{!43, !13, i64 3670}
!166 = !{!43, !13, i64 3671}
!167 = !{!43, !10, i64 14544}
!168 = distinct !{!168, !169}
!169 = !{!"llvm.loop.mustprogress"}
!170 = !{!42, !13, i64 16496}
!171 = !{!79, !10, i64 100}
!172 = !{!43, !10, i64 0}
!173 = !{!43, !10, i64 4}
!174 = !{!43, !13, i64 84}
!175 = !{!43, !7, i64 168}
!176 = distinct !{!176, !169}
!177 = !{!79, !10, i64 56}
!178 = !{!29, !7, i64 8}
!179 = !{!29, !10, i64 0}
!180 = !{!79, !10, i64 40}
!181 = !{!182, !7, i64 0}
!182 = !{!"_ZTS26ImGuiInputTextCallbackData", !7, i64 0, !10, i64 8, !10, i64 12, !7, i64 16, !14, i64 24, !68, i64 28, !7, i64 32, !10, i64 40, !10, i64 44, !13, i64 48, !10, i64 52, !10, i64 56, !10, i64 60}
!183 = !{!182, !10, i64 8}
!184 = !{!182, !10, i64 12}
!185 = !{!182, !7, i64 16}
!186 = !{!182, !68, i64 28}
!187 = !{!182, !7, i64 32}
!188 = !{!182, !10, i64 40}
!189 = !{!182, !10, i64 44}
!190 = !{!182, !13, i64 48}
!191 = !{!182, !10, i64 52}
!192 = !{!182, !10, i64 56}
!193 = !{!182, !10, i64 60}
!194 = !{!42, !10, i64 23944}
!195 = !{!42, !7, i64 23960}
!196 = !{!42, !10, i64 23952}
!197 = !{!42, !10, i64 25120}
!198 = !{!22, !12, i64 4}
!199 = distinct !{!199, !169}
!200 = !{!11, !12, i64 0}
!201 = !{!11, !12, i64 4}
!202 = !{!35, !12, i64 12}
!203 = !{!35, !12, i64 4}
!204 = distinct !{!204, !169}
!205 = !{!6, !7, i64 680}
!206 = distinct !{!206, !169}
!207 = !{!43, !12, i64 16}
!208 = !{!79, !12, i64 3712}
!209 = !{!42, !13, i64 91}
!210 = !{!42, !13, i64 24384}
!211 = !{!42, !12, i64 24396}
!212 = !{!42, !10, i64 18828}
!213 = !{!42, !10, i64 18864}
!214 = !{!56, !10, i64 8}
!215 = !{!42, !10, i64 18856}
!216 = !{!42, !13, i64 24576}
!217 = !{!22, !12, 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