; LLVM IR from aap/librw :: skeleton/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, i32 }
%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, float, float, i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i16, i16, i16, i16, i8, i8, i8, [3 x 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, %struct.ImVector.7, %struct.ImDrawCmdHeader, %struct.ImDrawListSplitter, %struct.ImVector.9, %struct.ImVector.10, float, ptr }
%struct.ImVector.4 = type { i32, i32, ptr }
%struct.ImVector.6 = type { i32, i32, ptr }
%struct.ImVector.7 = type { i32, i32, ptr }
%struct.ImDrawCmdHeader = type <{ %struct.ImVec4, ptr, i32, [4 x i8] }>
%struct.ImDrawListSplitter = type { i32, i32, %struct.ImVector.8 }
%struct.ImVector.8 = type { i32, i32, ptr }
%struct.ImVector.9 = type { i32, i32, ptr }
%struct.ImVector.10 = type { i32, i32, ptr }
%struct.ImGuiContext = type { i8, i8, [6 x i8], %struct.ImGuiIO, %struct.ImGuiStyle, ptr, float, float, float, float, %struct.ImDrawListSharedData, double, i32, i32, i32, i8, i8, i8, i8, i8, ptr, [16 x i8], %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, ptr, %struct.ImVec2, i32, i32, float, %struct.ImVec2, %struct.ImVec2, i32, i32, i32, float, float, i8, i8, i8, 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, %struct.ImGuiNextItemData, %struct.ImGuiLastItemData, %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, i32, i32, i32, i32, i32, %struct.ImVector.17, i32, float, i32, i32, i32, i64, 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, i32, i32, i8, i8, 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.8, ptr, %struct.ImPool.27, %struct.ImVector.29, %struct.ImVector.30, %struct.ImGuiBoxSelectState, ptr, i32, %struct.ImVector.31, %struct.ImPool.32, i32, i32, float, float, i32, i32, i32, float, %struct.ImVec2, %struct.ImGuiInputTextState, %struct.ImGuiInputTextDeactivatedState, %struct.ImFont, i32, %struct.ImGuiDataTypeStorage, i32, i32, i32, i32, i32, float, float, i32, %struct.ImVec4, %struct.ImGuiComboPreviewData, %struct.ImRect, i8, i16, float, float, float, i8, i8, float, float, float, i16, i16, i16, %struct.ImVector.34, %struct.ImVector, %struct.ImGuiTypingSelectState, %struct.ImGuiPlatformImeData, %struct.ImGuiPlatformImeData, i8, float, %struct.ImGuiTextBuffer, %struct.ImVector.36, %struct.ImChunkStream, %struct.ImChunkStream.37, %struct.ImVector.38, i32, [9 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.34, [64 x i8] }
%struct.ImGuiIO = type <{ i32, i32, %struct.ImVec2, float, float, ptr, ptr, ptr, ptr, float, i8, [3 x i8], ptr, %struct.ImVec2, i8, i8, i8, i8, i8, i8, i8, i8, i8, [3 x i8], float, float, float, float, float, float, i8, i8, i8, i8, i8, [7 x i8], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i16, i8, i8, i8, i8, i8, i8, i8, [3 x i8], float, i32, i32, i32, i32, %struct.ImVec2, ptr, %struct.ImVec2, [5 x i8], [3 x i8], float, float, i32, i8, i8, i8, i8, i32, [666 x %struct.ImGuiKeyData], i8, [3 x 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, i8, i8, [5 x float], [5 x float], [5 x float], float, i8, i8, i8, i8, i16, [2 x i8], %struct.ImVector.5, [666 x i32], [666 x i8], [2 x i8], [16 x float], [4 x i8] }>
%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, float, %struct.ImVec2, i32, %struct.ImVec2, %struct.ImVec2, float, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, float, i8, i8, i8, float, float, [56 x %struct.ImVec4], float, float, float, i32, i32 }
%struct.ImDrawListSharedData = type { %struct.ImVec2, ptr, float, float, float, float, %struct.ImVec4, i32, %struct.ImVector.7, [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, i32, [4 x i8], i64, float, i32, i32, i8, i8, %struct.ImGuiDataTypeStorage, [2 x i8], i32, [4 x i8] }>
%struct.ImGuiNextWindowData = type { i32, i32, i32, i32, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, i32, i8, %struct.ImRect, ptr, ptr, float, %struct.ImVec2, i32 }
%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, float, float, float, i64 }
%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.ImGuiBoxSelectState = type <{ i32, i8, i8, i8, i8, i8, i16, i8, %struct.ImVec2, %struct.ImVec2, %struct.ImVec2, [4 x i8], ptr, i8, [3 x i8], %struct.ImRect, %struct.ImRect, %struct.ImRect, [4 x i8] }>
%struct.ImVector.31 = type { i32, i32, ptr }
%struct.ImPool.32 = type { %struct.ImVector.33, %struct.ImGuiStorage, i32, i32 }
%struct.ImVector.33 = type { i32, i32, ptr }
%struct.ImGuiInputTextState = type { ptr, i32, i32, i32, %struct.ImVector.5, %struct.ImVector.34, %struct.ImVector.34, 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.34 }
%struct.ImFont = type <{ %struct.ImVector.1, float, float, %struct.ImVector.5, %struct.ImVector.35, 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.35 = type { i32, i32, ptr }
%struct.ImGuiDataTypeStorage = type { [8 x i8] }
%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.36 = type { i32, i32, ptr }
%struct.ImChunkStream = type { %struct.ImVector.34 }
%struct.ImChunkStream.37 = type { %struct.ImVector.34 }
%struct.ImVector.38 = type { i32, i32, ptr }
%struct.ImGuiTextBuffer = type { %struct.ImVector.34 }
%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.39, i8, float }
%struct.ImVector.39 = type { i32, i32, ptr }
%struct.ImGuiDebugAllocInfo = type { i32, i32, i16, [6 x %struct.ImGuiDebugAllocEntry] }
%struct.ImGuiDebugAllocEntry = type { i32, i16, i16 }
%struct.ImVector.34 = 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.2 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv = external hidden unnamed_addr constant [134 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [34 x i8], align 1
@__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no = external hidden unnamed_addr constant [2 x i32], align 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) #4

declare noundef float @_ZN5ImGui13CalcItemWidthEv() #4

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

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

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

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

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

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(1029), 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: 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 @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) #4

declare void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(200), 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

; 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

; 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 @_ZN5ImGui14MarkItemEditedEj(i32 noundef) #4

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

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

declare void @_ZN5ImGui16SetClipboardTextEPKc(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

declare i32 @__gxx_personality_v0(...)

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 41
  %183 = load i8, ptr %182, align 1, !tbaa !11, !range !41, !noundef !42
  %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 %3646

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

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

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

194:                                              ; preds = %192
  br label %197

195:                                              ; preds = %192
  call void @__assert_fail(ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 4266, 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, 262144
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %201, label %205

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

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

208:                                              ; preds = %205
  br label %211

209:                                              ; preds = %205
  call void @__assert_fail(ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 4267, 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, 131072
  %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, 32
  %218 = icmp ne i32 %217, 0
  br label %219

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

222:                                              ; preds = %219
  br label %225

223:                                              ; preds = %219
  call void @__assert_fail(ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 4268, 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 3
  store ptr %228, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #14
  %229 = load ptr, ptr %20, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.ImGuiContext, ptr %229, i32 0, i32 4
  store ptr %230, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #14
  store i8 0, ptr %23, align 1, !tbaa !43
  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 !43
  %235 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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(1029) %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 !44
  %245 = call noundef float @_ZN5ImGui13CalcItemWidthEv()
  %246 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 6
  %251 = load float, ptr %250, align 8, !tbaa !46
  %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 !111
  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 !112
  %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 !113
  %267 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %268 = load float, ptr %267, align 4, !tbaa !113
  %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 !114
  %275 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %276 = load float, ptr %275, align 4, !tbaa !113
  %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 !111
  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 69
  %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 69
  %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 !44
  call void @llvm.lifetime.start.p0(i64 80, ptr %36) #14
  call void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(80) %36)
  %295 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 69
  %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 !44
  %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 !112
  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 1048576)
  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 87
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %36, ptr align 8 %310, i64 80, i1 false), !tbaa.struct !115
  %311 = load ptr, ptr %18, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.ImGuiWindow, ptr %311, i32 0, i32 69
  %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 !44
  %314 = load ptr, ptr %20, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.ImGuiContext, ptr %314, i32 0, i32 105
  %316 = load i32, ptr %315, align 4, !tbaa !116
  %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 108
  %322 = load i32, ptr %321, align 8, !tbaa !117
  %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, 32
  %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 105
  store i32 0, ptr %331, align 4, !tbaa !116
  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 105
  %335 = load i32, ptr %334, align 4, !tbaa !116
  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 54
  %338 = load i32, ptr %337, align 4, !tbaa !118
  %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 105
  store i32 0, ptr %343, align 4, !tbaa !116
  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 47
  %347 = getelementptr inbounds [56 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 !119
  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 !120
  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 !43
  %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 105
  store i32 %359, ptr %361, align 4, !tbaa !116
  call void @_ZN5ImGui11PopStyleVarEi(i32 noundef 3)
  call void @_ZN5ImGui13PopStyleColorEi(i32 noundef 1)
  %362 = load i8, ptr %40, align 1, !tbaa !43, !range !41, !noundef !42
  %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 34
  %368 = load ptr, ptr %367, align 8, !tbaa !121
  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 69
  %371 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %370, i32 0, i32 15
  %372 = load i32, ptr %371, align 8, !tbaa !122
  %373 = shl i32 1, %372
  %374 = load ptr, ptr %34, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.ImGuiWindow, ptr %374, i32 0, i32 69
  %376 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %375, i32 0, i32 17
  %377 = load i16, ptr %376, align 2, !tbaa !123
  %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 !123
  %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 69
  %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 33
  %389 = getelementptr inbounds %struct.ImVec2, ptr %388, i32 0, i32 0
  %390 = load float, ptr %389, align 8, !tbaa !124
  %391 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %392 = load float, ptr %391, align 4, !tbaa !113
  %393 = fsub float %392, %390
  store float %393, ptr %391, align 4, !tbaa !113
  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 %3645 [
    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 !112
  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 1048576)
  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 %3645

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 87
  %416 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %415, i32 0, i32 1
  %417 = load i32, ptr %416, align 4, !tbaa !125
  %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 !43
  %420 = load i8, ptr %42, align 1, !tbaa !43, !range !41, !noundef !42
  %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 203
  store i32 1, ptr %424, align 8, !tbaa !126
  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 87
  %430 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %429, i32 0, i32 1
  %431 = load i32, ptr %430, align 4, !tbaa !125
  %432 = and i32 %431, 2048
  %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, 512
  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, 512
  %440 = icmp ne i32 %439, 0
  %441 = zext i1 %440 to i8
  store i8 %441, ptr %44, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #14
  %442 = load i32, ptr %15, align 4, !tbaa !9
  %443 = and i32 %442, 1024
  %444 = icmp ne i32 %443, 0
  %445 = zext i1 %444 to i8
  store i8 %445, ptr %45, align 1, !tbaa !43
  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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #14
  %450 = load i32, ptr %15, align 4, !tbaa !9
  %451 = and i32 %450, 2097152
  %452 = icmp ne i32 %451, 0
  %453 = zext i1 %452 to i8
  store i8 %453, ptr %47, align 1, !tbaa !43
  %454 = load i8, ptr %47, align 1, !tbaa !43, !range !41, !noundef !42
  %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.62, ptr noundef @.str.2, i32 noundef 4353, 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 54
  %466 = load i32, ptr %465, align 4, !tbaa !118
  %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 105
  %472 = load i32, ptr %471, align 4, !tbaa !116
  %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 108
  %478 = load i32, ptr %477, align 8, !tbaa !117
  %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 114
  %484 = load i32, ptr %483, align 8, !tbaa !127
  %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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #14
  %493 = load i8, ptr %42, align 1, !tbaa !43, !range !41, !noundef !42
  %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 80
  %498 = getelementptr inbounds [5 x i8], ptr %497, i64 0, i64 0
  %499 = load i8, ptr %498, align 8, !tbaa !43, !range !41, !noundef !42
  %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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #14
  %504 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 54
  %512 = load i32, ptr %511, align 4, !tbaa !118
  %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 68
  %517 = load i32, ptr %516, align 4, !tbaa !128
  %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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #14
  %524 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 54
  %532 = load i32, ptr %531, align 4, !tbaa !118
  %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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #14
  store i8 0, ptr %52, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #14
  store i8 0, ptr %53, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #14
  %539 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 28
  %544 = getelementptr inbounds %struct.ImVec2, ptr %543, i32 0, i32 1
  %545 = load float, ptr %544, align 4, !tbaa !129
  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 !45
  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 !130, !range !41, !noundef !42
  %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 !43
  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 !131
  %566 = zext i8 %565 to i32
  %567 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #14
  %575 = load i8, ptr %49, align 1, !tbaa !43, !range !41, !noundef !42
  %576 = trunc i8 %575 to i1
  br i1 %576, label %583, label %577

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

580:                                              ; preds = %577
  %581 = load i8, ptr %48, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #14
  %586 = load i8, ptr %57, align 1, !tbaa !43, !range !41, !noundef !42
  %587 = trunc i8 %586 to i1
  br i1 %587, label %591, label %588

588:                                              ; preds = %583
  %589 = load i8, ptr %51, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43
  %594 = load i8, ptr %58, align 1, !tbaa !43, !range !41, !noundef !42
  %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 54
  %599 = load i32, ptr %598, align 4, !tbaa !118
  %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 !43, !range !41, !noundef !42
  %604 = trunc i8 %603 to i1
  br i1 %604, label %608, label %605

605:                                              ; preds = %602
  %606 = load i8, ptr %55, align 1, !tbaa !43, !range !41, !noundef !42
  %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 206
  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 !130
  %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 !132
  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 !43, !range !41, !noundef !42
  %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.34, ptr %628, i32 0, i32 2
  %630 = load ptr, ptr %629, align 8, !tbaa !133
  %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 !132
  %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 !43, !range !41, !noundef !42
  %643 = trunc i8 %642 to i1
  br i1 %643, label %648, label %644

644:                                              ; preds = %641
  %645 = load i8, ptr %55, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43
  %651 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !134
  %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 !135, !range !41, !noundef !42
  %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.34, ptr %666, i32 0, i32 2
  %668 = load ptr, ptr %667, align 8, !tbaa !136
  %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 !43
  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 !132
  %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 !135
  %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 !137
  %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 !138
  %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 !134
  %704 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !139
  %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 !43, !range !41, !noundef !42
  %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 !43, !range !41, !noundef !42
  %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 !140
  %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 !141
  %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 !142
  %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 !143
  %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 !144
  %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 !43, !range !41, !noundef !42
  %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, 4096
  %743 = icmp ne i32 %742, 0
  br i1 %743, label %744, label %745

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

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

748:                                              ; preds = %745
  %749 = load i8, ptr %60, align 1, !tbaa !43, !range !41, !noundef !42
  %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 108
  %754 = load i32, ptr %753, align 8, !tbaa !117
  %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 !43
  br label %758

758:                                              ; preds = %757, %751, %745
  %759 = load i8, ptr %49, align 1, !tbaa !43, !range !41, !noundef !42
  %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 69
  %764 = load i8, ptr %763, align 4, !tbaa !145, !range !41, !noundef !42
  %765 = trunc i8 %764 to i1
  br i1 %765, label %766, label %767

766:                                              ; preds = %761
  store i8 1, ptr %53, align 1, !tbaa !43
  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, 2048
  %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 !146
  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 15
  %781 = load i8, ptr %780, align 1, !tbaa !147, !range !41, !noundef !42
  %782 = trunc i8 %781 to i1
  %783 = zext i1 %782 to i8
  store i8 %783, ptr %62, align 1, !tbaa !43
  %784 = load ptr, ptr %20, align 8, !tbaa !5
  %785 = getelementptr inbounds %struct.ImGuiContext, ptr %784, i32 0, i32 54
  %786 = load i32, ptr %785, align 4, !tbaa !118
  %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 !43, !range !41, !noundef !42
  %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 !132
  %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.63, ptr noundef @.str.2, i32 noundef 4438, 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 54
  %815 = load i32, ptr %814, align 4, !tbaa !118
  %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 !43, !range !41, !noundef !42
  %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 80
  %826 = load i32, ptr %825, align 8, !tbaa !148
  %827 = or i32 %826, 3
  store i32 %827, ptr %825, align 8, !tbaa !148
  %828 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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, 262144
  %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 80
  %837 = load i32, ptr %836, align 8, !tbaa !148
  %838 = or i32 %837, 12
  store i32 %838, ptr %836, align 8, !tbaa !148
  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 !43, !range !41, !noundef !42
  %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 !43, !range !41, !noundef !42
  %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 54
  %858 = load i32, ptr %857, align 4, !tbaa !118
  %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 54
  %868 = load i32, ptr %867, align 4, !tbaa !118
  %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 80
  %874 = getelementptr inbounds [5 x i8], ptr %873, i64 0, i64 0
  %875 = load i8, ptr %874, align 8, !tbaa !43, !range !41, !noundef !42
  %876 = trunc i8 %875 to i1
  br i1 %876, label %877, label %884

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

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

883:                                              ; preds = %880
  store i8 1, ptr %52, align 1, !tbaa !43
  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 54
  %887 = load i32, ptr %886, align 4, !tbaa !118
  %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 !43, !range !41, !noundef !42
  %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 !43
  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 !43, !range !41, !noundef !42
  %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 !43, !range !41, !noundef !42
  %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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #14
  store i8 0, ptr %65, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #14
  store i8 0, ptr %66, align 1, !tbaa !43
  %915 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43, !range !41, !noundef !42
  %922 = trunc i8 %921 to i1
  br i1 %922, label %926, label %923

923:                                              ; preds = %920
  %924 = load i8, ptr %64, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !137
  %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 !149
  %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 !138
  %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 !134
  %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 !43, !range !41, !noundef !42
  %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 !43
  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 !43, !range !41, !noundef !42
  %963 = trunc i8 %962 to i1
  br i1 %963, label %973, label %964

964:                                              ; preds = %961
  %965 = load i8, ptr %64, align 1, !tbaa !43, !range !41, !noundef !42
  %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 54
  %970 = load i32, ptr %969, align 4, !tbaa !118
  %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 !43, !range !41, !noundef !42
  %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 !135, !range !41, !noundef !42
  %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 !43
  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 !43, !range !41, !noundef !42
  %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.34, ptr %994, i32 0, i32 2
  %996 = load ptr, ptr %995, align 8, !tbaa !136
  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 !150
  %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 !43
  %1008 = load i8, ptr %45, align 1, !tbaa !43, !range !41, !noundef !42
  %1009 = trunc i8 %1008 to i1
  br i1 %1009, label %1010, label %1081

1010:                                             ; preds = %1005
  %1011 = load i8, ptr %69, align 1, !tbaa !43, !range !41, !noundef !42
  %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 5
  %1016 = load ptr, ptr %1015, align 8, !tbaa !151
  %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 208
  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 5
  %1022 = load ptr, ptr %1021, align 8, !tbaa !151
  %1023 = getelementptr inbounds %struct.ImFont, ptr %1022, i32 0, i32 2
  %1024 = load float, ptr %1023, align 4, !tbaa !152
  %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 !152
  %1027 = load ptr, ptr %20, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.ImGuiContext, ptr %1027, i32 0, i32 5
  %1029 = load ptr, ptr %1028, align 8, !tbaa !151
  %1030 = getelementptr inbounds %struct.ImFont, ptr %1029, i32 0, i32 16
  %1031 = load float, ptr %1030, align 4, !tbaa !153
  %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 !153
  %1034 = load ptr, ptr %20, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.ImGuiContext, ptr %1034, i32 0, i32 5
  %1036 = load ptr, ptr %1035, align 8, !tbaa !151
  %1037 = getelementptr inbounds %struct.ImFont, ptr %1036, i32 0, i32 17
  %1038 = load float, ptr %1037, align 8, !tbaa !154
  %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 !154
  %1041 = load ptr, ptr %20, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.ImGuiContext, ptr %1041, i32 0, i32 5
  %1043 = load ptr, ptr %1042, align 8, !tbaa !151
  %1044 = getelementptr inbounds %struct.ImFont, ptr %1043, i32 0, i32 18
  %1045 = load float, ptr %1044, align 4, !tbaa !155
  %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 !155
  %1048 = load ptr, ptr %20, align 8, !tbaa !5
  %1049 = getelementptr inbounds %struct.ImGuiContext, ptr %1048, i32 0, i32 5
  %1050 = load ptr, ptr %1049, align 8, !tbaa !151
  %1051 = getelementptr inbounds %struct.ImFont, ptr %1050, i32 0, i32 6
  %1052 = load ptr, ptr %1051, align 8, !tbaa !156
  %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 !156
  %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 !157
  %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 !158
  %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 !160
  %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.64, ptr noundef @.str.2, i32 noundef 4507, 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 54
  %1084 = load i32, ptr %1083, align 4, !tbaa !118
  %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.65, ptr noundef @.str.2, i32 noundef 4515, 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 !134
  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 !161
  %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 !162
  %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 !163
  %1105 = load ptr, ptr %21, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.ImGuiIO, ptr %1105, i32 0, i32 64
  %1107 = getelementptr inbounds [5 x i8], ptr %1106, i64 0, i64 0
  %1108 = load i8, ptr %1107, align 8, !tbaa !43, !range !41, !noundef !42
  %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 58
  %1113 = zext i1 %1110 to i8
  store i8 %1113, ptr %1112, align 1, !tbaa !164
  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 63
  %1116 = getelementptr inbounds %struct.ImVec2, ptr %1115, i32 0, i32 0
  %1117 = load float, ptr %1116, align 8, !tbaa !165
  %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 !166
  %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 !167
  %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 !139
  %1130 = fadd float %1126, %1129
  store float %1130, ptr %73, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #14
  %1131 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 63
  %1136 = getelementptr inbounds %struct.ImVec2, ptr %1135, i32 0, i32 1
  %1137 = load float, ptr %1136, align 4, !tbaa !168
  %1138 = load ptr, ptr %34, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.ImGuiWindow, ptr %1138, i32 0, i32 69
  %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 !169
  %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 6
  %1147 = load float, ptr %1146, align 8, !tbaa !46
  %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 !45
  %1151 = load i8, ptr %53, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !170
  br label %1359

1157:                                             ; preds = %1149
  %1158 = load i8, ptr %42, align 1, !tbaa !43, !range !41, !noundef !42
  %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 82
  %1163 = getelementptr inbounds [5 x i16], ptr %1162, i64 0, i64 0
  %1164 = load i16, ptr %1163, align 2, !tbaa !171
  %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 70
  %1170 = load i8, ptr %1169, align 1, !tbaa !172, !range !41, !noundef !42
  %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 !45
  %1177 = load float, ptr %74, align 4, !tbaa !45
  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 82
  %1180 = getelementptr inbounds [5 x i16], ptr %1179, i64 0, i64 0
  %1181 = load i16, ptr %1180, align 2, !tbaa !171
  %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 !144
  %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 !144
  %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 !43
  %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 !141
  %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 !143
  %1214 = icmp ne i32 %1209, %1213
  br i1 %1214, label %1218, label %1215

1215:                                             ; preds = %1203
  %1216 = load i8, ptr %76, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !141
  %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 !143
  %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 !144
  %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 !144
  %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 !144
  %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 !143
  %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 !144
  %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 !43
  %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 !43, !range !41, !noundef !42
  %1267 = trunc i8 %1266 to i1
  br i1 %1267, label %1285, label %1268

1268:                                             ; preds = %1253
  %1269 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !143
  %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 !144
  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 !173
  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 80
  %1293 = getelementptr inbounds [5 x i8], ptr %1292, i64 0, i64 0
  %1294 = load i8, ptr %1293, align 8, !tbaa !43, !range !41, !noundef !42
  %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 !170, !range !41, !noundef !42
  %1300 = trunc i8 %1299 to i1
  br i1 %1300, label %1324, label %1301

1301:                                             ; preds = %1296
  %1302 = load i8, ptr %42, align 1, !tbaa !43, !range !41, !noundef !42
  %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 70
  %1307 = load i8, ptr %1306, align 1, !tbaa !172, !range !41, !noundef !42
  %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 !45
  %1314 = load float, ptr %74, align 4, !tbaa !45
  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 !45
  %1320 = load float, ptr %74, align 4, !tbaa !45
  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 64
  %1327 = getelementptr inbounds [5 x i8], ptr %1326, i64 0, i64 0
  %1328 = load i8, ptr %1327, align 8, !tbaa !43, !range !41, !noundef !42
  %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 !170, !range !41, !noundef !42
  %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 61
  %1338 = getelementptr inbounds %struct.ImVec2, ptr %1337, i32 0, i32 0
  %1339 = load float, ptr %1338, align 8, !tbaa !174
  %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 61
  %1344 = getelementptr inbounds %struct.ImVec2, ptr %1343, i32 0, i32 1
  %1345 = load float, ptr %1344, align 4, !tbaa !175
  %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 !45
  %1352 = load float, ptr %74, align 4, !tbaa !45
  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 !173
  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 !170, !range !41, !noundef !42
  %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 64
  %1367 = getelementptr inbounds [5 x i8], ptr %1366, i64 0, i64 0
  %1368 = load i8, ptr %1367, align 8, !tbaa !43, !range !41, !noundef !42
  %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 !170
  br label %1373

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

1377:                                             ; preds = %1373
  %1378 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %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 @_ZN5ImGui8ShortcutEiij(i32 noundef 512, i32 noundef 1, i32 noundef %1381)
  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 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef %1384, ptr noundef %78, i32 noundef %1385, ptr noundef %1386, ptr noundef %1387, i1 noundef zeroext false)
  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 69
  %1397 = load i8, ptr %1396, align 4, !tbaa !145, !range !41, !noundef !42
  %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 71
  %1402 = load i8, ptr %1401, align 2, !tbaa !176, !range !41, !noundef !42
  %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 !43, !range !41, !noundef !42
  %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 69
  %1410 = load i8, ptr %1409, align 4, !tbaa !145, !range !41, !noundef !42
  %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 !43
  %1417 = load ptr, ptr %21, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.ImGuiIO, ptr %1417, i32 0, i32 100
  %1419 = getelementptr inbounds %struct.ImVector.5, ptr %1418, i32 0, i32 0
  %1420 = load i32, ptr %1419, align 8, !tbaa !177
  %1421 = icmp sgt i32 %1420, 0
  br i1 %1421, label %1422, label %1470

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

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

1428:                                             ; preds = %1425
  %1429 = load i8, ptr %48, align 1, !tbaa !43, !range !41, !noundef !42
  %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 100
  %1436 = getelementptr inbounds %struct.ImVector.5, ptr %1435, i32 0, i32 0
  %1437 = load i32, ptr %1436, align 8, !tbaa !177
  %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 100
  %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 !171
  %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 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef %1451, ptr noundef %81, i32 noundef %1452, ptr noundef %1453, ptr noundef %1454, i1 noundef zeroext false)
  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 %3653 [
    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 !178

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 100
  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 !43
  %1472 = load ptr, ptr %20, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.ImGuiContext, ptr %1472, i32 0, i32 54
  %1474 = load i32, ptr %1473, align 4, !tbaa !118
  %1475 = load i32, ptr %25, align 4, !tbaa !9
  %1476 = icmp eq i32 %1474, %1475
  br i1 %1476, label %1477, label %2202

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

1482:                                             ; preds = %1477
  %1483 = load i8, ptr %52, align 1, !tbaa !43, !range !41, !noundef !42
  %1484 = trunc i8 %1483 to i1
  br i1 %1484, label %2202, 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.65, ptr noundef @.str.2, i32 noundef 4632, 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 !111
  %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 !112
  %1498 = fsub float %1493, %1497
  %1499 = load ptr, ptr %20, align 8, !tbaa !5
  %1500 = getelementptr inbounds %struct.ImGuiContext, ptr %1499, i32 0, i32 6
  %1501 = load float, ptr %1500, align 8, !tbaa !46
  %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 !181
  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 70
  %1511 = load i8, ptr %1510, align 1, !tbaa !172, !range !41, !noundef !42
  %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 !43, !range !41, !noundef !42
  %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 71
  %1520 = load i8, ptr %1519, align 2, !tbaa !176, !range !41, !noundef !42
  %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 69
  %1525 = load i8, ptr %1524, align 4, !tbaa !145, !range !41, !noundef !42
  %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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #14
  %1530 = load i8, ptr %62, align 1, !tbaa !43, !range !41, !noundef !42
  %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 69
  %1535 = load i8, ptr %1534, align 4, !tbaa !145, !range !41, !noundef !42
  %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 72
  %1540 = load i8, ptr %1539, align 1, !tbaa !182, !range !41, !noundef !42
  %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 71
  %1545 = load i8, ptr %1544, align 2, !tbaa !176, !range !41, !noundef !42
  %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 !43
  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 @_ZN5ImGui8ShortcutEiij(i32 noundef 4665, i32 noundef 1, i32 noundef %1551)
  br i1 %1552, label %1556, label %1553

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

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

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

1562:                                             ; preds = %1559
  %1563 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43
  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 @_ZN5ImGui8ShortcutEiij(i32 noundef 4644, i32 noundef 0, i32 noundef %1573)
  br i1 %1574, label %1578, label %1575

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

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

1581:                                             ; preds = %1578
  %1582 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43
  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 @_ZN5ImGui8ShortcutEiij(i32 noundef 4663, i32 noundef 1, i32 noundef %1592)
  br i1 %1593, label %1597, label %1594

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

1597:                                             ; preds = %1594, %1589
  %1598 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43
  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 @_ZN5ImGui8ShortcutEiij(i32 noundef 4667, i32 noundef 1, i32 noundef %1604)
  br i1 %1605, label %1606, label %1612

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

1609:                                             ; preds = %1606
  %1610 = load i8, ptr %46, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43
  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 @_ZN5ImGui8ShortcutEiij(i32 noundef 4666, i32 noundef 1, i32 noundef %1615)
  br i1 %1616, label %1623, label %1617

1617:                                             ; preds = %1612
  %1618 = load i8, ptr %62, align 1, !tbaa !43, !range !41, !noundef !42
  %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 @_ZN5ImGui8ShortcutEiij(i32 noundef 12859, i32 noundef 1, i32 noundef %1621)
  br i1 %1622, label %1623, label %1629

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

1626:                                             ; preds = %1623
  %1627 = load i8, ptr %46, align 1, !tbaa !43, !range !41, !noundef !42
  %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 !43
  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 @_ZN5ImGui8ShortcutEiij(i32 noundef 4642, i32 noundef 0, i32 noundef %1632)
  %1634 = zext i1 %1633 to i8
  store i8 %1634, ptr %93, align 1, !tbaa !43
  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 !183
  %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 !184
  %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 !43
  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 !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #14
  %1655 = load i8, ptr %94, align 1, !tbaa !43, !range !41, !noundef !42
  %1656 = trunc i8 %1655 to i1
  br i1 %1656, label %1657, label %1670

1657:                                             ; preds = %1652
  %1658 = load ptr, ptr %20, align 8, !tbaa !5
  %1659 = getelementptr inbounds %struct.ImGuiContext, ptr %1658, i32 0, i32 3
  %1660 = getelementptr inbounds %struct.ImGuiIO, ptr %1659, i32 0, i32 16
  %1661 = load i8, ptr %1660, align 2, !tbaa !185, !range !41, !noundef !42
  %1662 = trunc i8 %1661 to i1
  %1663 = zext i1 %1662 to i64
  %1664 = select i1 %1662, i32 634, i32 636
  %1665 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %1664, i1 noundef zeroext false)
  br i1 %1665, label %1668, label %1666

1666:                                             ; preds = %1657
  %1667 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 635, i1 noundef zeroext false)
  br label %1668

1668:                                             ; preds = %1666, %1657
  %1669 = phi i1 [ true, %1657 ], [ %1667, %1666 ]
  br label %1670

1670:                                             ; preds = %1668, %1652
  %1671 = phi i1 [ false, %1652 ], [ %1669, %1668 ]
  %1672 = zext i1 %1671 to i8
  store i8 %1672, ptr %96, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #14
  %1673 = load i32, ptr %25, align 4, !tbaa !9
  %1674 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 526, i32 noundef 1, i32 noundef %1673)
  br i1 %1674, label %1690, label %1675

1675:                                             ; preds = %1670
  %1676 = load i8, ptr %94, align 1, !tbaa !43, !range !41, !noundef !42
  %1677 = trunc i8 %1676 to i1
  br i1 %1677, label %1678, label %1688

1678:                                             ; preds = %1675
  %1679 = load ptr, ptr %20, align 8, !tbaa !5
  %1680 = getelementptr inbounds %struct.ImGuiContext, ptr %1679, i32 0, i32 3
  %1681 = getelementptr inbounds %struct.ImGuiIO, ptr %1680, i32 0, i32 16
  %1682 = load i8, ptr %1681, align 2, !tbaa !185, !range !41, !noundef !42
  %1683 = trunc i8 %1682 to i1
  %1684 = zext i1 %1683 to i64
  %1685 = select i1 %1683, i32 636, i32 634
  %1686 = load i32, ptr %25, align 4, !tbaa !9
  %1687 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef %1685, i32 noundef 1, i32 noundef %1686)
  br label %1688

1688:                                             ; preds = %1678, %1675
  %1689 = phi i1 [ false, %1675 ], [ %1687, %1678 ]
  br label %1690

1690:                                             ; preds = %1688, %1670
  %1691 = phi i1 [ true, %1670 ], [ %1689, %1688 ]
  %1692 = zext i1 %1691 to i8
  store i8 %1692, ptr %97, align 1, !tbaa !43
  %1693 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %1693, label %1694, label %1708

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

1698:                                             ; preds = %1694
  br label %1704

1699:                                             ; preds = %1694
  %1700 = load i8, ptr %85, align 1, !tbaa !43, !range !41, !noundef !42
  %1701 = trunc i8 %1700 to i1
  %1702 = zext i1 %1701 to i64
  %1703 = select i1 %1701, i32 2097164, i32 2097152
  br label %1704

1704:                                             ; preds = %1699, %1698
  %1705 = phi i32 [ 2097156, %1698 ], [ %1703, %1699 ]
  %1706 = load i32, ptr %84, align 4, !tbaa !9
  %1707 = or i32 %1705, %1706
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1695, i32 noundef %1707)
  br label %2187

1708:                                             ; preds = %1690
  %1709 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %1709, label %1710, label %1724

1710:                                             ; preds = %1708
  %1711 = load ptr, ptr %43, align 8, !tbaa !5
  %1712 = load i8, ptr %86, align 1, !tbaa !43, !range !41, !noundef !42
  %1713 = trunc i8 %1712 to i1
  br i1 %1713, label %1714, label %1715

1714:                                             ; preds = %1710
  br label %1720

1715:                                             ; preds = %1710
  %1716 = load i8, ptr %85, align 1, !tbaa !43, !range !41, !noundef !42
  %1717 = trunc i8 %1716 to i1
  %1718 = zext i1 %1717 to i64
  %1719 = select i1 %1717, i32 2097165, i32 2097153
  br label %1720

1720:                                             ; preds = %1715, %1714
  %1721 = phi i32 [ 2097157, %1714 ], [ %1719, %1715 ]
  %1722 = load i32, ptr %84, align 4, !tbaa !9
  %1723 = or i32 %1721, %1722
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1711, i32 noundef %1723)
  br label %2186

1724:                                             ; preds = %1708
  %1725 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %1725, label %1726, label %1754

1726:                                             ; preds = %1724
  %1727 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1728 = trunc i8 %1727 to i1
  br i1 %1728, label %1729, label %1754

1729:                                             ; preds = %1726
  %1730 = load ptr, ptr %21, align 8, !tbaa !5
  %1731 = getelementptr inbounds %struct.ImGuiIO, ptr %1730, i32 0, i32 69
  %1732 = load i8, ptr %1731, align 4, !tbaa !145, !range !41, !noundef !42
  %1733 = trunc i8 %1732 to i1
  br i1 %1733, label %1734, label %1745

1734:                                             ; preds = %1729
  %1735 = load ptr, ptr %34, align 8, !tbaa !5
  %1736 = load ptr, ptr %34, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.ImGuiWindow, ptr %1736, i32 0, i32 28
  %1738 = getelementptr inbounds %struct.ImVec2, ptr %1737, i32 0, i32 1
  %1739 = load float, ptr %1738, align 4, !tbaa !129
  %1740 = load ptr, ptr %20, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.ImGuiContext, ptr %1740, i32 0, i32 6
  %1742 = load float, ptr %1741, align 8, !tbaa !46
  %1743 = fsub float %1739, %1742
  %1744 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1743, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1735, float noundef %1744)
  br label %1753

1745:                                             ; preds = %1729
  %1746 = load ptr, ptr %43, align 8, !tbaa !5
  %1747 = load i8, ptr %86, align 1, !tbaa !43, !range !41, !noundef !42
  %1748 = trunc i8 %1747 to i1
  %1749 = zext i1 %1748 to i64
  %1750 = select i1 %1748, i32 2097158, i32 2097154
  %1751 = load i32, ptr %84, align 4, !tbaa !9
  %1752 = or i32 %1750, %1751
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1746, i32 noundef %1752)
  br label %1753

1753:                                             ; preds = %1745, %1734
  br label %2185

1754:                                             ; preds = %1726, %1724
  %1755 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %1755, label %1756, label %1785

1756:                                             ; preds = %1754
  %1757 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1758 = trunc i8 %1757 to i1
  br i1 %1758, label %1759, label %1785

1759:                                             ; preds = %1756
  %1760 = load ptr, ptr %21, align 8, !tbaa !5
  %1761 = getelementptr inbounds %struct.ImGuiIO, ptr %1760, i32 0, i32 69
  %1762 = load i8, ptr %1761, align 4, !tbaa !145, !range !41, !noundef !42
  %1763 = trunc i8 %1762 to i1
  br i1 %1763, label %1764, label %1776

1764:                                             ; preds = %1759
  %1765 = load ptr, ptr %34, align 8, !tbaa !5
  %1766 = load ptr, ptr %34, align 8, !tbaa !5
  %1767 = getelementptr inbounds %struct.ImGuiWindow, ptr %1766, i32 0, i32 28
  %1768 = getelementptr inbounds %struct.ImVec2, ptr %1767, i32 0, i32 1
  %1769 = load float, ptr %1768, align 4, !tbaa !129
  %1770 = load ptr, ptr %20, align 8, !tbaa !5
  %1771 = getelementptr inbounds %struct.ImGuiContext, ptr %1770, i32 0, i32 6
  %1772 = load float, ptr %1771, align 8, !tbaa !46
  %1773 = fadd float %1769, %1772
  %1774 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %1775 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %1773, float noundef %1774)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %1765, float noundef %1775)
  br label %1784

1776:                                             ; preds = %1759
  %1777 = load ptr, ptr %43, align 8, !tbaa !5
  %1778 = load i8, ptr %86, align 1, !tbaa !43, !range !41, !noundef !42
  %1779 = trunc i8 %1778 to i1
  %1780 = zext i1 %1779 to i64
  %1781 = select i1 %1779, i32 2097159, i32 2097155
  %1782 = load i32, ptr %84, align 4, !tbaa !9
  %1783 = or i32 %1781, %1782
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1777, i32 noundef %1783)
  br label %1784

1784:                                             ; preds = %1776, %1764
  br label %2184

1785:                                             ; preds = %1756, %1754
  %1786 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  br i1 %1786, label %1787, label %1802

1787:                                             ; preds = %1785
  %1788 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1789 = trunc i8 %1788 to i1
  br i1 %1789, label %1790, label %1802

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

1802:                                             ; preds = %1787, %1785
  %1803 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  br i1 %1803, label %1804, label %1818

1804:                                             ; preds = %1802
  %1805 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1806 = trunc i8 %1805 to i1
  br i1 %1806, label %1807, label %1818

1807:                                             ; preds = %1804
  %1808 = load ptr, ptr %43, align 8, !tbaa !5
  %1809 = load i32, ptr %84, align 4, !tbaa !9
  %1810 = or i32 2097167, %1809
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1808, i32 noundef %1810)
  %1811 = load i32, ptr %83, align 4, !tbaa !9
  %1812 = sitofp i32 %1811 to float
  %1813 = load ptr, ptr %20, align 8, !tbaa !5
  %1814 = getelementptr inbounds %struct.ImGuiContext, ptr %1813, i32 0, i32 6
  %1815 = load float, ptr %1814, align 8, !tbaa !46
  %1816 = load float, ptr %54, align 4, !tbaa !45
  %1817 = call float @llvm.fmuladd.f32(float %1812, float %1815, float %1816)
  store float %1817, ptr %54, align 4, !tbaa !45
  br label %2182

1818:                                             ; preds = %1804, %1802
  %1819 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %1819, label %1820, label %1834

1820:                                             ; preds = %1818
  %1821 = load ptr, ptr %43, align 8, !tbaa !5
  %1822 = load ptr, ptr %21, align 8, !tbaa !5
  %1823 = getelementptr inbounds %struct.ImGuiIO, ptr %1822, i32 0, i32 69
  %1824 = load i8, ptr %1823, align 4, !tbaa !145, !range !41, !noundef !42
  %1825 = trunc i8 %1824 to i1
  br i1 %1825, label %1826, label %1829

1826:                                             ; preds = %1820
  %1827 = load i32, ptr %84, align 4, !tbaa !9
  %1828 = or i32 2097158, %1827
  br label %1832

1829:                                             ; preds = %1820
  %1830 = load i32, ptr %84, align 4, !tbaa !9
  %1831 = or i32 2097156, %1830
  br label %1832

1832:                                             ; preds = %1829, %1826
  %1833 = phi i32 [ %1828, %1826 ], [ %1831, %1829 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1821, i32 noundef %1833)
  br label %2181

1834:                                             ; preds = %1818
  %1835 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %1835, label %1836, label %1850

1836:                                             ; preds = %1834
  %1837 = load ptr, ptr %43, align 8, !tbaa !5
  %1838 = load ptr, ptr %21, align 8, !tbaa !5
  %1839 = getelementptr inbounds %struct.ImGuiIO, ptr %1838, i32 0, i32 69
  %1840 = load i8, ptr %1839, align 4, !tbaa !145, !range !41, !noundef !42
  %1841 = trunc i8 %1840 to i1
  br i1 %1841, label %1842, label %1845

1842:                                             ; preds = %1836
  %1843 = load i32, ptr %84, align 4, !tbaa !9
  %1844 = or i32 2097159, %1843
  br label %1848

1845:                                             ; preds = %1836
  %1846 = load i32, ptr %84, align 4, !tbaa !9
  %1847 = or i32 2097157, %1846
  br label %1848

1848:                                             ; preds = %1845, %1842
  %1849 = phi i32 [ %1844, %1842 ], [ %1847, %1845 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1837, i32 noundef %1849)
  br label %2180

1850:                                             ; preds = %1834
  %1851 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  br i1 %1851, label %1852, label %1871

1852:                                             ; preds = %1850
  %1853 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %1854 = trunc i8 %1853 to i1
  br i1 %1854, label %1871, label %1855

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

1858:                                             ; preds = %1855
  %1859 = load ptr, ptr %43, align 8, !tbaa !5
  %1860 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1859)
  br i1 %1860, label %1867, label %1861

1861:                                             ; preds = %1858
  %1862 = load i8, ptr %85, align 1, !tbaa !43, !range !41, !noundef !42
  %1863 = trunc i8 %1862 to i1
  br i1 %1863, label %1864, label %1866

1864:                                             ; preds = %1861
  %1865 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1865, i32 noundef 6291469)
  br label %1866

1866:                                             ; preds = %1864, %1861
  br label %1867

1867:                                             ; preds = %1866, %1858
  %1868 = load ptr, ptr %43, align 8, !tbaa !5
  %1869 = load i32, ptr %84, align 4, !tbaa !9
  %1870 = or i32 2097160, %1869
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1868, i32 noundef %1870)
  br label %2179

1871:                                             ; preds = %1855, %1852, %1850
  %1872 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  br i1 %1872, label %1873, label %1910

1873:                                             ; preds = %1871
  %1874 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %1875 = trunc i8 %1874 to i1
  br i1 %1875, label %1910, label %1876

1876:                                             ; preds = %1873
  %1877 = load ptr, ptr %43, align 8, !tbaa !5
  %1878 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1877)
  br i1 %1878, label %1906, label %1879

1879:                                             ; preds = %1876
  %1880 = load i8, ptr %85, align 1, !tbaa !43, !range !41, !noundef !42
  %1881 = trunc i8 %1880 to i1
  br i1 %1881, label %1882, label %1884

1882:                                             ; preds = %1879
  %1883 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1883, i32 noundef 6291468)
  br label %1905

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

1887:                                             ; preds = %1884
  %1888 = load ptr, ptr %21, align 8, !tbaa !5
  %1889 = getelementptr inbounds %struct.ImGuiIO, ptr %1888, i32 0, i32 69
  %1890 = load i8, ptr %1889, align 4, !tbaa !145, !range !41, !noundef !42
  %1891 = trunc i8 %1890 to i1
  br i1 %1891, label %1892, label %1904

1892:                                             ; preds = %1887
  %1893 = load ptr, ptr %21, align 8, !tbaa !5
  %1894 = getelementptr inbounds %struct.ImGuiIO, ptr %1893, i32 0, i32 71
  %1895 = load i8, ptr %1894, align 2, !tbaa !176, !range !41, !noundef !42
  %1896 = trunc i8 %1895 to i1
  br i1 %1896, label %1904, label %1897

1897:                                             ; preds = %1892
  %1898 = load ptr, ptr %21, align 8, !tbaa !5
  %1899 = getelementptr inbounds %struct.ImGuiIO, ptr %1898, i32 0, i32 72
  %1900 = load i8, ptr %1899, align 1, !tbaa !182, !range !41, !noundef !42
  %1901 = trunc i8 %1900 to i1
  br i1 %1901, label %1904, label %1902

1902:                                             ; preds = %1897
  %1903 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1903, i32 noundef 6291460)
  br label %1904

1904:                                             ; preds = %1902, %1897, %1892, %1887, %1884
  br label %1905

1905:                                             ; preds = %1904, %1882
  br label %1906

1906:                                             ; preds = %1905, %1876
  %1907 = load ptr, ptr %43, align 8, !tbaa !5
  %1908 = load i32, ptr %84, align 4, !tbaa !9
  %1909 = or i32 2097161, %1908
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1907, i32 noundef %1909)
  br label %2178

1910:                                             ; preds = %1873, %1871
  %1911 = load i8, ptr %95, align 1, !tbaa !43, !range !41, !noundef !42
  %1912 = trunc i8 %1911 to i1
  br i1 %1912, label %1916, label %1913

1913:                                             ; preds = %1910
  %1914 = load i8, ptr %96, align 1, !tbaa !43, !range !41, !noundef !42
  %1915 = trunc i8 %1914 to i1
  br i1 %1915, label %1916, label %1969

1916:                                             ; preds = %1913, %1910
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #14
  %1917 = load i32, ptr %15, align 4, !tbaa !9
  %1918 = and i32 %1917, 256
  %1919 = icmp ne i32 %1918, 0
  %1920 = zext i1 %1919 to i8
  store i8 %1920, ptr %98, align 1, !tbaa !43
  %1921 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1922 = trunc i8 %1921 to i1
  br i1 %1922, label %1923, label %1942

1923:                                             ; preds = %1916
  %1924 = load i8, ptr %96, align 1, !tbaa !43, !range !41, !noundef !42
  %1925 = trunc i8 %1924 to i1
  br i1 %1925, label %1942, label %1926

1926:                                             ; preds = %1923
  %1927 = load i8, ptr %98, align 1, !tbaa !43, !range !41, !noundef !42
  %1928 = trunc i8 %1927 to i1
  br i1 %1928, label %1929, label %1934

1929:                                             ; preds = %1926
  %1930 = load ptr, ptr %21, align 8, !tbaa !5
  %1931 = getelementptr inbounds %struct.ImGuiIO, ptr %1930, i32 0, i32 69
  %1932 = load i8, ptr %1931, align 4, !tbaa !145, !range !41, !noundef !42
  %1933 = trunc i8 %1932 to i1
  br i1 %1933, label %1934, label %1942

1934:                                             ; preds = %1929, %1926
  %1935 = load i8, ptr %98, align 1, !tbaa !43, !range !41, !noundef !42
  %1936 = trunc i8 %1935 to i1
  br i1 %1936, label %1954, label %1937

1937:                                             ; preds = %1934
  %1938 = load ptr, ptr %21, align 8, !tbaa !5
  %1939 = getelementptr inbounds %struct.ImGuiIO, ptr %1938, i32 0, i32 69
  %1940 = load i8, ptr %1939, align 4, !tbaa !145, !range !41, !noundef !42
  %1941 = trunc i8 %1940 to i1
  br i1 %1941, label %1942, label %1954

1942:                                             ; preds = %1937, %1929, %1923, %1916
  store i8 1, ptr %66, align 1, !tbaa !43
  %1943 = load ptr, ptr %21, align 8, !tbaa !5
  %1944 = getelementptr inbounds %struct.ImGuiIO, ptr %1943, i32 0, i32 19
  %1945 = load i8, ptr %1944, align 1, !tbaa !186, !range !41, !noundef !42
  %1946 = trunc i8 %1945 to i1
  br i1 %1946, label %1947, label %1952

1947:                                             ; preds = %1942
  %1948 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %1949 = trunc i8 %1948 to i1
  br i1 %1949, label %1952, label %1950

1950:                                             ; preds = %1947
  %1951 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %1951)
  br label %1953

1952:                                             ; preds = %1947, %1942
  store i8 1, ptr %52, align 1, !tbaa !43
  br label %1953

1953:                                             ; preds = %1952, %1950
  br label %1968

1954:                                             ; preds = %1937, %1934
  %1955 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %1956 = trunc i8 %1955 to i1
  br i1 %1956, label %1967, label %1957

1957:                                             ; preds = %1954
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #14
  store i32 10, ptr %99, align 4, !tbaa !9
  %1958 = load ptr, ptr %20, align 8, !tbaa !5
  %1959 = load i32, ptr %15, align 4, !tbaa !9
  %1960 = load ptr, ptr %16, align 8, !tbaa !5
  %1961 = load ptr, ptr %17, align 8, !tbaa !5
  %1962 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef %1958, ptr noundef %99, i32 noundef %1959, ptr noundef %1960, ptr noundef %1961, i1 noundef zeroext false)
  br i1 %1962, label %1963, label %1966

1963:                                             ; preds = %1957
  %1964 = load ptr, ptr %43, align 8, !tbaa !5
  %1965 = load i32, ptr %99, align 4, !tbaa !9
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1964, i32 noundef %1965)
  br label %1966

1966:                                             ; preds = %1963, %1957
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #14
  br label %1967

1967:                                             ; preds = %1966, %1954
  br label %1968

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

1969:                                             ; preds = %1913
  %1970 = load i8, ptr %97, align 1, !tbaa !43, !range !41, !noundef !42
  %1971 = trunc i8 %1970 to i1
  br i1 %1971, label %1972, label %1987

1972:                                             ; preds = %1969
  %1973 = load i32, ptr %15, align 4, !tbaa !9
  %1974 = and i32 %1973, 128
  %1975 = icmp ne i32 %1974, 0
  br i1 %1975, label %1976, label %1985

1976:                                             ; preds = %1972
  %1977 = load ptr, ptr %12, align 8, !tbaa !5
  %1978 = getelementptr inbounds i8, ptr %1977, i64 0
  %1979 = load i8, ptr %1978, align 1, !tbaa !150
  %1980 = sext i8 %1979 to i32
  %1981 = icmp ne i32 %1980, 0
  br i1 %1981, label %1982, label %1983

1982:                                             ; preds = %1976
  store i8 1, ptr %82, align 1, !tbaa !43
  br label %1984

1983:                                             ; preds = %1976
  store i8 0, ptr %64, align 1, !tbaa !43
  store i8 0, ptr %63, align 1, !tbaa !43
  store i8 1, ptr %52, align 1, !tbaa !43
  br label %1984

1984:                                             ; preds = %1983, %1982
  br label %1986

1985:                                             ; preds = %1972
  store i8 1, ptr %82, align 1, !tbaa !43
  store i8 1, ptr %52, align 1, !tbaa !43
  store i8 0, ptr %64, align 1, !tbaa !43
  store i8 0, ptr %63, align 1, !tbaa !43
  br label %1986

1986:                                             ; preds = %1985, %1984
  br label %2176

1987:                                             ; preds = %1969
  %1988 = load i8, ptr %91, align 1, !tbaa !43, !range !41, !noundef !42
  %1989 = trunc i8 %1988 to i1
  br i1 %1989, label %1993, label %1990

1990:                                             ; preds = %1987
  %1991 = load i8, ptr %92, align 1, !tbaa !43, !range !41, !noundef !42
  %1992 = trunc i8 %1991 to i1
  br i1 %1992, label %1993, label %2000

1993:                                             ; preds = %1990, %1987
  %1994 = load ptr, ptr %43, align 8, !tbaa !5
  %1995 = load i8, ptr %91, align 1, !tbaa !43, !range !41, !noundef !42
  %1996 = trunc i8 %1995 to i1
  %1997 = zext i1 %1996 to i64
  %1998 = select i1 %1996, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %1994, i32 noundef %1998)
  %1999 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %1999)
  br label %2175

2000:                                             ; preds = %1990
  %2001 = load i8, ptr %93, align 1, !tbaa !43, !range !41, !noundef !42
  %2002 = trunc i8 %2001 to i1
  br i1 %2002, label %2003, label %2007

2003:                                             ; preds = %2000
  %2004 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %2004)
  %2005 = load ptr, ptr %43, align 8, !tbaa !5
  %2006 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2005, i32 0, i32 12
  store i8 1, ptr %2006, align 4, !tbaa !173
  br label %2174

2007:                                             ; preds = %2000
  %2008 = load i8, ptr %88, align 1, !tbaa !43, !range !41, !noundef !42
  %2009 = trunc i8 %2008 to i1
  br i1 %2009, label %2013, label %2010

2010:                                             ; preds = %2007
  %2011 = load i8, ptr %89, align 1, !tbaa !43, !range !41, !noundef !42
  %2012 = trunc i8 %2011 to i1
  br i1 %2012, label %2013, label %2107

2013:                                             ; preds = %2010, %2007
  %2014 = load ptr, ptr %21, align 8, !tbaa !5
  %2015 = getelementptr inbounds %struct.ImGuiIO, ptr %2014, i32 0, i32 42
  %2016 = load ptr, ptr %2015, align 8, !tbaa !187
  %2017 = icmp ne ptr %2016, null
  br i1 %2017, label %2018, label %2091

2018:                                             ; preds = %2013
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #14
  %2019 = load ptr, ptr %43, align 8, !tbaa !5
  %2020 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %2019)
  br i1 %2020, label %2021, label %2031

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

2031:                                             ; preds = %2018
  br label %2032

2032:                                             ; preds = %2031, %2021
  %2033 = phi i32 [ %2030, %2021 ], [ 0, %2031 ]
  store i32 %2033, ptr %100, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #14
  %2034 = load ptr, ptr %43, align 8, !tbaa !5
  %2035 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %2034)
  br i1 %2035, label %2036, label %2046

2036:                                             ; preds = %2032
  %2037 = load ptr, ptr %43, align 8, !tbaa !5
  %2038 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2037, i32 0, i32 10
  %2039 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2038, i32 0, i32 1
  %2040 = load i32, ptr %2039, align 4, !tbaa !141
  %2041 = load ptr, ptr %43, align 8, !tbaa !5
  %2042 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2041, i32 0, i32 10
  %2043 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2042, i32 0, i32 2
  %2044 = load i32, ptr %2043, align 4, !tbaa !143
  %2045 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2040, i32 noundef %2044)
  br label %2050

2046:                                             ; preds = %2032
  %2047 = load ptr, ptr %43, align 8, !tbaa !5
  %2048 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2047, i32 0, i32 2
  %2049 = load i32, ptr %2048, align 4, !tbaa !138
  br label %2050

2050:                                             ; preds = %2046, %2036
  %2051 = phi i32 [ %2045, %2036 ], [ %2049, %2046 ]
  store i32 %2051, ptr %101, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #14
  %2052 = load ptr, ptr %43, align 8, !tbaa !5
  %2053 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2052, i32 0, i32 4
  %2054 = getelementptr inbounds %struct.ImVector.5, ptr %2053, i32 0, i32 2
  %2055 = load ptr, ptr %2054, align 8, !tbaa !137
  %2056 = load i32, ptr %100, align 4, !tbaa !9
  %2057 = sext i32 %2056 to i64
  %2058 = getelementptr inbounds i16, ptr %2055, i64 %2057
  %2059 = load ptr, ptr %43, align 8, !tbaa !5
  %2060 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2059, i32 0, i32 4
  %2061 = getelementptr inbounds %struct.ImVector.5, ptr %2060, i32 0, i32 2
  %2062 = load ptr, ptr %2061, align 8, !tbaa !137
  %2063 = load i32, ptr %101, align 4, !tbaa !9
  %2064 = sext i32 %2063 to i64
  %2065 = getelementptr inbounds i16, ptr %2062, i64 %2064
  %2066 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2058, ptr noundef %2065)
  %2067 = add nsw i32 %2066, 1
  store i32 %2067, ptr %102, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #14
  %2068 = load i32, ptr %102, align 4, !tbaa !9
  %2069 = sext i32 %2068 to i64
  %2070 = mul i64 %2069, 1
  %2071 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %2070)
  store ptr %2071, ptr %103, align 8, !tbaa !5
  %2072 = load ptr, ptr %103, align 8, !tbaa !5
  %2073 = load i32, ptr %102, align 4, !tbaa !9
  %2074 = load ptr, ptr %43, align 8, !tbaa !5
  %2075 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2074, i32 0, i32 4
  %2076 = getelementptr inbounds %struct.ImVector.5, ptr %2075, i32 0, i32 2
  %2077 = load ptr, ptr %2076, align 8, !tbaa !137
  %2078 = load i32, ptr %100, align 4, !tbaa !9
  %2079 = sext i32 %2078 to i64
  %2080 = getelementptr inbounds i16, ptr %2077, i64 %2079
  %2081 = load ptr, ptr %43, align 8, !tbaa !5
  %2082 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2081, i32 0, i32 4
  %2083 = getelementptr inbounds %struct.ImVector.5, ptr %2082, i32 0, i32 2
  %2084 = load ptr, ptr %2083, align 8, !tbaa !137
  %2085 = load i32, ptr %101, align 4, !tbaa !9
  %2086 = sext i32 %2085 to i64
  %2087 = getelementptr inbounds i16, ptr %2084, i64 %2086
  %2088 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2072, i32 noundef %2073, ptr noundef %2080, ptr noundef %2087)
  %2089 = load ptr, ptr %103, align 8, !tbaa !5
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %2089)
  %2090 = load ptr, ptr %103, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2090)
  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 %2091

2091:                                             ; preds = %2050, %2013
  %2092 = load i8, ptr %88, align 1, !tbaa !43, !range !41, !noundef !42
  %2093 = trunc i8 %2092 to i1
  br i1 %2093, label %2094, label %2106

2094:                                             ; preds = %2091
  %2095 = load ptr, ptr %43, align 8, !tbaa !5
  %2096 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %2095)
  br i1 %2096, label %2099, label %2097

2097:                                             ; preds = %2094
  %2098 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %2098)
  br label %2099

2099:                                             ; preds = %2097, %2094
  %2100 = load ptr, ptr %43, align 8, !tbaa !5
  %2101 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2100, i32 0, i32 12
  store i8 1, ptr %2101, align 4, !tbaa !173
  %2102 = load ptr, ptr %43, align 8, !tbaa !5
  %2103 = load ptr, ptr %43, align 8, !tbaa !5
  %2104 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2103, i32 0, i32 10
  %2105 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef %2102, ptr noundef %2104)
  br label %2106

2106:                                             ; preds = %2099, %2091
  br label %2173

2107:                                             ; preds = %2010
  %2108 = load i8, ptr %90, align 1, !tbaa !43, !range !41, !noundef !42
  %2109 = trunc i8 %2108 to i1
  br i1 %2109, label %2110, label %2172

2110:                                             ; preds = %2107
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #14
  %2111 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  store ptr %2111, ptr %104, align 8, !tbaa !5
  %2112 = load ptr, ptr %104, align 8, !tbaa !5
  %2113 = icmp ne ptr %2112, null
  br i1 %2113, label %2114, label %2171

2114:                                             ; preds = %2110
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #14
  %2115 = load ptr, ptr %104, align 8, !tbaa !5
  %2116 = call i64 @strlen(ptr noundef %2115) #16
  %2117 = trunc i64 %2116 to i32
  store i32 %2117, ptr %105, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #14
  %2118 = load i32, ptr %105, align 4, !tbaa !9
  %2119 = add nsw i32 %2118, 1
  %2120 = sext i32 %2119 to i64
  %2121 = mul i64 %2120, 2
  %2122 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %2121)
  store ptr %2122, 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
  %2123 = load ptr, ptr %104, align 8, !tbaa !5
  store ptr %2123, ptr %108, align 8, !tbaa !5
  br label %2124

2124:                                             ; preds = %2152, %2150, %2114
  %2125 = load ptr, ptr %108, align 8, !tbaa !5
  %2126 = load i8, ptr %2125, align 1, !tbaa !150
  %2127 = sext i8 %2126 to i32
  %2128 = icmp ne i32 %2127, 0
  br i1 %2128, label %2130, label %2129

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

2130:                                             ; preds = %2124
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #14
  %2131 = load ptr, ptr %108, align 8, !tbaa !5
  %2132 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef %109, ptr noundef %2131, ptr noundef null)
  %2133 = load ptr, ptr %108, align 8, !tbaa !5
  %2134 = sext i32 %2132 to i64
  %2135 = getelementptr inbounds i8, ptr %2133, i64 %2134
  store ptr %2135, ptr %108, align 8, !tbaa !5
  %2136 = load ptr, ptr %20, align 8, !tbaa !5
  %2137 = load i32, ptr %15, align 4, !tbaa !9
  %2138 = load ptr, ptr %16, align 8, !tbaa !5
  %2139 = load ptr, ptr %17, align 8, !tbaa !5
  %2140 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef %2136, ptr noundef %109, i32 noundef %2137, ptr noundef %2138, ptr noundef %2139, i1 noundef zeroext true)
  br i1 %2140, label %2142, label %2141

2141:                                             ; preds = %2130
  store i32 6, ptr %19, align 4
  br label %2150, !llvm.loop !188

2142:                                             ; preds = %2130
  %2143 = load i32, ptr %109, align 4, !tbaa !9
  %2144 = trunc i32 %2143 to i16
  %2145 = load ptr, ptr %106, align 8, !tbaa !5
  %2146 = load i32, ptr %107, align 4, !tbaa !9
  %2147 = add nsw i32 %2146, 1
  store i32 %2147, ptr %107, align 4, !tbaa !9
  %2148 = sext i32 %2146 to i64
  %2149 = getelementptr inbounds i16, ptr %2145, i64 %2148
  store i16 %2144, ptr %2149, align 2, !tbaa !171
  store i32 0, ptr %19, align 4
  br label %2150

2150:                                             ; preds = %2142, %2141
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #14
  %2151 = load i32, ptr %19, align 4
  switch i32 %2151, label %3653 [
    i32 0, label %2152
    i32 6, label %2124
  ]

2152:                                             ; preds = %2150
  br label %2124, !llvm.loop !188

2153:                                             ; preds = %2129
  %2154 = load ptr, ptr %106, align 8, !tbaa !5
  %2155 = load i32, ptr %107, align 4, !tbaa !9
  %2156 = sext i32 %2155 to i64
  %2157 = getelementptr inbounds i16, ptr %2154, i64 %2156
  store i16 0, ptr %2157, align 2, !tbaa !171
  %2158 = load i32, ptr %107, align 4, !tbaa !9
  %2159 = icmp sgt i32 %2158, 0
  br i1 %2159, label %2160, label %2169

2160:                                             ; preds = %2153
  %2161 = load ptr, ptr %43, align 8, !tbaa !5
  %2162 = load ptr, ptr %43, align 8, !tbaa !5
  %2163 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2162, i32 0, i32 10
  %2164 = load ptr, ptr %106, align 8, !tbaa !5
  %2165 = load i32, ptr %107, align 4, !tbaa !9
  %2166 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2161, ptr noundef %2163, ptr noundef %2164, i32 noundef %2165)
  %2167 = load ptr, ptr %43, align 8, !tbaa !5
  %2168 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2167, i32 0, i32 12
  store i8 1, ptr %2168, align 4, !tbaa !173
  br label %2169

2169:                                             ; preds = %2160, %2153
  %2170 = load ptr, ptr %106, align 8, !tbaa !5
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %2170)
  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 %2171

2171:                                             ; preds = %2169, %2110
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #14
  br label %2172

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

2173:                                             ; preds = %2172, %2106
  br label %2174

2174:                                             ; preds = %2173, %2003
  br label %2175

2175:                                             ; preds = %2174, %1993
  br label %2176

2176:                                             ; preds = %2175, %1986
  br label %2177

2177:                                             ; preds = %2176, %1968
  br label %2178

2178:                                             ; preds = %2177, %1906
  br label %2179

2179:                                             ; preds = %2178, %1867
  br label %2180

2180:                                             ; preds = %2179, %1848
  br label %2181

2181:                                             ; preds = %2180, %1832
  br label %2182

2182:                                             ; preds = %2181, %1807
  br label %2183

2183:                                             ; preds = %2182, %1790
  br label %2184

2184:                                             ; preds = %2183, %1784
  br label %2185

2185:                                             ; preds = %2184, %1753
  br label %2186

2186:                                             ; preds = %2185, %1720
  br label %2187

2187:                                             ; preds = %2186, %1704
  %2188 = load ptr, ptr %43, align 8, !tbaa !5
  %2189 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %2188)
  br i1 %2189, label %2190, label %2193

2190:                                             ; preds = %2187
  %2191 = load i8, ptr %63, align 1, !tbaa !43, !range !41, !noundef !42
  %2192 = trunc i8 %2191 to i1
  br label %2193

2193:                                             ; preds = %2190, %2187
  %2194 = phi i1 [ false, %2187 ], [ %2192, %2190 ]
  %2195 = zext i1 %2194 to i32
  %2196 = load i8, ptr %64, align 1, !tbaa !43, !range !41, !noundef !42
  %2197 = trunc i8 %2196 to i1
  %2198 = zext i1 %2197 to i32
  %2199 = or i32 %2198, %2195
  %2200 = icmp ne i32 %2199, 0
  %2201 = zext i1 %2200 to i8
  store i8 %2201, ptr %64, align 1, !tbaa !43
  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 %2202

2202:                                             ; preds = %2193, %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
  %2203 = load ptr, ptr %20, align 8, !tbaa !5
  %2204 = getelementptr inbounds %struct.ImGuiContext, ptr %2203, i32 0, i32 54
  %2205 = load i32, ptr %2204, align 4, !tbaa !118
  %2206 = load i32, ptr %25, align 4, !tbaa !9
  %2207 = icmp eq i32 %2205, %2206
  br i1 %2207, label %2208, label %2686

2208:                                             ; preds = %2202
  %2209 = load ptr, ptr %43, align 8, !tbaa !5
  %2210 = icmp ne ptr %2209, null
  br i1 %2210, label %2211, label %2212

2211:                                             ; preds = %2208
  br label %2214

2212:                                             ; preds = %2208
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 4793, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2213:                                             ; No predecessors!
  br label %2214

2214:                                             ; preds = %2213, %2211
  %2215 = load i8, ptr %82, align 1, !tbaa !43, !range !41, !noundef !42
  %2216 = trunc i8 %2215 to i1
  br i1 %2216, label %2217, label %2300

2217:                                             ; preds = %2214
  %2218 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %2219 = trunc i8 %2218 to i1
  br i1 %2219, label %2300, label %2220

2220:                                             ; preds = %2217
  %2221 = load i32, ptr %15, align 4, !tbaa !9
  %2222 = and i32 %2221, 128
  %2223 = icmp ne i32 %2222, 0
  br i1 %2223, label %2224, label %2237

2224:                                             ; preds = %2220
  %2225 = load ptr, ptr %12, align 8, !tbaa !5
  %2226 = getelementptr inbounds i8, ptr %2225, i64 0
  %2227 = load i8, ptr %2226, align 1, !tbaa !150
  %2228 = sext i8 %2227 to i32
  %2229 = icmp ne i32 %2228, 0
  br i1 %2229, label %2230, label %2231

2230:                                             ; preds = %2224
  br label %2233

2231:                                             ; preds = %2224
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 4799, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2232:                                             ; No predecessors!
  br label %2233

2233:                                             ; preds = %2232, %2230
  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 !43
  call void @llvm.lifetime.start.p0(i64 2, ptr %112) #14
  %2234 = load ptr, ptr %43, align 8, !tbaa !5
  %2235 = load ptr, ptr %43, align 8, !tbaa !5
  %2236 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2235, i32 0, i32 10
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2234, ptr noundef %2236, ptr noundef %112, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr %112) #14
  br label %2299

2237:                                             ; preds = %2220
  %2238 = load ptr, ptr %12, align 8, !tbaa !5
  %2239 = load ptr, ptr %43, align 8, !tbaa !5
  %2240 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2239, i32 0, i32 6
  %2241 = getelementptr inbounds %struct.ImVector.34, ptr %2240, i32 0, i32 2
  %2242 = load ptr, ptr %2241, align 8, !tbaa !133
  %2243 = call i32 @strcmp(ptr noundef %2238, ptr noundef %2242) #16
  %2244 = icmp ne i32 %2243, 0
  br i1 %2244, label %2245, label %2298

2245:                                             ; preds = %2237
  %2246 = load ptr, ptr %43, align 8, !tbaa !5
  %2247 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2246, i32 0, i32 6
  %2248 = getelementptr inbounds %struct.ImVector.34, ptr %2247, i32 0, i32 2
  %2249 = load ptr, ptr %2248, align 8, !tbaa !133
  store ptr %2249, ptr %110, align 8, !tbaa !5
  %2250 = load ptr, ptr %43, align 8, !tbaa !5
  %2251 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2250, i32 0, i32 6
  %2252 = getelementptr inbounds %struct.ImVector.34, ptr %2251, i32 0, i32 0
  %2253 = load i32, ptr %2252, align 8, !tbaa !189
  %2254 = sub nsw i32 %2253, 1
  store i32 %2254, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %113)
  %2255 = load i32, ptr %111, align 4, !tbaa !9
  %2256 = icmp sgt i32 %2255, 0
  br i1 %2256, label %2257, label %2282

2257:                                             ; preds = %2245
  %2258 = load ptr, ptr %110, align 8, !tbaa !5
  %2259 = load ptr, ptr %110, align 8, !tbaa !5
  %2260 = load i32, ptr %111, align 4, !tbaa !9
  %2261 = sext i32 %2260 to i64
  %2262 = getelementptr inbounds i8, ptr %2259, i64 %2261
  %2263 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2258, ptr noundef %2262)
          to label %2264 unwind label %2278

2264:                                             ; preds = %2257
  %2265 = add nsw i32 %2263, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %113, i32 noundef %2265)
          to label %2266 unwind label %2278

2266:                                             ; preds = %2264
  %2267 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 2
  %2268 = load ptr, ptr %2267, align 8, !tbaa !190
  %2269 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 0
  %2270 = load i32, ptr %2269, align 8, !tbaa !191
  %2271 = load ptr, ptr %110, align 8, !tbaa !5
  %2272 = load ptr, ptr %110, align 8, !tbaa !5
  %2273 = load i32, ptr %111, align 4, !tbaa !9
  %2274 = sext i32 %2273 to i64
  %2275 = getelementptr inbounds i8, ptr %2272, i64 %2274
  %2276 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2268, i32 noundef %2270, ptr noundef %2271, ptr noundef %2275, ptr noundef null)
          to label %2277 unwind label %2278

2277:                                             ; preds = %2266
  br label %2282

2278:                                             ; preds = %2295, %2266, %2264, %2257
  %2279 = landingpad { ptr, i32 }
          cleanup
  %2280 = extractvalue { ptr, i32 } %2279, 0
  store ptr %2280, ptr %114, align 8
  %2281 = extractvalue { ptr, i32 } %2279, 1
  store i32 %2281, 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 80, 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 %3648

2282:                                             ; preds = %2277, %2245
  %2283 = load ptr, ptr %43, align 8, !tbaa !5
  %2284 = load ptr, ptr %43, align 8, !tbaa !5
  %2285 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2284, i32 0, i32 10
  %2286 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 2
  %2287 = load ptr, ptr %2286, align 8, !tbaa !190
  %2288 = load i32, ptr %111, align 4, !tbaa !9
  %2289 = icmp sgt i32 %2288, 0
  br i1 %2289, label %2290, label %2294

2290:                                             ; preds = %2282
  %2291 = getelementptr inbounds %struct.ImVector.5, ptr %113, i32 0, i32 0
  %2292 = load i32, ptr %2291, align 8, !tbaa !191
  %2293 = sub nsw i32 %2292, 1
  br label %2295

2294:                                             ; preds = %2282
  br label %2295

2295:                                             ; preds = %2294, %2290
  %2296 = phi i32 [ %2293, %2290 ], [ 0, %2294 ]
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %2283, ptr noundef %2285, ptr noundef %2287, i32 noundef %2296)
          to label %2297 unwind label %2278

2297:                                             ; preds = %2295
  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 %2298

2298:                                             ; preds = %2297, %2237
  br label %2299

2299:                                             ; preds = %2298, %2233
  br label %2300

2300:                                             ; preds = %2299, %2217, %2214
  %2301 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %2302 = trunc i8 %2301 to i1
  br i1 %2302, label %2327, label %2303

2303:                                             ; preds = %2300
  %2304 = load ptr, ptr %43, align 8, !tbaa !5
  %2305 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2304, i32 0, i32 7
  store i8 1, ptr %2305, align 8, !tbaa !135
  %2306 = load ptr, ptr %43, align 8, !tbaa !5
  %2307 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2306, i32 0, i32 5
  %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 0
  %2311 = load i32, ptr %2310, align 8, !tbaa !149
  %2312 = mul nsw i32 %2311, 4
  %2313 = add nsw i32 %2312, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2307, i32 noundef %2313)
  %2314 = load ptr, ptr %43, align 8, !tbaa !5
  %2315 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2314, i32 0, i32 5
  %2316 = getelementptr inbounds %struct.ImVector.34, ptr %2315, i32 0, i32 2
  %2317 = load ptr, ptr %2316, align 8, !tbaa !136
  %2318 = load ptr, ptr %43, align 8, !tbaa !5
  %2319 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2318, i32 0, i32 5
  %2320 = getelementptr inbounds %struct.ImVector.34, ptr %2319, i32 0, i32 0
  %2321 = load i32, ptr %2320, align 8, !tbaa !192
  %2322 = load ptr, ptr %43, align 8, !tbaa !5
  %2323 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2322, i32 0, i32 4
  %2324 = getelementptr inbounds %struct.ImVector.5, ptr %2323, i32 0, i32 2
  %2325 = load ptr, ptr %2324, align 8, !tbaa !137
  %2326 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %2317, i32 noundef %2321, ptr noundef %2325, ptr noundef null)
  br label %2327

2327:                                             ; preds = %2303, %2300
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #14
  %2328 = load i8, ptr %82, align 1, !tbaa !43, !range !41, !noundef !42
  %2329 = trunc i8 %2328 to i1
  br i1 %2329, label %2330, label %2339

2330:                                             ; preds = %2327
  %2331 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %2332 = trunc i8 %2331 to i1
  br i1 %2332, label %2333, label %2337

2333:                                             ; preds = %2330
  %2334 = load i32, ptr %15, align 4, !tbaa !9
  %2335 = and i32 %2334, 64
  %2336 = icmp ne i32 %2335, 0
  br label %2337

2337:                                             ; preds = %2333, %2330
  %2338 = phi i1 [ false, %2330 ], [ %2336, %2333 ]
  br label %2339

2339:                                             ; preds = %2337, %2327
  %2340 = phi i1 [ true, %2327 ], [ %2338, %2337 ]
  %2341 = zext i1 %2340 to i8
  store i8 %2341, ptr %116, align 1, !tbaa !43
  %2342 = load i8, ptr %116, align 1, !tbaa !43, !range !41, !noundef !42
  %2343 = trunc i8 %2342 to i1
  br i1 %2343, label %2344, label %2685

2344:                                             ; preds = %2339
  %2345 = load i32, ptr %15, align 4, !tbaa !9
  %2346 = and i32 %2345, 5111808
  %2347 = icmp ne i32 %2346, 0
  br i1 %2347, label %2348, label %2665

2348:                                             ; preds = %2344
  %2349 = load ptr, ptr %16, align 8, !tbaa !5
  %2350 = icmp ne ptr %2349, null
  br i1 %2350, label %2351, label %2352

2351:                                             ; preds = %2348
  br label %2354

2352:                                             ; preds = %2348
  call void @__assert_fail(ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 4848, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2353:                                             ; No predecessors!
  br label %2354

2354:                                             ; preds = %2353, %2351
  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 !193
  %2355 = load i32, ptr %15, align 4, !tbaa !9
  %2356 = and i32 %2355, 131072
  %2357 = icmp ne i32 %2356, 0
  br i1 %2357, label %2358, label %2362

2358:                                             ; preds = %2354
  %2359 = load i32, ptr %25, align 4, !tbaa !9
  %2360 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 512, i32 noundef 0, i32 noundef %2359)
  br i1 %2360, label %2361, label %2362

2361:                                             ; preds = %2358
  store i32 131072, ptr %117, align 4, !tbaa !9
  store i32 512, ptr %118, align 4, !tbaa !193
  br label %2395

2362:                                             ; preds = %2358, %2354
  %2363 = load i32, ptr %15, align 4, !tbaa !9
  %2364 = and i32 %2363, 262144
  %2365 = icmp ne i32 %2364, 0
  br i1 %2365, label %2366, label %2369

2366:                                             ; preds = %2362
  %2367 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %2367, label %2368, label %2369

2368:                                             ; preds = %2366
  store i32 262144, ptr %117, align 4, !tbaa !9
  store i32 515, ptr %118, align 4, !tbaa !193
  br label %2394

2369:                                             ; preds = %2366, %2362
  %2370 = load i32, ptr %15, align 4, !tbaa !9
  %2371 = and i32 %2370, 262144
  %2372 = icmp ne i32 %2371, 0
  br i1 %2372, label %2373, label %2376

2373:                                             ; preds = %2369
  %2374 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %2374, label %2375, label %2376

2375:                                             ; preds = %2373
  store i32 262144, ptr %117, align 4, !tbaa !9
  store i32 516, ptr %118, align 4, !tbaa !193
  br label %2393

2376:                                             ; preds = %2373, %2369
  %2377 = load i32, ptr %15, align 4, !tbaa !9
  %2378 = and i32 %2377, 4194304
  %2379 = icmp ne i32 %2378, 0
  br i1 %2379, label %2380, label %2386

2380:                                             ; preds = %2376
  %2381 = load ptr, ptr %43, align 8, !tbaa !5
  %2382 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2381, i32 0, i32 14
  %2383 = load i8, ptr %2382, align 2, !tbaa !161, !range !41, !noundef !42
  %2384 = trunc i8 %2383 to i1
  br i1 %2384, label %2385, label %2386

2385:                                             ; preds = %2380
  store i32 4194304, ptr %117, align 4, !tbaa !9
  br label %2392

2386:                                             ; preds = %2380, %2376
  %2387 = load i32, ptr %15, align 4, !tbaa !9
  %2388 = and i32 %2387, 524288
  %2389 = icmp ne i32 %2388, 0
  br i1 %2389, label %2390, label %2391

2390:                                             ; preds = %2386
  store i32 524288, ptr %117, align 4, !tbaa !9
  br label %2391

2391:                                             ; preds = %2390, %2386
  br label %2392

2392:                                             ; preds = %2391, %2385
  br label %2393

2393:                                             ; preds = %2392, %2375
  br label %2394

2394:                                             ; preds = %2393, %2368
  br label %2395

2395:                                             ; preds = %2394, %2361
  %2396 = load i32, ptr %117, align 4, !tbaa !9
  %2397 = icmp ne i32 %2396, 0
  br i1 %2397, label %2398, label %2664

2398:                                             ; preds = %2395
  call void @llvm.lifetime.start.p0(i64 64, ptr %119) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %119)
  %2399 = load ptr, ptr %20, align 8, !tbaa !5
  %2400 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 0
  store ptr %2399, ptr %2400, align 8, !tbaa !194
  %2401 = load i32, ptr %117, align 4, !tbaa !9
  %2402 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 1
  store i32 %2401, ptr %2402, align 8, !tbaa !196
  %2403 = load i32, ptr %15, align 4, !tbaa !9
  %2404 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 2
  store i32 %2403, ptr %2404, align 4, !tbaa !197
  %2405 = load ptr, ptr %17, align 8, !tbaa !5
  %2406 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 3
  store ptr %2405, ptr %2406, align 8, !tbaa !198
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #14
  %2407 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %2408 = trunc i8 %2407 to i1
  br i1 %2408, label %2409, label %2411

2409:                                             ; preds = %2398
  %2410 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2416

2411:                                             ; preds = %2398
  %2412 = load ptr, ptr %43, align 8, !tbaa !5
  %2413 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2412, i32 0, i32 5
  %2414 = getelementptr inbounds %struct.ImVector.34, ptr %2413, i32 0, i32 2
  %2415 = load ptr, ptr %2414, align 8, !tbaa !136
  br label %2416

2416:                                             ; preds = %2411, %2409
  %2417 = phi ptr [ %2410, %2409 ], [ %2415, %2411 ]
  store ptr %2417, ptr %120, align 8, !tbaa !5
  %2418 = load i32, ptr %118, align 4, !tbaa !193
  %2419 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 5
  store i32 %2418, ptr %2419, align 4, !tbaa !199
  %2420 = load ptr, ptr %120, align 8, !tbaa !5
  %2421 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  store ptr %2420, ptr %2421, align 8, !tbaa !200
  %2422 = load ptr, ptr %43, align 8, !tbaa !5
  %2423 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2422, i32 0, i32 3
  %2424 = load i32, ptr %2423, align 8, !tbaa !134
  %2425 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  store i32 %2424, ptr %2425, align 8, !tbaa !201
  %2426 = load ptr, ptr %43, align 8, !tbaa !5
  %2427 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2426, i32 0, i32 8
  %2428 = load i32, ptr %2427, align 4, !tbaa !162
  %2429 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 8
  store i32 %2428, ptr %2429, align 4, !tbaa !202
  %2430 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 9
  store i8 0, ptr %2430, align 8, !tbaa !203
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #14
  %2431 = load ptr, ptr %43, align 8, !tbaa !5
  %2432 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2431, i32 0, i32 4
  %2433 = getelementptr inbounds %struct.ImVector.5, ptr %2432, i32 0, i32 2
  %2434 = load ptr, ptr %2433, align 8, !tbaa !137
  store ptr %2434, ptr %121, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #14
  %2435 = load ptr, ptr %121, align 8, !tbaa !5
  %2436 = load ptr, ptr %121, align 8, !tbaa !5
  %2437 = load ptr, ptr %43, align 8, !tbaa !5
  %2438 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2437, i32 0, i32 10
  %2439 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2438, i32 0, i32 0
  %2440 = load i32, ptr %2439, align 4, !tbaa !144
  %2441 = sext i32 %2440 to i64
  %2442 = getelementptr inbounds i16, ptr %2436, i64 %2441
  %2443 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2435, ptr noundef %2442)
  %2444 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  store i32 %2443, ptr %2444, align 4, !tbaa !204
  store i32 %2443, ptr %122, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #14
  %2445 = load ptr, ptr %121, align 8, !tbaa !5
  %2446 = load ptr, ptr %121, align 8, !tbaa !5
  %2447 = load ptr, ptr %43, align 8, !tbaa !5
  %2448 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2447, i32 0, i32 10
  %2449 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2448, i32 0, i32 1
  %2450 = load i32, ptr %2449, align 4, !tbaa !141
  %2451 = sext i32 %2450 to i64
  %2452 = getelementptr inbounds i16, ptr %2446, i64 %2451
  %2453 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2445, ptr noundef %2452)
  %2454 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  store i32 %2453, ptr %2454, align 8, !tbaa !205
  store i32 %2453, ptr %123, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #14
  %2455 = load ptr, ptr %121, align 8, !tbaa !5
  %2456 = load ptr, ptr %121, align 8, !tbaa !5
  %2457 = load ptr, ptr %43, align 8, !tbaa !5
  %2458 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2457, i32 0, i32 10
  %2459 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2458, i32 0, i32 2
  %2460 = load i32, ptr %2459, align 4, !tbaa !143
  %2461 = sext i32 %2460 to i64
  %2462 = getelementptr inbounds i16, ptr %2456, i64 %2461
  %2463 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %2455, ptr noundef %2462)
  %2464 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  store i32 %2463, ptr %2464, align 4, !tbaa !206
  store i32 %2463, ptr %124, align 4, !tbaa !9
  %2465 = load ptr, ptr %16, align 8, !tbaa !5
  %2466 = call noundef i32 %2465(ptr noundef %119)
  %2467 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %2468 = trunc i8 %2467 to i1
  br i1 %2468, label %2469, label %2471

2469:                                             ; preds = %2416
  %2470 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2476

2471:                                             ; preds = %2416
  %2472 = load ptr, ptr %43, align 8, !tbaa !5
  %2473 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2472, i32 0, i32 5
  %2474 = getelementptr inbounds %struct.ImVector.34, ptr %2473, i32 0, i32 2
  %2475 = load ptr, ptr %2474, align 8, !tbaa !136
  br label %2476

2476:                                             ; preds = %2471, %2469
  %2477 = phi ptr [ %2470, %2469 ], [ %2475, %2471 ]
  store ptr %2477, ptr %120, align 8, !tbaa !5
  %2478 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2479 = load ptr, ptr %2478, align 8, !tbaa !200
  %2480 = load ptr, ptr %120, align 8, !tbaa !5
  %2481 = icmp eq ptr %2479, %2480
  br i1 %2481, label %2482, label %2483

2482:                                             ; preds = %2476
  br label %2485

2483:                                             ; preds = %2476
  call void @__assert_fail(ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 4903, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2484:                                             ; No predecessors!
  br label %2485

2485:                                             ; preds = %2484, %2482
  %2486 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 8
  %2487 = load i32, ptr %2486, align 4, !tbaa !202
  %2488 = load ptr, ptr %43, align 8, !tbaa !5
  %2489 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2488, i32 0, i32 8
  %2490 = load i32, ptr %2489, align 4, !tbaa !162
  %2491 = icmp eq i32 %2487, %2490
  br i1 %2491, label %2492, label %2493

2492:                                             ; preds = %2485
  br label %2495

2493:                                             ; preds = %2485
  call void @__assert_fail(ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 4904, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2494:                                             ; No predecessors!
  br label %2495

2495:                                             ; preds = %2494, %2492
  %2496 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 2
  %2497 = load i32, ptr %2496, align 4, !tbaa !197
  %2498 = load i32, ptr %15, align 4, !tbaa !9
  %2499 = icmp eq i32 %2497, %2498
  br i1 %2499, label %2500, label %2501

2500:                                             ; preds = %2495
  br label %2503

2501:                                             ; preds = %2495
  call void @__assert_fail(ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 4905, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2502:                                             ; No predecessors!
  br label %2503

2503:                                             ; preds = %2502, %2500
  call void @llvm.lifetime.start.p0(i64 1, ptr %125) #14
  %2504 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 9
  %2505 = load i8, ptr %2504, align 8, !tbaa !203, !range !41, !noundef !42
  %2506 = trunc i8 %2505 to i1
  %2507 = zext i1 %2506 to i8
  store i8 %2507, ptr %125, align 1, !tbaa !43
  %2508 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  %2509 = load i32, ptr %2508, align 4, !tbaa !204
  %2510 = load i32, ptr %122, align 4, !tbaa !9
  %2511 = icmp ne i32 %2509, %2510
  br i1 %2511, label %2515, label %2512

2512:                                             ; preds = %2503
  %2513 = load i8, ptr %125, align 1, !tbaa !43, !range !41, !noundef !42
  %2514 = trunc i8 %2513 to i1
  br i1 %2514, label %2515, label %2530

2515:                                             ; preds = %2512, %2503
  %2516 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2517 = load ptr, ptr %2516, align 8, !tbaa !200
  %2518 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2519 = load ptr, ptr %2518, align 8, !tbaa !200
  %2520 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  %2521 = load i32, ptr %2520, align 4, !tbaa !204
  %2522 = sext i32 %2521 to i64
  %2523 = getelementptr inbounds i8, ptr %2519, i64 %2522
  %2524 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2517, ptr noundef %2523)
  %2525 = load ptr, ptr %43, align 8, !tbaa !5
  %2526 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2525, i32 0, i32 10
  %2527 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2526, i32 0, i32 0
  store i32 %2524, ptr %2527, align 4, !tbaa !144
  %2528 = load ptr, ptr %43, align 8, !tbaa !5
  %2529 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2528, i32 0, i32 12
  store i8 1, ptr %2529, align 4, !tbaa !173
  br label %2530

2530:                                             ; preds = %2515, %2512
  %2531 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2532 = load i32, ptr %2531, align 8, !tbaa !205
  %2533 = load i32, ptr %123, align 4, !tbaa !9
  %2534 = icmp ne i32 %2532, %2533
  br i1 %2534, label %2538, label %2535

2535:                                             ; preds = %2530
  %2536 = load i8, ptr %125, align 1, !tbaa !43, !range !41, !noundef !42
  %2537 = trunc i8 %2536 to i1
  br i1 %2537, label %2538, label %2564

2538:                                             ; preds = %2535, %2530
  %2539 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2540 = load i32, ptr %2539, align 8, !tbaa !205
  %2541 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 10
  %2542 = load i32, ptr %2541, align 4, !tbaa !204
  %2543 = icmp eq i32 %2540, %2542
  br i1 %2543, label %2544, label %2549

2544:                                             ; preds = %2538
  %2545 = load ptr, ptr %43, align 8, !tbaa !5
  %2546 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2545, i32 0, i32 10
  %2547 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2546, i32 0, i32 0
  %2548 = load i32, ptr %2547, align 4, !tbaa !144
  br label %2559

2549:                                             ; preds = %2538
  %2550 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2551 = load ptr, ptr %2550, align 8, !tbaa !200
  %2552 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2553 = load ptr, ptr %2552, align 8, !tbaa !200
  %2554 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2555 = load i32, ptr %2554, align 8, !tbaa !205
  %2556 = sext i32 %2555 to i64
  %2557 = getelementptr inbounds i8, ptr %2553, i64 %2556
  %2558 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2551, ptr noundef %2557)
  br label %2559

2559:                                             ; preds = %2549, %2544
  %2560 = phi i32 [ %2548, %2544 ], [ %2558, %2549 ]
  %2561 = load ptr, ptr %43, align 8, !tbaa !5
  %2562 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2561, i32 0, i32 10
  %2563 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2562, i32 0, i32 1
  store i32 %2560, ptr %2563, align 4, !tbaa !141
  br label %2564

2564:                                             ; preds = %2559, %2535
  %2565 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  %2566 = load i32, ptr %2565, align 4, !tbaa !206
  %2567 = load i32, ptr %124, align 4, !tbaa !9
  %2568 = icmp ne i32 %2566, %2567
  br i1 %2568, label %2572, label %2569

2569:                                             ; preds = %2564
  %2570 = load i8, ptr %125, align 1, !tbaa !43, !range !41, !noundef !42
  %2571 = trunc i8 %2570 to i1
  br i1 %2571, label %2572, label %2598

2572:                                             ; preds = %2569, %2564
  %2573 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  %2574 = load i32, ptr %2573, align 4, !tbaa !206
  %2575 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 11
  %2576 = load i32, ptr %2575, align 8, !tbaa !205
  %2577 = icmp eq i32 %2574, %2576
  br i1 %2577, label %2578, label %2583

2578:                                             ; preds = %2572
  %2579 = load ptr, ptr %43, align 8, !tbaa !5
  %2580 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2579, i32 0, i32 10
  %2581 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2580, i32 0, i32 1
  %2582 = load i32, ptr %2581, align 4, !tbaa !141
  br label %2593

2583:                                             ; preds = %2572
  %2584 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2585 = load ptr, ptr %2584, align 8, !tbaa !200
  %2586 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2587 = load ptr, ptr %2586, align 8, !tbaa !200
  %2588 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 12
  %2589 = load i32, ptr %2588, align 4, !tbaa !206
  %2590 = sext i32 %2589 to i64
  %2591 = getelementptr inbounds i8, ptr %2587, i64 %2590
  %2592 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %2585, ptr noundef %2591)
  br label %2593

2593:                                             ; preds = %2583, %2578
  %2594 = phi i32 [ %2582, %2578 ], [ %2592, %2583 ]
  %2595 = load ptr, ptr %43, align 8, !tbaa !5
  %2596 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2595, i32 0, i32 10
  %2597 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2596, i32 0, i32 2
  store i32 %2594, ptr %2597, align 4, !tbaa !143
  br label %2598

2598:                                             ; preds = %2593, %2569
  %2599 = load i8, ptr %125, align 1, !tbaa !43, !range !41, !noundef !42
  %2600 = trunc i8 %2599 to i1
  br i1 %2600, label %2601, label %2663

2601:                                             ; preds = %2598
  %2602 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %2603 = trunc i8 %2602 to i1
  %2604 = xor i1 %2603, true
  br i1 %2604, label %2605, label %2606

2605:                                             ; preds = %2601
  br label %2608

2606:                                             ; preds = %2601
  call void @__assert_fail(ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 4912, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2607:                                             ; No predecessors!
  br label %2608

2608:                                             ; preds = %2607, %2605
  %2609 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2610 = load i32, ptr %2609, align 8, !tbaa !201
  %2611 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2612 = load ptr, ptr %2611, align 8, !tbaa !200
  %2613 = call i64 @strlen(ptr noundef %2612) #16
  %2614 = trunc i64 %2613 to i32
  %2615 = icmp eq i32 %2610, %2614
  br i1 %2615, label %2616, label %2617

2616:                                             ; preds = %2608
  br label %2619

2617:                                             ; preds = %2608
  call void @__assert_fail(ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 4913, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2618:                                             ; No predecessors!
  br label %2619

2619:                                             ; preds = %2618, %2616
  %2620 = load ptr, ptr %43, align 8, !tbaa !5
  %2621 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2622 = load ptr, ptr %2621, align 8, !tbaa !200
  %2623 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2624 = load i32, ptr %2623, align 8, !tbaa !201
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef %2620, ptr noundef %2622, i32 noundef %2624)
  %2625 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2626 = load i32, ptr %2625, align 8, !tbaa !201
  %2627 = load i32, ptr %72, align 4, !tbaa !9
  %2628 = icmp sgt i32 %2626, %2627
  br i1 %2628, label %2629, label %2644

2629:                                             ; preds = %2619
  %2630 = load i8, ptr %47, align 1, !tbaa !43, !range !41, !noundef !42
  %2631 = trunc i8 %2630 to i1
  br i1 %2631, label %2632, label %2644

2632:                                             ; preds = %2629
  %2633 = load ptr, ptr %43, align 8, !tbaa !5
  %2634 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2633, i32 0, i32 4
  %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 !149
  %2639 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2640 = load i32, ptr %2639, align 8, !tbaa !201
  %2641 = load i32, ptr %72, align 4, !tbaa !9
  %2642 = sub nsw i32 %2640, %2641
  %2643 = add nsw i32 %2638, %2642
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %2634, i32 noundef %2643)
  br label %2644

2644:                                             ; preds = %2632, %2629, %2619
  %2645 = load ptr, ptr %43, align 8, !tbaa !5
  %2646 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2645, i32 0, i32 4
  %2647 = getelementptr inbounds %struct.ImVector.5, ptr %2646, i32 0, i32 2
  %2648 = load ptr, ptr %2647, align 8, !tbaa !137
  %2649 = load ptr, ptr %43, align 8, !tbaa !5
  %2650 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2649, i32 0, i32 4
  %2651 = getelementptr inbounds %struct.ImVector.5, ptr %2650, i32 0, i32 0
  %2652 = load i32, ptr %2651, align 8, !tbaa !149
  %2653 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 6
  %2654 = load ptr, ptr %2653, align 8, !tbaa !200
  %2655 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %2648, i32 noundef %2652, ptr noundef %2654, ptr noundef null, ptr noundef null)
  %2656 = load ptr, ptr %43, align 8, !tbaa !5
  %2657 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2656, i32 0, i32 2
  store i32 %2655, ptr %2657, align 4, !tbaa !138
  %2658 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %119, i32 0, i32 7
  %2659 = load i32, ptr %2658, align 8, !tbaa !201
  %2660 = load ptr, ptr %43, align 8, !tbaa !5
  %2661 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2660, i32 0, i32 3
  store i32 %2659, ptr %2661, align 8, !tbaa !134
  %2662 = load ptr, ptr %43, align 8, !tbaa !5
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %2662)
  br label %2663

2663:                                             ; preds = %2644, %2598
  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 %2664

2664:                                             ; preds = %2663, %2395
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #14
  br label %2665

2665:                                             ; preds = %2664, %2344
  %2666 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %2667 = trunc i8 %2666 to i1
  br i1 %2667, label %2684, label %2668

2668:                                             ; preds = %2665
  %2669 = load ptr, ptr %43, align 8, !tbaa !5
  %2670 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2669, i32 0, i32 5
  %2671 = getelementptr inbounds %struct.ImVector.34, ptr %2670, i32 0, i32 2
  %2672 = load ptr, ptr %2671, align 8, !tbaa !136
  %2673 = load ptr, ptr %12, align 8, !tbaa !5
  %2674 = call i32 @strcmp(ptr noundef %2672, ptr noundef %2673) #16
  %2675 = icmp ne i32 %2674, 0
  br i1 %2675, label %2676, label %2684

2676:                                             ; preds = %2668
  %2677 = load ptr, ptr %43, align 8, !tbaa !5
  %2678 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2677, i32 0, i32 5
  %2679 = getelementptr inbounds %struct.ImVector.34, ptr %2678, i32 0, i32 2
  %2680 = load ptr, ptr %2679, align 8, !tbaa !136
  store ptr %2680, ptr %110, align 8, !tbaa !5
  %2681 = load ptr, ptr %43, align 8, !tbaa !5
  %2682 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2681, i32 0, i32 3
  %2683 = load i32, ptr %2682, align 8, !tbaa !134
  store i32 %2683, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !43
  br label %2684

2684:                                             ; preds = %2676, %2668, %2665
  br label %2685

2685:                                             ; preds = %2684, %2339
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #14
  br label %2686

2686:                                             ; preds = %2685, %2202
  %2687 = load ptr, ptr %20, align 8, !tbaa !5
  %2688 = getelementptr inbounds %struct.ImGuiContext, ptr %2687, i32 0, i32 207
  %2689 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2688, i32 0, i32 0
  %2690 = load i32, ptr %2689, align 8, !tbaa !207
  %2691 = load i32, ptr %25, align 4, !tbaa !9
  %2692 = icmp eq i32 %2690, %2691
  br i1 %2692, label %2693, label %2729

2693:                                             ; preds = %2686
  %2694 = load ptr, ptr %20, align 8, !tbaa !5
  %2695 = getelementptr inbounds %struct.ImGuiContext, ptr %2694, i32 0, i32 54
  %2696 = load i32, ptr %2695, align 4, !tbaa !118
  %2697 = load i32, ptr %25, align 4, !tbaa !9
  %2698 = icmp ne i32 %2696, %2697
  br i1 %2698, label %2699, label %2725

2699:                                             ; preds = %2693
  %2700 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  br i1 %2700, label %2701, label %2725

2701:                                             ; preds = %2699
  %2702 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %2703 = trunc i8 %2702 to i1
  br i1 %2703, label %2725, label %2704

2704:                                             ; preds = %2701
  %2705 = load ptr, ptr %20, align 8, !tbaa !5
  %2706 = getelementptr inbounds %struct.ImGuiContext, ptr %2705, i32 0, i32 207
  %2707 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2706, i32 0, i32 1
  %2708 = getelementptr inbounds %struct.ImVector.34, ptr %2707, i32 0, i32 2
  %2709 = load ptr, ptr %2708, align 8, !tbaa !208
  %2710 = load ptr, ptr %12, align 8, !tbaa !5
  %2711 = call i32 @strcmp(ptr noundef %2709, ptr noundef %2710) #16
  %2712 = icmp ne i32 %2711, 0
  br i1 %2712, label %2713, label %2725

2713:                                             ; preds = %2704
  %2714 = load ptr, ptr %20, align 8, !tbaa !5
  %2715 = getelementptr inbounds %struct.ImGuiContext, ptr %2714, i32 0, i32 207
  %2716 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2715, i32 0, i32 1
  %2717 = getelementptr inbounds %struct.ImVector.34, ptr %2716, i32 0, i32 2
  %2718 = load ptr, ptr %2717, align 8, !tbaa !208
  store ptr %2718, ptr %110, align 8, !tbaa !5
  %2719 = load ptr, ptr %20, align 8, !tbaa !5
  %2720 = getelementptr inbounds %struct.ImGuiContext, ptr %2719, i32 0, i32 207
  %2721 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2720, i32 0, i32 1
  %2722 = getelementptr inbounds %struct.ImVector.34, ptr %2721, i32 0, i32 0
  %2723 = load i32, ptr %2722, align 8, !tbaa !209
  %2724 = sub nsw i32 %2723, 1
  store i32 %2724, ptr %111, align 4, !tbaa !9
  store i8 1, ptr %65, align 1, !tbaa !43
  br label %2725

2725:                                             ; preds = %2713, %2704, %2701, %2699, %2693
  %2726 = load ptr, ptr %20, align 8, !tbaa !5
  %2727 = getelementptr inbounds %struct.ImGuiContext, ptr %2726, i32 0, i32 207
  %2728 = getelementptr inbounds %struct.ImGuiInputTextDeactivatedState, ptr %2727, i32 0, i32 0
  store i32 0, ptr %2728, align 8, !tbaa !207
  br label %2729

2729:                                             ; preds = %2725, %2686
  %2730 = load ptr, ptr %110, align 8, !tbaa !5
  %2731 = icmp ne ptr %2730, null
  br i1 %2731, label %2732, label %2784

2732:                                             ; preds = %2729
  %2733 = load i32, ptr %111, align 4, !tbaa !9
  %2734 = icmp sge i32 %2733, 0
  br i1 %2734, label %2735, label %2736

2735:                                             ; preds = %2732
  br label %2738

2736:                                             ; preds = %2732
  call void @__assert_fail(ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 4953, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2737:                                             ; No predecessors!
  br label %2738

2738:                                             ; preds = %2737, %2735
  %2739 = load i8, ptr %47, align 1, !tbaa !43, !range !41, !noundef !42
  %2740 = trunc i8 %2739 to i1
  br i1 %2740, label %2741, label %2776

2741:                                             ; preds = %2738
  call void @llvm.lifetime.start.p0(i64 64, ptr %126) #14
  call void @_ZN26ImGuiInputTextCallbackDataC1Ev(ptr noundef nonnull align 8 dereferenceable(64) %126)
  %2742 = load ptr, ptr %20, align 8, !tbaa !5
  %2743 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 0
  store ptr %2742, ptr %2743, align 8, !tbaa !194
  %2744 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 1
  store i32 2097152, ptr %2744, align 8, !tbaa !196
  %2745 = load i32, ptr %15, align 4, !tbaa !9
  %2746 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 2
  store i32 %2745, ptr %2746, align 4, !tbaa !197
  %2747 = load ptr, ptr %12, align 8, !tbaa !5
  %2748 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 6
  store ptr %2747, ptr %2748, align 8, !tbaa !200
  %2749 = load i32, ptr %111, align 4, !tbaa !9
  %2750 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 7
  store i32 %2749, ptr %2750, align 8, !tbaa !201
  %2751 = load i32, ptr %13, align 4, !tbaa !9
  %2752 = load i32, ptr %111, align 4, !tbaa !9
  %2753 = add nsw i32 %2752, 1
  %2754 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %2751, i32 noundef %2753)
  %2755 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 8
  store i32 %2754, ptr %2755, align 4, !tbaa !202
  %2756 = load ptr, ptr %17, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 3
  store ptr %2756, ptr %2757, align 8, !tbaa !198
  %2758 = load ptr, ptr %16, align 8, !tbaa !5
  %2759 = call noundef i32 %2758(ptr noundef %126)
  %2760 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 6
  %2761 = load ptr, ptr %2760, align 8, !tbaa !200
  store ptr %2761, ptr %12, align 8, !tbaa !5
  %2762 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 8
  %2763 = load i32, ptr %2762, align 4, !tbaa !202
  store i32 %2763, ptr %13, align 4, !tbaa !9
  %2764 = getelementptr inbounds %struct.ImGuiInputTextCallbackData, ptr %126, i32 0, i32 7
  %2765 = load i32, ptr %2764, align 8, !tbaa !201
  %2766 = load i32, ptr %13, align 4, !tbaa !9
  %2767 = sub nsw i32 %2766, 1
  %2768 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2765, i32 noundef %2767)
  store i32 %2768, ptr %111, align 4, !tbaa !9
  %2769 = load i32, ptr %111, align 4, !tbaa !9
  %2770 = load i32, ptr %13, align 4, !tbaa !9
  %2771 = icmp sle i32 %2769, %2770
  br i1 %2771, label %2772, label %2773

2772:                                             ; preds = %2741
  br label %2775

2773:                                             ; preds = %2741
  call void @__assert_fail(ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 4968, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2774:                                             ; No predecessors!
  br label %2775

2775:                                             ; preds = %2774, %2772
  call void @llvm.lifetime.end.p0(i64 64, ptr %126) #14
  br label %2776

2776:                                             ; preds = %2775, %2738
  %2777 = load ptr, ptr %12, align 8, !tbaa !5
  %2778 = load ptr, ptr %110, align 8, !tbaa !5
  %2779 = load i32, ptr %111, align 4, !tbaa !9
  %2780 = add nsw i32 %2779, 1
  %2781 = load i32, ptr %13, align 4, !tbaa !9
  %2782 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2780, i32 noundef %2781)
  %2783 = sext i32 %2782 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %2777, ptr noundef %2778, i64 noundef %2783)
  br label %2784

2784:                                             ; preds = %2776, %2729
  %2785 = load ptr, ptr %20, align 8, !tbaa !5
  %2786 = getelementptr inbounds %struct.ImGuiContext, ptr %2785, i32 0, i32 54
  %2787 = load i32, ptr %2786, align 4, !tbaa !118
  %2788 = load i32, ptr %25, align 4, !tbaa !9
  %2789 = icmp eq i32 %2787, %2788
  br i1 %2789, label %2790, label %2794

2790:                                             ; preds = %2784
  %2791 = load i8, ptr %52, align 1, !tbaa !43, !range !41, !noundef !42
  %2792 = trunc i8 %2791 to i1
  br i1 %2792, label %2793, label %2794

2793:                                             ; preds = %2790
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %2804

2794:                                             ; preds = %2790, %2784
  %2795 = load ptr, ptr %20, align 8, !tbaa !5
  %2796 = getelementptr inbounds %struct.ImGuiContext, ptr %2795, i32 0, i32 54
  %2797 = load i32, ptr %2796, align 4, !tbaa !118
  %2798 = load i32, ptr %25, align 4, !tbaa !9
  %2799 = icmp eq i32 %2797, %2798
  br i1 %2799, label %2800, label %2803

2800:                                             ; preds = %2794
  %2801 = load ptr, ptr %20, align 8, !tbaa !5
  %2802 = getelementptr inbounds %struct.ImGuiContext, ptr %2801, i32 0, i32 283
  store i32 1, ptr %2802, align 8, !tbaa !210
  br label %2803

2803:                                             ; preds = %2800, %2794
  br label %2804

2804:                                             ; preds = %2803, %2793
  %2805 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2806 = trunc i8 %2805 to i1
  br i1 %2806, label %2817, label %2807

2807:                                             ; preds = %2804
  %2808 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui18RenderNavHighlightERK6ImRectji(ptr noundef nonnull align 4 dereferenceable(16) %30, i32 noundef %2808, i32 noundef 0)
  %2809 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %127, ptr align 4 %2809, i64 8, i1 false), !tbaa.struct !44
  %2810 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %128, ptr align 4 %2810, i64 8, i1 false), !tbaa.struct !44
  %2811 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %2812 = load ptr, ptr %22, align 8, !tbaa !5
  %2813 = getelementptr inbounds %struct.ImGuiStyle, ptr %2812, i32 0, i32 13
  %2814 = load float, ptr %2813, align 4, !tbaa !119
  %2815 = load <2 x float>, ptr %127, align 4
  %2816 = load <2 x float>, ptr %128, align 4
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %2815, <2 x float> %2816, i32 noundef %2811, i1 noundef zeroext true, float noundef %2814)
  br label %2817

2817:                                             ; preds = %2807, %2804
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #14
  %2818 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2819 = getelementptr inbounds %struct.ImVec2, ptr %2818, i32 0, i32 0
  %2820 = load float, ptr %2819, align 4, !tbaa !166
  %2821 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2822 = getelementptr inbounds %struct.ImVec2, ptr %2821, i32 0, i32 1
  %2823 = load float, ptr %2822, align 4, !tbaa !211
  %2824 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2825 = getelementptr inbounds %struct.ImVec2, ptr %2824, i32 0, i32 0
  %2826 = load float, ptr %2825, align 4, !tbaa !166
  %2827 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %2828 = load float, ptr %2827, align 4, !tbaa !113
  %2829 = fadd float %2826, %2828
  %2830 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2831 = getelementptr inbounds %struct.ImVec2, ptr %2830, i32 0, i32 1
  %2832 = load float, ptr %2831, align 4, !tbaa !211
  %2833 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %2834 = load float, ptr %2833, align 4, !tbaa !111
  %2835 = fadd float %2832, %2834
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %129, float noundef %2820, float noundef %2823, float noundef %2829, float noundef %2835)
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #14
  %2836 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2837 = trunc i8 %2836 to i1
  br i1 %2837, label %2838, label %2842

2838:                                             ; preds = %2817
  %2839 = load ptr, ptr %34, align 8, !tbaa !5
  %2840 = getelementptr inbounds %struct.ImGuiWindow, ptr %2839, i32 0, i32 69
  %2841 = getelementptr inbounds %struct.ImGuiWindowTempData, ptr %2840, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %130, ptr align 8 %2841, i64 8, i1 false), !tbaa.struct !44
  br label %2847

2842:                                             ; preds = %2817
  %2843 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %2844 = load ptr, ptr %22, align 8, !tbaa !5
  %2845 = getelementptr inbounds %struct.ImGuiStyle, ptr %2844, i32 0, i32 12
  %2846 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %2843, ptr noundef nonnull align 4 dereferenceable(8) %2845)
  store <2 x float> %2846, ptr %130, align 4
  br label %2847

2847:                                             ; preds = %2842, %2838
  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
  %2848 = load i8, ptr %68, align 1, !tbaa !43, !range !41, !noundef !42
  %2849 = trunc i8 %2848 to i1
  br i1 %2849, label %2850, label %2855

2850:                                             ; preds = %2847
  %2851 = load ptr, ptr %43, align 8, !tbaa !5
  %2852 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2851, i32 0, i32 5
  %2853 = getelementptr inbounds %struct.ImVector.34, ptr %2852, i32 0, i32 2
  %2854 = load ptr, ptr %2853, align 8, !tbaa !136
  br label %2857

2855:                                             ; preds = %2847
  %2856 = load ptr, ptr %12, align 8, !tbaa !5
  br label %2857

2857:                                             ; preds = %2855, %2850
  %2858 = phi ptr [ %2854, %2850 ], [ %2856, %2855 ]
  store ptr %2858, 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
  %2859 = load i8, ptr %69, align 1, !tbaa !43, !range !41, !noundef !42
  %2860 = trunc i8 %2859 to i1
  br i1 %2860, label %2861, label %2867

2861:                                             ; preds = %2857
  %2862 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %2862, ptr %133, align 8, !tbaa !5
  %2863 = load ptr, ptr %11, align 8, !tbaa !5
  %2864 = load ptr, ptr %11, align 8, !tbaa !5
  %2865 = call i64 @strlen(ptr noundef %2864) #16
  %2866 = getelementptr inbounds i8, ptr %2863, i64 %2865
  store ptr %2866, ptr %134, align 8, !tbaa !5
  br label %2867

2867:                                             ; preds = %2861, %2857
  %2868 = load i8, ptr %63, align 1, !tbaa !43, !range !41, !noundef !42
  %2869 = trunc i8 %2868 to i1
  br i1 %2869, label %2873, label %2870

2870:                                             ; preds = %2867
  %2871 = load i8, ptr %64, align 1, !tbaa !43, !range !41, !noundef !42
  %2872 = trunc i8 %2871 to i1
  br i1 %2872, label %2873, label %3459

2873:                                             ; preds = %2870, %2867
  %2874 = load ptr, ptr %43, align 8, !tbaa !5
  %2875 = icmp ne ptr %2874, null
  br i1 %2875, label %2876, label %2877

2876:                                             ; preds = %2873
  br label %2879

2877:                                             ; preds = %2873
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 5010, ptr noundef @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #15
  unreachable

2878:                                             ; No predecessors!
  br label %2879

2879:                                             ; preds = %2878, %2876
  %2880 = load i8, ptr %69, align 1, !tbaa !43, !range !41, !noundef !42
  %2881 = trunc i8 %2880 to i1
  br i1 %2881, label %2889, label %2882

2882:                                             ; preds = %2879
  %2883 = load ptr, ptr %133, align 8, !tbaa !5
  %2884 = load ptr, ptr %43, align 8, !tbaa !5
  %2885 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2884, i32 0, i32 3
  %2886 = load i32, ptr %2885, align 8, !tbaa !134
  %2887 = sext i32 %2886 to i64
  %2888 = getelementptr inbounds i8, ptr %2883, i64 %2887
  store ptr %2888, ptr %134, align 8, !tbaa !5
  br label %2889

2889:                                             ; preds = %2882, %2879
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #14
  %2890 = load ptr, ptr %43, align 8, !tbaa !5
  %2891 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2890, i32 0, i32 4
  %2892 = getelementptr inbounds %struct.ImVector.5, ptr %2891, i32 0, i32 2
  %2893 = load ptr, ptr %2892, align 8, !tbaa !137
  store ptr %2893, 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
  %2894 = load i8, ptr %63, align 1, !tbaa !43, !range !41, !noundef !42
  %2895 = trunc i8 %2894 to i1
  br i1 %2895, label %2896, label %2908

2896:                                             ; preds = %2889
  %2897 = load ptr, ptr %135, align 8, !tbaa !5
  %2898 = load ptr, ptr %43, align 8, !tbaa !5
  %2899 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2898, i32 0, i32 10
  %2900 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2899, i32 0, i32 0
  %2901 = load i32, ptr %2900, align 4, !tbaa !144
  %2902 = sext i32 %2901 to i64
  %2903 = getelementptr inbounds i16, ptr %2897, i64 %2902
  %2904 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  store ptr %2903, ptr %2904, align 16, !tbaa !5
  %2905 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  store i32 -1, ptr %2905, align 4, !tbaa !9
  %2906 = load i32, ptr %140, align 4, !tbaa !9
  %2907 = add nsw i32 %2906, 1
  store i32 %2907, ptr %140, align 4, !tbaa !9
  br label %2908

2908:                                             ; preds = %2896, %2889
  %2909 = load i8, ptr %64, align 1, !tbaa !43, !range !41, !noundef !42
  %2910 = trunc i8 %2909 to i1
  br i1 %2910, label %2911, label %2928

2911:                                             ; preds = %2908
  %2912 = load ptr, ptr %135, align 8, !tbaa !5
  %2913 = load ptr, ptr %43, align 8, !tbaa !5
  %2914 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2913, i32 0, i32 10
  %2915 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2914, i32 0, i32 1
  %2916 = load i32, ptr %2915, align 4, !tbaa !141
  %2917 = load ptr, ptr %43, align 8, !tbaa !5
  %2918 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %2917, i32 0, i32 10
  %2919 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %2918, i32 0, i32 2
  %2920 = load i32, ptr %2919, align 4, !tbaa !143
  %2921 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %2916, i32 noundef %2920)
  %2922 = sext i32 %2921 to i64
  %2923 = getelementptr inbounds i16, ptr %2912, i64 %2922
  %2924 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  store ptr %2923, ptr %2924, align 8, !tbaa !5
  %2925 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  store i32 -1, ptr %2925, align 4, !tbaa !9
  %2926 = load i32, ptr %140, align 4, !tbaa !9
  %2927 = add nsw i32 %2926, 1
  store i32 %2927, ptr %140, align 4, !tbaa !9
  br label %2928

2928:                                             ; preds = %2911, %2908
  %2929 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %2930 = trunc i8 %2929 to i1
  %2931 = zext i1 %2930 to i64
  %2932 = select i1 %2930, i32 1, i32 0
  %2933 = load i32, ptr %140, align 4, !tbaa !9
  %2934 = add nsw i32 %2933, %2932
  store i32 %2934, 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
  %2935 = load ptr, ptr %135, align 8, !tbaa !5
  store ptr %2935, ptr %142, align 8, !tbaa !5
  br label %2936

2936:                                             ; preds = %2985, %2928
  %2937 = load ptr, ptr %142, align 8, !tbaa !5
  %2938 = load i16, ptr %2937, align 2, !tbaa !171
  %2939 = zext i16 %2938 to i32
  %2940 = icmp ne i32 %2939, 0
  br i1 %2940, label %2942, label %2941

2941:                                             ; preds = %2936
  store i32 7, ptr %19, align 4
  br label %2988

2942:                                             ; preds = %2936
  %2943 = load ptr, ptr %142, align 8, !tbaa !5
  %2944 = load i16, ptr %2943, align 2, !tbaa !171
  %2945 = zext i16 %2944 to i32
  %2946 = icmp eq i32 %2945, 10
  br i1 %2946, label %2947, label %2984

2947:                                             ; preds = %2942
  %2948 = load i32, ptr %141, align 4, !tbaa !9
  %2949 = add nsw i32 %2948, 1
  store i32 %2949, ptr %141, align 4, !tbaa !9
  %2950 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  %2951 = load i32, ptr %2950, align 4, !tbaa !9
  %2952 = icmp eq i32 %2951, -1
  br i1 %2952, label %2953, label %2966

2953:                                             ; preds = %2947
  %2954 = load ptr, ptr %142, align 8, !tbaa !5
  %2955 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  %2956 = load ptr, ptr %2955, align 16, !tbaa !5
  %2957 = icmp uge ptr %2954, %2956
  br i1 %2957, label %2958, label %2966

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

2964:                                             ; preds = %2958
  store i32 7, ptr %19, align 4
  br label %2988

2965:                                             ; preds = %2958
  br label %2966

2966:                                             ; preds = %2965, %2953, %2947
  %2967 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %2968 = load i32, ptr %2967, align 4, !tbaa !9
  %2969 = icmp eq i32 %2968, -1
  br i1 %2969, label %2970, label %2983

2970:                                             ; preds = %2966
  %2971 = load ptr, ptr %142, align 8, !tbaa !5
  %2972 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  %2973 = load ptr, ptr %2972, align 8, !tbaa !5
  %2974 = icmp uge ptr %2971, %2973
  br i1 %2974, label %2975, label %2983

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

2981:                                             ; preds = %2975
  store i32 7, ptr %19, align 4
  br label %2988

2982:                                             ; preds = %2975
  br label %2983

2983:                                             ; preds = %2982, %2970, %2966
  br label %2984

2984:                                             ; preds = %2983, %2942
  br label %2985

2985:                                             ; preds = %2984
  %2986 = load ptr, ptr %142, align 8, !tbaa !5
  %2987 = getelementptr inbounds i16, ptr %2986, i32 1
  store ptr %2987, ptr %142, align 8, !tbaa !5
  br label %2936, !llvm.loop !212

2988:                                             ; preds = %2981, %2964, %2941
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #14
  br label %2989

2989:                                             ; preds = %2988
  %2990 = load i32, ptr %141, align 4, !tbaa !9
  %2991 = add nsw i32 %2990, 1
  store i32 %2991, ptr %141, align 4, !tbaa !9
  %2992 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  %2993 = load i32, ptr %2992, align 4, !tbaa !9
  %2994 = icmp eq i32 %2993, -1
  br i1 %2994, label %2995, label %2998

2995:                                             ; preds = %2989
  %2996 = load i32, ptr %141, align 4, !tbaa !9
  %2997 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  store i32 %2996, ptr %2997, align 4, !tbaa !9
  br label %2998

2998:                                             ; preds = %2995, %2989
  %2999 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %3000 = load i32, ptr %2999, align 4, !tbaa !9
  %3001 = icmp eq i32 %3000, -1
  br i1 %3001, label %3002, label %3005

3002:                                             ; preds = %2998
  %3003 = load i32, ptr %141, align 4, !tbaa !9
  %3004 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  store i32 %3003, ptr %3004, align 4, !tbaa !9
  br label %3005

3005:                                             ; preds = %3002, %2998
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #14
  %3006 = load ptr, ptr %20, align 8, !tbaa !5
  %3007 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  %3008 = load ptr, ptr %3007, align 16, !tbaa !5
  %3009 = load ptr, ptr %135, align 8, !tbaa !5
  %3010 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %3008, ptr noundef %3009)
  %3011 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 0
  %3012 = load ptr, ptr %3011, align 16, !tbaa !5
  %3013 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %3006, ptr noundef %3010, ptr noundef %3012, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %3013, ptr %143, align 4
  %3014 = getelementptr inbounds %struct.ImVec2, ptr %143, i32 0, i32 0
  %3015 = load float, ptr %3014, align 4, !tbaa !113
  %3016 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  store float %3015, ptr %3016, align 4, !tbaa !113
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #14
  %3017 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 0
  %3018 = load i32, ptr %3017, align 4, !tbaa !9
  %3019 = sitofp i32 %3018 to float
  %3020 = load ptr, ptr %20, align 8, !tbaa !5
  %3021 = getelementptr inbounds %struct.ImGuiContext, ptr %3020, i32 0, i32 6
  %3022 = load float, ptr %3021, align 8, !tbaa !46
  %3023 = fmul float %3019, %3022
  %3024 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  store float %3023, ptr %3024, align 4, !tbaa !111
  %3025 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %3026 = load i32, ptr %3025, align 4, !tbaa !9
  %3027 = icmp sge i32 %3026, 0
  br i1 %3027, label %3028, label %3048

3028:                                             ; preds = %3005
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #14
  %3029 = load ptr, ptr %20, align 8, !tbaa !5
  %3030 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  %3031 = load ptr, ptr %3030, align 8, !tbaa !5
  %3032 = load ptr, ptr %135, align 8, !tbaa !5
  %3033 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %3031, ptr noundef %3032)
  %3034 = getelementptr inbounds [2 x ptr], ptr %138, i64 0, i64 1
  %3035 = load ptr, ptr %3034, align 8, !tbaa !5
  %3036 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %3029, ptr noundef %3033, ptr noundef %3035, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  store <2 x float> %3036, ptr %144, align 4
  %3037 = getelementptr inbounds %struct.ImVec2, ptr %144, i32 0, i32 0
  %3038 = load float, ptr %3037, align 4, !tbaa !113
  %3039 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 0
  store float %3038, ptr %3039, align 4, !tbaa !113
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #14
  %3040 = getelementptr inbounds [2 x i32], ptr %139, i64 0, i64 1
  %3041 = load i32, ptr %3040, align 4, !tbaa !9
  %3042 = sitofp i32 %3041 to float
  %3043 = load ptr, ptr %20, align 8, !tbaa !5
  %3044 = getelementptr inbounds %struct.ImGuiContext, ptr %3043, i32 0, i32 6
  %3045 = load float, ptr %3044, align 8, !tbaa !46
  %3046 = fmul float %3042, %3045
  %3047 = getelementptr inbounds %struct.ImVec2, ptr %137, i32 0, i32 1
  store float %3046, ptr %3047, align 4, !tbaa !111
  br label %3048

3048:                                             ; preds = %3028, %3005
  %3049 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3050 = trunc i8 %3049 to i1
  br i1 %3050, label %3051, label %3060

3051:                                             ; preds = %3048
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #14
  %3052 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3053 = load float, ptr %3052, align 4, !tbaa !113
  %3054 = load i32, ptr %141, align 4, !tbaa !9
  %3055 = sitofp i32 %3054 to float
  %3056 = load ptr, ptr %20, align 8, !tbaa !5
  %3057 = getelementptr inbounds %struct.ImGuiContext, ptr %3056, i32 0, i32 6
  %3058 = load float, ptr %3057, align 8, !tbaa !46
  %3059 = fmul float %3055, %3058
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %145, float noundef %3053, float noundef %3059)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %131, ptr align 4 %145, i64 8, i1 false), !tbaa.struct !44
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #14
  br label %3060

3060:                                             ; preds = %3051, %3048
  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
  %3061 = load i8, ptr %63, align 1, !tbaa !43, !range !41, !noundef !42
  %3062 = trunc i8 %3061 to i1
  br i1 %3062, label %3063, label %3201

3063:                                             ; preds = %3060
  %3064 = load ptr, ptr %43, align 8, !tbaa !5
  %3065 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3064, i32 0, i32 12
  %3066 = load i8, ptr %3065, align 4, !tbaa !173, !range !41, !noundef !42
  %3067 = trunc i8 %3066 to i1
  br i1 %3067, label %3068, label %3201

3068:                                             ; preds = %3063
  %3069 = load i32, ptr %15, align 4, !tbaa !9
  %3070 = and i32 %3069, 32768
  %3071 = icmp ne i32 %3070, 0
  br i1 %3071, label %3121, label %3072

3072:                                             ; preds = %3068
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #14
  %3073 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3074 = load float, ptr %3073, align 4, !tbaa !113
  %3075 = fmul float %3074, 2.500000e-01
  store float %3075, ptr %146, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #14
  %3076 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3077 = load float, ptr %3076, align 4, !tbaa !113
  %3078 = load ptr, ptr %22, align 8, !tbaa !5
  %3079 = getelementptr inbounds %struct.ImGuiStyle, ptr %3078, i32 0, i32 12
  %3080 = getelementptr inbounds %struct.ImVec2, ptr %3079, i32 0, i32 0
  %3081 = load float, ptr %3080, align 4, !tbaa !167
  %3082 = fsub float %3077, %3081
  store float %3082, ptr %147, align 4, !tbaa !45
  %3083 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3084 = load float, ptr %3083, align 4, !tbaa !113
  %3085 = load ptr, ptr %43, align 8, !tbaa !5
  %3086 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3085, i32 0, i32 9
  %3087 = load float, ptr %3086, align 8, !tbaa !139
  %3088 = fcmp olt float %3084, %3087
  br i1 %3088, label %3089, label %3099

3089:                                             ; preds = %3072
  %3090 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3091 = load float, ptr %3090, align 4, !tbaa !113
  %3092 = load float, ptr %146, align 4, !tbaa !45
  %3093 = fsub float %3091, %3092
  %3094 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3093)
  %3095 = fptosi float %3094 to i32
  %3096 = sitofp i32 %3095 to float
  %3097 = load ptr, ptr %43, align 8, !tbaa !5
  %3098 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3097, i32 0, i32 9
  store float %3096, ptr %3098, align 8, !tbaa !139
  br label %3120

3099:                                             ; preds = %3072
  %3100 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3101 = load float, ptr %3100, align 4, !tbaa !113
  %3102 = load float, ptr %147, align 4, !tbaa !45
  %3103 = fsub float %3101, %3102
  %3104 = load ptr, ptr %43, align 8, !tbaa !5
  %3105 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3104, i32 0, i32 9
  %3106 = load float, ptr %3105, align 8, !tbaa !139
  %3107 = fcmp oge float %3103, %3106
  br i1 %3107, label %3108, label %3119

3108:                                             ; preds = %3099
  %3109 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 0
  %3110 = load float, ptr %3109, align 4, !tbaa !113
  %3111 = load float, ptr %147, align 4, !tbaa !45
  %3112 = fsub float %3110, %3111
  %3113 = load float, ptr %146, align 4, !tbaa !45
  %3114 = fadd float %3112, %3113
  %3115 = fptosi float %3114 to i32
  %3116 = sitofp i32 %3115 to float
  %3117 = load ptr, ptr %43, align 8, !tbaa !5
  %3118 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3117, i32 0, i32 9
  store float %3116, ptr %3118, align 8, !tbaa !139
  br label %3119

3119:                                             ; preds = %3108, %3099
  br label %3120

3120:                                             ; preds = %3119, %3089
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #14
  br label %3124

3121:                                             ; preds = %3068
  %3122 = load ptr, ptr %43, align 8, !tbaa !5
  %3123 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3122, i32 0, i32 9
  store float 0.000000e+00, ptr %3123, align 8, !tbaa !139
  br label %3124

3124:                                             ; preds = %3121, %3120
  %3125 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3126 = trunc i8 %3125 to i1
  br i1 %3126, label %3127, label %3198

3127:                                             ; preds = %3124
  %3128 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3129 = load float, ptr %3128, align 4, !tbaa !111
  %3130 = load ptr, ptr %20, align 8, !tbaa !5
  %3131 = getelementptr inbounds %struct.ImGuiContext, ptr %3130, i32 0, i32 6
  %3132 = load float, ptr %3131, align 8, !tbaa !46
  %3133 = fsub float %3129, %3132
  %3134 = load float, ptr %54, align 4, !tbaa !45
  %3135 = fcmp olt float %3133, %3134
  br i1 %3135, label %3136, label %3144

3136:                                             ; preds = %3127
  %3137 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3138 = load float, ptr %3137, align 4, !tbaa !111
  %3139 = load ptr, ptr %20, align 8, !tbaa !5
  %3140 = getelementptr inbounds %struct.ImGuiContext, ptr %3139, i32 0, i32 6
  %3141 = load float, ptr %3140, align 8, !tbaa !46
  %3142 = fsub float %3138, %3141
  %3143 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %3142)
  store float %3143, ptr %54, align 4, !tbaa !45
  br label %3170

3144:                                             ; preds = %3127
  %3145 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3146 = load float, ptr %3145, align 4, !tbaa !111
  %3147 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %3148 = load float, ptr %3147, align 4, !tbaa !111
  %3149 = load ptr, ptr %22, align 8, !tbaa !5
  %3150 = getelementptr inbounds %struct.ImGuiStyle, ptr %3149, i32 0, i32 12
  %3151 = getelementptr inbounds %struct.ImVec2, ptr %3150, i32 0, i32 1
  %3152 = load float, ptr %3151, align 4, !tbaa !112
  %3153 = fneg float %3152
  %3154 = call float @llvm.fmuladd.f32(float %3153, float 2.000000e+00, float %3148)
  %3155 = fsub float %3146, %3154
  %3156 = load float, ptr %54, align 4, !tbaa !45
  %3157 = fcmp oge float %3155, %3156
  br i1 %3157, label %3158, label %3169

3158:                                             ; preds = %3144
  %3159 = getelementptr inbounds %struct.ImVec2, ptr %136, i32 0, i32 1
  %3160 = load float, ptr %3159, align 4, !tbaa !111
  %3161 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %3162 = load float, ptr %3161, align 4, !tbaa !111
  %3163 = fsub float %3160, %3162
  %3164 = load ptr, ptr %22, align 8, !tbaa !5
  %3165 = getelementptr inbounds %struct.ImGuiStyle, ptr %3164, i32 0, i32 12
  %3166 = getelementptr inbounds %struct.ImVec2, ptr %3165, i32 0, i32 1
  %3167 = load float, ptr %3166, align 4, !tbaa !112
  %3168 = call float @llvm.fmuladd.f32(float %3167, float 2.000000e+00, float %3163)
  store float %3168, ptr %54, align 4, !tbaa !45
  br label %3169

3169:                                             ; preds = %3158, %3144
  br label %3170

3170:                                             ; preds = %3169, %3136
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #14
  %3171 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 1
  %3172 = load float, ptr %3171, align 4, !tbaa !111
  %3173 = load ptr, ptr %22, align 8, !tbaa !5
  %3174 = getelementptr inbounds %struct.ImGuiStyle, ptr %3173, i32 0, i32 12
  %3175 = getelementptr inbounds %struct.ImVec2, ptr %3174, i32 0, i32 1
  %3176 = load float, ptr %3175, align 4, !tbaa !112
  %3177 = call float @llvm.fmuladd.f32(float %3176, float 2.000000e+00, float %3172)
  %3178 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 1
  %3179 = load float, ptr %3178, align 4, !tbaa !111
  %3180 = fsub float %3177, %3179
  %3181 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %3180, float noundef 0.000000e+00)
  store float %3181, ptr %148, align 4, !tbaa !45
  %3182 = load float, ptr %54, align 4, !tbaa !45
  %3183 = load float, ptr %148, align 4, !tbaa !45
  %3184 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %3182, float noundef 0.000000e+00, float noundef %3183)
  store float %3184, ptr %54, align 4, !tbaa !45
  %3185 = load ptr, ptr %34, align 8, !tbaa !5
  %3186 = getelementptr inbounds %struct.ImGuiWindow, ptr %3185, i32 0, i32 28
  %3187 = getelementptr inbounds %struct.ImVec2, ptr %3186, i32 0, i32 1
  %3188 = load float, ptr %3187, align 4, !tbaa !129
  %3189 = load float, ptr %54, align 4, !tbaa !45
  %3190 = fsub float %3188, %3189
  %3191 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 1
  %3192 = load float, ptr %3191, align 4, !tbaa !111
  %3193 = fadd float %3192, %3190
  store float %3193, ptr %3191, align 4, !tbaa !111
  %3194 = load float, ptr %54, align 4, !tbaa !45
  %3195 = load ptr, ptr %34, align 8, !tbaa !5
  %3196 = getelementptr inbounds %struct.ImGuiWindow, ptr %3195, i32 0, i32 28
  %3197 = getelementptr inbounds %struct.ImVec2, ptr %3196, i32 0, i32 1
  store float %3194, ptr %3197, align 4, !tbaa !129
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #14
  br label %3198

3198:                                             ; preds = %3170, %3124
  %3199 = load ptr, ptr %43, align 8, !tbaa !5
  %3200 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3199, i32 0, i32 12
  store i8 0, ptr %3200, align 4, !tbaa !173
  br label %3201

3201:                                             ; preds = %3198, %3063, %3060
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #14
  %3202 = load ptr, ptr %43, align 8, !tbaa !5
  %3203 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3202, i32 0, i32 9
  %3204 = load float, ptr %3203, align 8, !tbaa !139
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %149, float noundef %3204, float noundef 0.000000e+00)
  %3205 = load i8, ptr %64, align 1, !tbaa !43, !range !41, !noundef !42
  %3206 = trunc i8 %3205 to i1
  br i1 %3206, label %3207, label %3336

3207:                                             ; preds = %3201
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #14
  %3208 = load ptr, ptr %135, align 8, !tbaa !5
  %3209 = load ptr, ptr %43, align 8, !tbaa !5
  %3210 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3209, i32 0, i32 10
  %3211 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3210, i32 0, i32 1
  %3212 = load i32, ptr %3211, align 4, !tbaa !141
  %3213 = load ptr, ptr %43, align 8, !tbaa !5
  %3214 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3213, i32 0, i32 10
  %3215 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3214, i32 0, i32 2
  %3216 = load i32, ptr %3215, align 4, !tbaa !143
  %3217 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %3212, i32 noundef %3216)
  %3218 = sext i32 %3217 to i64
  %3219 = getelementptr inbounds i16, ptr %3208, i64 %3218
  store ptr %3219, ptr %150, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #14
  %3220 = load ptr, ptr %135, align 8, !tbaa !5
  %3221 = load ptr, ptr %43, align 8, !tbaa !5
  %3222 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3221, i32 0, i32 10
  %3223 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3222, i32 0, i32 1
  %3224 = load i32, ptr %3223, align 4, !tbaa !141
  %3225 = load ptr, ptr %43, align 8, !tbaa !5
  %3226 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3225, i32 0, i32 10
  %3227 = getelementptr inbounds %"struct.ImStb::STB_TexteditState", ptr %3226, i32 0, i32 2
  %3228 = load i32, ptr %3227, align 4, !tbaa !143
  %3229 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3224, i32 noundef %3228)
  %3230 = sext i32 %3229 to i64
  %3231 = getelementptr inbounds i16, ptr %3220, i64 %3230
  store ptr %3231, ptr %151, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #14
  %3232 = load i8, ptr %63, align 1, !tbaa !43, !range !41, !noundef !42
  %3233 = trunc i8 %3232 to i1
  %3234 = zext i1 %3233 to i64
  %3235 = select i1 %3233, float 1.000000e+00, float 0x3FE3333340000000
  %3236 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 50, float noundef %3235)
  store i32 %3236, ptr %152, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #14
  %3237 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3238 = trunc i8 %3237 to i1
  %3239 = zext i1 %3238 to i64
  %3240 = select i1 %3238, float 0.000000e+00, float -1.000000e+00
  store float %3240, ptr %153, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #14
  %3241 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3242 = trunc i8 %3241 to i1
  %3243 = zext i1 %3242 to i64
  %3244 = select i1 %3242, float 0.000000e+00, float 2.000000e+00
  store float %3244, ptr %154, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #14
  %3245 = 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> %3245, ptr %156, align 4
  %3246 = 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> %3246, 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
  %3247 = load ptr, ptr %150, align 8, !tbaa !5
  store ptr %3247, ptr %157, align 8, !tbaa !5
  br label %3248

3248:                                             ; preds = %3321, %3207
  %3249 = load ptr, ptr %157, align 8, !tbaa !5
  %3250 = load ptr, ptr %151, align 8, !tbaa !5
  %3251 = icmp ult ptr %3249, %3250
  br i1 %3251, label %3253, label %3252

3252:                                             ; preds = %3248
  store i32 10, ptr %19, align 4
  br label %3334

3253:                                             ; preds = %3248
  %3254 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 1
  %3255 = load float, ptr %3254, align 4, !tbaa !111
  %3256 = getelementptr inbounds %struct.ImVec4, ptr %129, i32 0, i32 3
  %3257 = load float, ptr %3256, align 4, !tbaa !213
  %3258 = load ptr, ptr %20, align 8, !tbaa !5
  %3259 = getelementptr inbounds %struct.ImGuiContext, ptr %3258, i32 0, i32 6
  %3260 = load float, ptr %3259, align 8, !tbaa !46
  %3261 = fadd float %3257, %3260
  %3262 = fcmp ogt float %3255, %3261
  br i1 %3262, label %3263, label %3264

3263:                                             ; preds = %3253
  store i32 10, ptr %19, align 4
  br label %3334

3264:                                             ; preds = %3253
  %3265 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 1
  %3266 = load float, ptr %3265, align 4, !tbaa !111
  %3267 = getelementptr inbounds %struct.ImVec4, ptr %129, i32 0, i32 1
  %3268 = load float, ptr %3267, align 4, !tbaa !214
  %3269 = fcmp olt float %3266, %3268
  br i1 %3269, label %3270, label %3284

3270:                                             ; preds = %3264
  br label %3271

3271:                                             ; preds = %3282, %3270
  %3272 = load ptr, ptr %157, align 8, !tbaa !5
  %3273 = load ptr, ptr %151, align 8, !tbaa !5
  %3274 = icmp ult ptr %3272, %3273
  br i1 %3274, label %3275, label %3283

3275:                                             ; preds = %3271
  %3276 = load ptr, ptr %157, align 8, !tbaa !5
  %3277 = getelementptr inbounds i16, ptr %3276, i32 1
  store ptr %3277, ptr %157, align 8, !tbaa !5
  %3278 = load i16, ptr %3276, align 2, !tbaa !171
  %3279 = zext i16 %3278 to i32
  %3280 = icmp eq i32 %3279, 10
  br i1 %3280, label %3281, label %3282

3281:                                             ; preds = %3275
  br label %3283

3282:                                             ; preds = %3275
  br label %3271, !llvm.loop !215

3283:                                             ; preds = %3281, %3271
  br label %3321

3284:                                             ; preds = %3264
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #14
  %3285 = load ptr, ptr %20, align 8, !tbaa !5
  %3286 = load ptr, ptr %157, align 8, !tbaa !5
  %3287 = load ptr, ptr %151, align 8, !tbaa !5
  %3288 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %3285, ptr noundef %3286, ptr noundef %3287, ptr noundef %157, ptr noundef null, i1 noundef zeroext true)
  store <2 x float> %3288, ptr %158, align 4
  %3289 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  %3290 = load float, ptr %3289, align 4, !tbaa !113
  %3291 = fcmp ole float %3290, 0.000000e+00
  br i1 %3291, label %3292, label %3301

3292:                                             ; preds = %3284
  %3293 = load ptr, ptr %20, align 8, !tbaa !5
  %3294 = getelementptr inbounds %struct.ImGuiContext, ptr %3293, i32 0, i32 5
  %3295 = load ptr, ptr %3294, align 8, !tbaa !151
  %3296 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %3295, i16 noundef zeroext 32)
  %3297 = fmul float %3296, 5.000000e-01
  %3298 = fptosi float %3297 to i32
  %3299 = sitofp i32 %3298 to float
  %3300 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  store float %3299, ptr %3300, align 4, !tbaa !113
  br label %3301

3301:                                             ; preds = %3292, %3284
  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
  %3302 = load float, ptr %153, align 4, !tbaa !45
  %3303 = load ptr, ptr %20, align 8, !tbaa !5
  %3304 = getelementptr inbounds %struct.ImGuiContext, ptr %3303, i32 0, i32 6
  %3305 = load float, ptr %3304, align 8, !tbaa !46
  %3306 = fsub float %3302, %3305
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %161, float noundef 0.000000e+00, float noundef %3306)
  %3307 = 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> %3307, 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
  %3308 = getelementptr inbounds %struct.ImVec2, ptr %158, i32 0, i32 0
  %3309 = load float, ptr %3308, align 4, !tbaa !113
  %3310 = load float, ptr %154, align 4, !tbaa !45
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %163, float noundef %3309, float noundef %3310)
  %3311 = 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> %3311, 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)
  %3312 = 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 %3312, label %3313, label %3320

3313:                                             ; preds = %3301
  %3314 = load ptr, ptr %34, align 8, !tbaa !5
  %3315 = getelementptr inbounds %struct.ImGuiWindow, ptr %3314, i32 0, i32 87
  %3316 = load ptr, ptr %3315, align 8, !tbaa !216
  %3317 = getelementptr inbounds %struct.ImRect, ptr %159, i32 0, i32 0
  %3318 = getelementptr inbounds %struct.ImRect, ptr %159, i32 0, i32 1
  %3319 = load i32, ptr %152, align 4, !tbaa !9
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(200) %3316, ptr noundef nonnull align 4 dereferenceable(8) %3317, ptr noundef nonnull align 4 dereferenceable(8) %3318, i32 noundef %3319, float noundef 0.000000e+00, i32 noundef 0)
  br label %3320

3320:                                             ; preds = %3313, %3301
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #14
  br label %3321

3321:                                             ; preds = %3320, %3283
  %3322 = getelementptr inbounds %struct.ImVec2, ptr %130, i32 0, i32 0
  %3323 = load float, ptr %3322, align 4, !tbaa !113
  %3324 = getelementptr inbounds %struct.ImVec2, ptr %149, i32 0, i32 0
  %3325 = load float, ptr %3324, align 4, !tbaa !113
  %3326 = fsub float %3323, %3325
  %3327 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 0
  store float %3326, ptr %3327, align 4, !tbaa !113
  %3328 = load ptr, ptr %20, align 8, !tbaa !5
  %3329 = getelementptr inbounds %struct.ImGuiContext, ptr %3328, i32 0, i32 6
  %3330 = load float, ptr %3329, align 8, !tbaa !46
  %3331 = getelementptr inbounds %struct.ImVec2, ptr %155, i32 0, i32 1
  %3332 = load float, ptr %3331, align 4, !tbaa !111
  %3333 = fadd float %3332, %3330
  store float %3333, ptr %3331, align 4, !tbaa !111
  br label %3248, !llvm.loop !217

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

3335:                                             ; preds = %3334
  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 %3336

3336:                                             ; preds = %3335, %3201
  %3337 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3338 = trunc i8 %3337 to i1
  br i1 %3338, label %3346, label %3339

3339:                                             ; preds = %3336
  %3340 = load ptr, ptr %134, align 8, !tbaa !5
  %3341 = load ptr, ptr %133, align 8, !tbaa !5
  %3342 = ptrtoint ptr %3340 to i64
  %3343 = ptrtoint ptr %3341 to i64
  %3344 = sub i64 %3342, %3343
  %3345 = icmp slt i64 %3344, 2097152
  br i1 %3345, label %3346, label %3371

3346:                                             ; preds = %3339, %3336
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #14
  %3347 = load i8, ptr %69, align 1, !tbaa !43, !range !41, !noundef !42
  %3348 = trunc i8 %3347 to i1
  %3349 = zext i1 %3348 to i64
  %3350 = select i1 %3348, i32 1, i32 0
  %3351 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3350, float noundef 1.000000e+00)
  store i32 %3351, ptr %166, align 4, !tbaa !9
  %3352 = load ptr, ptr %34, align 8, !tbaa !5
  %3353 = getelementptr inbounds %struct.ImGuiWindow, ptr %3352, i32 0, i32 87
  %3354 = load ptr, ptr %3353, align 8, !tbaa !216
  %3355 = load ptr, ptr %20, align 8, !tbaa !5
  %3356 = getelementptr inbounds %struct.ImGuiContext, ptr %3355, i32 0, i32 5
  %3357 = load ptr, ptr %3356, align 8, !tbaa !151
  %3358 = load ptr, ptr %20, align 8, !tbaa !5
  %3359 = getelementptr inbounds %struct.ImGuiContext, ptr %3358, i32 0, i32 6
  %3360 = load float, ptr %3359, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #14
  %3361 = 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> %3361, ptr %167, align 4
  %3362 = load i32, ptr %166, align 4, !tbaa !9
  %3363 = load ptr, ptr %133, align 8, !tbaa !5
  %3364 = load ptr, ptr %134, align 8, !tbaa !5
  %3365 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3366 = trunc i8 %3365 to i1
  br i1 %3366, label %3367, label %3368

3367:                                             ; preds = %3346
  br label %3369

3368:                                             ; preds = %3346
  br label %3369

3369:                                             ; preds = %3368, %3367
  %3370 = phi ptr [ null, %3367 ], [ %129, %3368 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(200) %3354, ptr noundef %3357, float noundef %3360, ptr noundef nonnull align 4 dereferenceable(8) %167, i32 noundef %3362, ptr noundef %3363, ptr noundef %3364, float noundef 0.000000e+00, ptr noundef %3370)
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #14
  br label %3371

3371:                                             ; preds = %3369, %3339
  %3372 = load i8, ptr %63, align 1, !tbaa !43, !range !41, !noundef !42
  %3373 = trunc i8 %3372 to i1
  br i1 %3373, label %3374, label %3458

3374:                                             ; preds = %3371
  %3375 = load ptr, ptr %21, align 8, !tbaa !5
  %3376 = getelementptr inbounds %struct.ImGuiIO, ptr %3375, i32 0, i32 3
  %3377 = load float, ptr %3376, align 8, !tbaa !218
  %3378 = load ptr, ptr %43, align 8, !tbaa !5
  %3379 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3378, i32 0, i32 11
  %3380 = load float, ptr %3379, align 8, !tbaa !219
  %3381 = fadd float %3380, %3377
  store float %3381, ptr %3379, align 8, !tbaa !219
  call void @llvm.lifetime.start.p0(i64 1, ptr %168) #14
  %3382 = load ptr, ptr %20, align 8, !tbaa !5
  %3383 = getelementptr inbounds %struct.ImGuiContext, ptr %3382, i32 0, i32 3
  %3384 = getelementptr inbounds %struct.ImGuiIO, ptr %3383, i32 0, i32 18
  %3385 = load i8, ptr %3384, align 4, !tbaa !220, !range !41, !noundef !42
  %3386 = trunc i8 %3385 to i1
  br i1 %3386, label %3387, label %3398

3387:                                             ; preds = %3374
  %3388 = load ptr, ptr %43, align 8, !tbaa !5
  %3389 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3388, i32 0, i32 11
  %3390 = load float, ptr %3389, align 8, !tbaa !219
  %3391 = fcmp ole float %3390, 0.000000e+00
  br i1 %3391, label %3398, label %3392

3392:                                             ; preds = %3387
  %3393 = load ptr, ptr %43, align 8, !tbaa !5
  %3394 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3393, i32 0, i32 11
  %3395 = load float, ptr %3394, align 8, !tbaa !219
  %3396 = call float @fmodf(float noundef %3395, float noundef 0x3FF3333340000000) #14
  %3397 = fcmp ole float %3396, 0x3FE99999A0000000
  br label %3398

3398:                                             ; preds = %3392, %3387, %3374
  %3399 = phi i1 [ true, %3387 ], [ true, %3374 ], [ %3397, %3392 ]
  %3400 = zext i1 %3399 to i8
  store i8 %3400, ptr %168, align 1, !tbaa !43
  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
  %3401 = 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> %3401, ptr %171, align 4
  %3402 = 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> %3402, ptr %170, align 4
  %3403 = call <2 x float> @_ZL7ImTruncRK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %170)
  store <2 x float> %3403, 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
  %3404 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 0
  %3405 = load float, ptr %3404, align 4, !tbaa !113
  %3406 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 1
  %3407 = load float, ptr %3406, align 4, !tbaa !111
  %3408 = load ptr, ptr %20, align 8, !tbaa !5
  %3409 = getelementptr inbounds %struct.ImGuiContext, ptr %3408, i32 0, i32 6
  %3410 = load float, ptr %3409, align 8, !tbaa !46
  %3411 = fsub float %3407, %3410
  %3412 = fadd float %3411, 5.000000e-01
  %3413 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 0
  %3414 = load float, ptr %3413, align 4, !tbaa !113
  %3415 = fadd float %3414, 1.000000e+00
  %3416 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 1
  %3417 = load float, ptr %3416, align 4, !tbaa !111
  %3418 = fsub float %3417, 1.500000e+00
  call void @_ZN6ImRectC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %172, float noundef %3405, float noundef %3412, float noundef %3415, float noundef %3418)
  %3419 = load i8, ptr %168, align 1, !tbaa !43, !range !41, !noundef !42
  %3420 = trunc i8 %3419 to i1
  call void @llvm.lifetime.start.p0(i64 16, ptr %173) #14
  br i1 %3420, label %3421, label %3423

3421:                                             ; preds = %3398
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %173, ptr noundef nonnull align 4 dereferenceable(16) %129)
  %3422 = call noundef zeroext i1 @_ZNK6ImRect8OverlapsERKS_(ptr noundef nonnull align 4 dereferenceable(16) %172, ptr noundef nonnull align 4 dereferenceable(16) %173)
  br label %3423

3423:                                             ; preds = %3421, %3398
  %3424 = phi i1 [ false, %3398 ], [ %3422, %3421 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %173) #14
  br i1 %3424, label %3425, label %3432

3425:                                             ; preds = %3423
  %3426 = load ptr, ptr %34, align 8, !tbaa !5
  %3427 = getelementptr inbounds %struct.ImGuiWindow, ptr %3426, i32 0, i32 87
  %3428 = load ptr, ptr %3427, align 8, !tbaa !216
  %3429 = getelementptr inbounds %struct.ImRect, ptr %172, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #14
  %3430 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %172)
  store <2 x float> %3430, ptr %174, align 4
  %3431 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(200) %3428, ptr noundef nonnull align 4 dereferenceable(8) %3429, ptr noundef nonnull align 4 dereferenceable(8) %174, i32 noundef %3431, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #14
  br label %3432

3432:                                             ; preds = %3425, %3423
  %3433 = load i8, ptr %44, align 1, !tbaa !43, !range !41, !noundef !42
  %3434 = trunc i8 %3433 to i1
  br i1 %3434, label %3457, label %3435

3435:                                             ; preds = %3432
  %3436 = load ptr, ptr %20, align 8, !tbaa !5
  %3437 = getelementptr inbounds %struct.ImGuiContext, ptr %3436, i32 0, i32 238
  %3438 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3437, i32 0, i32 0
  store i8 1, ptr %3438, align 8, !tbaa !221
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #14
  %3439 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 0
  %3440 = load float, ptr %3439, align 4, !tbaa !113
  %3441 = fsub float %3440, 1.000000e+00
  %3442 = getelementptr inbounds %struct.ImVec2, ptr %169, i32 0, i32 1
  %3443 = load float, ptr %3442, align 4, !tbaa !111
  %3444 = load ptr, ptr %20, align 8, !tbaa !5
  %3445 = getelementptr inbounds %struct.ImGuiContext, ptr %3444, i32 0, i32 6
  %3446 = load float, ptr %3445, align 8, !tbaa !46
  %3447 = fsub float %3443, %3446
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %175, float noundef %3441, float noundef %3447)
  %3448 = load ptr, ptr %20, align 8, !tbaa !5
  %3449 = getelementptr inbounds %struct.ImGuiContext, ptr %3448, i32 0, i32 238
  %3450 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3449, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %3450, ptr align 4 %175, i64 8, i1 false), !tbaa.struct !44
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #14
  %3451 = load ptr, ptr %20, align 8, !tbaa !5
  %3452 = getelementptr inbounds %struct.ImGuiContext, ptr %3451, i32 0, i32 6
  %3453 = load float, ptr %3452, align 8, !tbaa !46
  %3454 = load ptr, ptr %20, align 8, !tbaa !5
  %3455 = getelementptr inbounds %struct.ImGuiContext, ptr %3454, i32 0, i32 238
  %3456 = getelementptr inbounds %struct.ImGuiPlatformImeData, ptr %3455, i32 0, i32 2
  store float %3453, ptr %3456, align 4, !tbaa !222
  br label %3457

3457:                                             ; preds = %3435, %3432
  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 %3458

3458:                                             ; preds = %3457, %3371
  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 %3533

3459:                                             ; preds = %2870
  %3460 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3461 = trunc i8 %3460 to i1
  br i1 %3461, label %3462, label %3472

3462:                                             ; preds = %3459
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #14
  %3463 = getelementptr inbounds %struct.ImVec2, ptr %35, i32 0, i32 0
  %3464 = load float, ptr %3463, align 4, !tbaa !113
  %3465 = load ptr, ptr %133, align 8, !tbaa !5
  %3466 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %3465, ptr noundef %134)
  %3467 = sitofp i32 %3466 to float
  %3468 = load ptr, ptr %20, align 8, !tbaa !5
  %3469 = getelementptr inbounds %struct.ImGuiContext, ptr %3468, i32 0, i32 6
  %3470 = load float, ptr %3469, align 8, !tbaa !46
  %3471 = fmul float %3467, %3470
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %176, float noundef %3464, float noundef %3471)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %131, ptr align 4 %176, i64 8, i1 false), !tbaa.struct !44
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #14
  br label %3498

3472:                                             ; preds = %3459
  %3473 = load i8, ptr %69, align 1, !tbaa !43, !range !41, !noundef !42
  %3474 = trunc i8 %3473 to i1
  br i1 %3474, label %3488, label %3475

3475:                                             ; preds = %3472
  %3476 = load ptr, ptr %20, align 8, !tbaa !5
  %3477 = getelementptr inbounds %struct.ImGuiContext, ptr %3476, i32 0, i32 54
  %3478 = load i32, ptr %3477, align 4, !tbaa !118
  %3479 = load i32, ptr %25, align 4, !tbaa !9
  %3480 = icmp eq i32 %3478, %3479
  br i1 %3480, label %3481, label %3488

3481:                                             ; preds = %3475
  %3482 = load ptr, ptr %133, align 8, !tbaa !5
  %3483 = load ptr, ptr %43, align 8, !tbaa !5
  %3484 = getelementptr inbounds %struct.ImGuiInputTextState, ptr %3483, i32 0, i32 3
  %3485 = load i32, ptr %3484, align 8, !tbaa !134
  %3486 = sext i32 %3485 to i64
  %3487 = getelementptr inbounds i8, ptr %3482, i64 %3486
  store ptr %3487, ptr %134, align 8, !tbaa !5
  br label %3497

3488:                                             ; preds = %3475, %3472
  %3489 = load i8, ptr %69, align 1, !tbaa !43, !range !41, !noundef !42
  %3490 = trunc i8 %3489 to i1
  br i1 %3490, label %3496, label %3491

3491:                                             ; preds = %3488
  %3492 = load ptr, ptr %133, align 8, !tbaa !5
  %3493 = load ptr, ptr %133, align 8, !tbaa !5
  %3494 = call i64 @strlen(ptr noundef %3493) #16
  %3495 = getelementptr inbounds i8, ptr %3492, i64 %3494
  store ptr %3495, ptr %134, align 8, !tbaa !5
  br label %3496

3496:                                             ; preds = %3491, %3488
  br label %3497

3497:                                             ; preds = %3496, %3481
  br label %3498

3498:                                             ; preds = %3497, %3462
  %3499 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3500 = trunc i8 %3499 to i1
  br i1 %3500, label %3508, label %3501

3501:                                             ; preds = %3498
  %3502 = load ptr, ptr %134, align 8, !tbaa !5
  %3503 = load ptr, ptr %133, align 8, !tbaa !5
  %3504 = ptrtoint ptr %3502 to i64
  %3505 = ptrtoint ptr %3503 to i64
  %3506 = sub i64 %3504, %3505
  %3507 = icmp slt i64 %3506, 2097152
  br i1 %3507, label %3508, label %3532

3508:                                             ; preds = %3501, %3498
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #14
  %3509 = load i8, ptr %69, align 1, !tbaa !43, !range !41, !noundef !42
  %3510 = trunc i8 %3509 to i1
  %3511 = zext i1 %3510 to i64
  %3512 = select i1 %3510, i32 1, i32 0
  %3513 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %3512, float noundef 1.000000e+00)
  store i32 %3513, ptr %177, align 4, !tbaa !9
  %3514 = load ptr, ptr %34, align 8, !tbaa !5
  %3515 = getelementptr inbounds %struct.ImGuiWindow, ptr %3514, i32 0, i32 87
  %3516 = load ptr, ptr %3515, align 8, !tbaa !216
  %3517 = load ptr, ptr %20, align 8, !tbaa !5
  %3518 = getelementptr inbounds %struct.ImGuiContext, ptr %3517, i32 0, i32 5
  %3519 = load ptr, ptr %3518, align 8, !tbaa !151
  %3520 = load ptr, ptr %20, align 8, !tbaa !5
  %3521 = getelementptr inbounds %struct.ImGuiContext, ptr %3520, i32 0, i32 6
  %3522 = load float, ptr %3521, align 8, !tbaa !46
  %3523 = load i32, ptr %177, align 4, !tbaa !9
  %3524 = load ptr, ptr %133, align 8, !tbaa !5
  %3525 = load ptr, ptr %134, align 8, !tbaa !5
  %3526 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3527 = trunc i8 %3526 to i1
  br i1 %3527, label %3528, label %3529

3528:                                             ; preds = %3508
  br label %3530

3529:                                             ; preds = %3508
  br label %3530

3530:                                             ; preds = %3529, %3528
  %3531 = phi ptr [ null, %3528 ], [ %129, %3529 ]
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(200) %3516, ptr noundef %3519, float noundef %3522, ptr noundef nonnull align 4 dereferenceable(8) %130, i32 noundef %3523, ptr noundef %3524, ptr noundef %3525, float noundef 0.000000e+00, ptr noundef %3531)
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #14
  br label %3532

3532:                                             ; preds = %3530, %3501
  br label %3533

3533:                                             ; preds = %3532, %3458
  %3534 = load i8, ptr %45, align 1, !tbaa !43, !range !41, !noundef !42
  %3535 = trunc i8 %3534 to i1
  br i1 %3535, label %3536, label %3540

3536:                                             ; preds = %3533
  %3537 = load i8, ptr %69, align 1, !tbaa !43, !range !41, !noundef !42
  %3538 = trunc i8 %3537 to i1
  br i1 %3538, label %3540, label %3539

3539:                                             ; preds = %3536
  call void @_ZN5ImGui7PopFontEv()
  br label %3540

3540:                                             ; preds = %3539, %3536, %3533
  %3541 = load i8, ptr %24, align 1, !tbaa !43, !range !41, !noundef !42
  %3542 = trunc i8 %3541 to i1
  br i1 %3542, label %3543, label %3587

3543:                                             ; preds = %3540
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #14
  %3544 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 0
  %3545 = load float, ptr %3544, align 4, !tbaa !113
  %3546 = getelementptr inbounds %struct.ImVec2, ptr %131, i32 0, i32 1
  %3547 = load float, ptr %3546, align 4, !tbaa !111
  %3548 = load ptr, ptr %22, align 8, !tbaa !5
  %3549 = getelementptr inbounds %struct.ImGuiStyle, ptr %3548, i32 0, i32 12
  %3550 = getelementptr inbounds %struct.ImVec2, ptr %3549, i32 0, i32 1
  %3551 = load float, ptr %3550, align 4, !tbaa !112
  %3552 = fadd float %3547, %3551
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %178, float noundef %3545, float noundef %3552)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %178)
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #14
  %3553 = load ptr, ptr %20, align 8, !tbaa !5
  %3554 = getelementptr inbounds %struct.ImGuiContext, ptr %3553, i32 0, i32 86
  %3555 = getelementptr inbounds %struct.ImGuiNextItemData, ptr %3554, i32 0, i32 1
  %3556 = load i32, ptr %3555, align 4, !tbaa !223
  %3557 = or i32 %3556, 1048577
  store i32 %3557, ptr %3555, align 4, !tbaa !223
  call void @_ZN5ImGui8EndChildEv()
  %3558 = load ptr, ptr %20, align 8, !tbaa !5
  %3559 = getelementptr inbounds %struct.ImGuiContext, ptr %3558, i32 0, i32 87
  %3560 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3559, i32 0, i32 2
  %3561 = load i32, ptr %3560, align 8, !tbaa !224
  %3562 = and i32 %3561, 128
  %3563 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %36, i32 0, i32 2
  %3564 = load i32, ptr %3563, align 4, !tbaa !225
  %3565 = or i32 %3564, %3562
  store i32 %3565, ptr %3563, align 4, !tbaa !225
  call void @_ZN5ImGui8EndGroupEv()
  %3566 = load ptr, ptr %20, align 8, !tbaa !5
  %3567 = getelementptr inbounds %struct.ImGuiContext, ptr %3566, i32 0, i32 87
  %3568 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3567, i32 0, i32 0
  %3569 = load i32, ptr %3568, align 8, !tbaa !226
  %3570 = icmp eq i32 %3569, 0
  br i1 %3570, label %3571, label %3586

3571:                                             ; preds = %3543
  %3572 = load i32, ptr %25, align 4, !tbaa !9
  %3573 = load ptr, ptr %20, align 8, !tbaa !5
  %3574 = getelementptr inbounds %struct.ImGuiContext, ptr %3573, i32 0, i32 87
  %3575 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3574, i32 0, i32 0
  store i32 %3572, ptr %3575, align 8, !tbaa !226
  %3576 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %36, i32 0, i32 1
  %3577 = load i32, ptr %3576, align 4, !tbaa !227
  %3578 = load ptr, ptr %20, align 8, !tbaa !5
  %3579 = getelementptr inbounds %struct.ImGuiContext, ptr %3578, i32 0, i32 87
  %3580 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3579, i32 0, i32 1
  store i32 %3577, ptr %3580, align 4, !tbaa !125
  %3581 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %36, i32 0, i32 2
  %3582 = load i32, ptr %3581, align 4, !tbaa !225
  %3583 = load ptr, ptr %20, align 8, !tbaa !5
  %3584 = getelementptr inbounds %struct.ImGuiContext, ptr %3583, i32 0, i32 87
  %3585 = getelementptr inbounds %struct.ImGuiLastItemData, ptr %3584, i32 0, i32 2
  store i32 %3582, ptr %3585, align 8, !tbaa !224
  br label %3586

3586:                                             ; preds = %3571, %3543
  br label %3587

3587:                                             ; preds = %3586, %3540
  %3588 = load ptr, ptr %20, align 8, !tbaa !5
  %3589 = getelementptr inbounds %struct.ImGuiContext, ptr %3588, i32 0, i32 249
  %3590 = load i8, ptr %3589, align 8, !tbaa !228, !range !41, !noundef !42
  %3591 = trunc i8 %3590 to i1
  br i1 %3591, label %3592, label %3601

3592:                                             ; preds = %3587
  %3593 = load i8, ptr %45, align 1, !tbaa !43, !range !41, !noundef !42
  %3594 = trunc i8 %3593 to i1
  br i1 %3594, label %3595, label %3598

3595:                                             ; preds = %3592
  %3596 = load i8, ptr %69, align 1, !tbaa !43, !range !41, !noundef !42
  %3597 = trunc i8 %3596 to i1
  br i1 %3597, label %3598, label %3601

3598:                                             ; preds = %3595, %3592
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef @.str.27, ptr noundef @.str.28)
  %3599 = load ptr, ptr %133, align 8, !tbaa !5
  %3600 = load ptr, ptr %134, align 8, !tbaa !5
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef %130, ptr noundef %3599, ptr noundef %3600)
  br label %3601

3601:                                             ; preds = %3598, %3595, %3587
  %3602 = getelementptr inbounds %struct.ImVec2, ptr %26, i32 0, i32 0
  %3603 = load float, ptr %3602, align 4, !tbaa !113
  %3604 = fcmp ogt float %3603, 0.000000e+00
  br i1 %3604, label %3605, label %3624

3605:                                             ; preds = %3601
  %3606 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 1
  %3607 = getelementptr inbounds %struct.ImVec2, ptr %3606, i32 0, i32 0
  %3608 = load float, ptr %3607, align 4, !tbaa !229
  %3609 = load ptr, ptr %22, align 8, !tbaa !5
  %3610 = getelementptr inbounds %struct.ImGuiStyle, ptr %3609, i32 0, i32 16
  %3611 = getelementptr inbounds %struct.ImVec2, ptr %3610, i32 0, i32 0
  %3612 = load float, ptr %3611, align 4, !tbaa !114
  %3613 = fadd float %3608, %3612
  %3614 = getelementptr inbounds %struct.ImRect, ptr %30, i32 0, i32 0
  %3615 = getelementptr inbounds %struct.ImVec2, ptr %3614, i32 0, i32 1
  %3616 = load float, ptr %3615, align 4, !tbaa !211
  %3617 = load ptr, ptr %22, align 8, !tbaa !5
  %3618 = getelementptr inbounds %struct.ImGuiStyle, ptr %3617, i32 0, i32 12
  %3619 = getelementptr inbounds %struct.ImVec2, ptr %3618, i32 0, i32 1
  %3620 = load float, ptr %3619, align 4, !tbaa !112
  %3621 = fadd float %3616, %3620
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %179, float noundef %3613, float noundef %3621)
  %3622 = load ptr, ptr %10, align 8, !tbaa !5
  %3623 = load <2 x float>, ptr %179, align 4
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %3623, ptr noundef %3622, ptr noundef null, i1 noundef zeroext true)
  br label %3624

3624:                                             ; preds = %3605, %3601
  %3625 = load i8, ptr %65, align 1, !tbaa !43, !range !41, !noundef !42
  %3626 = trunc i8 %3625 to i1
  br i1 %3626, label %3627, label %3633

3627:                                             ; preds = %3624
  %3628 = load i32, ptr %15, align 4, !tbaa !9
  %3629 = and i32 %3628, 134217728
  %3630 = icmp ne i32 %3629, 0
  br i1 %3630, label %3633, label %3631

3631:                                             ; preds = %3627
  %3632 = load i32, ptr %25, align 4, !tbaa !9
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %3632)
  br label %3633

3633:                                             ; preds = %3631, %3627, %3624
  %3634 = load ptr, ptr %20, align 8, !tbaa !5
  %3635 = load i32, ptr %15, align 4, !tbaa !9
  %3636 = and i32 %3635, 64
  %3637 = icmp ne i32 %3636, 0
  br i1 %3637, label %3638, label %3641

3638:                                             ; preds = %3633
  %3639 = load i8, ptr %66, align 1, !tbaa !43, !range !41, !noundef !42
  %3640 = trunc i8 %3639 to i1
  store i1 %3640, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3644

3641:                                             ; preds = %3633
  %3642 = load i8, ptr %65, align 1, !tbaa !43, !range !41, !noundef !42
  %3643 = trunc i8 %3642 to i1
  store i1 %3643, ptr %9, align 1
  store i32 1, ptr %19, align 4
  br label %3644

3644:                                             ; preds = %3641, %3638
  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 %3645

3645:                                             ; preds = %3644, %409, %395
  call void @llvm.lifetime.end.p0(i64 80, 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 %3646

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

3648:                                             ; preds = %2278
  %3649 = load ptr, ptr %114, align 8
  %3650 = load i32, ptr %115, align 4
  %3651 = insertvalue { ptr, i32 } poison, ptr %3649, 0
  %3652 = insertvalue { ptr, i32 } %3651, i32 %3650, 1
  resume { ptr, i32 } %3652

3653:                                             ; preds = %2150, %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) #12

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(80)) 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) #13 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 @_ZN5ImGui8ShortcutEiij(i32 noundef, i32 noundef, i32 noundef) #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #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 @_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

; 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(200), ptr noundef, float noundef, ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, ptr noundef, ptr noundef, float noundef, ptr noundef) #4

; 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 = { 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 #12 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #13 = { 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 #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 207}
!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, !14, i64 128, !14, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !13, i64 152, !13, i64 160, !13, i64 168, !13, i64 176, !13, i64 184, !13, i64 192, !15, i64 200, !15, i64 201, !15, i64 202, !15, i64 203, !15, i64 204, !15, i64 205, !15, i64 206, !15, i64 207, !15, i64 208, !15, i64 209, !15, i64 210, !15, i64 211, !15, i64 212, !15, i64 213, !7, i64 214, !7, i64 215, !16, i64 216, !16, i64 218, !16, i64 220, !16, i64 222, !16, i64 224, !7, i64 226, !7, i64 227, !15, i64 228, !17, i64 232, !7, i64 236, !7, i64 237, !7, i64 238, !7, i64 239, !10, i64 240, !10, i64 241, !10, i64 242, !13, i64 244, !13, i64 252, !18, i64 264, !19, i64 280, !25, i64 512, !25, i64 528, !25, i64 544, !25, i64 560, !25, i64 576, !25, i64 592, !25, i64 608, !26, i64 624, !26, i64 628, !10, i64 632, !14, i64 636, !14, i64 640, !27, i64 648, !29, i64 664, !14, i64 680, !10, i64 684, !6, i64 688, !30, i64 696, !6, i64 896, !6, i64 904, !6, i64 912, !6, i64 920, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !7, i64 960, !7, i64 968, !7, i64 1000, !10, i64 1016, !10, i64 1020, !10, i64 1024, !15, i64 1028}
!13 = !{!"_ZTS6ImVec2", !14, i64 0, !14, i64 4}
!14 = !{!"float", !7, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"_ZTS8ImGuiDir", !7, i64 0}
!18 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !6, i64 8}
!19 = !{!"_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, !20, i64 68, !20, i64 72, !20, i64 76, !13, i64 80, !21, i64 88, !16, i64 92, !16, i64 94, !15, i64 96, !15, i64 97, !15, i64 98, !15, i64 99, !13, i64 100, !22, i64 108, !10, i64 136, !10, i64 140, !23, i64 144, !6, i64 160, !6, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !14, i64 192, !14, i64 196, !24, i64 200, !24, i64 216}
!20 = !{!"_ZTS6ImVec1", !14, i64 0}
!21 = !{!"_ZTS13ImGuiNavLayer", !7, i64 0}
!22 = !{!"_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}
!23 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !6, i64 8}
!24 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !6, i64 8}
!25 = !{!"_ZTS6ImRect", !13, i64 0, !13, i64 8}
!26 = !{!"_ZTS8ImVec2ih", !16, i64 0, !16, i64 2}
!27 = !{!"_ZTS12ImGuiStorage", !28, i64 0}
!28 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !10, i64 0, !10, i64 4, !6, i64 8}
!29 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !10, i64 0, !10, i64 4, !6, i64 8}
!30 = !{!"_ZTS10ImDrawList", !31, i64 0, !32, i64 16, !33, i64 32, !10, i64 48, !10, i64 52, !6, i64 56, !6, i64 64, !6, i64 72, !34, i64 80, !35, i64 96, !37, i64 128, !39, i64 152, !40, i64 168, !14, i64 184, !6, i64 192}
!31 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !6, i64 8}
!32 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !6, i64 8}
!33 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !6, i64 8}
!34 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !6, i64 8}
!35 = !{!"_ZTS15ImDrawCmdHeader", !36, i64 0, !6, i64 16, !10, i64 24}
!36 = !{!"_ZTS6ImVec4", !14, i64 0, !14, i64 4, !14, i64 8, !14, i64 12}
!37 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !38, i64 8}
!38 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !6, i64 8}
!39 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !6, i64 8}
!40 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !6, i64 8}
!41 = !{i8 0, i8 2}
!42 = !{}
!43 = !{!15, !15, i64 0}
!44 = !{i64 0, i64 4, !45, i64 4, i64 4, !45}
!45 = !{!14, !14, i64 0}
!46 = !{!47, !14, i64 15760}
!47 = !{!"_ZTS12ImGuiContext", !15, i64 0, !15, i64 1, !48, i64 8, !50, i64 14592, !6, i64 15752, !14, i64 15760, !14, i64 15764, !14, i64 15768, !14, i64 15772, !51, i64 15776, !52, i64 16312, !10, i64 16320, !10, i64 16324, !10, i64 16328, !15, i64 16332, !15, i64 16333, !15, i64 16334, !15, i64 16335, !15, i64 16336, !6, i64 16344, !7, i64 16352, !53, i64 16368, !53, i64 16384, !49, i64 16400, !10, i64 16404, !23, i64 16408, !23, i64 16424, !23, i64 16440, !54, i64 16456, !27, i64 16472, !10, i64 16488, !13, i64 16492, !10, i64 16500, !6, i64 16504, !6, i64 16512, !6, i64 16520, !6, i64 16528, !6, i64 16536, !6, i64 16544, !13, i64 16552, !10, i64 16560, !10, i64 16564, !14, i64 16568, !13, i64 16572, !13, i64 16580, !10, i64 16588, !10, i64 16592, !10, i64 16596, !14, i64 16600, !14, i64 16604, !15, i64 16608, !15, i64 16609, !15, i64 16610, !10, i64 16612, !10, i64 16616, !14, i64 16620, !15, i64 16624, !15, i64 16625, !15, i64 16626, !15, i64 16627, !15, i64 16628, !15, i64 16629, !15, i64 16630, !10, i64 16631, !13, i64 16632, !6, i64 16640, !55, i64 16648, !10, i64 16652, !15, i64 16656, !15, i64 16657, !6, i64 16664, !10, i64 16672, !14, i64 16676, !52, i64 16680, !52, i64 16688, !52, i64 16696, !56, i64 16704, !7, i64 16724, !57, i64 18576, !10, i64 18920, !15, i64 18924, !10, i64 18928, !10, i64 18932, !10, i64 18936, !10, i64 18940, !59, i64 18944, !62, i64 19000, !63, i64 19080, !15, i64 19192, !10, i64 19196, !64, i64 19200, !65, i64 19216, !66, i64 19232, !67, i64 19248, !68, i64 19264, !69, i64 19280, !70, i64 19296, !70, i64 19312, !71, i64 19328, !72, i64 19344, !6, i64 19360, !10, i64 19368, !10, i64 19372, !21, i64 19376, !10, i64 19380, !10, i64 19384, !10, i64 19388, !10, i64 19392, !67, i64 19400, !10, i64 19416, !14, i64 19420, !10, i64 19424, !10, i64 19428, !55, i64 19432, !60, i64 19440, !15, i64 19448, !15, i64 19449, !15, i64 19450, !15, i64 19451, !15, i64 19452, !15, i64 19453, !15, i64 19454, !73, i64 19456, !15, i64 19512, !15, i64 19513, !15, i64 19514, !10, i64 19516, !10, i64 19520, !10, i64 19524, !17, i64 19528, !17, i64 19532, !17, i64 19536, !25, i64 19540, !25, i64 19556, !10, i64 19572, !10, i64 19576, !10, i64 19580, !73, i64 19584, !73, i64 19640, !73, i64 19696, !73, i64 19752, !10, i64 19808, !10, i64 19812, !10, i64 19816, !10, i64 19820, !15, i64 19824, !15, i64 19825, !10, i64 19828, !10, i64 19832, !6, i64 19840, !6, i64 19848, !6, i64 19856, !14, i64 19864, !14, i64 19868, !15, i64 19872, !74, i64 19876, !13, i64 19880, !13, i64 19888, !14, i64 19896, !15, i64 19900, !15, i64 19901, !15, i64 19902, !10, i64 19904, !10, i64 19908, !10, i64 19912, !75, i64 19920, !25, i64 19984, !25, i64 20000, !10, i64 20016, !10, i64 20020, !14, i64 20024, !10, i64 20028, !10, i64 20032, !10, i64 20036, !10, i64 20040, !76, i64 20048, !7, i64 20064, !10, i64 20080, !77, i64 20088, !6, i64 20104, !10, i64 20112, !10, i64 20116, !78, i64 20120, !79, i64 20136, !24, i64 20176, !38, i64 20192, !6, i64 20208, !81, i64 20216, !83, i64 20256, !84, i64 20272, !85, i64 20288, !6, i64 20392, !10, i64 20400, !86, i64 20408, !87, i64 20424, !10, i64 20464, !10, i64 20468, !14, i64 20472, !14, i64 20476, !10, i64 20480, !10, i64 20484, !10, i64 20488, !14, i64 20492, !13, i64 20496, !89, i64 20504, !93, i64 24240, !94, i64 24264, !10, i64 24384, !61, i64 24388, !10, i64 24396, !10, i64 24400, !10, i64 24404, !10, i64 24408, !10, i64 24412, !14, i64 24416, !14, i64 24420, !10, i64 24424, !36, i64 24428, !96, i64 24444, !25, i64 24492, !15, i64 24508, !16, i64 24510, !14, i64 24512, !14, i64 24516, !14, i64 24520, !15, i64 24524, !15, i64 24525, !14, i64 24528, !14, i64 24532, !14, i64 24536, !16, i64 24540, !16, i64 24542, !16, i64 24544, !90, i64 24552, !18, i64 24568, !97, i64 24584, !99, i64 24688, !99, i64 24704, !15, i64 24720, !14, i64 24724, !100, i64 24728, !101, i64 24744, !102, i64 24760, !103, i64 24776, !104, i64 24792, !10, i64 24808, !7, i64 24816, !15, i64 24888, !105, i64 24892, !6, i64 24896, !100, i64 24904, !6, i64 24920, !6, i64 24928, !14, i64 24936, !15, i64 24940, !10, i64 24944, !10, i64 24948, !10, i64 24952, !10, i64 24956, !100, i64 24960, !106, i64 24976, !10, i64 25000, !7, i64 25004, !7, i64 25005, !15, i64 25006, !10, i64 25008, !7, i64 25012, !15, i64 25013, !7, i64 25014, !10, i64 25016, !14, i64 25020, !36, i64 25024, !107, i64 25040, !108, i64 25072, !110, i64 25112, !7, i64 25172, !10, i64 25412, !10, i64 25416, !14, i64 25420, !10, i64 25424, !10, i64 25428, !10, i64 25432, !90, i64 25440, !7, i64 25456}
!48 = !{!"_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, !15, i64 88, !14, i64 92, !14, i64 96, !14, i64 100, !14, i64 104, !14, i64 108, !14, i64 112, !15, i64 116, !15, i64 117, !15, i64 118, !15, i64 119, !15, 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, !6, i64 192, !6, i64 200, !6, i64 208, !16, i64 216, !15, i64 218, !15, i64 219, !15, i64 220, !15, i64 221, !15, i64 222, !15, i64 223, !15, i64 224, !14, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !13, i64 248, !6, i64 256, !13, i64 264, !7, i64 272, !14, i64 280, !14, i64 284, !49, i64 288, !15, i64 292, !15, i64 293, !15, i64 294, !15, i64 295, !10, i64 296, !7, i64 300, !15, i64 10956, !13, i64 10960, !7, i64 10968, !7, i64 11008, !7, i64 11048, !7, i64 11053, !7, i64 11058, !7, i64 11068, !7, i64 11078, !7, i64 11083, !7, i64 11088, !15, i64 11093, !15, i64 11094, !7, i64 11096, !7, i64 11116, !7, i64 11136, !14, i64 11156, !15, i64 11160, !15, i64 11161, !7, i64 11162, !15, i64 11163, !16, i64 11164, !32, i64 11168, !7, i64 11184, !7, i64 13848, !7, i64 14516}
!49 = !{!"_ZTS16ImGuiMouseSource", !7, i64 0}
!50 = !{!"_ZTS10ImGuiStyle", !14, i64 0, !14, i64 4, !13, i64 8, !14, i64 16, !14, i64 20, !13, i64 24, !13, i64 32, !17, 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, !14, i64 156, !13, i64 160, !17, i64 168, !13, i64 172, !13, i64 180, !14, i64 188, !13, i64 192, !13, i64 200, !13, i64 208, !13, i64 216, !14, i64 224, !15, i64 228, !15, i64 229, !15, i64 230, !14, i64 232, !14, i64 236, !7, i64 240, !14, i64 1136, !14, i64 1140, !14, i64 1144, !10, i64 1148, !10, i64 1152}
!51 = !{!"_ZTS20ImDrawListSharedData", !13, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !36, i64 32, !10, i64 48, !34, i64 56, !7, i64 72, !14, i64 456, !7, i64 460, !6, i64 528}
!52 = !{!"double", !7, i64 0}
!53 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !10, i64 0, !10, i64 4, !6, i64 8}
!54 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!55 = !{!"_ZTS16ImGuiInputSource", !7, i64 0}
!56 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !7, i64 0}
!57 = !{!"_ZTS20ImGuiKeyRoutingTable", !7, i64 0, !58, i64 312, !58, i64 328}
!58 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!59 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !10, i64 8, !60, i64 16, !14, i64 24, !10, i64 28, !10, i64 32, !15, i64 36, !7, i64 37, !61, i64 38, !10, i64 48}
!60 = !{!"long long", !7, i64 0}
!61 = !{!"_ZTS20ImGuiDataTypeStorage", !7, i64 0}
!62 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !25, i64 12, !25, i64 28, !25, i64 44, !25, i64 60, !10, i64 76}
!63 = !{!"_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, !25, i64 64, !6, i64 80, !6, i64 88, !14, i64 96, !13, i64 100, !10, i64 108}
!64 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !6, i64 8}
!65 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !6, i64 8}
!66 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !6, i64 8}
!67 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!68 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !6, i64 8}
!69 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!70 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!71 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!72 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !6, i64 8}
!73 = !{!"_ZTS16ImGuiNavItemData", !6, i64 0, !10, i64 8, !10, i64 12, !25, i64 16, !10, i64 32, !14, i64 36, !14, i64 40, !14, i64 44, !60, i64 48}
!74 = !{!"_ZTS8ImGuiKey", !7, i64 0}
!75 = !{!"_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}
!76 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !6, i64 8}
!77 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!78 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!79 = !{!"_ZTS6ImPoolI10ImGuiTableE", !80, i64 0, !27, i64 16, !10, i64 32, !10, i64 36}
!80 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !6, i64 8}
!81 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !82, i64 0, !27, i64 16, !10, i64 32, !10, i64 36}
!82 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !6, i64 8}
!83 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !6, i64 8}
!84 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !6, i64 8}
!85 = !{!"_ZTS19ImGuiBoxSelectState", !10, i64 0, !15, i64 4, !15, i64 5, !15, i64 6, !15, i64 7, !15, i64 8, !10, i64 9, !13, i64 12, !13, i64 20, !13, i64 28, !6, i64 40, !15, i64 48, !25, i64 52, !25, i64 68, !25, i64 84}
!86 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !10, i64 0, !10, i64 4, !6, i64 8}
!87 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !88, i64 0, !27, i64 16, !10, i64 32, !10, i64 36}
!88 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !10, i64 0, !10, i64 4, !6, i64 8}
!89 = !{!"_ZTS19ImGuiInputTextState", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !32, i64 24, !90, i64 40, !90, i64 56, !15, i64 72, !10, i64 76, !14, i64 80, !91, 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}
!90 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !6, i64 8}
!91 = !{!"_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, !92, i64 32}
!92 = !{!"_ZTSN5ImStb12StbUndoStateE", !7, i64 0, !7, i64 1584, !16, i64 3582, !16, i64 3584, !10, i64 3588, !10, i64 3592}
!93 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !90, i64 8}
!94 = !{!"_ZTS6ImFont", !24, i64 0, !14, i64 16, !14, i64 20, !32, i64 24, !95, 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}
!95 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !6, i64 8}
!96 = !{!"_ZTS21ImGuiComboPreviewData", !25, i64 0, !13, i64 16, !13, i64 24, !13, i64 32, !14, i64 40, !10, i64 44}
!97 = !{!"_ZTS22ImGuiTypingSelectState", !98, i64 0, !7, i64 24, !10, i64 88, !10, i64 92, !14, i64 96, !15, i64 100}
!98 = !{!"_ZTS24ImGuiTypingSelectRequest", !10, i64 0, !10, i64 4, !6, i64 8, !15, i64 16, !15, i64 17, !7, i64 18}
!99 = !{!"_ZTS20ImGuiPlatformImeData", !15, i64 0, !13, i64 4, !14, i64 12}
!100 = !{!"_ZTS15ImGuiTextBuffer", !90, i64 0}
!101 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !6, i64 8}
!102 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !90, i64 0}
!103 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !90, i64 0}
!104 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !6, i64 8}
!105 = !{!"_ZTS12ImGuiLogType", !7, i64 0}
!106 = !{!"_ZTS14ImGuiTextIndex", !68, i64 0, !10, i64 16}
!107 = !{!"_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}
!108 = !{!"_ZTS16ImGuiIDStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !109, i64 16, !15, i64 32, !14, i64 36}
!109 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !6, i64 8}
!110 = !{!"_ZTS19ImGuiDebugAllocInfo", !10, i64 0, !10, i64 4, !16, i64 8, !7, i64 12}
!111 = !{!13, !14, i64 4}
!112 = !{!50, !14, i64 64}
!113 = !{!13, !14, i64 0}
!114 = !{!50, !14, i64 84}
!115 = !{i64 0, i64 4, !9, i64 4, i64 4, !9, i64 8, i64 4, !9, i64 12, i64 4, !45, i64 16, i64 4, !45, i64 20, i64 4, !45, i64 24, i64 4, !45, i64 28, i64 4, !45, i64 32, i64 4, !45, i64 36, i64 4, !45, i64 40, i64 4, !45, i64 44, i64 4, !45, i64 48, i64 4, !45, i64 52, i64 4, !45, i64 56, i64 4, !45, i64 60, i64 4, !45, i64 64, i64 4, !45, i64 68, i64 4, !45, i64 72, i64 4, !45, i64 76, i64 4, !9}
!116 = !{!47, !10, i64 19380}
!117 = !{!47, !10, i64 19392}
!118 = !{!47, !10, i64 16612}
!119 = !{!50, !14, i64 68}
!120 = !{!50, !14, i64 72}
!121 = !{!47, !6, i64 16504}
!122 = !{!12, !21, i64 368}
!123 = !{!12, !16, i64 374}
!124 = !{!12, !14, i64 192}
!125 = !{!47, !10, i64 19004}
!126 = !{!47, !10, i64 20488}
!127 = !{!47, !55, i64 19432}
!128 = !{!47, !10, i64 16652}
!129 = !{!12, !14, i64 156}
!130 = !{!89, !15, i64 3724}
!131 = !{!89, !7, i64 107}
!132 = !{!89, !10, i64 8}
!133 = !{!89, !6, i64 64}
!134 = !{!89, !10, i64 16}
!135 = !{!89, !15, i64 72}
!136 = !{!89, !6, i64 48}
!137 = !{!89, !6, i64 32}
!138 = !{!89, !10, i64 12}
!139 = !{!89, !14, i64 80}
!140 = !{!89, !10, i64 3728}
!141 = !{!89, !10, i64 88}
!142 = !{!89, !10, i64 3732}
!143 = !{!89, !10, i64 92}
!144 = !{!89, !10, i64 84}
!145 = !{!48, !15, i64 292}
!146 = !{!89, !7, i64 96}
!147 = !{!48, !15, i64 81}
!148 = !{!47, !10, i64 18920}
!149 = !{!89, !10, i64 24}
!150 = !{!7, !7, i64 0}
!151 = !{!47, !6, i64 15752}
!152 = !{!94, !14, i64 20}
!153 = !{!94, !14, i64 100}
!154 = !{!94, !14, i64 104}
!155 = !{!94, !14, i64 108}
!156 = !{!94, !6, i64 64}
!157 = !{!94, !6, i64 56}
!158 = !{!159, !14, i64 4}
!159 = !{!"_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}
!160 = !{!94, !14, i64 16}
!161 = !{!89, !15, i64 3718}
!162 = !{!89, !10, i64 76}
!163 = !{!89, !10, i64 3720}
!164 = !{!47, !15, i64 16625}
!165 = !{!48, !14, i64 264}
!166 = !{!25, !14, i64 0}
!167 = !{!50, !14, i64 60}
!168 = !{!48, !14, i64 268}
!169 = !{!12, !14, i64 284}
!170 = !{!89, !15, i64 3717}
!171 = !{!16, !16, i64 0}
!172 = !{!48, !15, i64 293}
!173 = !{!89, !15, i64 3716}
!174 = !{!48, !14, i64 248}
!175 = !{!48, !14, i64 252}
!176 = !{!48, !15, i64 294}
!177 = !{!48, !10, i64 11168}
!178 = distinct !{!178, !179}
!179 = !{!"llvm.loop.mustprogress"}
!180 = !{!47, !15, i64 16624}
!181 = !{!89, !10, i64 100}
!182 = !{!48, !15, i64 295}
!183 = !{!48, !10, i64 0}
!184 = !{!48, !10, i64 4}
!185 = !{!47, !15, i64 90}
!186 = !{!48, !15, i64 85}
!187 = !{!48, !6, i64 176}
!188 = distinct !{!188, !179}
!189 = !{!89, !10, i64 56}
!190 = !{!32, !6, i64 8}
!191 = !{!32, !10, i64 0}
!192 = !{!89, !10, i64 40}
!193 = !{!74, !74, i64 0}
!194 = !{!195, !6, i64 0}
!195 = !{!"_ZTS26ImGuiInputTextCallbackData", !6, i64 0, !10, i64 8, !10, i64 12, !6, i64 16, !16, i64 24, !74, i64 28, !6, i64 32, !10, i64 40, !10, i64 44, !15, i64 48, !10, i64 52, !10, i64 56, !10, i64 60}
!196 = !{!195, !10, i64 8}
!197 = !{!195, !10, i64 12}
!198 = !{!195, !6, i64 16}
!199 = !{!195, !74, i64 28}
!200 = !{!195, !6, i64 32}
!201 = !{!195, !10, i64 40}
!202 = !{!195, !10, i64 44}
!203 = !{!195, !15, i64 48}
!204 = !{!195, !10, i64 52}
!205 = !{!195, !10, i64 56}
!206 = !{!195, !10, i64 60}
!207 = !{!47, !10, i64 24240}
!208 = !{!47, !6, i64 24256}
!209 = !{!47, !10, i64 24248}
!210 = !{!47, !10, i64 25432}
!211 = !{!25, !14, i64 4}
!212 = distinct !{!212, !179}
!213 = !{!36, !14, i64 12}
!214 = !{!36, !14, i64 4}
!215 = distinct !{!215, !179}
!216 = !{!12, !6, i64 688}
!217 = distinct !{!217, !179}
!218 = !{!48, !14, i64 16}
!219 = !{!89, !14, i64 3712}
!220 = !{!47, !15, i64 92}
!221 = !{!47, !15, i64 24688}
!222 = !{!47, !14, i64 24700}
!223 = !{!47, !10, i64 18948}
!224 = !{!47, !10, i64 19008}
!225 = !{!62, !10, i64 8}
!226 = !{!47, !10, i64 19000}
!227 = !{!62, !10, i64 4}
!228 = !{!47, !15, i64 24888}
!229 = !{!25, !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, i32 }
%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.2 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [31 x i8], align 1
@__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv = external hidden unnamed_addr constant [134 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [34 x i8], align 1
@__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no = external hidden unnamed_addr constant [2 x i32], align 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5ImGui13PopStyleColorEi(i32 noundef) local_unnamed_addr #4

declare noundef float @_ZN5ImGui13CalcItemWidthEv() local_unnamed_addr #4

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

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

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

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

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

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(1029), 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: 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 @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), i32 noundef, float noundef, i32 noundef) local_unnamed_addr #4

declare void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(200), 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

; 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

; 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 @_ZN5ImGui14MarkItemEditedEj(i32 noundef) local_unnamed_addr #4

declare void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef, ptr 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 #11

declare void @_ZN5ImGui16SetClipboardTextEPKc(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

declare i32 @__gxx_personality_v0(...)

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 207
  %58 = load i8, ptr %57, align 1, !tbaa !5, !range !39, !noundef !40
  %59 = trunc nuw i8 %58 to i1
  br i1 %59, label %1529, label %60

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

64:                                               ; preds = %60
  tail call void @__assert_fail(ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 4266, 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, 67371008
  %.not1026 = icmp eq i32 %68, 67371008
  br i1 %.not1026, label %69, label %70

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

70:                                               ; preds = %65
  %71 = and i32 %5, 32
  %.not1027 = icmp eq i32 %71, 0
  %72 = and i32 %5, 131104
  %.not1028 = icmp eq i32 %72, 131104
  br i1 %.not1028, label %73, label %74

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

74:                                               ; preds = %70
  %75 = load ptr, ptr @GImGui, align 8, !tbaa !41
  %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(1029) %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 15760
  %84 = load float, ptr %83, align 8, !tbaa !42
  %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 14652
  %90 = getelementptr inbounds i8, ptr %75, i64 14656
  %91 = load float, ptr %90, align 4, !tbaa !107
  %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 14676
  %99 = load float, ptr %98, align 4, !tbaa !108
  %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 280
  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 !109
  %.sroa.11.0.copyload = load float, ptr %104, align 4, !tbaa !109
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %15) #14
  call void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(80) %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 !107
  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 1048576)
  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 19000
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(80) %15, ptr noundef nonnull align 8 dereferenceable(80) %114, i64 80, i1 false), !tbaa.struct !110
  store i64 %109, ptr %105, align 8
  %115 = getelementptr inbounds i8, ptr %75, i64 19380
  %116 = load i32, ptr %115, align 4, !tbaa !112
  %117 = icmp eq i32 %116, %79
  br i1 %117, label %118, label %123

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

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

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

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

129:                                              ; preds = %128, %123
  %130 = getelementptr inbounds i8, ptr %75, i64 14944
  call void @_ZN5ImGui14PushStyleColorEiRK6ImVec4(i32 noundef 3, ptr noundef nonnull align 4 dereferenceable(16) %130)
  %131 = getelementptr inbounds i8, ptr %75, i64 14660
  %132 = load float, ptr %131, align 4, !tbaa !115
  call void @_ZN5ImGui12PushStyleVarEif(i32 noundef 7, float noundef %132)
  %133 = getelementptr inbounds i8, ptr %75, i64 14664
  %134 = load float, ptr %133, align 4, !tbaa !116
  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 4, !tbaa !112
  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 16504
  %140 = load ptr, ptr %139, align 8, !tbaa !117
  %141 = getelementptr inbounds i8, ptr %140, i64 280
  %142 = getelementptr inbounds i8, ptr %140, i64 368
  %143 = load i32, ptr %142, align 8, !tbaa !118
  %144 = shl nuw i32 1, %143
  %145 = getelementptr inbounds i8, ptr %140, i64 374
  %146 = load i16, ptr %145, align 2, !tbaa !119
  %147 = trunc i32 %144 to i16
  %148 = or i16 %146, %147
  store i16 %148, ptr %145, align 2, !tbaa !119
  %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 192
  %151 = load float, ptr %150, align 8, !tbaa !120
  %152 = fsub float %.sroa.0544.0.copyload, %151
  br label %158

153:                                              ; preds = %101
  %154 = load float, ptr %90, align 4, !tbaa !107
  call void @_ZN5ImGui8ItemSizeERK6ImRectf(ptr noundef nonnull align 4 dereferenceable(16) %13, float noundef %154)
  %155 = and i32 %5, 268435456
  %.not1029 = icmp eq i32 %155, 0
  br i1 %.not1029, 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 1048576)
  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 ]
  %.2938 = phi ptr [ %140, %138 ], [ %56, %153 ], [ %56, %156 ]
  %159 = getelementptr inbounds i8, ptr %75, i64 19000
  %160 = getelementptr inbounds i8, ptr %75, i64 19004
  %161 = load i32, ptr %160, align 4, !tbaa !121
  %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 20488
  store i32 1, ptr %164, align 8, !tbaa !122
  br label %165

165:                                              ; preds = %163, %158
  %166 = call noundef ptr @_ZN5ImGui17GetInputTextStateEj(i32 noundef %79)
  %167 = load i32, ptr %160, align 4, !tbaa !121
  %168 = lshr i32 %167, 2
  %169 = and i32 %168, 512
  %spec.select = or i32 %169, %5
  %170 = and i32 %spec.select, 512
  %171 = icmp ne i32 %170, 0
  %172 = and i32 %5, 1024
  %.not1032 = icmp eq i32 %172, 0
  %173 = and i32 %5, 65536
  %174 = icmp eq i32 %173, 0
  %175 = and i32 %5, 2097152
  %.not1033 = icmp eq i32 %175, 0
  %176 = icmp ne ptr %6, null
  %or.cond17 = or i1 %.not1033, %176
  br i1 %or.cond17, label %178, label %177

177:                                              ; preds = %165
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.2, i32 noundef 4353, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

178:                                              ; preds = %165
  %179 = getelementptr inbounds i8, ptr %75, i64 16612
  %180 = load i32, ptr %179, align 4, !tbaa !114
  %.not1034 = icmp eq i32 %180, %79
  br i1 %.not1034, label %193, label %181

181:                                              ; preds = %178
  %182 = getelementptr inbounds i8, ptr %75, i64 19380
  %183 = load i32, ptr %182, align 4, !tbaa !112
  %184 = icmp eq i32 %183, %79
  br i1 %184, label %185, label %193

185:                                              ; preds = %181
  %186 = getelementptr inbounds i8, ptr %75, i64 19392
  %187 = load i32, ptr %186, align 8, !tbaa !113
  %188 = and i32 %187, 1
  %.not1035 = icmp eq i32 %188, 0
  br i1 %.not1035, label %189, label %193

189:                                              ; preds = %185
  %190 = getelementptr inbounds i8, ptr %75, i64 19432
  %191 = load i32, ptr %190, align 8, !tbaa !123
  %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 11056
  %197 = load i8, ptr %196, align 8, !tbaa !124, !range !39, !noundef !40
  %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 %.thread1199

204:                                              ; preds = %202
  %205 = getelementptr inbounds i8, ptr %75, i64 16652
  %206 = load i32, ptr %205, align 4, !tbaa !125
  %207 = call noundef i32 @_ZN5ImGui20GetWindowScrollbarIDEP11ImGuiWindow9ImGuiAxis(ptr noundef nonnull %.2938, i32 noundef 1)
  %208 = icmp eq i32 %206, %207
  %.pre = load i32, ptr %179, align 4, !tbaa !114
  br label %.thread1199

.thread1199:                                      ; 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 %.2938, i32 noundef 1)
  %211 = icmp eq i32 %209, %210
  br label %213

212:                                              ; preds = %199
  br i1 %67, label %213, label %218

213:                                              ; preds = %.thread1199, %212
  %214 = phi i1 [ %211, %.thread1199 ], [ false, %212 ]
  %215 = phi i1 [ %.ph, %.thread1199 ], [ false, %212 ]
  %216 = getelementptr inbounds i8, ptr %.2938, i64 156
  %217 = load float, ptr %216, align 4, !tbaa !126
  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 !127, !range !39, !noundef !40
  %225 = trunc nuw i8 %224 to i1
  %226 = getelementptr inbounds i8, ptr %166, i64 107
  %227 = load i8, ptr %226, align 1, !tbaa !128
  %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.select1191 = select i1 %234, i1 true, i1 %194
  %235 = select i1 %spec.select1191, i1 true, i1 %219
  br i1 %235, label %236, label %238

236:                                              ; preds = %231
  %237 = load i32, ptr %179, align 4, !tbaa !114
  %.not1036 = icmp ne i32 %237, %79
  %brmerge1082 = select i1 %.not1036, i1 true, i1 %233
  %brmerge1083 = select i1 %brmerge1082, i1 true, i1 %232
  br i1 %brmerge1083, label %239, label %317

238:                                              ; preds = %231
  %brmerge1084 = select i1 %233, i1 true, i1 %232
  br i1 %brmerge1084, label %239, label %317

239:                                              ; preds = %238, %236
  %240 = getelementptr inbounds i8, ptr %75, i64 20504
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %240)
  %241 = getelementptr inbounds i8, ptr %75, i64 24228
  store i8 0, ptr %241, align 4, !tbaa !127
  %242 = getelementptr inbounds i8, ptr %75, i64 20512
  %243 = load i32, ptr %242, align 8, !tbaa !129
  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 %.thread1201, label %246

246:                                              ; preds = %239
  %247 = getelementptr inbounds i8, ptr %75, i64 20560
  %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 20568
  %250 = load ptr, ptr %249, align 8, !tbaa !130
  %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 !129
  %253 = icmp ne i32 %252, %79
  %254 = select i1 %253, i1 true, i1 %233
  %or.cond1235.not = select i1 %254, i1 true, i1 %232
  br i1 %or.cond1235.not, label %.thread1201, label %255

255:                                              ; preds = %246
  %256 = getelementptr inbounds i8, ptr %75, i64 20520
  %257 = load i32, ptr %256, align 8, !tbaa !131
  %.not1037 = icmp eq i32 %257, %245
  br i1 %.not1037, label %258, label %267

258:                                              ; preds = %255
  %259 = getelementptr inbounds i8, ptr %75, i64 20576
  %260 = load i8, ptr %259, align 8, !tbaa !132, !range !39, !noundef !40
  %261 = trunc nuw i8 %260 to i1
  br i1 %261, label %262, label %.thread1201

262:                                              ; preds = %258
  %263 = getelementptr inbounds i8, ptr %75, i64 20552
  %264 = load ptr, ptr %263, align 8, !tbaa !133
  %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
  %.not1038 = icmp eq i32 %266, 0
  br i1 %.not1038, label %.thread1201, label %267

267:                                              ; preds = %262, %255
  br label %.thread1201

.thread1201:                                      ; preds = %239, %246, %267, %262, %258
  %.0951.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 !41
  store i32 %79, ptr %242, align 8, !tbaa !129
  %268 = getelementptr inbounds i8, ptr %75, i64 20528
  %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 20544
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %270, i32 noundef 0)
  %271 = getelementptr inbounds i8, ptr %75, i64 20576
  store i8 0, ptr %271, align 8, !tbaa !132
  %272 = getelementptr inbounds i8, ptr %75, i64 20536
  %273 = load ptr, ptr %272, align 8, !tbaa !134
  %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 20516
  store i32 %274, ptr %275, align 4, !tbaa !135
  %276 = load ptr, ptr %18, align 8, !tbaa !41
  %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 20520
  store i32 %280, ptr %281, align 8, !tbaa !131
  br i1 %.0951.shrunk, label %282, label %283

282:                                              ; preds = %.thread1201
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %240)
  br label %288

283:                                              ; preds = %.thread1201
  %284 = getelementptr inbounds i8, ptr %75, i64 20584
  store float 0.000000e+00, ptr %284, align 8, !tbaa !136
  %285 = getelementptr inbounds i8, ptr %75, i64 20588
  %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 24232
  %291 = load i32, ptr %290, align 8, !tbaa !137
  %292 = getelementptr inbounds i8, ptr %75, i64 20588
  %293 = getelementptr inbounds i8, ptr %75, i64 20592
  store i32 %291, ptr %293, align 4, !tbaa !138
  %294 = getelementptr inbounds i8, ptr %75, i64 24236
  %295 = load i32, ptr %294, align 4, !tbaa !139
  %296 = getelementptr inbounds i8, ptr %75, i64 20596
  store i32 %295, ptr %296, align 4, !tbaa !140
  store i32 %295, ptr %292, align 4, !tbaa !141
  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 = lshr i32 %5, 12
  %300 = trunc i32 %299 to i8
  br i1 %194, label %301, label %307

301:                                              ; preds = %298
  br i1 %.0951.shrunk, label %302, label %306

302:                                              ; preds = %301
  %303 = getelementptr inbounds i8, ptr %75, i64 19392
  %304 = load i32, ptr %303, align 8, !tbaa !113
  %305 = and i32 %304, 4
  %.not1040 = icmp eq i32 %305, 0
  br i1 %.not1040, label %306, label %307

306:                                              ; preds = %302, %301
  br label %307

307:                                              ; preds = %306, %302, %298
  %.1945 = 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 300
  %310 = load i8, ptr %309, align 4, !tbaa !142, !range !39, !noundef !40
  %311 = trunc nuw i8 %310 to i1
  %spec.select1087 = select i1 %311, i8 1, i8 %.1945
  br label %312

312:                                              ; preds = %308, %297, %307, %289
  %.2946 = phi i8 [ 0, %289 ], [ 0, %297 ], [ %.1945, %307 ], [ %spec.select1087, %308 ]
  %313 = and i32 %5, 2048
  %.not1041 = icmp eq i32 %313, 0
  br i1 %.not1041, label %316, label %314

314:                                              ; preds = %312
  %315 = getelementptr inbounds i8, ptr %75, i64 20600
  store i8 1, ptr %315, align 4, !tbaa !143
  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
  %.3947 = phi i8 [ %.2946, %316 ], [ 0, %236 ], [ 0, %238 ]
  %.0939 = phi ptr [ %240, %316 ], [ %166, %236 ], [ %166, %238 ]
  %318 = getelementptr inbounds i8, ptr %75, i64 89
  %319 = load i8, ptr %318, align 1, !tbaa !144, !range !39, !noundef !40
  %320 = trunc nuw i8 %319 to i1
  %321 = load i32, ptr %179, align 4, !tbaa !114
  %.not1042 = icmp ne i32 %321, %79
  %brmerge1089.not = and i1 %spec.select1191, %.not1042
  br i1 %brmerge1089.not, label %322, label %328

322:                                              ; preds = %317
  %.not1043 = icmp eq ptr %.0939, null
  br i1 %.not1043, label %.critedge, label %323

323:                                              ; preds = %322
  %324 = getelementptr inbounds i8, ptr %.0939, i64 8
  %325 = load i32, ptr %324, align 8, !tbaa !129
  %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.63, ptr noundef nonnull @.str.2, i32 noundef 4438, 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)
  %.pre1253 = load i32, ptr %179, align 4, !tbaa !114
  br label %328

328:                                              ; preds = %317, %327
  %329 = phi i32 [ %321, %317 ], [ %.pre1253, %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 18920
  %335 = load i32, ptr %334, align 8, !tbaa !145
  %or.cond1091.not.not = icmp eq i32 %68, 0
  %spec.select1241.v = select i1 %or.cond1091.not.not, i32 3, i32 15
  %spec.select1241 = or i32 %335, %spec.select1241.v
  store i32 %spec.select1241, ptr %334, align 8, !tbaa !145
  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 !114
  %341 = icmp eq i32 %340, %79
  %342 = icmp eq ptr %.0939, null
  %or.cond5 = and i1 %342, %341
  br i1 %or.cond5, label %343, label %344

343:                                              ; preds = %339
  call void @_ZN5ImGui13ClearActiveIDEv()
  %.pre1254 = load i32, ptr %179, align 4, !tbaa !114
  br label %344

344:                                              ; preds = %343, %339
  %345 = phi i32 [ %.pre1254, %343 ], [ %340, %339 ]
  %346 = icmp eq i32 %345, %79
  br i1 %346, label %.thread1202, label %350

.thread1202:                                      ; preds = %344
  %347 = getelementptr inbounds i8, ptr %75, i64 11056
  %348 = load i8, ptr %347, align 8, !tbaa !124, !range !39, !noundef !40
  %349 = trunc nuw i8 %348 to i1
  %.not1239 = xor i1 %235, true
  %not.brmerge1093 = and i1 %.not1239, %349
  %spec.select1188 = zext i1 %not.brmerge1093 to i8
  br label %353

350:                                              ; preds = %344
  %351 = icmp ne ptr %.0939, null
  %352 = select i1 %351, i1 %219, i1 false
  br label %353

353:                                              ; preds = %.thread1202, %350
  %.09401204 = phi i8 [ 0, %350 ], [ %spec.select1188, %.thread1202 ]
  %354 = phi i1 [ %352, %350 ], [ true, %.thread1202 ]
  %355 = zext i1 %354 to i8
  %356 = icmp ne ptr %.0939, null
  br i1 %356, label %357, label %.thread1205

357:                                              ; preds = %353
  %358 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br i1 %358, label %361, label %359

359:                                              ; preds = %357
  %360 = trunc i8 %.3947 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 ]
  %brmerge1094 = or i1 %354, %363
  %or.cond1189 = select i1 %171, i1 %brmerge1094, i1 false
  br i1 %or.cond1189, label %364, label %.thread1205

364:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #14
  store ptr null, ptr %19, align 8, !tbaa !41
  %365 = getelementptr inbounds i8, ptr %.0939, 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 %.0939, i64 32
  %368 = load ptr, ptr %367, align 8, !tbaa !134
  %369 = load i32, ptr %365, align 8, !tbaa !146
  %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 %.0939, i64 12
  store i32 %370, ptr %371, align 4, !tbaa !135
  %372 = load ptr, ptr %19, align 8, !tbaa !41
  %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 %.0939, i64 16
  store i32 %376, ptr %377, align 8, !tbaa !131
  call void @_ZN19ImGuiInputTextState11CursorClampEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  %378 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  %379 = and i1 %363, %378
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #14
  br label %.thread1205

.thread1205:                                      ; preds = %353, %364, %362
  %.0954.in = phi i1 [ %379, %364 ], [ %363, %362 ], [ false, %353 ]
  %.0954 = zext i1 %.0954.in to i8
  %brmerge1095 = select i1 %354, i1 true, i1 %.0954.in
  br i1 %brmerge1095, label %384, label %380

380:                                              ; preds = %.thread1205
  %381 = load i32, ptr %179, align 4, !tbaa !114
  %382 = icmp eq i32 %381, %79
  %.not = xor i1 %171, true
  %383 = and i1 %382, %.not
  %or.cond1096 = and i1 %356, %383
  br i1 %or.cond1096, label %385, label %389

384:                                              ; preds = %.thread1205
  %.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 %.0939, i64 72
  %387 = load i8, ptr %386, align 8, !tbaa !132, !range !39, !noundef !40
  %388 = trunc nuw i8 %387 to i1
  br label %389

389:                                              ; preds = %385, %384, %380
  %390 = phi i1 [ false, %384 ], [ false, %380 ], [ %388, %385 ]
  %.not1045 = icmp eq ptr %1, null
  br i1 %.not1045, label %399, label %391

391:                                              ; preds = %389
  br i1 %390, label %392, label %395

392:                                              ; preds = %391
  %393 = getelementptr inbounds i8, ptr %.0939, i64 48
  %394 = load ptr, ptr %393, align 8, !tbaa !133
  br label %395

395:                                              ; preds = %391, %392
  %396 = phi ptr [ %394, %392 ], [ %2, %391 ]
  %397 = load i8, ptr %396, align 1, !tbaa !147
  %398 = icmp eq i8 %397, 0
  br label %399

399:                                              ; preds = %395, %389
  %400 = phi i1 [ false, %389 ], [ %398, %395 ]
  %brmerge1097 = select i1 %.not1032, i1 true, i1 %400
  br i1 %brmerge1097, label %431, label %401

401:                                              ; preds = %399
  %402 = getelementptr inbounds i8, ptr %75, i64 15752
  %403 = load ptr, ptr %402, align 8, !tbaa !148
  %404 = call noundef ptr @_ZNK6ImFont9FindGlyphEt(ptr noundef nonnull align 8 dereferenceable(118) %403, i16 noundef zeroext 42)
  %405 = getelementptr inbounds i8, ptr %75, i64 24264
  %406 = load ptr, ptr %402, align 8, !tbaa !148
  %407 = getelementptr inbounds i8, ptr %406, i64 20
  %408 = load float, ptr %407, align 4, !tbaa !149
  %409 = getelementptr inbounds i8, ptr %75, i64 24284
  store float %408, ptr %409, align 4, !tbaa !149
  %410 = getelementptr inbounds i8, ptr %406, i64 100
  %411 = getelementptr inbounds i8, ptr %75, i64 24364
  %412 = load <2 x float>, ptr %410, align 4, !tbaa !109
  store <2 x float> %412, ptr %411, align 4, !tbaa !109
  %413 = getelementptr inbounds i8, ptr %406, i64 108
  %414 = load float, ptr %413, align 4, !tbaa !150
  %415 = getelementptr inbounds i8, ptr %75, i64 24372
  store float %414, ptr %415, align 4, !tbaa !150
  %416 = getelementptr inbounds i8, ptr %406, i64 64
  %417 = load ptr, ptr %416, align 8, !tbaa !151
  %418 = getelementptr inbounds i8, ptr %75, i64 24328
  store ptr %417, ptr %418, align 8, !tbaa !151
  %419 = getelementptr inbounds i8, ptr %75, i64 24320
  store ptr %404, ptr %419, align 8, !tbaa !152
  %420 = getelementptr inbounds i8, ptr %404, i64 4
  %421 = load float, ptr %420, align 4, !tbaa !153
  %422 = getelementptr inbounds i8, ptr %75, i64 24280
  store float %421, ptr %422, align 8, !tbaa !155
  %423 = getelementptr inbounds i8, ptr %75, i64 24304
  %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 24288
  %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.64, ptr noundef nonnull @.str.2, i32 noundef 4507, 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 !114
  %433 = icmp eq i32 %432, %79
  br i1 %433, label %434, label %590

434:                                              ; preds = %431
  br i1 %356, label %436, label %435

435:                                              ; preds = %434
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 4515, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

436:                                              ; preds = %434
  %437 = getelementptr inbounds i8, ptr %.0939, i64 16
  %438 = load i32, ptr %437, align 8, !tbaa !131
  %439 = getelementptr inbounds i8, ptr %.0939, i64 3718
  store i8 0, ptr %439, align 2, !tbaa !156
  %440 = getelementptr inbounds i8, ptr %.0939, i64 76
  store i32 %3, ptr %440, align 4, !tbaa !157
  %441 = getelementptr inbounds i8, ptr %.0939, i64 3720
  store i32 %spec.select, ptr %441, align 8, !tbaa !158
  %442 = getelementptr inbounds i8, ptr %75, i64 280
  %443 = load i8, ptr %442, align 8, !tbaa !124, !range !39, !noundef !40
  %444 = xor i8 %443, 1
  %445 = getelementptr inbounds i8, ptr %75, i64 16625
  store i8 %444, ptr %445, align 1, !tbaa !159
  %446 = getelementptr inbounds i8, ptr %75, i64 272
  %447 = load float, ptr %446, align 8, !tbaa !160
  %448 = load float, ptr %11, align 8, !tbaa !161
  %449 = fsub float %447, %448
  %450 = load float, ptr %89, align 4, !tbaa !162
  %451 = fsub float %449, %450
  %452 = getelementptr inbounds i8, ptr %.0939, i64 80
  %453 = load float, ptr %452, align 8, !tbaa !136
  %454 = fadd float %451, %453
  br i1 %67, label %455, label %461

455:                                              ; preds = %436
  %456 = getelementptr inbounds i8, ptr %75, i64 276
  %457 = load float, ptr %456, align 4, !tbaa !163
  %458 = getelementptr inbounds i8, ptr %.2938, i64 284
  %459 = load float, ptr %458, align 4, !tbaa !164
  %460 = fsub float %457, %459
  br label %465

461:                                              ; preds = %436
  %462 = getelementptr inbounds i8, ptr %75, i64 15760
  %463 = load float, ptr %462, align 8, !tbaa !42
  %464 = fmul float %463, 5.000000e-01
  br label %465

465:                                              ; preds = %461, %455
  %466 = phi float [ %460, %455 ], [ %464, %461 ]
  %467 = trunc i8 %.3947 to i1
  br i1 %467, label %468, label %470

468:                                              ; preds = %465
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  %469 = getelementptr inbounds i8, ptr %.0939, i64 3717
  store i8 1, ptr %469, align 1, !tbaa !165
  br label %545

470:                                              ; preds = %465
  br i1 %162, label %471, label %511

471:                                              ; preds = %470
  %472 = getelementptr inbounds i8, ptr %75, i64 11066
  %473 = load i16, ptr %472, align 2, !tbaa !166
  %474 = icmp ugt i16 %473, 1
  br i1 %474, label %475, label %511

475:                                              ; preds = %471
  %476 = getelementptr inbounds i8, ptr %75, i64 301
  %477 = load i8, ptr %476, align 1, !tbaa !167, !range !39, !noundef !40
  %478 = trunc nuw i8 %477 to i1
  br i1 %478, label %511, label %479

479:                                              ; preds = %475
  %480 = getelementptr inbounds i8, ptr %.0939, i64 84
  call void @_ZN5ImStbL18stb_textedit_clickEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.0939, ptr noundef nonnull %480, float noundef %454, float noundef %466)
  %481 = load i16, ptr %472, align 2, !tbaa !166
  %482 = and i16 %481, 1
  %483 = icmp eq i16 %482, 0
  %484 = load i32, ptr %480, align 4, !tbaa !141
  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 %.0939, 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 %.0939, i64 88
  %494 = load i32, ptr %493, align 4, !tbaa !138
  %495 = getelementptr inbounds i8, ptr %.0939, i64 92
  %496 = load i32, ptr %495, align 4, !tbaa !140
  %.not1046 = icmp eq i32 %494, %496
  %brmerge1099.not = and i1 %492, %.not1046
  br i1 %brmerge1099.not, label %.thread1276, label %497

497:                                              ; preds = %491
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef 2097164)
  %.pre1255 = load i32, ptr %493, align 4, !tbaa !138
  %.pre1256 = load i32, ptr %495, align 4, !tbaa !140
  %.not1047 = icmp eq i32 %.pre1255, %.pre1256
  br i1 %.not1047, label %.thread1276, label %498

.thread1276:                                      ; preds = %491, %497
  call void @_ZN5ImStbL37stb_textedit_prep_selection_at_cursorEPNS_17STB_TexteditStateE(ptr noundef nonnull %480)
  br label %498

498:                                              ; preds = %.thread1276, %497
  %499 = load i32, ptr %480, align 4, !tbaa !141
  %500 = call noundef i32 @_ZN5ImStbL30STB_TEXTEDIT_MOVEWORDRIGHT_MACEP19ImGuiInputTextStatei(ptr noundef nonnull %.0939, i32 noundef %499)
  store i32 %500, ptr %480, align 4, !tbaa !141
  store i32 %500, ptr %495, align 4, !tbaa !140
  call void @_ZN5ImStbL18stb_textedit_clampEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.0939, ptr noundef nonnull %480)
  br label %510

501:                                              ; preds = %479
  %502 = call noundef zeroext i16 @_ZN5ImStbL20STB_TEXTEDIT_GETCHAREPK19ImGuiInputTextStatei(ptr noundef nonnull %.0939, i32 noundef %484)
  %503 = icmp ne i16 %502, 10
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef 2097156)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef 6291461)
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef 6291457)
  %brmerge1101.not = and i1 %67, %503
  br i1 %brmerge1101.not, label %504, label %508

504:                                              ; preds = %501
  %505 = getelementptr inbounds i8, ptr %.0939, i64 88
  %506 = getelementptr inbounds i8, ptr %.0939, 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 !140
  store i32 %507, ptr %480, align 4, !tbaa !141
  br label %508

508:                                              ; preds = %501, %504
  %509 = getelementptr inbounds i8, ptr %.0939, i64 3716
  store i8 0, ptr %509, align 4, !tbaa !168
  br label %510

510:                                              ; preds = %508, %498
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br label %545

511:                                              ; preds = %475, %471, %470
  %512 = getelementptr inbounds i8, ptr %75, i64 11056
  %513 = load i8, ptr %512, align 8, !tbaa !124, !range !39, !noundef !40
  %514 = trunc nuw i8 %513 to i1
  br i1 %514, label %515, label %528

515:                                              ; preds = %511
  %516 = getelementptr inbounds i8, ptr %.0939, i64 3717
  %517 = load i8, ptr %516, align 1, !tbaa !165, !range !39, !noundef !40
  %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 301
  %522 = load i8, ptr %521, align 1, !tbaa !167, !range !39, !noundef !40
  %523 = trunc nuw i8 %522 to i1
  %524 = getelementptr inbounds i8, ptr %.0939, i64 84
  br i1 %523, label %525, label %526

525:                                              ; preds = %520
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.0939, 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 %.0939, 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) %.0939)
  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 %.0939, i64 3717
  %532 = load i8, ptr %531, align 1, !tbaa !165, !range !39, !noundef !40
  %533 = trunc nuw i8 %532 to i1
  br i1 %533, label %545, label %534

534:                                              ; preds = %530
  %535 = getelementptr inbounds i8, ptr %75, i64 256
  %536 = load float, ptr %535, align 8, !tbaa !169
  %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 260
  %540 = load float, ptr %539, align 4, !tbaa !170
  %541 = fcmp une float %540, 0.000000e+00
  br i1 %541, label %542, label %545

542:                                              ; preds = %538, %534
  %543 = getelementptr inbounds i8, ptr %.0939, i64 84
  call void @_ZN5ImStbL17stb_textedit_dragEP19ImGuiInputTextStatePNS_17STB_TexteditStateEff(ptr noundef nonnull %.0939, ptr noundef nonnull %543, float noundef %454, float noundef %466)
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  %544 = getelementptr inbounds i8, ptr %.0939, i64 3716
  store i8 1, ptr %544, align 4, !tbaa !168
  br label %545

545:                                              ; preds = %510, %528, %530, %538, %542, %519, %527, %468
  %546 = getelementptr inbounds i8, ptr %.0939, i64 3717
  %547 = load i8, ptr %546, align 1, !tbaa !165, !range !39, !noundef !40
  %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 !124, !range !39, !noundef !40
  %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 !165
  br label %553

553:                                              ; preds = %552, %549, %545
  %brmerge1102 = or i1 %.not1027, %171
  br i1 %brmerge1102, label %561, label %554

554:                                              ; preds = %553
  %555 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 512, i32 noundef 1, i32 noundef %79)
  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 !111
  %557 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef nonnull %75, ptr noundef nonnull %20, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i1 noundef zeroext false)
  br i1 %557, label %558, label %560

558:                                              ; preds = %556
  %559 = load i32, ptr %20, align 4, !tbaa !111
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, 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 300
  %563 = load i8, ptr %562, align 4, !tbaa !142, !range !39, !noundef !40
  %564 = trunc nuw i8 %563 to i1
  br i1 %564, label %565, label %570

565:                                              ; preds = %561
  %566 = getelementptr inbounds i8, ptr %75, i64 302
  %567 = load i8, ptr %566, align 2, !tbaa !171, !range !39, !noundef !40
  %568 = trunc nuw i8 %567 to i1
  %.not1103 = xor i1 %568, true
  %569 = select i1 %568, i1 %320, i1 false
  br i1 %569, label %571, label %572

570:                                              ; preds = %561
  br i1 %320, label %571, label %572

571:                                              ; preds = %565, %570
  br label %572

572:                                              ; preds = %565, %570, %571
  %573 = phi i1 [ %.not1103, %565 ], [ false, %570 ], [ %564, %571 ]
  %574 = getelementptr inbounds i8, ptr %75, i64 11176
  %575 = load i32, ptr %574, align 8, !tbaa !172
  %576 = icmp sgt i32 %575, 0
  br i1 %576, label %577, label %590

577:                                              ; preds = %572
  %brmerge1106 = or i1 %171, %573
  %brmerge1107 = select i1 %brmerge1106, i1 true, i1 %194
  br i1 %brmerge1107, label %.loopexit1243, label %.lr.ph

.lr.ph:                                           ; preds = %577, %586
  %.09761244 = phi i32 [ %587, %586 ], [ 0, %577 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #14
  %578 = call noundef nonnull align 2 dereferenceable(2) ptr @_ZN8ImVectorItEixEi(ptr noundef nonnull align 8 dereferenceable(16) %574, i32 noundef %.09761244)
  %579 = load i16, ptr %578, align 2, !tbaa !166
  %580 = zext i16 %579 to i32
  store i32 %580, ptr %21, align 4, !tbaa !111
  %581 = icmp eq i16 %579, 9
  br i1 %581, label %586, label %582

582:                                              ; preds = %.lr.ph
  %583 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef %75, ptr noundef nonnull %21, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i1 noundef zeroext false)
  br i1 %583, label %584, label %586

584:                                              ; preds = %582
  %585 = load i32, ptr %21, align 4, !tbaa !111
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %585)
  br label %586

586:                                              ; preds = %582, %584, %.lr.ph
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #14
  %587 = add nuw nsw i32 %.09761244, 1
  %588 = load i32, ptr %574, align 8, !tbaa !172
  %589 = icmp slt i32 %587, %588
  br i1 %589, label %.lr.ph, label %.loopexit1243, !llvm.loop !173

.loopexit1243:                                    ; preds = %586, %577
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %574, i32 noundef 0)
  br label %590

590:                                              ; preds = %572, %.loopexit1243, %431
  %.0975 = phi i32 [ 0, %431 ], [ %438, %.loopexit1243 ], [ %438, %572 ]
  %591 = load i32, ptr %179, align 4, !tbaa !114
  %592 = icmp eq i32 %591, %79
  br i1 %592, label %593, label %896

593:                                              ; preds = %590
  %594 = getelementptr inbounds i8, ptr %75, i64 16624
  %595 = load i8, ptr %594, align 8, !tbaa !175, !range !39, !noundef !40
  %596 = trunc nuw i8 %595 to i1
  br i1 %596, label %.thread1279, label %597

597:                                              ; preds = %593
  %598 = trunc nuw i8 %.09401204 to i1
  br i1 %598, label %.thread1279, label %599

599:                                              ; preds = %597
  br i1 %356, label %601, label %600

600:                                              ; preds = %599
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 4632, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

601:                                              ; preds = %599
  %602 = load float, ptr %90, align 4, !tbaa !107
  %603 = fsub float %.sroa.11.0.copyload, %602
  %604 = getelementptr inbounds i8, ptr %75, i64 15760
  %605 = load float, ptr %604, align 8, !tbaa !42
  %606 = fdiv float %603, %605
  %607 = fptosi float %606 to i32
  %608 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %607, i32 noundef 1)
  %609 = getelementptr inbounds i8, ptr %.0939, i64 84
  %610 = getelementptr inbounds i8, ptr %.0939, i64 100
  store i32 %608, ptr %610, align 4, !tbaa !176
  %611 = getelementptr inbounds i8, ptr %75, i64 301
  %612 = load i8, ptr %611, align 1, !tbaa !167, !range !39, !noundef !40
  %613 = trunc nuw i8 %612 to i1
  %614 = select i1 %613, i32 4194304, i32 0
  %615 = getelementptr inbounds i8, ptr %75, i64 302
  %616 = getelementptr inbounds i8, ptr %75, i64 300
  %.in.in = select i1 %320, ptr %615, ptr %616
  %.in = load i8, ptr %.in.in, align 2, !tbaa !124, !range !39, !noundef !40
  %617 = trunc nuw i8 %.in to i1
  br i1 %320, label %618, label %629

618:                                              ; preds = %601
  %619 = load i8, ptr %616, align 4, !tbaa !142, !range !39, !noundef !40
  %620 = trunc nuw i8 %619 to i1
  br i1 %620, label %621, label %629

621:                                              ; preds = %618
  %622 = getelementptr inbounds i8, ptr %75, i64 303
  %623 = load i8, ptr %622, align 1, !tbaa !177, !range !39, !noundef !40
  %624 = trunc nuw i8 %623 to i1
  br i1 %624, label %629, label %625

625:                                              ; preds = %621
  %626 = load i8, ptr %615, align 2, !tbaa !171, !range !39, !noundef !40
  %627 = trunc nuw i8 %626 to i1
  %628 = xor i1 %627, true
  br label %629

629:                                              ; preds = %625, %621, %618, %601
  %630 = phi i1 [ false, %621 ], [ false, %618 ], [ false, %601 ], [ %628, %625 ]
  %631 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 4665, i32 noundef 1, i32 noundef %79)
  br i1 %631, label %636, label %632

632:                                              ; preds = %629
  %633 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 8714, i32 noundef 1, i32 noundef %79)
  %634 = and i1 %.not1032, %633
  %635 = xor i1 %634, true
  %brmerge1110 = or i1 %171, %635
  %.not1116 = xor i1 %67, true
  %brmerge1117 = or i1 %brmerge1110, %.not1116
  %not.brmerge1110 = xor i1 %brmerge1110, true
  br i1 %brmerge1117, label %639, label %637

636:                                              ; preds = %629
  %.not1032.not1111 = xor i1 %.not1032, true
  %brmerge1112 = or i1 %171, %.not1032.not1111
  %.not1113 = xor i1 %67, true
  %brmerge1114 = or i1 %brmerge1112, %.not1113
  %not.brmerge1112 = xor i1 %brmerge1112, true
  br i1 %brmerge1114, label %639, label %637

637:                                              ; preds = %632, %636
  %638 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br label %639

639:                                              ; preds = %632, %636, %637
  %640 = phi i1 [ %not.brmerge1112, %636 ], [ %not.brmerge1110, %632 ], [ %638, %637 ]
  %641 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 4644, i32 noundef 0, i32 noundef %79)
  br i1 %641, label %644, label %642

642:                                              ; preds = %639
  %643 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 4617, i32 noundef 0, i32 noundef %79)
  %brmerge1121.demorgan = and i1 %.not1032, %643
  %brmerge1123.not = and i1 %67, %brmerge1121.demorgan
  br i1 %brmerge1123.not, label %646, label %648

644:                                              ; preds = %639
  %645 = and i32 %5, 67109888
  %brmerge1127.not = icmp eq i32 %645, 67108864
  br i1 %brmerge1127.not, label %646, label %648

646:                                              ; preds = %644, %642
  %647 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br label %648

648:                                              ; preds = %644, %642, %646
  %649 = phi i1 [ %.not1032, %644 ], [ %brmerge1121.demorgan, %642 ], [ %647, %646 ]
  %650 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 4663, i32 noundef 1, i32 noundef %79)
  br i1 %650, label %653, label %651

651:                                              ; preds = %648
  %652 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 8713, i32 noundef 1, i32 noundef %79)
  br i1 %652, label %653, label %._crit_edge1268

._crit_edge1268:                                  ; preds = %651
  %.pre1269 = xor i1 %171, true
  br label %655

653:                                              ; preds = %651, %648
  %654 = xor i1 %171, true
  br label %655

655:                                              ; preds = %._crit_edge1268, %653
  %not..pre-phi = phi i1 [ %.pre1269, %._crit_edge1268 ], [ %654, %653 ]
  %656 = phi i1 [ false, %._crit_edge1268 ], [ %654, %653 ]
  %657 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 4667, i32 noundef 1, i32 noundef %79)
  %spec.select1129 = and i1 %174, %not..pre-phi
  %spec.select1192 = select i1 %657, i1 %spec.select1129, i1 false
  %658 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 4666, i32 noundef 1, i32 noundef %79)
  br i1 %658, label %662, label %659

659:                                              ; preds = %655
  br i1 %320, label %660, label %663

660:                                              ; preds = %659
  %661 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 12859, i32 noundef 1, i32 noundef %79)
  br i1 %661, label %662, label %663

662:                                              ; preds = %660, %655
  br label %663

663:                                              ; preds = %662, %660, %659
  %664 = phi i1 [ false, %660 ], [ false, %659 ], [ %spec.select1129, %662 ]
  %665 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 4642, i32 noundef 0, i32 noundef %79)
  %666 = load i32, ptr %76, align 8, !tbaa !178
  %667 = and i32 %666, 2
  %.not1049 = icmp eq i32 %667, 0
  br i1 %.not1049, label %673, label %668

668:                                              ; preds = %663
  %669 = getelementptr inbounds i8, ptr %75, i64 12
  %670 = load i32, ptr %669, align 4, !tbaa !179
  %671 = and i32 %670, 1
  %672 = icmp ne i32 %671, 0
  br label %673

673:                                              ; preds = %668, %663
  %674 = phi i1 [ false, %663 ], [ %672, %668 ]
  %675 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 525, i1 noundef zeroext true)
  br i1 %675, label %678, label %676

676:                                              ; preds = %673
  %677 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 627, i1 noundef zeroext true)
  br label %678

678:                                              ; preds = %676, %673
  %679 = phi i1 [ true, %673 ], [ %677, %676 ]
  br i1 %674, label %680, label %.sink.split

680:                                              ; preds = %678
  %681 = getelementptr inbounds i8, ptr %75, i64 90
  %682 = load i8, ptr %681, align 2, !tbaa !180, !range !39, !noundef !40
  %683 = trunc nuw i8 %682 to i1
  %684 = select i1 %683, i32 634, i32 636
  %685 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef %684, i1 noundef zeroext false)
  br i1 %685, label %688, label %686

686:                                              ; preds = %680
  %687 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 635, i1 noundef zeroext false)
  br label %688

688:                                              ; preds = %680, %686
  %689 = phi i1 [ true, %680 ], [ %687, %686 ]
  %690 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 526, i32 noundef 1, i32 noundef %79)
  br i1 %690, label %696, label %691

691:                                              ; preds = %688
  %692 = load i8, ptr %681, align 2, !tbaa !180, !range !39, !noundef !40
  %693 = trunc nuw i8 %692 to i1
  %694 = select i1 %693, i32 636, i32 634
  br label %.sink.split

.sink.split:                                      ; preds = %678, %691
  %.sink = phi i32 [ %694, %691 ], [ 526, %678 ]
  %.ph1298 = phi i1 [ %689, %691 ], [ false, %678 ]
  %695 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef %.sink, i32 noundef 1, i32 noundef %79)
  br label %696

696:                                              ; preds = %.sink.split, %688
  %697 = phi i1 [ %689, %688 ], [ %.ph1298, %.sink.split ]
  %698 = phi i1 [ true, %688 ], [ %695, %.sink.split ]
  %699 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 513, i1 noundef zeroext true)
  br i1 %699, label %700, label %703

700:                                              ; preds = %696
  %701 = select i1 %617, i32 2097164, i32 2097152
  %spec.select1134 = select i1 %630, i32 2097156, i32 %701
  %702 = or disjoint i32 %spec.select1134, %614
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %702)
  br label %.thread1213

703:                                              ; preds = %696
  %704 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 514, i1 noundef zeroext true)
  br i1 %704, label %705, label %708

705:                                              ; preds = %703
  %706 = select i1 %617, i32 2097165, i32 2097153
  %spec.select1135 = select i1 %630, i32 2097157, i32 %706
  %707 = or disjoint i32 %spec.select1135, %614
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %707)
  br label %.thread1213

708:                                              ; preds = %703
  %709 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  %.not1137 = xor i1 %67, true
  %brmerge1138.not = and i1 %67, %709
  br i1 %brmerge1138.not, label %710, label %722

710:                                              ; preds = %708
  %711 = load i8, ptr %616, align 4, !tbaa !142, !range !39, !noundef !40
  %712 = trunc nuw i8 %711 to i1
  br i1 %712, label %713, label %719

713:                                              ; preds = %710
  %714 = getelementptr inbounds i8, ptr %.2938, i64 156
  %715 = load float, ptr %714, align 4, !tbaa !126
  %716 = load float, ptr %604, align 8, !tbaa !42
  %717 = fsub float %715, %716
  %718 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %717, float noundef 0.000000e+00)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2938, float noundef %718)
  br label %.thread1213

719:                                              ; preds = %710
  %720 = select i1 %630, i32 2097158, i32 2097154
  %721 = or disjoint i32 %720, %614
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %721)
  br label %.thread1213

722:                                              ; preds = %708
  %723 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  %brmerge1141.not = and i1 %67, %723
  br i1 %brmerge1141.not, label %724, label %737

724:                                              ; preds = %722
  %725 = load i8, ptr %616, align 4, !tbaa !142, !range !39, !noundef !40
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %734

727:                                              ; preds = %724
  %728 = getelementptr inbounds i8, ptr %.2938, i64 156
  %729 = load float, ptr %728, align 4, !tbaa !126
  %730 = load float, ptr %604, align 8, !tbaa !42
  %731 = fadd float %729, %730
  %732 = call noundef float @_ZN5ImGui13GetScrollMaxYEv()
  %733 = call noundef float @_ZL5ImMinIfET_S0_S0_(float noundef %731, float noundef %732)
  call void @_ZN5ImGui10SetScrollYEP11ImGuiWindowf(ptr noundef %.2938, float noundef %733)
  br label %.thread1213

734:                                              ; preds = %724
  %735 = select i1 %630, i32 2097159, i32 2097155
  %736 = or disjoint i32 %735, %614
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %736)
  br label %.thread1213

737:                                              ; preds = %722
  %738 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 517, i1 noundef zeroext true)
  %brmerge1144.not = and i1 %67, %738
  br i1 %brmerge1144.not, label %739, label %745

739:                                              ; preds = %737
  %740 = or disjoint i32 %614, 2097166
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %740)
  %741 = sitofp i32 %608 to float
  %742 = load float, ptr %604, align 8, !tbaa !42
  %743 = fneg float %741
  %744 = call float @llvm.fmuladd.f32(float %743, float %742, float %221)
  br label %.thread1213

745:                                              ; preds = %737
  %746 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 518, i1 noundef zeroext true)
  %brmerge1147.not = and i1 %67, %746
  br i1 %brmerge1147.not, label %747, label %752

747:                                              ; preds = %745
  %748 = or disjoint i32 %614, 2097167
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %748)
  %749 = sitofp i32 %608 to float
  %750 = load float, ptr %604, align 8, !tbaa !42
  %751 = call float @llvm.fmuladd.f32(float %749, float %750, float %221)
  br label %.thread1213

752:                                              ; preds = %745
  %753 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 519, i1 noundef zeroext true)
  br i1 %753, label %754, label %758

754:                                              ; preds = %752
  %755 = load i8, ptr %616, align 4, !tbaa !142, !range !39, !noundef !40
  %756 = trunc nuw i8 %755 to i1
  %.v1057 = select i1 %756, i32 2097158, i32 2097156
  %757 = or disjoint i32 %.v1057, %614
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %757)
  br label %.thread1213

758:                                              ; preds = %752
  %759 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 520, i1 noundef zeroext true)
  br i1 %759, label %760, label %764

760:                                              ; preds = %758
  %761 = load i8, ptr %616, align 4, !tbaa !142, !range !39, !noundef !40
  %762 = trunc nuw i8 %761 to i1
  %.v = select i1 %762, i32 2097159, i32 2097157
  %763 = or disjoint i32 %.v, %614
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %763)
  br label %.thread1213

764:                                              ; preds = %758
  %765 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 522, i1 noundef zeroext true)
  %.not1148 = xor i1 %765, true
  %brmerge1149 = or i1 %171, %.not1148
  %brmerge1150 = or i1 %640, %brmerge1149
  br i1 %brmerge1150, label %771, label %766

766:                                              ; preds = %764
  %767 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  %.not1151 = xor i1 %617, true
  %brmerge1152 = select i1 %767, i1 true, i1 %.not1151
  br i1 %brmerge1152, label %769, label %768

768:                                              ; preds = %766
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef 6291469)
  br label %769

769:                                              ; preds = %766, %768
  %770 = or disjoint i32 %614, 2097160
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %770)
  br label %.thread1213

771:                                              ; preds = %764
  %772 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 523, i1 noundef zeroext true)
  %.not1153 = xor i1 %772, true
  %brmerge1154 = or i1 %171, %.not1153
  br i1 %brmerge1154, label %789, label %773

773:                                              ; preds = %771
  %774 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br i1 %774, label %787, label %775

775:                                              ; preds = %773
  br i1 %617, label %.sink.split1300, label %776

776:                                              ; preds = %775
  br i1 %320, label %777, label %787

777:                                              ; preds = %776
  %778 = load i8, ptr %616, align 4, !tbaa !142, !range !39, !noundef !40
  %779 = trunc nuw i8 %778 to i1
  br i1 %779, label %780, label %787

780:                                              ; preds = %777
  %781 = load i8, ptr %615, align 2, !tbaa !171, !range !39, !noundef !40
  %782 = trunc nuw i8 %781 to i1
  br i1 %782, label %787, label %783

783:                                              ; preds = %780
  %784 = getelementptr inbounds i8, ptr %75, i64 303
  %785 = load i8, ptr %784, align 1, !tbaa !177, !range !39, !noundef !40
  %786 = trunc nuw i8 %785 to i1
  br i1 %786, label %787, label %.sink.split1300

.sink.split1300:                                  ; preds = %783, %775
  %.sink1301 = phi i32 [ 6291468, %775 ], [ 6291460, %783 ]
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %.sink1301)
  br label %787

787:                                              ; preds = %.sink.split1300, %783, %780, %777, %776, %773
  %788 = or disjoint i32 %614, 2097161
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %788)
  br label %.thread1213

789:                                              ; preds = %771
  %brmerge1155 = or i1 %679, %697
  br i1 %brmerge1155, label %790, label %807

790:                                              ; preds = %789
  %brmerge1157 = or i1 %697, %.not1137
  br i1 %brmerge1157, label %796, label %791

791:                                              ; preds = %790
  %792 = and i32 %5, 256
  %.not1056 = icmp eq i32 %792, 0
  %793 = load i8, ptr %616, align 4, !tbaa !142, !range !39, !noundef !40
  %794 = trunc nuw i8 %793 to i1
  br i1 %.not1056, label %.critedge1159, label %795

795:                                              ; preds = %791
  br i1 %794, label %801, label %.thread1213

.critedge1159:                                    ; preds = %791
  br i1 %794, label %.thread1213, label %801

796:                                              ; preds = %790
  %797 = getelementptr inbounds i8, ptr %75, i64 93
  %798 = load i8, ptr %797, align 1, !tbaa !181, !range !39, !noundef !40
  %799 = trunc nuw i8 %798 to i1
  %.not1160 = xor i1 %799, true
  %brmerge1161 = or i1 %67, %.not1160
  br i1 %brmerge1161, label %.thread1213, label %800

800:                                              ; preds = %796
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br label %.thread1213

801:                                              ; preds = %795, %.critedge1159
  br i1 %171, label %.thread1213, label %802

802:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #14
  store i32 10, ptr %22, align 4, !tbaa !111
  %803 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef nonnull %75, ptr noundef nonnull %22, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i1 noundef zeroext false)
  br i1 %803, label %804, label %806

804:                                              ; preds = %802
  %805 = load i32, ptr %22, align 4, !tbaa !111
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %805)
  br label %806

806:                                              ; preds = %804, %802
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #14
  br label %.thread1213

807:                                              ; preds = %789
  br i1 %698, label %808, label %812

808:                                              ; preds = %807
  %809 = and i32 %5, 128
  %.not1054 = icmp eq i32 %809, 0
  br i1 %.not1054, label %.thread1213, label %810

810:                                              ; preds = %808
  %811 = load i8, ptr %2, align 1, !tbaa !147
  %.not1055 = icmp ne i8 %811, 0
  %..0954.in = select i1 %.not1055, i1 %.0954.in, i1 false
  %.1163 = select i1 %.not1055, i8 %355, i8 0
  %..0940 = select i1 %.not1055, i8 %.09401204, i8 1
  br label %.thread1213

812:                                              ; preds = %807
  %brmerge1164 = or i1 %spec.select1192, %664
  br i1 %brmerge1164, label %813, label %814

813:                                              ; preds = %812
  %.mux1165 = select i1 %spec.select1192, i32 2097162, i32 2097163
  call void @_ZN19ImGuiInputTextState12OnKeyPressedEi(ptr noundef nonnull align 8 dereferenceable(3736) %.0939, i32 noundef %.mux1165)
  call void @_ZN19ImGuiInputTextState14ClearSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br label %.thread1213

814:                                              ; preds = %812
  br i1 %665, label %815, label %817

815:                                              ; preds = %814
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  %816 = getelementptr inbounds i8, ptr %.0939, i64 3716
  store i8 1, ptr %816, align 4, !tbaa !168
  br label %.thread1213

817:                                              ; preds = %814
  %brmerge1166 = or i1 %640, %649
  br i1 %brmerge1166, label %818, label %864

818:                                              ; preds = %817
  %819 = getelementptr inbounds i8, ptr %75, i64 184
  %820 = load ptr, ptr %819, align 8, !tbaa !182
  %.not1053 = icmp eq ptr %820, null
  br i1 %.not1053, label %857, label %821

821:                                              ; preds = %818
  %822 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br i1 %822, label %823, label %829

823:                                              ; preds = %821
  %824 = getelementptr inbounds i8, ptr %.0939, i64 88
  %825 = load i32, ptr %824, align 4, !tbaa !138
  %826 = getelementptr inbounds i8, ptr %.0939, i64 92
  %827 = load i32, ptr %826, align 4, !tbaa !140
  %828 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %825, i32 noundef %827)
  br label %829

829:                                              ; preds = %821, %823
  %830 = phi i32 [ %828, %823 ], [ 0, %821 ]
  %831 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br i1 %831, label %832, label %838

832:                                              ; preds = %829
  %833 = getelementptr inbounds i8, ptr %.0939, i64 88
  %834 = load i32, ptr %833, align 4, !tbaa !138
  %835 = getelementptr inbounds i8, ptr %.0939, i64 92
  %836 = load i32, ptr %835, align 4, !tbaa !140
  %837 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %834, i32 noundef %836)
  br label %841

838:                                              ; preds = %829
  %839 = getelementptr inbounds i8, ptr %.0939, i64 12
  %840 = load i32, ptr %839, align 4, !tbaa !135
  br label %841

841:                                              ; preds = %838, %832
  %842 = phi i32 [ %837, %832 ], [ %840, %838 ]
  %843 = getelementptr inbounds i8, ptr %.0939, i64 32
  %844 = load ptr, ptr %843, align 8, !tbaa !134
  %845 = sext i32 %830 to i64
  %846 = getelementptr inbounds i16, ptr %844, i64 %845
  %847 = sext i32 %842 to i64
  %848 = getelementptr inbounds i16, ptr %844, i64 %847
  %849 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %846, ptr noundef %848)
  %850 = add nsw i32 %849, 1
  %851 = sext i32 %850 to i64
  %852 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %851)
  %853 = load ptr, ptr %843, align 8, !tbaa !134
  %854 = getelementptr inbounds i16, ptr %853, i64 %845
  %855 = getelementptr inbounds i16, ptr %853, i64 %847
  %856 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %852, i32 noundef %850, ptr noundef %854, ptr noundef %855)
  call void @_ZN5ImGui16SetClipboardTextEPKc(ptr noundef %852)
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef %852)
  br label %857

857:                                              ; preds = %841, %818
  br i1 %640, label %858, label %.thread1213

858:                                              ; preds = %857
  %859 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br i1 %859, label %861, label %860

860:                                              ; preds = %858
  call void @_ZN19ImGuiInputTextState9SelectAllEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br label %861

861:                                              ; preds = %860, %858
  %862 = getelementptr inbounds i8, ptr %.0939, i64 3716
  store i8 1, ptr %862, align 4, !tbaa !168
  %863 = call noundef i32 @_ZN5ImStbL16stb_textedit_cutEP19ImGuiInputTextStatePNS_17STB_TexteditStateE(ptr noundef nonnull %.0939, ptr noundef nonnull %609)
  br label %.thread1213

864:                                              ; preds = %817
  br i1 %656, label %865, label %.thread1213

865:                                              ; preds = %864
  %866 = call noundef ptr @_ZN5ImGui16GetClipboardTextEv()
  %.not1050 = icmp eq ptr %866, null
  br i1 %.not1050, label %.thread1213, label %867

867:                                              ; preds = %865
  %868 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %866) #15
  %869 = shl i64 %868, 32
  %sext1051 = add i64 %869, 4294967296
  %870 = ashr exact i64 %sext1051, 31
  %871 = call noundef ptr @_ZN5ImGui8MemAllocEm(i64 noundef %870)
  %872 = load i8, ptr %866, align 1, !tbaa !147
  %.not10521245 = icmp eq i8 %872, 0
  br i1 %.not10521245, label %._crit_edge.thread, label %.lr.ph1248

._crit_edge.thread:                               ; preds = %867
  store i16 0, ptr %871, align 2, !tbaa !166
  br label %891

._crit_edge:                                      ; preds = %886
  %873 = sext i32 %.1980 to i64
  %874 = getelementptr inbounds i16, ptr %871, i64 %873
  store i16 0, ptr %874, align 2, !tbaa !166
  %875 = icmp sgt i32 %.1980, 0
  br i1 %875, label %888, label %891

.lr.ph1248:                                       ; preds = %867, %886
  %.09791247 = phi i32 [ %.1980, %886 ], [ 0, %867 ]
  %.09811246 = phi ptr [ %878, %886 ], [ %866, %867 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #14
  %876 = call noundef i32 @_Z18ImTextCharFromUtf8PjPKcS1_(ptr noundef nonnull %23, ptr noundef nonnull %.09811246, ptr noundef null)
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds i8, ptr %.09811246, i64 %877
  %879 = call noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef %75, ptr noundef nonnull %23, i32 noundef %spec.select, ptr noundef %6, ptr noundef %7, i1 noundef zeroext true)
  br i1 %879, label %880, label %886, !llvm.loop !183

880:                                              ; preds = %.lr.ph1248
  %881 = load i32, ptr %23, align 4, !tbaa !111
  %882 = trunc i32 %881 to i16
  %883 = add nsw i32 %.09791247, 1
  %884 = sext i32 %.09791247 to i64
  %885 = getelementptr inbounds i16, ptr %871, i64 %884
  store i16 %882, ptr %885, align 2, !tbaa !166
  br label %886

886:                                              ; preds = %.lr.ph1248, %880
  %.1980 = phi i32 [ %883, %880 ], [ %.09791247, %.lr.ph1248 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #14
  %887 = load i8, ptr %878, align 1, !tbaa !147
  %.not1052 = icmp eq i8 %887, 0
  br i1 %.not1052, label %._crit_edge, label %.lr.ph1248

888:                                              ; preds = %._crit_edge
  %889 = call noundef i32 @_ZN5ImStbL18stb_textedit_pasteEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef %.0939, ptr noundef nonnull %609, ptr noundef nonnull %871, i32 noundef %.1980)
  %890 = getelementptr inbounds i8, ptr %.0939, i64 3716
  store i8 1, ptr %890, align 4, !tbaa !168
  br label %891

891:                                              ; preds = %._crit_edge.thread, %888, %._crit_edge
  call void @_ZN5ImGui7MemFreeEPv(ptr noundef nonnull %871)
  br label %.thread1213

.thread1213:                                      ; preds = %795, %.critedge1159, %865, %891, %808, %810, %800, %806, %801, %796, %705, %734, %727, %747, %760, %787, %815, %864, %857, %861, %813, %769, %754, %739, %713, %719, %700
  %.0977 = phi i1 [ false, %700 ], [ false, %705 ], [ false, %713 ], [ false, %719 ], [ false, %727 ], [ false, %734 ], [ false, %739 ], [ false, %747 ], [ false, %754 ], [ false, %760 ], [ false, %813 ], [ false, %815 ], [ false, %861 ], [ false, %857 ], [ false, %864 ], [ false, %787 ], [ false, %769 ], [ false, %796 ], [ false, %801 ], [ false, %806 ], [ false, %800 ], [ %.not1055, %810 ], [ true, %808 ], [ false, %891 ], [ false, %865 ], [ false, %.critedge1159 ], [ false, %795 ]
  %.1973 = phi i8 [ 0, %700 ], [ 0, %705 ], [ 0, %713 ], [ 0, %719 ], [ 0, %727 ], [ 0, %734 ], [ 0, %739 ], [ 0, %747 ], [ 0, %754 ], [ 0, %760 ], [ 0, %813 ], [ 0, %815 ], [ 0, %861 ], [ 0, %857 ], [ 0, %864 ], [ 0, %787 ], [ 0, %769 ], [ 1, %796 ], [ 0, %801 ], [ 0, %806 ], [ 1, %800 ], [ 0, %810 ], [ 0, %808 ], [ 0, %891 ], [ 0, %865 ], [ 1, %.critedge1159 ], [ 1, %795 ]
  %.1955 = phi i1 [ %.0954.in, %700 ], [ %.0954.in, %705 ], [ %.0954.in, %713 ], [ %.0954.in, %719 ], [ %.0954.in, %727 ], [ %.0954.in, %734 ], [ %.0954.in, %739 ], [ %.0954.in, %747 ], [ %.0954.in, %754 ], [ %.0954.in, %760 ], [ %.0954.in, %813 ], [ %.0954.in, %815 ], [ %.0954.in, %861 ], [ %.0954.in, %857 ], [ %.0954.in, %864 ], [ %.0954.in, %787 ], [ %.0954.in, %769 ], [ %.0954.in, %796 ], [ %.0954.in, %801 ], [ %.0954.in, %806 ], [ %.0954.in, %800 ], [ %..0954.in, %810 ], [ false, %808 ], [ %.0954.in, %891 ], [ %.0954.in, %865 ], [ %.0954.in, %.critedge1159 ], [ %.0954.in, %795 ]
  %.0952 = phi i8 [ %355, %700 ], [ %355, %705 ], [ %355, %713 ], [ %355, %719 ], [ %355, %727 ], [ %355, %734 ], [ %355, %739 ], [ %355, %747 ], [ %355, %754 ], [ %355, %760 ], [ %355, %813 ], [ %355, %815 ], [ %355, %861 ], [ %355, %857 ], [ %355, %864 ], [ %355, %787 ], [ %355, %769 ], [ %355, %796 ], [ %355, %801 ], [ %355, %806 ], [ %355, %800 ], [ %.1163, %810 ], [ 0, %808 ], [ %355, %891 ], [ %355, %865 ], [ %355, %.critedge1159 ], [ %355, %795 ]
  %.0948 = phi float [ %221, %700 ], [ %221, %705 ], [ %221, %713 ], [ %221, %719 ], [ %221, %727 ], [ %221, %734 ], [ %744, %739 ], [ %751, %747 ], [ %221, %754 ], [ %221, %760 ], [ %221, %813 ], [ %221, %815 ], [ %221, %861 ], [ %221, %857 ], [ %221, %864 ], [ %221, %787 ], [ %221, %769 ], [ %221, %796 ], [ %221, %801 ], [ %221, %806 ], [ %221, %800 ], [ %221, %810 ], [ %221, %808 ], [ %221, %891 ], [ %221, %865 ], [ %221, %.critedge1159 ], [ %221, %795 ]
  %.2942 = phi i8 [ %.09401204, %700 ], [ %.09401204, %705 ], [ %.09401204, %713 ], [ %.09401204, %719 ], [ %.09401204, %727 ], [ %.09401204, %734 ], [ %.09401204, %739 ], [ %.09401204, %747 ], [ %.09401204, %754 ], [ %.09401204, %760 ], [ %.09401204, %813 ], [ %.09401204, %815 ], [ %.09401204, %861 ], [ %.09401204, %857 ], [ %.09401204, %864 ], [ %.09401204, %787 ], [ %.09401204, %769 ], [ 1, %796 ], [ %.09401204, %801 ], [ %.09401204, %806 ], [ %.09401204, %800 ], [ %..0940, %810 ], [ 1, %808 ], [ %.09401204, %891 ], [ %.09401204, %865 ], [ 1, %.critedge1159 ], [ 1, %795 ]
  %892 = call noundef zeroext i1 @_ZNK19ImGuiInputTextState12HasSelectionEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  %893 = select i1 %892, i8 %.0952, i8 0
  %894 = zext i1 %.1955 to i8
  %895 = or i8 %893, %894
  %.pre1257 = load i32, ptr %179, align 4, !tbaa !114
  br label %896

896:                                              ; preds = %.thread1213, %590
  %897 = phi i32 [ %.pre1257, %.thread1213 ], [ %591, %590 ]
  %.1978 = phi i1 [ %.0977, %.thread1213 ], [ false, %590 ]
  %.2974 = phi i8 [ %.1973, %.thread1213 ], [ 0, %590 ]
  %.2956 = phi i8 [ %895, %.thread1213 ], [ %.0954, %590 ]
  %.1953 = phi i8 [ %.0952, %.thread1213 ], [ %355, %590 ]
  %.1949 = phi float [ %.0948, %.thread1213 ], [ %221, %590 ]
  %.3943 = phi i8 [ %.2942, %.thread1213 ], [ %.09401204, %590 ]
  %898 = icmp eq i32 %897, %79
  br i1 %898, label %.thread1279, label %1103

.thread1279:                                      ; preds = %597, %593, %896
  %.39431296 = phi i8 [ %.3943, %896 ], [ %.09401204, %593 ], [ %.09401204, %597 ]
  %.19491294 = phi float [ %.1949, %896 ], [ %221, %593 ], [ %221, %597 ]
  %.19531292 = phi i8 [ %.1953, %896 ], [ %355, %593 ], [ %355, %597 ]
  %.29561290 = phi i8 [ %.2956, %896 ], [ %.0954, %593 ], [ %.0954, %597 ]
  %.29741287 = phi i8 [ %.2974, %896 ], [ 0, %593 ], [ 0, %597 ]
  %.19781286 = phi i1 [ %.1978, %896 ], [ false, %593 ], [ false, %597 ]
  br i1 %356, label %900, label %899

899:                                              ; preds = %.thread1279
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 4793, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

900:                                              ; preds = %.thread1279
  %.1978.not = xor i1 %.19781286, true
  %brmerge1167 = or i1 %171, %.1978.not
  br i1 %brmerge1167, label %938, label %901

901:                                              ; preds = %900
  %902 = and i32 %5, 128
  %.not1058 = icmp eq i32 %902, 0
  br i1 %.not1058, label %908, label %903

903:                                              ; preds = %901
  %904 = load i8, ptr %2, align 1, !tbaa !147
  %.not1060 = icmp eq i8 %904, 0
  br i1 %.not1060, label %905, label %906

905:                                              ; preds = %903
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.2, i32 noundef 4799, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

906:                                              ; preds = %903
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %24) #14
  %907 = getelementptr inbounds i8, ptr %.0939, i64 84
  call void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.0939, ptr noundef nonnull %907, ptr noundef nonnull %24, i32 noundef 0)
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %24) #14
  br label %.thread1217

908:                                              ; preds = %901
  %909 = getelementptr inbounds i8, ptr %.0939, i64 64
  %910 = load ptr, ptr %909, align 8, !tbaa !130
  %911 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) %910) #15
  %.not1059 = icmp eq i32 %911, 0
  br i1 %.not1059, label %.thread1217, label %912

912:                                              ; preds = %908
  %913 = getelementptr inbounds i8, ptr %.0939, i64 56
  %914 = load i32, ptr %913, align 8, !tbaa !184
  %915 = add nsw i32 %914, -1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #14
  call void @_ZN8ImVectorItEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25)
  %916 = icmp sgt i32 %914, 1
  br i1 %916, label %917, label %930

917:                                              ; preds = %912
  %918 = zext nneg i32 %915 to i64
  %919 = getelementptr inbounds i8, ptr %910, i64 %918
  %920 = invoke noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %910, ptr noundef %919)
          to label %921 unwind label %928

921:                                              ; preds = %917
  %922 = add nsw i32 %920, 1
  invoke void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %25, i32 noundef %922)
          to label %923 unwind label %928

923:                                              ; preds = %921
  %924 = getelementptr inbounds i8, ptr %25, i64 8
  %925 = load ptr, ptr %924, align 8, !tbaa !185
  %926 = load i32, ptr %25, align 8, !tbaa !186
  %927 = invoke noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %925, i32 noundef %926, ptr noundef %910, ptr noundef %919, ptr noundef null)
          to label %930 unwind label %928

928:                                              ; preds = %930, %923, %921, %917
  %929 = 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 80, 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 } %929

930:                                              ; preds = %923, %912
  %931 = getelementptr inbounds i8, ptr %.0939, i64 84
  %932 = getelementptr inbounds i8, ptr %25, i64 8
  %933 = load ptr, ptr %932, align 8, !tbaa !185
  %934 = load i32, ptr %25, align 8
  %935 = add nsw i32 %934, -1
  %936 = select i1 %916, i32 %935, i32 0
  invoke void @_ZN5ImStbL20stb_textedit_replaceEP19ImGuiInputTextStatePNS_17STB_TexteditStateEPKti(ptr noundef nonnull %.0939, ptr noundef nonnull %931, ptr noundef %933, i32 noundef %936)
          to label %937 unwind label %928

937:                                              ; preds = %930
  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 %.thread1217

938:                                              ; preds = %900
  br i1 %171, label %951, label %.thread1217

.thread1217:                                      ; preds = %908, %937, %906, %938
  %.09661225 = phi i1 [ false, %938 ], [ false, %908 ], [ true, %937 ], [ true, %906 ]
  %.09821223 = phi ptr [ null, %938 ], [ null, %908 ], [ %910, %937 ], [ @.str, %906 ]
  %.09871221 = phi i32 [ 0, %938 ], [ 0, %908 ], [ %915, %937 ], [ 0, %906 ]
  %939 = getelementptr inbounds i8, ptr %.0939, i64 72
  store i8 1, ptr %939, align 8, !tbaa !132
  %940 = getelementptr inbounds i8, ptr %.0939, i64 40
  %941 = getelementptr inbounds i8, ptr %.0939, i64 24
  %942 = load i32, ptr %941, align 8, !tbaa !146
  %943 = shl nsw i32 %942, 2
  %944 = or disjoint i32 %943, 1
  call void @_ZN8ImVectorIcE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %940, i32 noundef %944)
  %945 = getelementptr inbounds i8, ptr %.0939, i64 48
  %946 = load ptr, ptr %945, align 8, !tbaa !133
  %947 = load i32, ptr %940, align 8, !tbaa !187
  %948 = getelementptr inbounds i8, ptr %.0939, i64 32
  %949 = load ptr, ptr %948, align 8, !tbaa !134
  %950 = call noundef i32 @_Z15ImTextStrToUtf8PciPKtS1_(ptr noundef %946, i32 noundef %947, ptr noundef %949, ptr noundef null)
  br label %951

951:                                              ; preds = %.thread1217, %938
  %.09661226 = phi i1 [ %.09661225, %.thread1217 ], [ false, %938 ]
  %.09821224 = phi ptr [ %.09821223, %.thread1217 ], [ null, %938 ]
  %.09871222 = phi i32 [ %.09871221, %.thread1217 ], [ 0, %938 ]
  br i1 %.19781286, label %952, label %.critedge1169

952:                                              ; preds = %951
  %953 = trunc nuw i8 %.29741287 to i1
  %954 = and i32 %5, 64
  %955 = icmp ne i32 %954, 0
  %956 = and i1 %955, %953
  br i1 %956, label %.critedge1169, label %1103

.critedge1169:                                    ; preds = %951, %952
  %957 = and i32 %5, 5111808
  %.not1061 = icmp eq i32 %957, 0
  br i1 %.not1061, label %1095, label %958

958:                                              ; preds = %.critedge1169
  br i1 %176, label %960, label %959

959:                                              ; preds = %958
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.2, i32 noundef 4848, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

960:                                              ; preds = %958
  %961 = and i32 %5, 131072
  %.not1062 = icmp eq i32 %961, 0
  br i1 %.not1062, label %964, label %962

962:                                              ; preds = %960
  %963 = call noundef zeroext i1 @_ZN5ImGui8ShortcutEiij(i32 noundef 512, i32 noundef 0, i32 noundef %79)
  br i1 %963, label %.thread1228, label %964

964:                                              ; preds = %962, %960
  %965 = and i32 %5, 262144
  %.not1063 = icmp eq i32 %965, 0
  br i1 %.not1063, label %.critedge1171, label %966

966:                                              ; preds = %964
  %967 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 515, i1 noundef zeroext true)
  br i1 %967, label %.thread1228, label %968

968:                                              ; preds = %966
  %969 = call noundef zeroext i1 @_ZN5ImGui12IsKeyPressedE8ImGuiKeyb(i32 noundef 516, i1 noundef zeroext true)
  br i1 %969, label %.thread1228, label %.critedge1171

.critedge1171:                                    ; preds = %964, %968
  %970 = and i32 %5, 4194304
  %.not1064 = icmp eq i32 %970, 0
  br i1 %.not1064, label %975, label %971

971:                                              ; preds = %.critedge1171
  %972 = getelementptr inbounds i8, ptr %.0939, i64 3718
  %973 = load i8, ptr %972, align 2, !tbaa !156, !range !39, !noundef !40
  %974 = trunc nuw i8 %973 to i1
  br i1 %974, label %.thread1228, label %975

975:                                              ; preds = %.critedge1171, %971
  %976 = and i32 %5, 524288
  %.not1065 = icmp eq i32 %976, 0
  br i1 %.not1065, label %1095, label %.thread1228

.thread1228:                                      ; preds = %971, %968, %966, %962, %975
  %.09921233 = phi i32 [ 0, %975 ], [ 0, %971 ], [ 516, %968 ], [ 515, %966 ], [ 512, %962 ]
  %.09931232 = phi i32 [ 524288, %975 ], [ 4194304, %971 ], [ 262144, %968 ], [ 262144, %966 ], [ 131072, %962 ]
  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 !188
  %977 = getelementptr inbounds i8, ptr %26, i64 8
  store i32 %.09931232, ptr %977, align 8, !tbaa !190
  %978 = getelementptr inbounds i8, ptr %26, i64 12
  store i32 %spec.select, ptr %978, align 4, !tbaa !191
  %979 = getelementptr inbounds i8, ptr %26, i64 16
  store ptr %7, ptr %979, align 8, !tbaa !192
  br i1 %171, label %983, label %980

980:                                              ; preds = %.thread1228
  %981 = getelementptr inbounds i8, ptr %.0939, i64 48
  %982 = load ptr, ptr %981, align 8, !tbaa !133
  br label %983

983:                                              ; preds = %.thread1228, %980
  %984 = phi ptr [ %982, %980 ], [ %2, %.thread1228 ]
  %985 = getelementptr inbounds i8, ptr %26, i64 28
  store i32 %.09921233, ptr %985, align 4, !tbaa !193
  %986 = getelementptr inbounds i8, ptr %26, i64 32
  store ptr %984, ptr %986, align 8, !tbaa !194
  %987 = getelementptr inbounds i8, ptr %.0939, i64 16
  %988 = load i32, ptr %987, align 8, !tbaa !131
  %989 = getelementptr inbounds i8, ptr %26, i64 40
  store i32 %988, ptr %989, align 8, !tbaa !195
  %990 = getelementptr inbounds i8, ptr %.0939, i64 76
  %991 = load i32, ptr %990, align 4, !tbaa !157
  %992 = getelementptr inbounds i8, ptr %26, i64 44
  store i32 %991, ptr %992, align 4, !tbaa !196
  %993 = getelementptr inbounds i8, ptr %26, i64 48
  store i8 0, ptr %993, align 8, !tbaa !197
  %994 = getelementptr inbounds i8, ptr %.0939, i64 24
  %995 = getelementptr inbounds i8, ptr %.0939, i64 32
  %996 = load ptr, ptr %995, align 8, !tbaa !134
  %997 = getelementptr inbounds i8, ptr %.0939, i64 84
  %998 = load i32, ptr %997, align 4, !tbaa !141
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds i16, ptr %996, i64 %999
  %1001 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %996, ptr noundef %1000)
  %1002 = getelementptr inbounds i8, ptr %26, i64 52
  store i32 %1001, ptr %1002, align 4, !tbaa !198
  %1003 = getelementptr inbounds i8, ptr %.0939, i64 88
  %1004 = load i32, ptr %1003, align 4, !tbaa !138
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds i16, ptr %996, i64 %1005
  %1007 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %996, ptr noundef %1006)
  %1008 = getelementptr inbounds i8, ptr %26, i64 56
  store i32 %1007, ptr %1008, align 8, !tbaa !199
  %1009 = getelementptr inbounds i8, ptr %.0939, i64 92
  %1010 = load i32, ptr %1009, align 4, !tbaa !140
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds i16, ptr %996, i64 %1011
  %1013 = call noundef i32 @_Z27ImTextCountUtf8BytesFromStrPKtS0_(ptr noundef %996, ptr noundef %1012)
  %1014 = getelementptr inbounds i8, ptr %26, i64 60
  store i32 %1013, ptr %1014, align 4, !tbaa !200
  %1015 = call noundef i32 %6(ptr noundef nonnull %26)
  br i1 %171, label %1019, label %1016

1016:                                             ; preds = %983
  %1017 = getelementptr inbounds i8, ptr %.0939, i64 48
  %1018 = load ptr, ptr %1017, align 8, !tbaa !133
  br label %1019

1019:                                             ; preds = %983, %1016
  %1020 = phi ptr [ %1018, %1016 ], [ %2, %983 ]
  %1021 = load ptr, ptr %986, align 8, !tbaa !194
  %1022 = icmp eq ptr %1021, %1020
  br i1 %1022, label %1024, label %1023

1023:                                             ; preds = %1019
  call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.2, i32 noundef 4903, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1024:                                             ; preds = %1019
  %1025 = load i32, ptr %992, align 4, !tbaa !196
  %1026 = load i32, ptr %990, align 4, !tbaa !157
  %1027 = icmp eq i32 %1025, %1026
  br i1 %1027, label %1029, label %1028

1028:                                             ; preds = %1024
  call void @__assert_fail(ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 4904, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1029:                                             ; preds = %1024
  %1030 = load i32, ptr %978, align 4, !tbaa !191
  %1031 = icmp eq i32 %1030, %spec.select
  br i1 %1031, label %1033, label %1032

1032:                                             ; preds = %1029
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 4905, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1033:                                             ; preds = %1029
  %1034 = load i8, ptr %993, align 8, !tbaa !197, !range !39, !noundef !40
  %1035 = trunc nuw i8 %1034 to i1
  %1036 = load i32, ptr %1002, align 4, !tbaa !198
  %.not1067 = icmp ne i32 %1036, %1001
  %brmerge1174 = select i1 %.not1067, i1 true, i1 %1035
  br i1 %brmerge1174, label %1037, label %1042

1037:                                             ; preds = %1033
  %1038 = sext i32 %1036 to i64
  %1039 = getelementptr inbounds i8, ptr %1021, i64 %1038
  %1040 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1021, ptr noundef %1039)
  store i32 %1040, ptr %997, align 4, !tbaa !141
  %1041 = getelementptr inbounds i8, ptr %.0939, i64 3716
  store i8 1, ptr %1041, align 4, !tbaa !168
  br label %1042

1042:                                             ; preds = %1033, %1037
  %1043 = load i32, ptr %1008, align 8, !tbaa !199
  %.not1068 = icmp ne i32 %1043, %1007
  %brmerge1175 = select i1 %.not1068, i1 true, i1 %1035
  br i1 %brmerge1175, label %1044, label %1056

1044:                                             ; preds = %1042
  %1045 = load i32, ptr %1002, align 4, !tbaa !198
  %1046 = icmp eq i32 %1043, %1045
  br i1 %1046, label %1047, label %1049

1047:                                             ; preds = %1044
  %1048 = load i32, ptr %997, align 4, !tbaa !141
  br label %1054

1049:                                             ; preds = %1044
  %1050 = load ptr, ptr %986, align 8, !tbaa !194
  %1051 = sext i32 %1043 to i64
  %1052 = getelementptr inbounds i8, ptr %1050, i64 %1051
  %1053 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1050, ptr noundef %1052)
  br label %1054

1054:                                             ; preds = %1049, %1047
  %1055 = phi i32 [ %1048, %1047 ], [ %1053, %1049 ]
  store i32 %1055, ptr %1003, align 4, !tbaa !138
  br label %1056

1056:                                             ; preds = %1042, %1054
  %1057 = load i32, ptr %1014, align 4, !tbaa !200
  %.not1069 = icmp ne i32 %1057, %1013
  %brmerge1176 = select i1 %.not1069, i1 true, i1 %1035
  br i1 %brmerge1176, label %1058, label %1070

1058:                                             ; preds = %1056
  %1059 = load i32, ptr %1008, align 8, !tbaa !199
  %1060 = icmp eq i32 %1057, %1059
  br i1 %1060, label %1061, label %1063

1061:                                             ; preds = %1058
  %1062 = load i32, ptr %1003, align 4, !tbaa !138
  br label %1068

1063:                                             ; preds = %1058
  %1064 = load ptr, ptr %986, align 8, !tbaa !194
  %1065 = sext i32 %1057 to i64
  %1066 = getelementptr inbounds i8, ptr %1064, i64 %1065
  %1067 = call noundef i32 @_Z24ImTextCountCharsFromUtf8PKcS0_(ptr noundef %1064, ptr noundef %1066)
  br label %1068

1068:                                             ; preds = %1063, %1061
  %1069 = phi i32 [ %1062, %1061 ], [ %1067, %1063 ]
  store i32 %1069, ptr %1009, align 4, !tbaa !140
  br label %1070

1070:                                             ; preds = %1056, %1068
  br i1 %1035, label %1071, label %1094

1071:                                             ; preds = %1070
  br i1 %171, label %1072, label %1073

1072:                                             ; preds = %1071
  call void @__assert_fail(ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.2, i32 noundef 4912, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1073:                                             ; preds = %1071
  %1074 = load i32, ptr %989, align 8, !tbaa !195
  %1075 = load ptr, ptr %986, align 8, !tbaa !194
  %1076 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1075) #15
  %1077 = trunc i64 %1076 to i32
  %1078 = icmp eq i32 %1074, %1077
  br i1 %1078, label %1080, label %1079

1079:                                             ; preds = %1073
  call void @__assert_fail(ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.2, i32 noundef 4913, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1080:                                             ; preds = %1073
  call void @_ZL44InputTextReconcileUndoStateAfterUserCallbackP19ImGuiInputTextStatePKci(ptr noundef nonnull %.0939, ptr noundef %1075, i32 noundef %1074)
  %1081 = load i32, ptr %989, align 8, !tbaa !195
  %1082 = icmp sle i32 %1081, %.0975
  %brmerge1178 = or i1 %.not1033, %1082
  br i1 %brmerge1178, label %1087, label %1083

1083:                                             ; preds = %1080
  %1084 = load i32, ptr %994, align 8, !tbaa !146
  %1085 = sub i32 %1081, %.0975
  %1086 = add nsw i32 %1085, %1084
  call void @_ZN8ImVectorItE6resizeEi(ptr noundef nonnull align 8 dereferenceable(16) %994, i32 noundef %1086)
  br label %1087

1087:                                             ; preds = %1080, %1083
  %1088 = load ptr, ptr %995, align 8, !tbaa !134
  %1089 = load i32, ptr %994, align 8, !tbaa !146
  %1090 = load ptr, ptr %986, align 8, !tbaa !194
  %1091 = call noundef i32 @_Z17ImTextStrFromUtf8PtiPKcS1_PS1_(ptr noundef %1088, i32 noundef %1089, ptr noundef %1090, ptr noundef null, ptr noundef null)
  %1092 = getelementptr inbounds i8, ptr %.0939, i64 12
  store i32 %1091, ptr %1092, align 4, !tbaa !135
  %1093 = load i32, ptr %989, align 8, !tbaa !195
  store i32 %1093, ptr %987, align 8, !tbaa !131
  call void @_ZN19ImGuiInputTextState15CursorAnimResetEv(ptr noundef nonnull align 8 dereferenceable(3736) %.0939)
  br label %1094

1094:                                             ; preds = %1087, %1070
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %26) #14
  br label %1095

1095:                                             ; preds = %975, %1094, %.critedge1169
  br i1 %171, label %1103, label %1096

1096:                                             ; preds = %1095
  %1097 = getelementptr inbounds i8, ptr %.0939, i64 48
  %1098 = load ptr, ptr %1097, align 8, !tbaa !133
  %1099 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1098, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1070 = icmp eq i32 %1099, 0
  br i1 %.not1070, label %1103, label %1100

1100:                                             ; preds = %1096
  %1101 = getelementptr inbounds i8, ptr %.0939, i64 16
  %1102 = load i32, ptr %1101, align 8, !tbaa !131
  br label %1103

1103:                                             ; preds = %952, %1100, %1096, %1095, %896
  %.39431295 = phi i8 [ %.3943, %896 ], [ %.39431296, %1095 ], [ %.39431296, %1100 ], [ %.39431296, %1096 ], [ %.39431296, %952 ]
  %.19491293 = phi float [ %.1949, %896 ], [ %.19491294, %1095 ], [ %.19491294, %1100 ], [ %.19491294, %1096 ], [ %.19491294, %952 ]
  %.19531291 = phi i8 [ %.1953, %896 ], [ %.19531292, %1095 ], [ %.19531292, %1100 ], [ %.19531292, %1096 ], [ %.19531292, %952 ]
  %.29561289 = phi i8 [ %.2956, %896 ], [ %.29561290, %1095 ], [ %.29561290, %1100 ], [ %.29561290, %1096 ], [ %.29561290, %952 ]
  %.29741288 = phi i8 [ %.2974, %896 ], [ %.29741287, %1095 ], [ %.29741287, %1100 ], [ %.29741287, %1096 ], [ %.29741287, %952 ]
  %.2989 = phi i32 [ 0, %896 ], [ %.09871222, %1095 ], [ %1102, %1100 ], [ %.09871222, %1096 ], [ %.09871222, %952 ]
  %.2984 = phi ptr [ null, %896 ], [ %.09821224, %1095 ], [ %1098, %1100 ], [ %.09821224, %1096 ], [ %.09821224, %952 ]
  %.2968 = phi i1 [ false, %896 ], [ %.09661226, %1095 ], [ true, %1100 ], [ %.09661226, %1096 ], [ %.09661226, %952 ]
  %1104 = getelementptr inbounds i8, ptr %75, i64 24240
  %1105 = load i32, ptr %1104, align 8, !tbaa !201
  %1106 = icmp eq i32 %1105, %79
  br i1 %1106, label %1107, label %1120

1107:                                             ; preds = %1103
  %1108 = load i32, ptr %179, align 4, !tbaa !114
  %.not1071 = icmp eq i32 %1108, %79
  br i1 %.not1071, label %1119, label %1109

1109:                                             ; preds = %1107
  %1110 = call noundef zeroext i1 @_ZN5ImGui26IsItemDeactivatedAfterEditEv()
  %.not1179 = xor i1 %1110, true
  %brmerge1180 = or i1 %171, %.not1179
  br i1 %brmerge1180, label %1119, label %1111

1111:                                             ; preds = %1109
  %1112 = getelementptr inbounds i8, ptr %75, i64 24256
  %1113 = load ptr, ptr %1112, align 8, !tbaa !202
  %1114 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1113, ptr noundef nonnull dereferenceable(1) %2) #15
  %.not1072 = icmp eq i32 %1114, 0
  br i1 %.not1072, label %1119, label %1115

1115:                                             ; preds = %1111
  %1116 = getelementptr inbounds i8, ptr %75, i64 24248
  %1117 = load i32, ptr %1116, align 8, !tbaa !203
  %1118 = add nsw i32 %1117, -1
  br label %1119

1119:                                             ; preds = %1109, %1115, %1111, %1107
  %.3990 = phi i32 [ %1118, %1115 ], [ %.2989, %1111 ], [ %.2989, %1109 ], [ %.2989, %1107 ]
  %.3985 = phi ptr [ %1113, %1115 ], [ %.2984, %1111 ], [ %.2984, %1109 ], [ %.2984, %1107 ]
  %.3969 = phi i1 [ true, %1115 ], [ %.2968, %1111 ], [ %.2968, %1109 ], [ %.2968, %1107 ]
  store i32 0, ptr %1104, align 8, !tbaa !201
  br label %1120

1120:                                             ; preds = %1119, %1103
  %.4991 = phi i32 [ %.3990, %1119 ], [ %.2989, %1103 ]
  %.4986 = phi ptr [ %.3985, %1119 ], [ %.2984, %1103 ]
  %.4970 = phi i1 [ %.3969, %1119 ], [ %.2968, %1103 ]
  %.not1073 = icmp eq ptr %.4986, null
  br i1 %.not1073, label %1146, label %1121

1121:                                             ; preds = %1120
  %1122 = icmp sgt i32 %.4991, -1
  br i1 %1122, label %1124, label %1123

1123:                                             ; preds = %1121
  call void @__assert_fail(ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.2, i32 noundef 4953, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1124:                                             ; preds = %1121
  br i1 %.not1033, label %1142, label %1125

1125:                                             ; preds = %1124
  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 !188
  %1126 = getelementptr inbounds i8, ptr %27, i64 8
  store i32 2097152, ptr %1126, align 8, !tbaa !190
  %1127 = getelementptr inbounds i8, ptr %27, i64 12
  store i32 %spec.select, ptr %1127, align 4, !tbaa !191
  %1128 = getelementptr inbounds i8, ptr %27, i64 32
  store ptr %2, ptr %1128, align 8, !tbaa !194
  %1129 = getelementptr inbounds i8, ptr %27, i64 40
  store i32 %.4991, ptr %1129, align 8, !tbaa !195
  %1130 = add nuw nsw i32 %.4991, 1
  %1131 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %3, i32 noundef %1130)
  %1132 = getelementptr inbounds i8, ptr %27, i64 44
  store i32 %1131, ptr %1132, align 4, !tbaa !196
  %1133 = getelementptr inbounds i8, ptr %27, i64 16
  store ptr %7, ptr %1133, align 8, !tbaa !192
  %1134 = call noundef i32 %6(ptr noundef nonnull %27)
  %1135 = load ptr, ptr %1128, align 8, !tbaa !194
  %1136 = load i32, ptr %1132, align 4, !tbaa !196
  %1137 = load i32, ptr %1129, align 8, !tbaa !195
  %1138 = add nsw i32 %1136, -1
  %1139 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1137, i32 noundef %1138)
  %.not1074 = icmp sgt i32 %1139, %1136
  br i1 %.not1074, label %1140, label %1141

1140:                                             ; preds = %1125
  call void @__assert_fail(ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 4968, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1141:                                             ; preds = %1125
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %27) #14
  br label %1142

1142:                                             ; preds = %1141, %1124
  %.5 = phi i32 [ %1139, %1141 ], [ %.4991, %1124 ]
  %.0932 = phi i32 [ %1136, %1141 ], [ %3, %1124 ]
  %.0930 = phi ptr [ %1135, %1141 ], [ %2, %1124 ]
  %1143 = add nsw i32 %.5, 1
  %1144 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1143, i32 noundef %.0932)
  %1145 = sext i32 %1144 to i64
  call void @_Z9ImStrncpyPcPKcm(ptr noundef %.0930, ptr noundef nonnull %.4986, i64 noundef %1145)
  br label %1146

1146:                                             ; preds = %1142, %1120
  %.1931 = phi ptr [ %.0930, %1142 ], [ %2, %1120 ]
  %1147 = load i32, ptr %179, align 4, !tbaa !114
  %1148 = icmp eq i32 %1147, %79
  br i1 %1148, label %1149, label %1154

1149:                                             ; preds = %1146
  %1150 = trunc nuw i8 %.39431295 to i1
  br i1 %1150, label %1151, label %1152

1151:                                             ; preds = %1149
  call void @_ZN5ImGui13ClearActiveIDEv()
  br label %1154

1152:                                             ; preds = %1149
  %1153 = getelementptr inbounds i8, ptr %75, i64 25432
  store i32 1, ptr %1153, align 8, !tbaa !204
  br label %1154

1154:                                             ; preds = %1146, %1152, %1151
  br i1 %67, label %1160, label %1155

1155:                                             ; preds = %1154
  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
  %1156 = getelementptr inbounds i8, ptr %11, i64 8
  %.sroa.090.0.copyload = load <2 x float>, ptr %1156, align 8
  %1157 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 7, float noundef 1.000000e+00)
  %1158 = getelementptr inbounds i8, ptr %75, i64 14660
  %1159 = load float, ptr %1158, align 4, !tbaa !115
  call void @_ZN5ImGui11RenderFrameE6ImVec2S0_jbf(<2 x float> %.sroa.091.0.copyload, <2 x float> %.sroa.090.0.copyload, i32 noundef %1157, i1 noundef zeroext true, float noundef %1159)
  br label %1160

1160:                                             ; preds = %1155, %1154
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #14
  %1161 = load float, ptr %11, align 8, !tbaa !161
  %1162 = getelementptr inbounds i8, ptr %11, i64 4
  %1163 = load float, ptr %1162, align 4, !tbaa !205
  %1164 = fadd float %.sroa.0544.2, %1161
  %1165 = fadd float %.sroa.11.0.copyload, %1163
  call void @_ZN6ImVec4C2Effff(ptr noundef nonnull align 4 dereferenceable(16) %28, float noundef %1161, float noundef %1163, float noundef %1164, float noundef %1165)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  br i1 %67, label %1166, label %1169

1166:                                             ; preds = %1160
  %1167 = getelementptr inbounds i8, ptr %.2938, i64 280
  %1168 = load i64, ptr %1167, align 8
  br label %1172

1169:                                             ; preds = %1160
  %1170 = call <2 x float> @_ZplRK6ImVec2S1_(ptr noundef nonnull align 4 dereferenceable(8) %11, ptr noundef nonnull align 4 dereferenceable(8) %89)
  %1171 = bitcast <2 x float> %1170 to i64
  br label %1172

1172:                                             ; preds = %1169, %1166
  %storemerge = phi i64 [ %1168, %1166 ], [ %1171, %1169 ]
  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 %1173, label %1176

1173:                                             ; preds = %1172
  %1174 = getelementptr inbounds i8, ptr %.0939, i64 48
  %1175 = load ptr, ptr %1174, align 8, !tbaa !133
  br label %1176

1176:                                             ; preds = %1172, %1173
  %1177 = phi ptr [ %1175, %1173 ], [ %.1931, %1172 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  store ptr null, ptr %31, align 8, !tbaa !41
  br i1 %400, label %1178, label %1181

1178:                                             ; preds = %1176
  %1179 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #15
  %1180 = getelementptr inbounds i8, ptr %1, i64 %1179
  store ptr %1180, ptr %31, align 8, !tbaa !41
  br label %1181

1181:                                             ; preds = %1178, %1176
  %1182 = phi ptr [ %1180, %1178 ], [ null, %1176 ]
  %.0971 = phi ptr [ %1, %1178 ], [ %1177, %1176 ]
  %1183 = trunc nuw i8 %.19531291 to i1
  br i1 %1183, label %1186, label %1184

1184:                                             ; preds = %1181
  %1185 = trunc nuw i8 %.29561289 to i1
  br i1 %1185, label %1186, label %1448

1186:                                             ; preds = %1184, %1181
  br i1 %356, label %1188, label %1187

1187:                                             ; preds = %1186
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 5010, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv) #13
  unreachable

1188:                                             ; preds = %1186
  br i1 %400, label %1194, label %1189

1189:                                             ; preds = %1188
  %1190 = getelementptr inbounds i8, ptr %.0939, i64 16
  %1191 = load i32, ptr %1190, align 8, !tbaa !131
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds i8, ptr %.0971, i64 %1192
  store ptr %1193, ptr %31, align 8, !tbaa !41
  br label %1194

1194:                                             ; preds = %1189, %1188
  %.pre12631265 = phi ptr [ %1193, %1189 ], [ %1182, %1188 ]
  %1195 = getelementptr inbounds i8, ptr %.0939, i64 32
  %1196 = load ptr, ptr %1195, align 8, !tbaa !134
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %32)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #14
  call void @_ZN6ImVec2C2Ev(ptr noundef nonnull align 4 dereferenceable(8) %33)
  %.sroa.062.0.copyload = load i32, ptr @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, align 4
  %.sroa.9.0.copyload = load i32, ptr getelementptr inbounds (i8, ptr @__const._ZN5ImGui11InputTextExEPKcS1_PciRK6ImVec2iPFiP26ImGuiInputTextCallbackDataEPv.searches_result_line_no, i64 4), align 4
  br i1 %1183, label %1197, label %1202

1197:                                             ; preds = %1194
  %1198 = getelementptr inbounds i8, ptr %.0939, i64 84
  %1199 = load i32, ptr %1198, align 4, !tbaa !141
  %1200 = sext i32 %1199 to i64
  %1201 = getelementptr inbounds i16, ptr %1196, i64 %1200
  br label %1202

1202:                                             ; preds = %1197, %1194
  %.sroa.068.0 = phi ptr [ %1201, %1197 ], [ null, %1194 ]
  %.sroa.062.0 = phi i32 [ -1, %1197 ], [ %.sroa.062.0.copyload, %1194 ]
  %.0961 = phi i32 [ 1, %1197 ], [ 0, %1194 ]
  %1203 = trunc nuw i8 %.29561289 to i1
  br i1 %1203, label %1204, label %1213

1204:                                             ; preds = %1202
  %1205 = getelementptr inbounds i8, ptr %.0939, i64 88
  %1206 = load i32, ptr %1205, align 4, !tbaa !138
  %1207 = getelementptr inbounds i8, ptr %.0939, i64 92
  %1208 = load i32, ptr %1207, align 4, !tbaa !140
  %1209 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1206, i32 noundef %1208)
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds i16, ptr %1196, i64 %1210
  %1212 = add nuw nsw i32 %.0961, 1
  br label %1213

1213:                                             ; preds = %1204, %1202
  %.sroa.7.0 = phi ptr [ %1211, %1204 ], [ null, %1202 ]
  %.sroa.9.0 = phi i32 [ -1, %1204 ], [ %.sroa.9.0.copyload, %1202 ]
  %.1962 = phi i32 [ %1212, %1204 ], [ %.0961, %1202 ]
  %.lobit = lshr exact i32 %66, 26
  %1214 = add nuw nsw i32 %.1962, %.lobit
  br label %1215

1215:                                             ; preds = %1230, %1213
  %.sroa.9.1 = phi i32 [ %.sroa.9.0, %1213 ], [ %.sroa.9.2, %1230 ]
  %.sroa.062.1 = phi i32 [ %.sroa.062.0, %1213 ], [ %.sroa.062.3, %1230 ]
  %.2963 = phi i32 [ %1214, %1213 ], [ %.4965, %1230 ]
  %.0958 = phi i32 [ 0, %1213 ], [ %.1959, %1230 ]
  %.0957 = phi ptr [ %1196, %1213 ], [ %1231, %1230 ]
  %1216 = load i16, ptr %.0957, align 2, !tbaa !166
  switch i16 %1216, label %1230 [
    i16 0, label %1232
    i16 10, label %1217
  ]

1217:                                             ; preds = %1215
  %1218 = add nsw i32 %.0958, 1
  %1219 = icmp eq i32 %.sroa.062.1, -1
  br i1 %1219, label %1220, label %1224

1220:                                             ; preds = %1217
  %.not1076 = icmp ult ptr %.0957, %.sroa.068.0
  br i1 %.not1076, label %1224, label %1221

1221:                                             ; preds = %1220
  %1222 = add nsw i32 %.2963, -1
  %1223 = icmp slt i32 %.2963, 2
  br i1 %1223, label %1232, label %1224

1224:                                             ; preds = %1221, %1220, %1217
  %.sroa.062.2 = phi i32 [ %1218, %1221 ], [ -1, %1220 ], [ %.sroa.062.1, %1217 ]
  %.3964 = phi i32 [ %1222, %1221 ], [ %.2963, %1220 ], [ %.2963, %1217 ]
  %1225 = icmp eq i32 %.sroa.9.1, -1
  br i1 %1225, label %1226, label %1230

1226:                                             ; preds = %1224
  %.not1077 = icmp ult ptr %.0957, %.sroa.7.0
  br i1 %.not1077, label %1230, label %1227

1227:                                             ; preds = %1226
  %1228 = add nsw i32 %.3964, -1
  %1229 = icmp slt i32 %.3964, 2
  br i1 %1229, label %1232, label %1230

1230:                                             ; preds = %1215, %1227, %1226, %1224
  %.sroa.9.2 = phi i32 [ %1218, %1227 ], [ -1, %1226 ], [ %.sroa.9.1, %1224 ], [ %.sroa.9.1, %1215 ]
  %.sroa.062.3 = phi i32 [ %.sroa.062.2, %1227 ], [ %.sroa.062.2, %1226 ], [ %.sroa.062.2, %1224 ], [ %.sroa.062.1, %1215 ]
  %.4965 = phi i32 [ %1228, %1227 ], [ %.3964, %1226 ], [ %.3964, %1224 ], [ %.2963, %1215 ]
  %.1959 = phi i32 [ %1218, %1227 ], [ %1218, %1226 ], [ %1218, %1224 ], [ %.0958, %1215 ]
  %1231 = getelementptr inbounds i8, ptr %.0957, i64 2
  br label %1215, !llvm.loop !206

1232:                                             ; preds = %1227, %1221, %1215
  %.sroa.9.3 = phi i32 [ %.sroa.9.1, %1215 ], [ %.sroa.9.1, %1221 ], [ %1218, %1227 ]
  %.sroa.062.4 = phi i32 [ %.sroa.062.1, %1215 ], [ %1218, %1221 ], [ %.sroa.062.2, %1227 ]
  %.2960 = phi i32 [ %.0958, %1215 ], [ %1218, %1221 ], [ %1218, %1227 ]
  %1233 = add nsw i32 %.2960, 1
  %1234 = icmp eq i32 %.sroa.062.4, -1
  %spec.select1181 = select i1 %1234, i32 %1233, i32 %.sroa.062.4
  %1235 = icmp eq i32 %.sroa.9.3, -1
  %.sroa.9.4 = select i1 %1235, i32 %1233, i32 %.sroa.9.3
  %1236 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.068.0, ptr noundef %1196)
  %1237 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef %75, ptr noundef %1236, ptr noundef %.sroa.068.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.044.0.vec.extract = extractelement <2 x float> %1237, i64 0
  store float %.sroa.044.0.vec.extract, ptr %32, align 4, !tbaa !207
  %1238 = sitofp i32 %spec.select1181 to float
  %1239 = getelementptr inbounds i8, ptr %75, i64 15760
  %1240 = load float, ptr %1239, align 8, !tbaa !42
  %1241 = fmul float %1240, %1238
  %1242 = getelementptr inbounds i8, ptr %32, i64 4
  store float %1241, ptr %1242, align 4, !tbaa !208
  %1243 = icmp sgt i32 %.sroa.9.4, -1
  br i1 %1243, label %1244, label %1251

1244:                                             ; preds = %1232
  %1245 = call noundef ptr @_Z9ImStrbolWPKtS0_(ptr noundef %.sroa.7.0, ptr noundef %1196)
  %1246 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %75, ptr noundef %1245, ptr noundef %.sroa.7.0, ptr noundef null, ptr noundef null, i1 noundef zeroext false)
  %.sroa.043.0.vec.extract = extractelement <2 x float> %1246, i64 0
  store float %.sroa.043.0.vec.extract, ptr %33, align 4, !tbaa !207
  %1247 = uitofp nneg i32 %.sroa.9.4 to float
  %1248 = load float, ptr %1239, align 8, !tbaa !42
  %1249 = fmul float %1248, %1247
  %1250 = getelementptr inbounds i8, ptr %33, i64 4
  store float %1249, ptr %1250, align 4, !tbaa !208
  br label %1251

1251:                                             ; preds = %1244, %1232
  %1252 = phi float [ %1248, %1244 ], [ %1240, %1232 ]
  br i1 %67, label %1253, label %1257

1253:                                             ; preds = %1251
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  %1254 = sitofp i32 %1233 to float
  %1255 = fmul float %1252, %1254
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %34, float noundef %.sroa.0544.2, float noundef %1255)
  %1256 = load i64, ptr %34, align 8
  store i64 %1256, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  br label %1257

1257:                                             ; preds = %1253, %1251
  br i1 %1183, label %1258, label %1318

1258:                                             ; preds = %1257
  %1259 = getelementptr inbounds i8, ptr %.0939, i64 3716
  %1260 = load i8, ptr %1259, align 4, !tbaa !168, !range !39, !noundef !40
  %1261 = trunc nuw i8 %1260 to i1
  br i1 %1261, label %1262, label %1318

1262:                                             ; preds = %1258
  %1263 = and i32 %5, 32768
  %.not1078 = icmp eq i32 %1263, 0
  br i1 %.not1078, label %1264, label %1284

1264:                                             ; preds = %1262
  %1265 = fmul float %.sroa.0544.2, 2.500000e-01
  %1266 = load float, ptr %32, align 4, !tbaa !207
  %1267 = getelementptr inbounds i8, ptr %.0939, i64 80
  %1268 = load float, ptr %1267, align 8, !tbaa !136
  %1269 = fcmp olt float %1266, %1268
  br i1 %1269, label %1270, label %1275

1270:                                             ; preds = %1264
  %1271 = fsub float %1266, %1265
  %1272 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1271)
  %1273 = fptosi float %1272 to i32
  %1274 = sitofp i32 %1273 to float
  store float %1274, ptr %1267, align 8, !tbaa !136
  br label %1286

1275:                                             ; preds = %1264
  %1276 = load float, ptr %89, align 4, !tbaa !162
  %1277 = fsub float %.sroa.0544.2, %1276
  %1278 = fsub float %1266, %1277
  %1279 = fcmp ult float %1278, %1268
  br i1 %1279, label %1286, label %1280

1280:                                             ; preds = %1275
  %1281 = fadd float %1265, %1278
  %1282 = fptosi float %1281 to i32
  %1283 = sitofp i32 %1282 to float
  store float %1283, ptr %1267, align 8, !tbaa !136
  br label %1286

1284:                                             ; preds = %1262
  %1285 = getelementptr inbounds i8, ptr %.0939, i64 80
  store float 0.000000e+00, ptr %1285, align 8, !tbaa !136
  br label %1286

1286:                                             ; preds = %1270, %1280, %1275, %1284
  br i1 %67, label %1287, label %1317

1287:                                             ; preds = %1286
  %1288 = load float, ptr %1242, align 4, !tbaa !208
  %1289 = load float, ptr %1239, align 8, !tbaa !42
  %1290 = fsub float %1288, %1289
  %1291 = fcmp olt float %1290, %.19491293
  br i1 %1291, label %1292, label %1294

1292:                                             ; preds = %1287
  %1293 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef 0.000000e+00, float noundef %1290)
  %.pre1258 = load float, ptr %90, align 4, !tbaa !107
  br label %1303

1294:                                             ; preds = %1287
  %1295 = load float, ptr %90, align 4, !tbaa !107
  %1296 = fneg float %1295
  %1297 = call float @llvm.fmuladd.f32(float %1296, float 2.000000e+00, float %.sroa.11.0.copyload)
  %1298 = fsub float %1288, %1297
  %1299 = fcmp ult float %1298, %.19491293
  br i1 %1299, label %1303, label %1300

1300:                                             ; preds = %1294
  %1301 = fsub float %1288, %.sroa.11.0.copyload
  %1302 = call float @llvm.fmuladd.f32(float %1295, float 2.000000e+00, float %1301)
  br label %1303

1303:                                             ; preds = %1294, %1300, %1292
  %1304 = phi float [ %.pre1258, %1292 ], [ %1295, %1300 ], [ %1295, %1294 ]
  %.2950 = phi float [ %1293, %1292 ], [ %1302, %1300 ], [ %.19491293, %1294 ]
  %1305 = getelementptr inbounds i8, ptr %30, i64 4
  %1306 = load float, ptr %1305, align 4, !tbaa !208
  %1307 = call float @llvm.fmuladd.f32(float %1304, float 2.000000e+00, float %1306)
  %1308 = fsub float %1307, %.sroa.11.0.copyload
  %1309 = call noundef float @_ZL5ImMaxIfET_S0_S0_(float noundef %1308, float noundef 0.000000e+00)
  %1310 = call noundef float @_ZL7ImClampIfET_S0_S0_S0_(float noundef %.2950, float noundef 0.000000e+00, float noundef %1309)
  %1311 = getelementptr inbounds i8, ptr %.2938, i64 156
  %1312 = load float, ptr %1311, align 4, !tbaa !126
  %1313 = fsub float %1312, %1310
  %1314 = getelementptr inbounds i8, ptr %29, i64 4
  %1315 = load float, ptr %1314, align 4, !tbaa !208
  %1316 = fadd float %1315, %1313
  store float %1316, ptr %1314, align 4, !tbaa !208
  store float %1310, ptr %1311, align 4, !tbaa !126
  br label %1317

1317:                                             ; preds = %1303, %1286
  store i8 0, ptr %1259, align 4, !tbaa !168
  br label %1318

1318:                                             ; preds = %1317, %1258, %1257
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  %1319 = getelementptr inbounds i8, ptr %.0939, i64 80
  %1320 = load float, ptr %1319, align 8, !tbaa !136
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %35, float noundef %1320, float noundef 0.000000e+00)
  br i1 %1203, label %1321, label %1390

1321:                                             ; preds = %1318
  %1322 = getelementptr inbounds i8, ptr %.0939, i64 88
  %1323 = load i32, ptr %1322, align 4, !tbaa !138
  %1324 = getelementptr inbounds i8, ptr %.0939, i64 92
  %1325 = load i32, ptr %1324, align 4, !tbaa !140
  %1326 = call noundef i32 @_ZL5ImMinIiET_S0_S0_(i32 noundef %1323, i32 noundef %1325)
  %1327 = sext i32 %1326 to i64
  %1328 = getelementptr inbounds i16, ptr %1196, i64 %1327
  %1329 = load i32, ptr %1322, align 4, !tbaa !138
  %1330 = load i32, ptr %1324, align 4, !tbaa !140
  %1331 = call noundef i32 @_ZL5ImMaxIiET_S0_S0_(i32 noundef %1329, i32 noundef %1330)
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds i16, ptr %1196, i64 %1332
  %1334 = select i1 %1183, float 1.000000e+00, float 0x3FE3333340000000
  %1335 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 50, float noundef %1334)
  %1336 = select i1 %67, float 0.000000e+00, float -1.000000e+00
  %1337 = 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
  %1338 = 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> %1338, ptr %37, align 8
  %1339 = 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> %1339, 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 %1328, ptr %38, align 8, !tbaa !41
  %1340 = getelementptr inbounds i8, ptr %36, i64 4
  %1341 = icmp slt i32 %1326, %1331
  br i1 %1341, label %.lr.ph1250, label %._crit_edge1251

.lr.ph1250:                                       ; preds = %1321
  %1342 = extractelement <2 x float> %1339, i64 1
  %1343 = getelementptr inbounds i8, ptr %28, i64 12
  %1344 = getelementptr inbounds i8, ptr %28, i64 4
  %1345 = getelementptr inbounds i8, ptr %75, i64 15752
  %1346 = getelementptr inbounds i8, ptr %.2938, i64 688
  %1347 = getelementptr inbounds i8, ptr %39, i64 8
  %.pre1259 = load float, ptr %1239, align 8, !tbaa !42
  br label %1348

1348:                                             ; preds = %.lr.ph1250, %.loopexit
  %1349 = phi ptr [ %1328, %.lr.ph1250 ], [ %1382, %.loopexit ]
  %1350 = phi float [ %1342, %.lr.ph1250 ], [ %1388, %.loopexit ]
  %1351 = phi float [ %.pre1259, %.lr.ph1250 ], [ %1384, %.loopexit ]
  %1352 = load float, ptr %1343, align 4, !tbaa !209
  %1353 = fadd float %1352, %1351
  %1354 = fcmp ogt float %1350, %1353
  br i1 %1354, label %._crit_edge1251.loopexit, label %1355

1355:                                             ; preds = %1348
  %1356 = load float, ptr %1344, align 4, !tbaa !210
  %1357 = fcmp olt float %1350, %1356
  br i1 %1357, label %.preheader, label %1364

.preheader:                                       ; preds = %1355, %1360
  %1358 = phi ptr [ %1361, %1360 ], [ %1349, %1355 ]
  %1359 = icmp ult ptr %1358, %1333
  br i1 %1359, label %1360, label %.loopexit

1360:                                             ; preds = %.preheader
  %1361 = getelementptr inbounds i8, ptr %1358, i64 2
  store ptr %1361, ptr %38, align 8, !tbaa !41
  %1362 = load i16, ptr %1358, align 2, !tbaa !166
  %1363 = icmp eq i16 %1362, 10
  br i1 %1363, label %.loopexit, label %.preheader, !llvm.loop !211

1364:                                             ; preds = %1355
  %1365 = call <2 x float> @_ZL22InputTextCalcTextSizeWP12ImGuiContextPKtS2_PS2_P6ImVec2b(ptr noundef nonnull %75, ptr noundef %1349, ptr noundef nonnull %1333, ptr noundef nonnull %38, ptr noundef null, i1 noundef zeroext true)
  %.sroa.028.0.vec.extract = extractelement <2 x float> %1365, i64 0
  %1366 = fcmp ugt float %.sroa.028.0.vec.extract, 0.000000e+00
  br i1 %1366, label %1373, label %1367

1367:                                             ; preds = %1364
  %1368 = load ptr, ptr %1345, align 8, !tbaa !148
  %1369 = call noundef float @_ZNK6ImFont14GetCharAdvanceEt(ptr noundef nonnull align 8 dereferenceable(118) %1368, i16 noundef zeroext 32)
  %1370 = fmul float %1369, 5.000000e-01
  %1371 = fptosi float %1370 to i32
  %1372 = sitofp i32 %1371 to float
  br label %1373

1373:                                             ; preds = %1367, %1364
  %.sroa.028.0.vec.extract31.pre-phi = phi float [ %1372, %1367 ], [ %.sroa.028.0.vec.extract, %1364 ]
  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
  %1374 = load float, ptr %1239, align 8, !tbaa !42
  %1375 = fsub float %1336, %1374
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %41, float noundef 0.000000e+00, float noundef %1375)
  %1376 = 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> %1376, 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 %1337)
  %1377 = 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> %1377, 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)
  %1378 = 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 %1378, label %1379, label %1381

1379:                                             ; preds = %1373
  %1380 = load ptr, ptr %1346, align 8, !tbaa !212
  call void @_ZN10ImDrawList13AddRectFilledERK6ImVec2S2_jfi(ptr noundef nonnull align 8 dereferenceable(200) %1380, ptr noundef nonnull align 4 dereferenceable(8) %39, ptr noundef nonnull align 4 dereferenceable(8) %1347, i32 noundef %1335, float noundef 0.000000e+00, i32 noundef 0)
  br label %1381

1381:                                             ; preds = %1379, %1373
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #14
  %.pre1260 = load float, ptr %1239, align 8, !tbaa !42
  %.pre1261 = load float, ptr %1340, align 4, !tbaa !208
  %.pre1262 = load ptr, ptr %38, align 8, !tbaa !41
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader, %1360, %1381
  %1382 = phi ptr [ %.pre1262, %1381 ], [ %1358, %.preheader ], [ %1361, %1360 ]
  %1383 = phi float [ %.pre1261, %1381 ], [ %1350, %1360 ], [ %1350, %.preheader ]
  %1384 = phi float [ %.pre1260, %1381 ], [ %1351, %1360 ], [ %1351, %.preheader ]
  %1385 = load float, ptr %29, align 8, !tbaa !207
  %1386 = load float, ptr %35, align 4, !tbaa !207
  %1387 = fsub float %1385, %1386
  store float %1387, ptr %36, align 8, !tbaa !207
  %1388 = fadd float %1384, %1383
  store float %1388, ptr %1340, align 4, !tbaa !208
  %1389 = icmp ult ptr %1382, %1333
  br i1 %1389, label %1348, label %._crit_edge1251.loopexit, !llvm.loop !213

._crit_edge1251.loopexit:                         ; preds = %1348, %.loopexit
  %.pre1263.pre.pre = load ptr, ptr %31, align 8, !tbaa !41
  br label %._crit_edge1251

._crit_edge1251:                                  ; preds = %._crit_edge1251.loopexit, %1321
  %.pre1263.pre = phi ptr [ %.pre1263.pre.pre, %._crit_edge1251.loopexit ], [ %.pre12631265, %1321 ]
  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 %1390

1390:                                             ; preds = %._crit_edge1251, %1318
  %.pre1263 = phi ptr [ %.pre1263.pre, %._crit_edge1251 ], [ %.pre12631265, %1318 ]
  br i1 %67, label %1396, label %1391

1391:                                             ; preds = %1390
  %1392 = ptrtoint ptr %.pre1263 to i64
  %1393 = ptrtoint ptr %.0971 to i64
  %1394 = sub i64 %1392, %1393
  %1395 = icmp slt i64 %1394, 2097152
  br i1 %1395, label %1396, label %1405

1396:                                             ; preds = %1391, %1390
  %. = phi ptr [ %28, %1391 ], [ null, %1390 ]
  %1397 = zext i1 %400 to i32
  %1398 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1397, float noundef 1.000000e+00)
  %1399 = getelementptr inbounds i8, ptr %.2938, i64 688
  %1400 = load ptr, ptr %1399, align 8, !tbaa !212
  %1401 = getelementptr inbounds i8, ptr %75, i64 15752
  %1402 = load ptr, ptr %1401, align 8, !tbaa !148
  %1403 = load float, ptr %1239, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  %1404 = 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> %1404, ptr %46, align 8
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(200) %1400, ptr noundef %1402, float noundef %1403, ptr noundef nonnull align 4 dereferenceable(8) %46, i32 noundef %1398, ptr noundef %.0971, ptr noundef %.pre1263, float noundef 0.000000e+00, ptr noundef %.)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  br label %1405

1405:                                             ; preds = %1396, %1391
  br i1 %1183, label %1406, label %1447

1406:                                             ; preds = %1405
  %1407 = getelementptr inbounds i8, ptr %75, i64 24
  %1408 = load float, ptr %1407, align 8, !tbaa !214
  %1409 = getelementptr inbounds i8, ptr %.0939, i64 3712
  %1410 = load float, ptr %1409, align 8, !tbaa !215
  %1411 = fadd float %1408, %1410
  store float %1411, ptr %1409, align 8, !tbaa !215
  %1412 = getelementptr inbounds i8, ptr %75, i64 92
  %1413 = load i8, ptr %1412, align 4, !tbaa !216, !range !39, !noundef !40
  %1414 = trunc nuw i8 %1413 to i1
  %1415 = fcmp ugt float %1411, 0.000000e+00
  %or.cond1182 = select i1 %1414, i1 %1415, i1 false
  br i1 %or.cond1182, label %1416, label %1419

1416:                                             ; preds = %1406
  %1417 = call float @fmodf(float noundef %1411, float noundef 0x3FF3333340000000) #14
  %1418 = fcmp ole float %1417, 0x3FE99999A0000000
  br label %1419

1419:                                             ; preds = %1416, %1406
  %1420 = phi i1 [ true, %1406 ], [ %1418, %1416 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #14
  %1421 = 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> %1421, ptr %48, align 8
  %1422 = 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> %1422, ptr %47, align 8
  %1423 = 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> %1423, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1423, i64 1
  %1424 = load float, ptr %1239, align 8, !tbaa !42
  %1425 = fsub float %.sroa.0.4.vec.extract, %1424
  %1426 = fadd float %1425, 5.000000e-01
  %1427 = fadd float %.sroa.0.0.vec.extract, 1.000000e+00
  %1428 = 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 %1426, float noundef %1427, float noundef %1428)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #14
  br i1 %1420, label %1429, label %.critedge13

1429:                                             ; preds = %1419
  call void @_ZN6ImRectC2ERK6ImVec4(ptr noundef nonnull align 4 dereferenceable(16) %50, ptr noundef nonnull align 4 dereferenceable(16) %28)
  %1430 = 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 %1430, label %1431, label %1436

1431:                                             ; preds = %1429
  %1432 = getelementptr inbounds i8, ptr %.2938, i64 688
  %1433 = load ptr, ptr %1432, align 8, !tbaa !212
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  %1434 = call <2 x float> @_ZNK6ImRect5GetBLEv(ptr noundef nonnull align 4 dereferenceable(16) %49)
  store <2 x float> %1434, ptr %51, align 8
  %1435 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef 0, float noundef 1.000000e+00)
  call void @_ZN10ImDrawList7AddLineERK6ImVec2S2_jf(ptr noundef nonnull align 8 dereferenceable(200) %1433, ptr noundef nonnull align 4 dereferenceable(8) %49, ptr noundef nonnull align 4 dereferenceable(8) %51, i32 noundef %1435, float noundef 1.000000e+00)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  br label %1436

.critedge13:                                      ; preds = %1419
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #14
  br label %1436

1436:                                             ; preds = %.critedge13, %1431, %1429
  br i1 %171, label %1446, label %1437

1437:                                             ; preds = %1436
  %1438 = getelementptr inbounds i8, ptr %75, i64 24688
  store i8 1, ptr %1438, align 8, !tbaa !217
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  %1439 = fadd float %.sroa.0.0.vec.extract, -1.000000e+00
  %1440 = load float, ptr %1239, align 8, !tbaa !42
  %1441 = fsub float %.sroa.0.4.vec.extract, %1440
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %52, float noundef %1439, float noundef %1441)
  %1442 = getelementptr inbounds i8, ptr %75, i64 24692
  %1443 = load i64, ptr %52, align 8
  store i64 %1443, ptr %1442, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  %1444 = load float, ptr %1239, align 8, !tbaa !42
  %1445 = getelementptr inbounds i8, ptr %75, i64 24700
  store float %1444, ptr %1445, align 4, !tbaa !218
  br label %1446

1446:                                             ; preds = %1437, %1436
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %49) #14
  br label %1447

1447:                                             ; preds = %1446, %1405
  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 %1483

1448:                                             ; preds = %1184
  br i1 %67, label %.critedge1184, label %1449

1449:                                             ; preds = %1448
  br i1 %400, label %1467, label %1450

1450:                                             ; preds = %1449
  %1451 = load i32, ptr %179, align 4, !tbaa !114
  %1452 = icmp eq i32 %1451, %79
  br i1 %1452, label %1453, label %1458

1453:                                             ; preds = %1450
  %1454 = getelementptr inbounds i8, ptr %.0939, i64 16
  %1455 = load i32, ptr %1454, align 8, !tbaa !131
  %1456 = sext i32 %1455 to i64
  %1457 = getelementptr inbounds i8, ptr %.0971, i64 %1456
  store ptr %1457, ptr %31, align 8, !tbaa !41
  br label %1467

1458:                                             ; preds = %1450
  %1459 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.0971) #15
  %1460 = getelementptr inbounds i8, ptr %.0971, i64 %1459
  store ptr %1460, ptr %31, align 8, !tbaa !41
  br label %1467

.critedge1184:                                    ; preds = %1448
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  %1461 = call noundef i32 @_ZL32InputTextCalcTextLenAndLineCountPKcPS0_(ptr noundef %.0971, ptr noundef nonnull %31)
  %1462 = sitofp i32 %1461 to float
  %1463 = getelementptr inbounds i8, ptr %75, i64 15760
  %1464 = load float, ptr %1463, align 8, !tbaa !42
  %1465 = fmul float %1464, %1462
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %53, float noundef %.sroa.0544.2, float noundef %1465)
  %1466 = load i64, ptr %53, align 8
  store i64 %1466, ptr %30, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  br label %1473

1467:                                             ; preds = %1449, %1453, %1458
  %1468 = phi ptr [ %1182, %1449 ], [ %1457, %1453 ], [ %1460, %1458 ]
  %1469 = ptrtoint ptr %1468 to i64
  %1470 = ptrtoint ptr %.0971 to i64
  %1471 = sub i64 %1469, %1470
  %1472 = icmp slt i64 %1471, 2097152
  br i1 %1472, label %1473, label %1483

1473:                                             ; preds = %.critedge1184, %1467
  %.14 = phi ptr [ %28, %1467 ], [ null, %.critedge1184 ]
  %1474 = zext i1 %400 to i32
  %1475 = call noundef i32 @_ZN5ImGui11GetColorU32Eif(i32 noundef %1474, float noundef 1.000000e+00)
  %1476 = getelementptr inbounds i8, ptr %.2938, i64 688
  %1477 = load ptr, ptr %1476, align 8, !tbaa !212
  %1478 = getelementptr inbounds i8, ptr %75, i64 15752
  %1479 = load ptr, ptr %1478, align 8, !tbaa !148
  %1480 = getelementptr inbounds i8, ptr %75, i64 15760
  %1481 = load float, ptr %1480, align 8, !tbaa !42
  %1482 = load ptr, ptr %31, align 8, !tbaa !41
  call void @_ZN10ImDrawList7AddTextEPK6ImFontfRK6ImVec2jPKcS7_fPK6ImVec4(ptr noundef nonnull align 8 dereferenceable(200) %1477, ptr noundef %1479, float noundef %1481, ptr noundef nonnull align 4 dereferenceable(8) %29, i32 noundef %1475, ptr noundef %.0971, ptr noundef %1482, float noundef 0.000000e+00, ptr noundef %.14)
  br label %1483

1483:                                             ; preds = %1467, %1473, %1447
  br i1 %brmerge1097, label %1485, label %1484

1484:                                             ; preds = %1483
  call void @_ZN5ImGui7PopFontEv()
  br label %1485

1485:                                             ; preds = %1483, %1484
  br i1 %67, label %1486, label %1506

1486:                                             ; preds = %1485
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #14
  %1487 = load float, ptr %30, align 8, !tbaa !207
  %1488 = getelementptr inbounds i8, ptr %30, i64 4
  %1489 = load float, ptr %1488, align 4, !tbaa !208
  %1490 = load float, ptr %90, align 4, !tbaa !107
  %1491 = fadd float %1489, %1490
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %54, float noundef %1487, float noundef %1491)
  call void @_ZN5ImGui5DummyERK6ImVec2(ptr noundef nonnull align 4 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #14
  %1492 = getelementptr inbounds i8, ptr %75, i64 18948
  %1493 = load i32, ptr %1492, align 4, !tbaa !219
  %1494 = or i32 %1493, 1048577
  store i32 %1494, ptr %1492, align 4, !tbaa !219
  call void @_ZN5ImGui8EndChildEv()
  %1495 = getelementptr inbounds i8, ptr %75, i64 19008
  %1496 = load i32, ptr %1495, align 8, !tbaa !220
  %1497 = and i32 %1496, 128
  %1498 = getelementptr inbounds i8, ptr %15, i64 8
  %1499 = load i32, ptr %1498, align 4, !tbaa !221
  %1500 = or i32 %1499, %1497
  store i32 %1500, ptr %1498, align 4, !tbaa !221
  call void @_ZN5ImGui8EndGroupEv()
  %1501 = load i32, ptr %159, align 8, !tbaa !222
  %1502 = icmp eq i32 %1501, 0
  br i1 %1502, label %1503, label %1506

1503:                                             ; preds = %1486
  store i32 %79, ptr %159, align 8, !tbaa !222
  %1504 = getelementptr inbounds i8, ptr %15, i64 4
  %1505 = load <2 x i32>, ptr %1504, align 4, !tbaa !111
  store <2 x i32> %1505, ptr %160, align 4, !tbaa !111
  br label %1506

1506:                                             ; preds = %1486, %1503, %1485
  %1507 = getelementptr inbounds i8, ptr %75, i64 24888
  %1508 = load i8, ptr %1507, align 8, !tbaa !223, !range !39, !noundef !40
  %1509 = trunc nuw i8 %1508 to i1
  %or.cond1190 = and i1 %brmerge1097, %1509
  br i1 %or.cond1190, label %1510, label %1512

1510:                                             ; preds = %1506
  call void @_ZN5ImGui24LogSetNextTextDecorationEPKcS1_(ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.28)
  %1511 = load ptr, ptr %31, align 8, !tbaa !41
  call void @_ZN5ImGui15LogRenderedTextEPK6ImVec2PKcS4_(ptr noundef nonnull %29, ptr noundef %.0971, ptr noundef %1511)
  br label %1512

1512:                                             ; preds = %1510, %1506
  br i1 %95, label %1513, label %1523

1513:                                             ; preds = %1512
  %1514 = getelementptr inbounds i8, ptr %11, i64 8
  %1515 = load float, ptr %1514, align 8, !tbaa !224
  %1516 = getelementptr inbounds i8, ptr %75, i64 14676
  %1517 = load float, ptr %1516, align 4, !tbaa !108
  %1518 = fadd float %1515, %1517
  %1519 = load float, ptr %1162, align 4, !tbaa !205
  %1520 = load float, ptr %90, align 4, !tbaa !107
  %1521 = fadd float %1519, %1520
  call void @_ZN6ImVec2C2Eff(ptr noundef nonnull align 4 dereferenceable(8) %55, float noundef %1518, float noundef %1521)
  %1522 = load <2 x float>, ptr %55, align 8
  call void @_ZN5ImGui10RenderTextE6ImVec2PKcS2_b(<2 x float> %1522, ptr noundef %0, ptr noundef null, i1 noundef zeroext true)
  br label %1523

1523:                                             ; preds = %1513, %1512
  %1524 = and i32 %5, 134217728
  %.not1079 = icmp eq i32 %1524, 0
  %or.cond1187 = and i1 %.not1079, %.4970
  br i1 %or.cond1187, label %1525, label %1526

1525:                                             ; preds = %1523
  call void @_ZN5ImGui14MarkItemEditedEj(i32 noundef %79)
  br label %1526

1526:                                             ; preds = %1525, %1523
  %1527 = and i32 %5, 64
  %.not1080 = icmp eq i32 %1527, 0
  %1528 = trunc nuw i8 %.29741288 to i1
  %.2 = select i1 %.not1080, i1 %.4970, i1 %1528
  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, %1526
  %.3 = phi i1 [ %.2, %1526 ], [ false, %156 ], [ false, %112 ], [ false, %137 ]
  call void @llvm.lifetime.end.p0(i64 80, 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 %1529

1529:                                             ; 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 #12 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN17ImGuiLastItemDataC2Ev(ptr noundef nonnull align 4 dereferenceable(80)) 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 #12 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 @_ZN5ImGui8ShortcutEiij(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZL24InputTextFilterCharacterP12ImGuiContextPjiPFiP26ImGuiInputTextCallbackDataEPvb(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, i1 noundef zeroext) 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 @_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

; 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(200), 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 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 = { 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 #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 = { 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 207}
!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, !12, i64 128, !12, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !11, i64 152, !11, i64 160, !11, i64 168, !11, i64 176, !11, i64 184, !11, i64 192, !13, i64 200, !13, i64 201, !13, i64 202, !13, i64 203, !13, i64 204, !13, i64 205, !13, i64 206, !13, i64 207, !13, i64 208, !13, i64 209, !13, i64 210, !13, i64 211, !13, i64 212, !13, i64 213, !8, i64 214, !8, i64 215, !14, i64 216, !14, i64 218, !14, i64 220, !14, i64 222, !14, i64 224, !8, i64 226, !8, i64 227, !13, i64 228, !15, i64 232, !8, i64 236, !8, i64 237, !8, i64 238, !8, i64 239, !10, i64 240, !10, i64 241, !10, i64 242, !11, i64 244, !11, i64 252, !16, i64 264, !17, i64 280, !23, i64 512, !23, i64 528, !23, i64 544, !23, i64 560, !23, i64 576, !23, i64 592, !23, i64 608, !24, i64 624, !24, i64 628, !10, i64 632, !12, i64 636, !12, i64 640, !25, i64 648, !27, i64 664, !12, i64 680, !10, i64 684, !7, i64 688, !28, i64 696, !7, i64 896, !7, i64 904, !7, i64 912, !7, i64 920, !7, i64 928, !7, i64 936, !7, i64 944, !7, i64 952, !8, i64 960, !8, i64 968, !8, i64 1000, !10, i64 1016, !10, i64 1020, !10, i64 1024, !13, i64 1028}
!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 = !{!"_ZTS8ImGuiDir", !8, i64 0}
!16 = !{!"_ZTS8ImVectorIjE", !10, i64 0, !10, i64 4, !7, i64 8}
!17 = !{!"_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, !18, i64 68, !18, i64 72, !18, i64 76, !11, i64 80, !19, i64 88, !14, i64 92, !14, i64 94, !13, i64 96, !13, i64 97, !13, i64 98, !13, i64 99, !11, i64 100, !20, i64 108, !10, i64 136, !10, i64 140, !21, i64 144, !7, i64 160, !7, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !12, i64 192, !12, i64 196, !22, i64 200, !22, i64 216}
!18 = !{!"_ZTS6ImVec1", !12, i64 0}
!19 = !{!"_ZTS13ImGuiNavLayer", !8, i64 0}
!20 = !{!"_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}
!21 = !{!"_ZTS8ImVectorIP11ImGuiWindowE", !10, i64 0, !10, i64 4, !7, i64 8}
!22 = !{!"_ZTS8ImVectorIfE", !10, i64 0, !10, i64 4, !7, i64 8}
!23 = !{!"_ZTS6ImRect", !11, i64 0, !11, i64 8}
!24 = !{!"_ZTS8ImVec2ih", !14, i64 0, !14, i64 2}
!25 = !{!"_ZTS12ImGuiStorage", !26, i64 0}
!26 = !{!"_ZTS8ImVectorI16ImGuiStoragePairE", !10, i64 0, !10, i64 4, !7, i64 8}
!27 = !{!"_ZTS8ImVectorI15ImGuiOldColumnsE", !10, i64 0, !10, i64 4, !7, i64 8}
!28 = !{!"_ZTS10ImDrawList", !29, i64 0, !30, i64 16, !31, i64 32, !10, i64 48, !10, i64 52, !7, i64 56, !7, i64 64, !7, i64 72, !32, i64 80, !33, i64 96, !35, i64 128, !37, i64 152, !38, i64 168, !12, i64 184, !7, i64 192}
!29 = !{!"_ZTS8ImVectorI9ImDrawCmdE", !10, i64 0, !10, i64 4, !7, i64 8}
!30 = !{!"_ZTS8ImVectorItE", !10, i64 0, !10, i64 4, !7, i64 8}
!31 = !{!"_ZTS8ImVectorI10ImDrawVertE", !10, i64 0, !10, i64 4, !7, i64 8}
!32 = !{!"_ZTS8ImVectorI6ImVec2E", !10, i64 0, !10, i64 4, !7, i64 8}
!33 = !{!"_ZTS15ImDrawCmdHeader", !34, i64 0, !7, i64 16, !10, i64 24}
!34 = !{!"_ZTS6ImVec4", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12}
!35 = !{!"_ZTS18ImDrawListSplitter", !10, i64 0, !10, i64 4, !36, i64 8}
!36 = !{!"_ZTS8ImVectorI13ImDrawChannelE", !10, i64 0, !10, i64 4, !7, i64 8}
!37 = !{!"_ZTS8ImVectorI6ImVec4E", !10, i64 0, !10, i64 4, !7, i64 8}
!38 = !{!"_ZTS8ImVectorIPvE", !10, i64 0, !10, i64 4, !7, i64 8}
!39 = !{i8 0, i8 2}
!40 = !{}
!41 = !{!7, !7, i64 0}
!42 = !{!43, !12, i64 15760}
!43 = !{!"_ZTS12ImGuiContext", !13, i64 0, !13, i64 1, !44, i64 8, !46, i64 14592, !7, i64 15752, !12, i64 15760, !12, i64 15764, !12, i64 15768, !12, i64 15772, !47, i64 15776, !48, i64 16312, !10, i64 16320, !10, i64 16324, !10, i64 16328, !13, i64 16332, !13, i64 16333, !13, i64 16334, !13, i64 16335, !13, i64 16336, !7, i64 16344, !8, i64 16352, !49, i64 16368, !49, i64 16384, !45, i64 16400, !10, i64 16404, !21, i64 16408, !21, i64 16424, !21, i64 16440, !50, i64 16456, !25, i64 16472, !10, i64 16488, !11, i64 16492, !10, i64 16500, !7, i64 16504, !7, i64 16512, !7, i64 16520, !7, i64 16528, !7, i64 16536, !7, i64 16544, !11, i64 16552, !10, i64 16560, !10, i64 16564, !12, i64 16568, !11, i64 16572, !11, i64 16580, !10, i64 16588, !10, i64 16592, !10, i64 16596, !12, i64 16600, !12, i64 16604, !13, i64 16608, !13, i64 16609, !13, i64 16610, !10, i64 16612, !10, i64 16616, !12, i64 16620, !13, i64 16624, !13, i64 16625, !13, i64 16626, !13, i64 16627, !13, i64 16628, !13, i64 16629, !13, i64 16630, !10, i64 16631, !11, i64 16632, !7, i64 16640, !51, i64 16648, !10, i64 16652, !13, i64 16656, !13, i64 16657, !7, i64 16664, !10, i64 16672, !12, i64 16676, !48, i64 16680, !48, i64 16688, !48, i64 16696, !52, i64 16704, !8, i64 16724, !53, i64 18576, !10, i64 18920, !13, i64 18924, !10, i64 18928, !10, i64 18932, !10, i64 18936, !10, i64 18940, !55, i64 18944, !58, i64 19000, !59, i64 19080, !13, i64 19192, !10, i64 19196, !60, i64 19200, !61, i64 19216, !62, i64 19232, !63, i64 19248, !64, i64 19264, !65, i64 19280, !66, i64 19296, !66, i64 19312, !67, i64 19328, !68, i64 19344, !7, i64 19360, !10, i64 19368, !10, i64 19372, !19, i64 19376, !10, i64 19380, !10, i64 19384, !10, i64 19388, !10, i64 19392, !63, i64 19400, !10, i64 19416, !12, i64 19420, !10, i64 19424, !10, i64 19428, !51, i64 19432, !56, i64 19440, !13, i64 19448, !13, i64 19449, !13, i64 19450, !13, i64 19451, !13, i64 19452, !13, i64 19453, !13, i64 19454, !69, i64 19456, !13, i64 19512, !13, i64 19513, !13, i64 19514, !10, i64 19516, !10, i64 19520, !10, i64 19524, !15, i64 19528, !15, i64 19532, !15, i64 19536, !23, i64 19540, !23, i64 19556, !10, i64 19572, !10, i64 19576, !10, i64 19580, !69, i64 19584, !69, i64 19640, !69, i64 19696, !69, i64 19752, !10, i64 19808, !10, i64 19812, !10, i64 19816, !10, i64 19820, !13, i64 19824, !13, i64 19825, !10, i64 19828, !10, i64 19832, !7, i64 19840, !7, i64 19848, !7, i64 19856, !12, i64 19864, !12, i64 19868, !13, i64 19872, !70, i64 19876, !11, i64 19880, !11, i64 19888, !12, i64 19896, !13, i64 19900, !13, i64 19901, !13, i64 19902, !10, i64 19904, !10, i64 19908, !10, i64 19912, !71, i64 19920, !23, i64 19984, !23, i64 20000, !10, i64 20016, !10, i64 20020, !12, i64 20024, !10, i64 20028, !10, i64 20032, !10, i64 20036, !10, i64 20040, !72, i64 20048, !8, i64 20064, !10, i64 20080, !73, i64 20088, !7, i64 20104, !10, i64 20112, !10, i64 20116, !74, i64 20120, !75, i64 20136, !22, i64 20176, !36, i64 20192, !7, i64 20208, !77, i64 20216, !79, i64 20256, !80, i64 20272, !81, i64 20288, !7, i64 20392, !10, i64 20400, !82, i64 20408, !83, i64 20424, !10, i64 20464, !10, i64 20468, !12, i64 20472, !12, i64 20476, !10, i64 20480, !10, i64 20484, !10, i64 20488, !12, i64 20492, !11, i64 20496, !85, i64 20504, !89, i64 24240, !90, i64 24264, !10, i64 24384, !57, i64 24388, !10, i64 24396, !10, i64 24400, !10, i64 24404, !10, i64 24408, !10, i64 24412, !12, i64 24416, !12, i64 24420, !10, i64 24424, !34, i64 24428, !92, i64 24444, !23, i64 24492, !13, i64 24508, !14, i64 24510, !12, i64 24512, !12, i64 24516, !12, i64 24520, !13, i64 24524, !13, i64 24525, !12, i64 24528, !12, i64 24532, !12, i64 24536, !14, i64 24540, !14, i64 24542, !14, i64 24544, !86, i64 24552, !16, i64 24568, !93, i64 24584, !95, i64 24688, !95, i64 24704, !13, i64 24720, !12, i64 24724, !96, i64 24728, !97, i64 24744, !98, i64 24760, !99, i64 24776, !100, i64 24792, !10, i64 24808, !8, i64 24816, !13, i64 24888, !101, i64 24892, !7, i64 24896, !96, i64 24904, !7, i64 24920, !7, i64 24928, !12, i64 24936, !13, i64 24940, !10, i64 24944, !10, i64 24948, !10, i64 24952, !10, i64 24956, !96, i64 24960, !102, i64 24976, !10, i64 25000, !8, i64 25004, !8, i64 25005, !13, i64 25006, !10, i64 25008, !8, i64 25012, !13, i64 25013, !8, i64 25014, !10, i64 25016, !12, i64 25020, !34, i64 25024, !103, i64 25040, !104, i64 25072, !106, i64 25112, !8, i64 25172, !10, i64 25412, !10, i64 25416, !12, i64 25420, !10, i64 25424, !10, i64 25428, !10, i64 25432, !86, i64 25440, !8, i64 25456}
!44 = !{!"_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, !13, i64 88, !12, i64 92, !12, i64 96, !12, i64 100, !12, i64 104, !12, i64 108, !12, i64 112, !13, i64 116, !13, i64 117, !13, i64 118, !13, i64 119, !13, 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, !7, i64 192, !7, i64 200, !7, i64 208, !14, i64 216, !13, i64 218, !13, i64 219, !13, i64 220, !13, i64 221, !13, i64 222, !13, i64 223, !13, i64 224, !12, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !11, i64 248, !7, i64 256, !11, i64 264, !8, i64 272, !12, i64 280, !12, i64 284, !45, i64 288, !13, i64 292, !13, i64 293, !13, i64 294, !13, i64 295, !10, i64 296, !8, i64 300, !13, i64 10956, !11, i64 10960, !8, i64 10968, !8, i64 11008, !8, i64 11048, !8, i64 11053, !8, i64 11058, !8, i64 11068, !8, i64 11078, !8, i64 11083, !8, i64 11088, !13, i64 11093, !13, i64 11094, !8, i64 11096, !8, i64 11116, !8, i64 11136, !12, i64 11156, !13, i64 11160, !13, i64 11161, !8, i64 11162, !13, i64 11163, !14, i64 11164, !30, i64 11168, !8, i64 11184, !8, i64 13848, !8, i64 14516}
!45 = !{!"_ZTS16ImGuiMouseSource", !8, i64 0}
!46 = !{!"_ZTS10ImGuiStyle", !12, i64 0, !12, i64 4, !11, i64 8, !12, i64 16, !12, i64 20, !11, i64 24, !11, i64 32, !15, 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, !12, i64 156, !11, i64 160, !15, i64 168, !11, i64 172, !11, i64 180, !12, i64 188, !11, i64 192, !11, i64 200, !11, i64 208, !11, i64 216, !12, i64 224, !13, i64 228, !13, i64 229, !13, i64 230, !12, i64 232, !12, i64 236, !8, i64 240, !12, i64 1136, !12, i64 1140, !12, i64 1144, !10, i64 1148, !10, i64 1152}
!47 = !{!"_ZTS20ImDrawListSharedData", !11, i64 0, !7, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !34, i64 32, !10, i64 48, !32, i64 56, !8, i64 72, !12, i64 456, !8, i64 460, !7, i64 528}
!48 = !{!"double", !8, i64 0}
!49 = !{!"_ZTS8ImVectorI15ImGuiInputEventE", !10, i64 0, !10, i64 4, !7, i64 8}
!50 = !{!"_ZTS8ImVectorI20ImGuiWindowStackDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!51 = !{!"_ZTS16ImGuiInputSource", !8, i64 0}
!52 = !{!"_ZTS10ImBitArrayILi154ELin512EE", !8, i64 0}
!53 = !{!"_ZTS20ImGuiKeyRoutingTable", !8, i64 0, !54, i64 312, !54, i64 328}
!54 = !{!"_ZTS8ImVectorI19ImGuiKeyRoutingDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!55 = !{!"_ZTS17ImGuiNextItemData", !10, i64 0, !10, i64 4, !10, i64 8, !56, i64 16, !12, i64 24, !10, i64 28, !10, i64 32, !13, i64 36, !8, i64 37, !57, i64 38, !10, i64 48}
!56 = !{!"long long", !8, i64 0}
!57 = !{!"_ZTS20ImGuiDataTypeStorage", !8, i64 0}
!58 = !{!"_ZTS17ImGuiLastItemData", !10, i64 0, !10, i64 4, !10, i64 8, !23, i64 12, !23, i64 28, !23, i64 44, !23, i64 60, !10, i64 76}
!59 = !{!"_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, !23, i64 64, !7, i64 80, !7, i64 88, !12, i64 96, !11, i64 100, !10, i64 108}
!60 = !{!"_ZTS8ImVectorI13ImGuiColorModE", !10, i64 0, !10, i64 4, !7, i64 8}
!61 = !{!"_ZTS8ImVectorI13ImGuiStyleModE", !10, i64 0, !10, i64 4, !7, i64 8}
!62 = !{!"_ZTS8ImVectorIP6ImFontE", !10, i64 0, !10, i64 4, !7, i64 8}
!63 = !{!"_ZTS8ImVectorI19ImGuiFocusScopeDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!64 = !{!"_ZTS8ImVectorIiE", !10, i64 0, !10, i64 4, !7, i64 8}
!65 = !{!"_ZTS8ImVectorI14ImGuiGroupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!66 = !{!"_ZTS8ImVectorI14ImGuiPopupDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!67 = !{!"_ZTS8ImVectorI22ImGuiTreeNodeStackDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!68 = !{!"_ZTS8ImVectorIP14ImGuiViewportPE", !10, i64 0, !10, i64 4, !7, i64 8}
!69 = !{!"_ZTS16ImGuiNavItemData", !7, i64 0, !10, i64 8, !10, i64 12, !23, i64 16, !10, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !56, i64 48}
!70 = !{!"_ZTS8ImGuiKey", !8, i64 0}
!71 = !{!"_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}
!72 = !{!"_ZTS8ImVectorIhE", !10, i64 0, !10, i64 4, !7, i64 8}
!73 = !{!"_ZTS8ImVectorI20ImGuiListClipperDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!74 = !{!"_ZTS8ImVectorI18ImGuiTableTempDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!75 = !{!"_ZTS6ImPoolI10ImGuiTableE", !76, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!76 = !{!"_ZTS8ImVectorI10ImGuiTableE", !10, i64 0, !10, i64 4, !7, i64 8}
!77 = !{!"_ZTS6ImPoolI11ImGuiTabBarE", !78, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!78 = !{!"_ZTS8ImVectorI11ImGuiTabBarE", !10, i64 0, !10, i64 4, !7, i64 8}
!79 = !{!"_ZTS8ImVectorI15ImGuiPtrOrIndexE", !10, i64 0, !10, i64 4, !7, i64 8}
!80 = !{!"_ZTS8ImVectorI20ImGuiShrinkWidthItemE", !10, i64 0, !10, i64 4, !7, i64 8}
!81 = !{!"_ZTS19ImGuiBoxSelectState", !10, i64 0, !13, i64 4, !13, i64 5, !13, i64 6, !13, i64 7, !13, i64 8, !10, i64 9, !11, i64 12, !11, i64 20, !11, i64 28, !7, i64 40, !13, i64 48, !23, i64 52, !23, i64 68, !23, i64 84}
!82 = !{!"_ZTS8ImVectorI24ImGuiMultiSelectTempDataE", !10, i64 0, !10, i64 4, !7, i64 8}
!83 = !{!"_ZTS6ImPoolI21ImGuiMultiSelectStateE", !84, i64 0, !25, i64 16, !10, i64 32, !10, i64 36}
!84 = !{!"_ZTS8ImVectorI21ImGuiMultiSelectStateE", !10, i64 0, !10, i64 4, !7, i64 8}
!85 = !{!"_ZTS19ImGuiInputTextState", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !30, i64 24, !86, i64 40, !86, i64 56, !13, i64 72, !10, i64 76, !12, i64 80, !87, 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}
!86 = !{!"_ZTS8ImVectorIcE", !10, i64 0, !10, i64 4, !7, i64 8}
!87 = !{!"_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, !88, i64 32}
!88 = !{!"_ZTSN5ImStb12StbUndoStateE", !8, i64 0, !8, i64 1584, !14, i64 3582, !14, i64 3584, !10, i64 3588, !10, i64 3592}
!89 = !{!"_ZTS30ImGuiInputTextDeactivatedState", !10, i64 0, !86, i64 8}
!90 = !{!"_ZTS6ImFont", !22, i64 0, !12, i64 16, !12, i64 20, !30, i64 24, !91, 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}
!91 = !{!"_ZTS8ImVectorI11ImFontGlyphE", !10, i64 0, !10, i64 4, !7, i64 8}
!92 = !{!"_ZTS21ImGuiComboPreviewData", !23, i64 0, !11, i64 16, !11, i64 24, !11, i64 32, !12, i64 40, !10, i64 44}
!93 = !{!"_ZTS22ImGuiTypingSelectState", !94, i64 0, !8, i64 24, !10, i64 88, !10, i64 92, !12, i64 96, !13, i64 100}
!94 = !{!"_ZTS24ImGuiTypingSelectRequest", !10, i64 0, !10, i64 4, !7, i64 8, !13, i64 16, !13, i64 17, !8, i64 18}
!95 = !{!"_ZTS20ImGuiPlatformImeData", !13, i64 0, !11, i64 4, !12, i64 12}
!96 = !{!"_ZTS15ImGuiTextBuffer", !86, i64 0}
!97 = !{!"_ZTS8ImVectorI20ImGuiSettingsHandlerE", !10, i64 0, !10, i64 4, !7, i64 8}
!98 = !{!"_ZTS13ImChunkStreamI19ImGuiWindowSettingsE", !86, i64 0}
!99 = !{!"_ZTS13ImChunkStreamI18ImGuiTableSettingsE", !86, i64 0}
!100 = !{!"_ZTS8ImVectorI16ImGuiContextHookE", !10, i64 0, !10, i64 4, !7, i64 8}
!101 = !{!"_ZTS12ImGuiLogType", !8, i64 0}
!102 = !{!"_ZTS14ImGuiTextIndex", !64, i64 0, !10, i64 16}
!103 = !{!"_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}
!104 = !{!"_ZTS16ImGuiIDStackTool", !10, i64 0, !10, i64 4, !10, i64 8, !105, i64 16, !13, i64 32, !12, i64 36}
!105 = !{!"_ZTS8ImVectorI19ImGuiStackLevelInfoE", !10, i64 0, !10, i64 4, !7, i64 8}
!106 = !{!"_ZTS19ImGuiDebugAllocInfo", !10, i64 0, !10, i64 4, !14, i64 8, !8, i64 12}
!107 = !{!46, !12, i64 64}
!108 = !{!46, !12, i64 84}
!109 = !{!12, !12, i64 0}
!110 = !{i64 0, i64 4, !111, i64 4, i64 4, !111, i64 8, i64 4, !111, i64 12, i64 4, !109, i64 16, i64 4, !109, i64 20, i64 4, !109, i64 24, i64 4, !109, i64 28, i64 4, !109, i64 32, i64 4, !109, i64 36, i64 4, !109, i64 40, i64 4, !109, i64 44, i64 4, !109, i64 48, i64 4, !109, i64 52, i64 4, !109, i64 56, i64 4, !109, i64 60, i64 4, !109, i64 64, i64 4, !109, i64 68, i64 4, !109, i64 72, i64 4, !109, i64 76, i64 4, !111}
!111 = !{!10, !10, i64 0}
!112 = !{!43, !10, i64 19380}
!113 = !{!43, !10, i64 19392}
!114 = !{!43, !10, i64 16612}
!115 = !{!46, !12, i64 68}
!116 = !{!46, !12, i64 72}
!117 = !{!43, !7, i64 16504}
!118 = !{!6, !19, i64 368}
!119 = !{!6, !14, i64 374}
!120 = !{!6, !12, i64 192}
!121 = !{!43, !10, i64 19004}
!122 = !{!43, !10, i64 20488}
!123 = !{!43, !51, i64 19432}
!124 = !{!13, !13, i64 0}
!125 = !{!43, !10, i64 16652}
!126 = !{!6, !12, i64 156}
!127 = !{!85, !13, i64 3724}
!128 = !{!85, !8, i64 107}
!129 = !{!85, !10, i64 8}
!130 = !{!85, !7, i64 64}
!131 = !{!85, !10, i64 16}
!132 = !{!85, !13, i64 72}
!133 = !{!85, !7, i64 48}
!134 = !{!85, !7, i64 32}
!135 = !{!85, !10, i64 12}
!136 = !{!85, !12, i64 80}
!137 = !{!85, !10, i64 3728}
!138 = !{!85, !10, i64 88}
!139 = !{!85, !10, i64 3732}
!140 = !{!85, !10, i64 92}
!141 = !{!85, !10, i64 84}
!142 = !{!44, !13, i64 292}
!143 = !{!85, !8, i64 96}
!144 = !{!44, !13, i64 81}
!145 = !{!43, !10, i64 18920}
!146 = !{!85, !10, i64 24}
!147 = !{!8, !8, i64 0}
!148 = !{!43, !7, i64 15752}
!149 = !{!90, !12, i64 20}
!150 = !{!90, !12, i64 108}
!151 = !{!90, !7, i64 64}
!152 = !{!90, !7, i64 56}
!153 = !{!154, !12, i64 4}
!154 = !{!"_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}
!155 = !{!90, !12, i64 16}
!156 = !{!85, !13, i64 3718}
!157 = !{!85, !10, i64 76}
!158 = !{!85, !10, i64 3720}
!159 = !{!43, !13, i64 16625}
!160 = !{!44, !12, i64 264}
!161 = !{!23, !12, i64 0}
!162 = !{!46, !12, i64 60}
!163 = !{!44, !12, i64 268}
!164 = !{!6, !12, i64 284}
!165 = !{!85, !13, i64 3717}
!166 = !{!14, !14, i64 0}
!167 = !{!44, !13, i64 293}
!168 = !{!85, !13, i64 3716}
!169 = !{!44, !12, i64 248}
!170 = !{!44, !12, i64 252}
!171 = !{!44, !13, i64 294}
!172 = !{!44, !10, i64 11168}
!173 = distinct !{!173, !174}
!174 = !{!"llvm.loop.mustprogress"}
!175 = !{!43, !13, i64 16624}
!176 = !{!85, !10, i64 100}
!177 = !{!44, !13, i64 295}
!178 = !{!44, !10, i64 0}
!179 = !{!44, !10, i64 4}
!180 = !{!43, !13, i64 90}
!181 = !{!44, !13, i64 85}
!182 = !{!44, !7, i64 176}
!183 = distinct !{!183, !174}
!184 = !{!85, !10, i64 56}
!185 = !{!30, !7, i64 8}
!186 = !{!30, !10, i64 0}
!187 = !{!85, !10, i64 40}
!188 = !{!189, !7, i64 0}
!189 = !{!"_ZTS26ImGuiInputTextCallbackData", !7, i64 0, !10, i64 8, !10, i64 12, !7, i64 16, !14, i64 24, !70, i64 28, !7, i64 32, !10, i64 40, !10, i64 44, !13, i64 48, !10, i64 52, !10, i64 56, !10, i64 60}
!190 = !{!189, !10, i64 8}
!191 = !{!189, !10, i64 12}
!192 = !{!189, !7, i64 16}
!193 = !{!189, !70, i64 28}
!194 = !{!189, !7, i64 32}
!195 = !{!189, !10, i64 40}
!196 = !{!189, !10, i64 44}
!197 = !{!189, !13, i64 48}
!198 = !{!189, !10, i64 52}
!199 = !{!189, !10, i64 56}
!200 = !{!189, !10, i64 60}
!201 = !{!43, !10, i64 24240}
!202 = !{!43, !7, i64 24256}
!203 = !{!43, !10, i64 24248}
!204 = !{!43, !10, i64 25432}
!205 = !{!23, !12, i64 4}
!206 = distinct !{!206, !174}
!207 = !{!11, !12, i64 0}
!208 = !{!11, !12, i64 4}
!209 = !{!34, !12, i64 12}
!210 = !{!34, !12, i64 4}
!211 = distinct !{!211, !174}
!212 = !{!6, !7, i64 688}
!213 = distinct !{!213, !174}
!214 = !{!44, !12, i64 16}
!215 = !{!85, !12, i64 3712}
!216 = !{!43, !13, i64 92}
!217 = !{!43, !13, i64 24688}
!218 = !{!43, !12, i64 24700}
!219 = !{!43, !10, i64 18948}
!220 = !{!43, !10, i64 19008}
!221 = !{!58, !10, i64 8}
!222 = !{!43, !10, i64 19000}
!223 = !{!43, !13, i64 24888}
!224 = !{!23, !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